1. 07 3月, 2017 8 次提交
    • G
      qxl: drop mode_info.modes & related code. · ecefd94e
      Gerd Hoffmann 提交于
      very old qxl hardware revisions (predating qxl ksm support by a few
      years) supported a fixed list of video modes only.  The list is still
      provided by the virtual hardware, for backward compatibility reasons.
      
      The qxl kms driver never ever looks at it, except for dumping it to
      the kernel log at load time in case debug logging is enabled.  Drop
      that pointless code.
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      Reviewed-by: NGabriel Krisman Bertazi <krisman@collabora.co.uk>
      Link: http://patchwork.freedesktop.org/patch/msgid/1488363154-6889-2-git-send-email-kraxel@redhat.com
      ecefd94e
    • G
      drm: qxl: Don't alloc fbdev if emulation is not supported · 86107838
      Gabriel Krisman Bertazi 提交于
      If fbdev emulation is disabled, the QXL shutdown path will try to clean
      a framebuffer that wasn't initialized, hitting the Oops below.  The
      problem is that even when FBDEV_EMULATION is disabled we allocate the
      qfbdev strutucture, but we don't initialize it.  The fix is to stop
      allocating the memory, since it won't be used.  This allows the existing
      verification in the cleanup hook to do it's job preventing the oops.
      
      Now that we don't allocate the unused fbdev structure, we need to be
      careful when dereferencing it in the PM suspend hook.
      
      [   24.284684] BUG: unable to handle kernel NULL pointer dereference at 00000000000002e0
      [   24.285627] IP: mutex_lock+0x18/0x30
      [   24.286049] PGD 78cdf067
      [   24.286050] PUD 7940f067
      [   24.286344] PMD 0
      [   24.286649]
      [   24.287072] Oops: 0002 [#1] SMP
      [   24.287422] Modules linked in: qxl
      [   24.287806] CPU: 0 PID: 2328 Comm: bash Not tainted 4.10.0-rc5+ #97
      [   24.288515] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.9.3-20161025_171302-gandalf 04/01/2014
      [   24.289681] task: ffff88007c4c0000 task.stack: ffffc90001b58000
      [   24.290354] RIP: 0010:mutex_lock+0x18/0x30
      [   24.290812] RSP: 0018:ffffc90001b5bcb0 EFLAGS: 00010246
      [   24.291401] RAX: 0000000000000000 RBX: 00000000000002e0 RCX: 0000000000000000
      [   24.292209] RDX: ffff88007c4c0000 RSI: 0000000000000001 RDI: 00000000000002e0
      [   24.292987] RBP: ffffc90001b5bcb8 R08: fffffffffffffffe R09: 0000000000000001
      [   24.293797] R10: ffff880078d80b80 R11: 0000000000011400 R12: 0000000000000000
      [   24.294601] R13: 00000000000002e0 R14: ffffffffa0009c28 R15: 0000000000000060
      [   24.295439] FS:  00007f30e3acbb40(0000) GS:ffff88007fc00000(0000) knlGS:0000000000000000
      [   24.296364] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [   24.296997] CR2: 00000000000002e0 CR3: 0000000078c7b000 CR4: 00000000000006f0
      [   24.297813] Call Trace:
      [   24.298097]  drm_framebuffer_cleanup+0x1f/0x70
      [   24.298612]  qxl_fbdev_fini+0x68/0x90 [qxl]
      [   24.299074]  qxl_modeset_fini+0xd/0x30 [qxl]
      [   24.299562]  qxl_pci_remove+0x22/0x50 [qxl]
      [   24.300025]  pci_device_remove+0x34/0xb0
      [   24.300507]  device_release_driver_internal+0x150/0x200
      [   24.301082]  device_release_driver+0xd/0x10
      [   24.301587]  unbind_store+0x108/0x150
      [   24.301993]  drv_attr_store+0x20/0x30
      [   24.302402]  sysfs_kf_write+0x32/0x40
      [   24.302827]  kernfs_fop_write+0x108/0x190
      [   24.303269]  __vfs_write+0x23/0x120
      [   24.303678]  ? security_file_permission+0x36/0xb0
      [   24.304193]  ? rw_verify_area+0x49/0xb0
      [   24.304636]  vfs_write+0xb0/0x190
      [   24.305004]  SyS_write+0x41/0xa0
      [   24.305362]  entry_SYSCALL_64_fastpath+0x1a/0xa9
      [   24.305887] RIP: 0033:0x7f30e31d9620
      [   24.306285] RSP: 002b:00007ffc54b47e68 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
      [   24.307128] RAX: ffffffffffffffda RBX: 00007f30e3497600 RCX: 00007f30e31d9620
      [   24.307928] RDX: 000000000000000d RSI: 0000000000da2008 RDI: 0000000000000001
      [   24.308727] RBP: 000000000070bc60 R08: 00007f30e3498760 R09: 00007f30e3acbb40
      [   24.309504] R10: 0000000000000073 R11: 0000000000000246 R12: 0000000000000001
      [   24.310295] R13: 0000000000000000 R14: 0000000000000000 R15: 00007ffc54b47f34
      [   24.311095] Code: 0e 01 e9 7b fe ff ff 66 90 66 2e 0f 1f 84 00 00 00 00 00
      55 48 89 e5 53 48 89 fb e8 83 e8 ff ff 65 48 8b 14 25 40 c4 00 00 31 c0 <3e>
      48 0f b1 13 48 85 c0 74 08 48 89 df e8 66 fd ff ff 5b 5d c3
      [   24.313182] RIP: mutex_lock+0x18/0x30 RSP: ffffc90001b5bcb0
      [   24.313811] CR2: 00000000000002e0
      [   24.314208] ---[ end trace 29669c1593cae14b ]---
      Signed-off-by: NGabriel Krisman Bertazi <krisman@collabora.co.uk>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170227203330.18542-1-krisman@collabora.co.ukSigned-off-by: NGerd Hoffmann <kraxel@redhat.com>
      86107838
    • S
      drm/rockchip: Fix link error when CONFIG_DRM_ANALOGIX_DP undefined · 6cca3869
      Sean Paul 提交于
      Fixes the following link error when CONFIG_DRM_ANALOGIX_DP is not defined:
      
      ERROR: "analogix_dp_start_crc" [drivers/gpu/drm/rockchip/rockchipdrm.ko] undefined!
      ERROR: "analogix_dp_stop_crc" [drivers/gpu/drm/rockchip/rockchipdrm.ko] undefined!
      
      Fixes: 3190e58d ("drm/rockchip: Implement CRC debugfs API")
      Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
      Cc: Mark Yao <mark.yao@rock-chips.com>
      Cc: Sean Paul <seanpaul@chromium.org>
      Cc: Heiko Stuebner <heiko@sntech.de>
      Cc: dri-devel@lists.freedesktop.org
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-rockchip@lists.infradead.org
      Cc: Emil Velikov <emil.l.velikov@gmail.com>
      Reviewed-by: NEmil Velikov <emil.l.velikov@gmail.com>
      Signed-off-by: NSean Paul <seanpaul@chromium.org>
      6cca3869
    • S
      drm: Fix compilation error when CONFIG_DEBUG_FS is undefined · 47f6cdd2
      Sean Paul 提交于
      This patch fixes the following compilation error when CONFIG_DEBUG_FS is not defined.
      
      ../drivers/gpu/drm/drm_dp_helper.c: In function ‘drm_dp_aux_crc_work’:
      ../drivers/gpu/drm/drm_dp_helper.c:1029:13: error: ‘struct drm_crtc’ has no member named ‘crc’
      ../drivers/gpu/drm/drm_dp_helper.c:1031:12: error: ‘struct drm_crtc’ has no member named ‘crc’
        make[4]: *** [drivers/gpu/drm/drm_dp_helper.o] Error 1
        make[4]: *** Waiting for unfinished jobs....
      
      Fixes: 79c1da7c ("drm/dp: add helpers for capture of frame CRCs")
      Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
      Cc: Sean Paul <seanpaul@chromium.org>
      Cc: Daniel Vetter <daniel.vetter@intel.com>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Cc: David Airlie <airlied@linux.ie>
      Cc: dri-devel@lists.freedesktop.org
      Reviewed-by: NEmil Velikov <emil.l.velikov@gmail.com>
      Signed-off-by: NSean Paul <seanpaul@chromium.org>
      47f6cdd2
    • T
      drm/rockchip: Implement CRC debugfs API · 3190e58d
      Tomeu Vizoso 提交于
      Implement the .set_crc_source() callback and call the DP helpers
      accordingly to start and stop CRC capture.
      
      This is only done if this CRTC is currently using the eDP connector.
      
      v3: Remove superfluous check on rockchip_crtc_state->output_type
      
      v6: Remove superfluous variable
      Signed-off-by: NTomeu Vizoso <tomeu.vizoso@collabora.com>
      Acked-by: NMark Yao <mark.yao@rock-chips.com>
      Signed-off-by: NSean Paul <seanpaul@chromium.org>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170303133936.14964-5-tomeu.vizoso@collabora.com
      3190e58d
    • T
      drm/bridge: analogix_dp: add helpers for capture of frame CRCs · 737d6e33
      Tomeu Vizoso 提交于
      Add two simple functions that just take the drm_dp_aux from our struct
      and calls the corresponding DP helpers with it.
      
      v6: Pass to the DP helper the drm_crtc of the current connector (Sean Paul)
      Signed-off-by: NTomeu Vizoso <tomeu.vizoso@collabora.com>
      Signed-off-by: NSean Paul <seanpaul@chromium.org>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170303133936.14964-4-tomeu.vizoso@collabora.com
      737d6e33
    • T
      drm/dp: add helpers for capture of frame CRCs · 79c1da7c
      Tomeu Vizoso 提交于
      Adds helpers for starting and stopping capture of frame CRCs through the
      DPCD. When capture is on, a worker waits for vblanks and retrieves the
      frame CRC to put it in the queue on the CRTC that is using the
      eDP connector, so it's passed to userspace.
      
      v2: Reuse drm_crtc_wait_one_vblank
          Update locking, as drm_crtc_add_crc_entry now takes the lock
      
      v3: Don't call wake_up_interruptible directly, that's now done in
          drm_crtc_add_crc_entry.
      
      v4: Style fixes (Sean Paul)
          Reworked retry of CRC reads (Sean Paul)
          Flush worker after stopping CRC generationa (Sean Paul)
      
      v5: Move back to make the retry explicitly once
      
      v6: Set and use the drm_crtc backpointer (Sean Paul)
      Signed-off-by: NTomeu Vizoso <tomeu.vizoso@collabora.com>
      Signed-off-by: NSean Paul <seanpaul@chromium.org>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170303133936.14964-3-tomeu.vizoso@collabora.com
      79c1da7c
    • T
      drm/dp: add crtc backpointer to drm_dp_aux · 4bb310fd
      Tomeu Vizoso 提交于
      This backpointer allows DP helpers to access the crtc it's currently
      being used for.
      
      v6: Have the backpointer be to drm_crtc (Sean Paul)
      Signed-off-by: NTomeu Vizoso <tomeu.vizoso@collabora.com>
      Signed-off-by: NSean Paul <seanpaul@chromium.org>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170303133936.14964-2-tomeu.vizoso@collabora.com
      4bb310fd
  2. 06 3月, 2017 5 次提交
  3. 05 3月, 2017 5 次提交
  4. 04 3月, 2017 2 次提交
  5. 03 3月, 2017 2 次提交
  6. 02 3月, 2017 18 次提交