1. 23 3月, 2017 2 次提交
    • D
      Merge tag 'drm-misc-next-2017-03-21' of git://anongit.freedesktop.org/git/drm-misc into drm-next · edd849e5
      Dave Airlie 提交于
      drm-misc for 4.12, 2nd attempt this week:
      
      - topic branch from Jon Corbet for the new graph kerneldoc support
      - lots of graphs for kms/atomic things using the above
      - some vblank query tuning from Chris
      - gem/cma_fops macros
      - moar docs
      
      Driver stuff:
      - vc4 hdmi audio, yay (Eric)
      - dw-hdmi polish from a bunch of people
      - some rockchip dp updates that didn't make last week (Chris Zhong)
      - misc bridge&driver updates
      
      * tag 'drm-misc-next-2017-03-21' of git://anongit.freedesktop.org/git/drm-misc: (37 commits)
        drm/edid: detect SCDC support in HF-VSDB
        drm/edid: detect SCDC support in HF-VSDB
        drm/edid: check for HF-VSDB block
        drm: Add SCDC helpers
        drm: bridge: dw-hdmi: add HDMI vendor specific infoframe config
        drm/bridge: dw_hdmi: support i2c extended read mode
        drm/msm: add stubs for msm_{perf,rd}_debugfs_cleanup
        drm: bochs: Don't remove uninitialized fbdev framebuffer
        drm: vc4: remove redundant check of plane being non-null
        drm/vc4: use platform_register_drivers
        dma-fence: add dma_fence_match_context helper
        drm/vc4: Add HDMI audio support
        dt-bindings: Document the dmas and dma-names properties for VC4 HDMI
        drm/atmel-hlcdc: Fix suspend/resume implementation
        drm: Skip the waitqueue setup for vblank queries
        drm: Defer disabling the vblank IRQ until the next interrupt (for instant-off)
        drm/doc: atomic overview, with graph
        drm/doc: diagram for mode objects and properties
        drm/doc: Consistent kerneldoc include order
        drm/doc: Add KMS overview graphs
        ...
      edd849e5
    • D
      Merge tag 'drm-intel-next-2017-03-20' of git://anongit.freedesktop.org/git/drm-intel into drm-next · be5df20a
      Dave Airlie 提交于
      More in i915 for 4.12:
      
      - designware i2c fixes from Hans de Goede, in a topic branch shared
        with other subsystems (maybe, they didn't confirm, but requested the
        pull)
      - drop drm_panel usage from the intel dsi vbt panel (Jani)
      - vblank evasion improvements and tracing (Maarten and Ville)
      - clarify spinlock irq semantics again a bit (Tvrtko)
      - new ->pwrite backend hook (right now just for shmem pageche writes),
        from Chris
      - more planar/ccs work from Ville
      - hotplug safe connector iterators everywhere
      - userptr fixes (Chris)
      - selftests for cache coloring eviction (Matthew Auld)
      - extend debugfs drop_caches interface for shrinker testing (Chris)
      - baytrail "the rps kills the machine" fix (Chris)
      - use new atomic state iterators, a lot (Maarten)
      - refactor guc/huc code some (Arkadiusz Hiler)
      - tighten breadcrumbs rbtree a bit (Chris)
      - improve wrap-around and time handling in rps residency counters
        (Mika)
      - split reset-in-progress in two flags, backoff and handoff (Chris)
      - other misc reset improvements from a few people
      - bunch of vgpu interaction fixes with recent code changes
      - misc stuff all over, as usual
      
      * tag 'drm-intel-next-2017-03-20' of git://anongit.freedesktop.org/git/drm-intel: (144 commits)
        drm/i915: Update DRIVER_DATE to 20170320
        drm/i915: Initialise i915_gem_object_create_from_data() directly
        drm/i915: Correct error handling for i915_gem_object_create_from_data()
        drm/i915: i915_gem_object_create_from_data() doesn't require struct_mutex
        drm/i915: Retire an active batch pool object rather than allocate new
        drm/i915: Add i810/i815 pci-ids for completeness
        drm/i915: Skip execlists_dequeue() early if the list is empty
        drm/i915: Stop using obj->obj_exec_link outside of execbuf
        drm/i915: Squelch WARN for VLV_COUNTER_CONTROL
        drm/i915/glk: Enable pooled EUs for Geminilake
        drm/i915: Remove superfluous i915_add_request_no_flush() helper
        drm/i915/vgpu: Neuter forcewakes for VGPU more thoroughly
        drm/i915: Fix vGPU balloon for ggtt guard page
        drm/i915: Avoid use-after-free of ctx in request tracepoints
        drm/i915: Assert that the context pin_counts do not overflow
        drm/i915: Wait for reset to complete before returning from debugfs/i915_wedged
        drm/i915: Restore engine->submit_request before unwedging
        drm/i915: Move engine->submit_request selection to a vfunc
        drm/i915: Split I915_RESET_IN_PROGRESS into two flags
        drm/i915: make context status notifier head be per engine
        ...
      be5df20a
  2. 21 3月, 2017 6 次提交
  3. 20 3月, 2017 4 次提交
    • A
      drm/msm: add stubs for msm_{perf,rd}_debugfs_cleanup · 3a270e4d
      Arnd Bergmann 提交于
      We now call those two functions even when they are not defined
      or declared anywhere because DEBUG_FS is disabled:
      
      drivers/gpu/drm/msm/msm_drv.c: In function 'msm_drm_uninit':
      drivers/gpu/drm/msm/msm_drv.c:244:2: error: implicit declaration of function 'msm_perf_debugfs_cleanup';did you mean 'msm_framebuffer_cleanup'? [-Werror=implicit-function-declaration]
      drivers/gpu/drm/msm/msm_drv.c:245:2: error: implicit declaration of function 'msm_rd_debugfs_cleanup';did you mean 'msm_framebuffer_cleanup'? [-Werror=implicit-function-declaration]
      
      This adds empty stub implementations for that case.
      
      Fixes: 85eac470 ("drm/msm: Remove msm_debugfs_cleanup()")
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170320093936.1255573-1-arnd@arndb.de
      3a270e4d
    • G
      drm: bochs: Don't remove uninitialized fbdev framebuffer · 4fa13dbe
      Gabriel Krisman Bertazi 提交于
      In the same spirit of the fix for QXL in commit 86107838 ("drm: qxl:
      Don't alloc fbdev if emulation is not supported"), prevent the Oops in
      the unbind path of Bochs if fbdev emulation is disabled.
      
      [  112.176009] Oops: 0002 [#1] SMP
      [  112.176009] Modules linked in: bochs_drm
      [  112.176009] CPU: 0 PID: 3002 Comm: bash Not tainted 4.11.0-rc1+ #111
      [  112.176009] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.9.3-20161025_171302-gandalf 04/01/2014
      [  112.176009] task: ffff8800743bbac0 task.stack: ffffc90000b5c000
      [  112.176009] RIP: 0010:mutex_lock+0x18/0x30
      [  112.176009] RSP: 0018:ffffc90000b5fc78 EFLAGS: 00010246
      [  112.176009] RAX: 0000000000000000 RBX: 0000000000000260 RCX: 0000000000000000
      [  112.176009] RDX: ffff8800743bbac0 RSI: ffff8800787176e0 RDI: 0000000000000260
      [  112.176009] RBP: ffffc90000b5fc80 R08: ffffffff00000000 R09: 00000000ffffffff
      [  112.176009] R10: ffff88007b463650 R11: 0000000000000000 R12: 0000000000000260
      [  112.176009] R13: ffff8800787176e0 R14: ffffffffa0003068 R15: 0000000000000060
      [  112.176009] FS:  00007f20564c7b40(0000) GS:ffff88007ce00000(0000) knlGS:0000000000000000
      [  112.176009] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  112.176009] CR2: 0000000000000260 CR3: 000000006b89c000 CR4: 00000000000006f0
      [  112.176009] Call Trace:
      [  112.176009]  drm_mode_object_unregister+0x1e/0x50
      [  112.176009]  drm_framebuffer_unregister_private+0x15/0x20
      [  112.176009]  bochs_fbdev_fini+0x57/0x70 [bochs_drm]
      [  112.176009]  bochs_unload+0x16/0x50 [bochs_drm]
      [  112.176009]  drm_dev_unregister+0x37/0xd0
      [  112.176009]  drm_put_dev+0x31/0x60
      [  112.176009]  bochs_pci_remove+0x10/0x20 [bochs_drm]
      [  112.176009]  pci_device_remove+0x34/0xb0
      [  112.176009]  device_release_driver_internal+0x150/0x200
      [  112.176009]  device_release_driver+0xd/0x10
      [  112.176009]  unbind_store+0x108/0x150
      [  112.176009]  drv_attr_store+0x20/0x30
      [  112.176009]  sysfs_kf_write+0x32/0x40
      [  112.176009]  kernfs_fop_write+0x10b/0x190
      [  112.176009]  __vfs_write+0x23/0x120
      [  112.176009]  ? security_file_permission+0x36/0xb0
      [  112.176009]  ? rw_verify_area+0x49/0xb0
      [  112.176009]  vfs_write+0xb0/0x190
      [  112.176009]  SyS_write+0x41/0xa0
      [  112.176009]  entry_SYSCALL_64_fastpath+0x1a/0xa9
      [  112.176009] RIP: 0033:0x7f2055bd5620
      [  112.176009] RSP: 002b:00007ffed2f487d8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
      [  112.176009] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f2055bd5620
      [  112.176009] RDX: 000000000000000d RSI: 0000000000ee0008 RDI: 0000000000000001
      [  112.176009] RBP: 0000000000000001 R08: 00007f2055e94760 R09: 00007f20564c7b40
      [  112.176009] R10: 0000000000000073 R11: 0000000000000246 R12: 0000000000000000
      [  112.176009] R13: 00007ffed2f48d70 R14: 0000000000000000 R15: 0000000000000000
      [  112.176009] Code: 00 00 00 55 be 02 00 00 00 48 89 e5 e8 62 fb ff ff 5d c3 55 48 89 e5 53 48 89 fb e8 53 e9 ff ff 65 48 8b 14 25 40 c4 00 00 31 c0 <f0> 48 0f b1 13 48 85 c0 74 08 48 89 df e8c6 ff ff ff 5b 5d c3
      [  112.176009] RIP: mutex_lock+0x18/0x30 RSP: ffffc90000b5fc78
      [  112.176009] CR2: 0000000000000260
      [  112.205622] ---[ end trace 76189cd7a9bdd155 ]---
      Signed-off-by: NGabriel Krisman Bertazi <krisman@collabora.co.uk>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170317181409.4183-1-krisman@collabora.co.ukSigned-off-by: NGerd Hoffmann <kraxel@redhat.com>
      4fa13dbe
    • D
      drm/i915: Update DRIVER_DATE to 20170320 · c5bd2e14
      Daniel Vetter 提交于
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      c5bd2e14
    • D
      Merge tag 'imx-drm-next-2017-03-17' of git://git.pengutronix.de/git/pza/linux into drm-next · 33d5f513
      Dave Airlie 提交于
      imx-drm PRE/PRG support, deferred plane disabling, separate alpha support
      
      - Initial support for the Prefetch Resolve Engine/Gasket on i.MX6QP,
        improving linear scanout buffer memory bandwidth utilization. This
        will in the future grow reordering support and allow direct scanout
        of Vivante tiled renderbuffers from the GPU.
      - Deferred plane disabling gets rid of some busy waiting in the atomic
        plane disable and crtc disable paths that lead to wait_for_vblank
        timeouts.
      - Add support for RGBA formats with a separate alpha plane, that can
        reduce memory bandwidth utilization for mostly transparent overlay
        planes by skipping color reads for completely transparent regions.
      - Allow moving an active overlay plane without enforcing a modeset.
      - Add 8-bit and 16-bit bayer formats to ipu_cpmem_set_image.
      - Set the base address in ipu_cpmem_set_image even for invalid formats
        to increase robustness against errors.
      - Use drm_plane_helper_check_state in plane atomic_check.
      - Some cleanup.
      
      * tag 'imx-drm-next-2017-03-17' of git://git.pengutronix.de/git/pza/linux: (22 commits)
        drm/imx: Remove unneeded definition for structure imx_drm_component
        drm/imx: use PRG/PRE when possible
        drm/imx: enable/disable PRG on CRTC enable/disable
        gpu: ipu-v3: only set non-zero AXI ID for IC when PRG is absent
        gpu: ipu-v3: hook up PRG unit
        gpu: ipu-v3: document valid IPUv3 compatibles and extend for i.MX6 QuadPlus
        gpu: ipu-v3: add driver for Prefetch Resolve Gasket
        gpu: ipu-v3: add DT binding for the Prefetch Resolve Gasket
        gpu: ipu-v3: add driver for Prefetch Resolve Engine
        gpu: ipu-v3: add DT binding for the Prefetch Resolve Engine
        drm/imx: ipuv3-plane: add support for separate alpha planes
        drm/imx: extend drm_plane_state_to_eba for separate channel support
        gpu: ipu-v3: add support for separate alpha channels
        drm: add RGB formats with separate alpha plane
        drm/imx: add deferred plane disabling
        drm/imx: don't wait for vblank and stop calling cleanup_planes in commit_tail
        gpu: ipu-v3: add unsynchronised DP channel disabling
        gpu: ipu-v3: remove IRQ dance on DC channel disable
        gpu: ipu-cpmem: add bayer formats to ipu_cpmem_set_image
        gpu: ipu-cpmem: set image base address even for incorrect formats
        ...
      33d5f513
  4. 18 3月, 2017 8 次提交
  5. 17 3月, 2017 18 次提交
  6. 16 3月, 2017 2 次提交
    • C
      drm/i915/scheduler: emulate a scheduler for guc · 31de7350
      Chris Wilson 提交于
      This emulates execlists on top of the GuC in order to defer submission of
      requests to the hardware. This deferral allows time for high priority
      requests to gazump their way to the head of the queue, however it nerfs
      the GuC by converting it back into a simple execlist (where the CPU has
      to wake up after every request to feed new commands into the GuC).
      
      v2: Drop hack status - though iirc there is still a lockdep inversion
      between fence and engine->timeline->lock (which is impossible as the
      nesting only occurs on different fences - hopefully just requires some
      judicious lockdep annotation)
      v3: Apply lockdep nesting to enabling signaling on the request, using
      the pattern we already have in __i915_gem_request_submit();
      v4: Replaying requests after a hang also now needs the timeline
      spinlock, to disable the interrupts at least
      v5: Hold wq lock for completeness, and emit a tracepoint for enabling signal
      v6: Reorder interrupt checking for a happier gcc.
      v7: Only signal the tasklet after a user-interrupt if using guc scheduling
      v8: Restore lost update of rq through the i915_guc_irq_handler (Tvrtko)
      v9: Avoid re-initialising the engine->irq_tasklet from inside a reset
      v10: Hook up the execlists-style tracepoints
      v11: Clear the execlists irq_posted bit after taking over the interrupt/tasklet
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
      Reviewed-by: NTvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
      Reviewed-by: NJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170316125619.6856-1-chris@chris-wilson.co.ukReviewed-by: NMichał Winiarski <michal.winiarski@intel.com>
      31de7350
    • C
      drm/i915: Replace irq_seqno_barrier on hws write with a clflush · 14a6bbf9
      Chris Wilson 提交于
      When manually overwriting the HWS, rather than assume irq_seqno_barrier
      does the right thing, we can explicitly flush the cacheline instead.
      This avoids us calling the engine->irq_seqno_barrier() from an illegal
      context:
      
      [ 1472.651797] BUG: scheduling while atomic: migration/0/11/0x00000002
      [ 1472.651807] Modules linked in: ctr ccm arc4 snd_hda_codec_hdmi bnep rfcomm iwldvm snd_hda_codec_conexant snd_hda_codec_generic snd_hda_intel mac80211 snd_hda_codec snd_hda_core snd_pcm dm_multipath snd_hwdep intel_powerclamp coretemp snd_seq_midi crct10dif_pclmul snd_seq_midi_event crc32_pclmul iwlwifi ghash_clmulni_intel btusb snd_rawmidi btrtl aesni_intel btbcm aes_x86_64 crypto_simd btintel cryptd glue_helper bluetooth snd_seq cfg80211 snd_timer snd_seq_device intel_ips binfmt_misc snd mei_me soundcore mei dm_mirror dm_region_hash dm_log i915 intel_gtt i2c_algo_bit drm_kms_helper cfbfillrect syscopyarea cfbimgblt sysfillrect sysimgblt fb_sys_fops cfbcopyarea prime_numbers e1000e drm ahci libahci
      [ 1472.651897] CPU: 0 PID: 11 Comm: migration/0 Tainted: G     U          4.11.0-rc1+ #203
      [ 1472.651899] Hardware name: LENOVO 514328U/514328U, BIOS 6QET44WW (1.14 ) 04/20/2010
      [ 1472.651900] Call Trace:
      [ 1472.651913]  dump_stack+0x63/0x90
      [ 1472.651922]  __schedule_bug+0x5d/0x6b
      [ 1472.651930]  __schedule+0x46a/0x5f0
      [ 1472.651934]  schedule+0x38/0x90
      [ 1472.651938]  schedule_hrtimeout_range_clock+0x85/0x110
      [ 1472.651945]  ? hrtimer_init+0x10/0x10
      [ 1472.651949]  schedule_hrtimeout_range+0xe/0x10
      [ 1472.651952]  usleep_range+0x4d/0x60
      [ 1472.652037]  gen5_seqno_barrier+0x13/0x20 [i915]
      [ 1472.652101]  intel_engine_init_global_seqno+0xd7/0x160 [i915]
      [ 1472.652160]  __i915_gem_set_wedged_BKL+0xa0/0x180 [i915]
      [ 1472.652166]  multi_cpu_stop+0xbb/0xe0
      [ 1472.652170]  ? cpu_stop_queue_work+0x90/0x90
      [ 1472.652174]  cpu_stopper_thread+0x82/0x110
      [ 1472.652179]  smpboot_thread_fn+0x137/0x190
      [ 1472.652184]  kthread+0xf7/0x130
      [ 1472.652187]  ? sort_range+0x20/0x20
      [ 1472.652191]  ? kthread_park+0x90/0x90
      [ 1472.652195]  ret_from_fork+0x2c/0x40
      
      Testcase: igt/gem_eio #ilk
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170314111452.9375-1-chris@chris-wilson.co.ukReviewed-by: NMika Kuoppala <mika.kuoppala@intel.com>
      14a6bbf9