1. Jun 22, 2018
    • Dave Airlie's avatar
      Merge tag 'drm-misc-next-2018-06-21' of git://anongit.freedesktop.org/drm/drm-misc into drm-next · f4366e44
      Dave Airlie authored
      
      
      drm-misc-next for 4.19:
      
      UAPI Changes:
      - Add writeback connector (Brian Starkey/Liviu Dudau)
      - Add "content type" property to HDMI connectors (Stanislav Lisovskiy)
      
      Cross-subsystem Changes:
      - some devicetree Docs update
      - fix compile breakage on ION due to the dma-buf cleanups (Christian König)
      
      Core Changes:
      - Reject over-sized allocation requests early (Chris Wilson)
      - gem-fb-helper: Always do implicit sync (Daniel Vetter)
      - dma-buf cleanups (Christian König)
      
      Driver Changes:
      - Fixes for the otm8009a panel driver (Philippe Cornu)
      - Add Innolux TV123WAM panel driver support (Sandeep Panda)
      - Move GEM BO to drm_framebuffer in few drivers (Daniel Stone)
      - i915 pinning improvements (Chris Wilson)
      - Stop consulting plane->fb/crtc in a few drivers (Ville Syrjälä)
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      Link: https://patchwork.freedesktop.org/patch/msgid/20180621105428.GA20795@juma
      f4366e44
    • Dave Airlie's avatar
      Merge tag 'drm-intel-next-2018-06-06' of git://anongit.freedesktop.org/drm/drm-intel into drm-next · 3069290d
      Dave Airlie authored
      
      
      - Ice Lake's display enabling patches (Jose, Mahesh, Dhinakaran, Paulo, Manasi, Anusha, Arkadiusz)
      - Ice Lake's workarounds (Oscar and Yunwei)
      - Ice Lake interrupt registers fixes (Oscar)
      - Context switch timeline fixes and improvements (Chris)
      - Spelling fixes (Colin)
      - GPU reset fixes and improvements (Chris)
        - Including fixes on execlist and preemption for a proper GPU reset (Chris)
      - Clean-up the port pipe select bits (Ville)
      - Other execlist improvements (Chris)
      - Remove unused enable_cmd_parser parameter (Chris)
      - Fix order of enabling pipe/transcoder/planes on HSW+ to avoid hang on ICL (Paulo)
      - Simplification and changes on intel_context (Chris)
      - Disable LVDS on Radiant P845 (Ondrej)
      - Improve HSW/BDW voltage swing handling (Ville)
      - Cleanup and renames on few parts of intel_dp code to make code clear and less confusing (Ville)
      - Move acpi lid notification code for fixing LVDS (Chris)
      - Speed up GPU idle detection (Chris)
      - Make intel_engine_dump irqsafe (Chris)
      - Fix GVT crash (Zhenyu)
      - Move GEM BO inside drm_framebuffer and use intel_fb_obj everywhere (Chris)
      - Revert edp's alternate fixed mode (Jani)
      - Protect tainted function pointer lookup (Chris)
        - And subsequent unsigned long size fix (Chris)
      - Allow page directory allocation to fail (Chris)
      - VBT's edp and lvds fix and clean-up (Ville)
      - Many other reorganizations and cleanups on DDI and DP code, as well on scaler and planes (Ville)
      - Selftest pin the mock kernel context (Chris)
      - Many PSR Fixes, clean-up and improvements (Dhinakaran)
      - PSR VBT fix (Vathsala)
      - Fix i915_scheduler and intel_context declaration (Tvrtko)
      - Improve PCH underruns detection on ILK-IVB (Ville)
      - Few s/drm_priv/i915 (Chris, Michal)
      - Notify opregion of the sanitized encoder state (Maarten)
      - Guc's event handling improvements and fixes on initialization failures (Michal)
      - Many gtt fixes and improvements (Chris)
      - Fixes and improvements for Suspend and Freeze safely (Chris)
      - i915_gem init and fini cleanup and fixes (Michal)
      - Remove obsolete switch_mm for gen8+ (Chris)
      - hw and context id fixes for GuC (Lionel)
      - Add new vGPU cap info bit VGT_CAPS_HUGE_GTT (Changbin)
      - Make context pin/unpin symmetric (Chris)
      - vma: Move the bind_count vs pin_count assertion to a helper (Chris)
      - Use available SZ_1M instead of 1 << 20 (Chris)
      - Trace and PMU fixes and improvements (Tvrtko)
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180611162737.GA2378@intel.com
      3069290d
  2. Jun 21, 2018
  3. Jun 20, 2018
    • Liviu Dudau's avatar
      drm: writeback: Add client capability for exposing writeback connectors · d67b6a20
      Liviu Dudau authored
      
      
      Due to the fact that writeback connectors behave in a special way
      in DRM (they always report being disconnected) we might confuse some
      userspace. Add a client capability for writeback connectors that will
      filter them out for clients that don't understand the capability.
      
      Changelog:
       - only accept the capability if the client has already set the
      DRM_CLIENT_CAP_ATOMIC one.
      
      Cc: Sean Paul <seanpaul@chromium.org>
      Cc: Brian Starkey <brian.starkey@arm.com>
      Signed-off-by: default avatarLiviu Dudau <liviu.dudau@arm.com>
      Reviewed-by: default avatarEric Anholt <eric@anholt.net>
      Reviewed-by: default avatarBrian Starkey <brian.starkey@arm.com>
      Link: https://patchwork.freedesktop.org/patch/229038/
      d67b6a20
    • Brian Starkey's avatar
      drm: writeback: Add out-fences for writeback connectors · b13cc8dd
      Brian Starkey authored
      Add the WRITEBACK_OUT_FENCE_PTR property to writeback connectors, to
      enable userspace to get a fence which will signal once the writeback is
      complete. It is not allowed to request an out-fence without a
      framebuffer attached to the connector.
      
      A timeline is added to drm_writeback_connector for use by the writeback
      out-fences.
      
      In the case of a commit failure or DRM_MODE_ATOMIC_TEST_ONLY, the fence
      is set to -1.
      
      Changes from v2:
       - Rebase onto Gustavo Padovan's v9 explicit sync series
       - Change out_fence_ptr type to s32 __user *
       - Set *out_fence_ptr to -1 in drm_atomic_connector_set_property
       - Store fence in drm_writeback_job
       Gustavo Padovan:
       - Move out_fence_ptr out of connector_state
       - Signal fence from drm_writeback_signal_completion instead of
         in driver directly
      
      Changes from v3:
       - Rebase onto commit 7e9081c5
      
       ("drm/fence: fix memory overwrite
         when setting out_fence fd") (change out_fence_ptr to s32 __user *,
         for real this time.)
       - Update documentation around WRITEBACK_OUT_FENCE_PTR
      
      Signed-off-by: default avatarBrian Starkey <brian.starkey@arm.com>
      [rebased and fixed conflicts]
      Signed-off-by: default avatarMihail Atanassov <mihail.atanassov@arm.com>
      Signed-off-by: default avatarLiviu Dudau <liviu.dudau@arm.com>
      Reviewed-by: default avatarEric Anholt <eric@anholt.net>
      Reviewed-by: default avatarSean Paul <seanpaul@chromium.org>
      Link: https://patchwork.freedesktop.org/patch/229036/
      b13cc8dd
    • Brian Starkey's avatar
      drm: Add writeback connector type · 935774cd
      Brian Starkey authored
      
      
      Writeback connectors represent writeback engines which can write the
      CRTC output to a memory framebuffer. Add a writeback connector type and
      related support functions.
      
      Drivers should initialize a writeback connector with
      drm_writeback_connector_init() which takes care of setting up all the
      writeback-specific details on top of the normal functionality of
      drm_connector_init().
      
      Writeback connectors have a WRITEBACK_FB_ID property, used to set the
      output framebuffer, and a WRITEBACK_PIXEL_FORMATS blob used to expose the
      supported writeback formats to userspace.
      
      When a framebuffer is attached to a writeback connector with the
      WRITEBACK_FB_ID property, it is used only once (for the commit in which
      it was included), and userspace can never read back the value of
      WRITEBACK_FB_ID. WRITEBACK_FB_ID can only be set if the connector is
      attached to a CRTC.
      
      Changes since v1:
       - Added drm_writeback.c + documentation
       - Added helper to initialize writeback connector in one go
       - Added core checks
       - Squashed into a single commit
       - Dropped the client cap
       - Writeback framebuffers are no longer persistent
      
      Changes since v2:
       Daniel Vetter:
       - Subclass drm_connector to drm_writeback_connector
       - Relax check to allow CRTC to be set without an FB
       - Add some writeback_ prefixes
       - Drop PIXEL_FORMATS_SIZE property, as it was unnecessary
       Gustavo Padovan:
       - Add drm_writeback_job to handle writeback signalling centrally
      
      Changes since v3:
       - Rebased
       - Rename PIXEL_FORMATS -> WRITEBACK_PIXEL_FORMATS
      
      Chances since v4:
       - Embed a drm_encoder inside the drm_writeback_connector to
         reduce the amount of boilerplate code required from the drivers
         that are using it.
      
      Changes since v5:
       - Added Rob Clark's atomic_commit() vfunc to connector helper
         funcs, so that writeback jobs are committed from atomic helpers
       - Updated create_writeback_properties() signature to return an
         error code rather than a boolean false for failure.
       - Free writeback job with the connector state rather than when
         doing the cleanup_work()
      
      Changes since v7:
       - fix extraneous use of out_fence that is only introduced in a
         subsequent patch.
      
      Changes since v8:
       - whitespace changes pull from subsequent patch
      
      Changes since v9:
       - Revert the v6 changes that free the writeback job in the connector
         state cleanup and return to doing it in the cleanup_work() function
      
      Signed-off-by: default avatarBrian Starkey <brian.starkey@arm.com>
      [rebased and fixed conflicts]
      Signed-off-by: default avatarMihail Atanassov <mihail.atanassov@arm.com>
      [rebased and added atomic_commit() vfunc for writeback jobs]
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      Signed-off-by: default avatarLiviu Dudau <liviu.dudau@arm.com>
      Reviewed-by: default avatarEric Anholt <eric@anholt.net>
      Link: https://patchwork.freedesktop.org/patch/229037/
      935774cd
    • Christian König's avatar
      dma-buf: remove kmap_atomic interface · f664a526
      Christian König authored
      
      
      Neither used nor correctly implemented anywhere. Just completely remove
      the interface.
      
      Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Acked-by: default avatarSumit Semwal <sumit.semwal@linaro.org>
      Link: https://patchwork.freedesktop.org/patch/226645/
      f664a526
    • Christian König's avatar
      dma_buf: remove device parameter from attach callback v2 · a19741e5
      Christian König authored
      
      
      The device parameter is completely unused because it is available in the
      attachment structure as well.
      
      v2: fix kerneldoc as well
      
      Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/226643/
      a19741e5
    • Daniel Vetter's avatar
    • Daniel Vetter's avatar
      drm/gem-fb-helper: Always do implicit sync · 9d54fcd5
      Daniel Vetter authored
      I've done a lot of history digging. The first signs of this
      optimization was introduced in i915:
      
      commit 25067bfc
      Author: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
      Date:   Wed Sep 10 12:03:17 2014 -0300
      
          drm/i915: pin sprite fb only if it changed
      
      without much justification. Pinning already pinned stuff is real cheap
      (it's just obj->pin_count++ really), and the missing implicit sync was
      entirely forgotten about it seems. It's at least not mentioned
      anywhere it the commit message.
      
      It was also promptly removed shortly afterwards in
      
      commit ea2c67bb
      Author: Matt Roper <matthew.d.roper@intel.com>
      Date:   Tue Dec 23 10:41:52 2014 -0800
      
          drm/i915: Move to atomic plane helpers (v9)
      
      again without really mentioning the side-effect that plane updates
      with the same fb now again obey implicit syncing.
      
      Note that this only ever applied to the plane_update hook, all other
      legacy entry points (set_base, page_flip) always obeyed implicit sync
      in the drm/i915 driver.
      
      The real source of this code here seems to be msm, copied to vc4, then
      copied to tinydrm. I've also tried to dig around in all available msm
      sources, but the corresponding check for fb != old_fb is present ever
      since the initial merge in
      
      commit cf3a7e4c
      
      
      Author: Rob Clark <robdclark@gmail.com>
      Date:   Sat Nov 8 13:21:06 2014 -0500
      
          drm/msm: atomic core bits
      
      The only older version I've found of msm atomic code predates the
      atomic helpers, and so didn't even use any of this. It also does not
      have a corresponding check (because it simply did no implicit sync at
      all).
      
      I've chatted with Rob on irc, and he didn't remember the reason for
      this either.
      
      Note we had epic amounts of fun with too much syncing against
      _vblank_, especially around cursor updates. But I don't ever
      discussing a need for less syncing against implicit fences.
      
      Also note that explicit fencing allows you to sidetrack all of this,
      at least for all the drivers correctly implemented using
      drm_atomic_set_fence_for_plane().
      
      Given that it seems to be an accident of history, and that big drivers
      like i915 (and also nouveau it seems, I didn't follow the
      amdgpu/radeon sync code to figure this out properly there) never have
      done it, let's remove this.
      
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Matt Roper <matthew.d.roper@intel.com>
      Cc: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: Sean Paul <seanpaul@chromium.org>
      Cc: David Airlie <airlied@linux.ie>
      Cc: "Noralf Trønnes" <noralf@tronnes.org>
      Reviewed-by: default avatarEric Anholt <eric@anholt.net>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180405154449.23038-8-daniel.vetter@ffwll.ch
      9d54fcd5
  4. Jun 18, 2018
  5. Jun 17, 2018
    • Linus Torvalds's avatar
      Linux 4.18-rc1 · ce397d21
      Linus Torvalds authored
      ce397d21
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20180616' of git://git.kernel.dk/linux-block · 265c5596
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "A collection of fixes that should go into -rc1. This contains:
      
         - bsg_open vs bsg_unregister race fix (Anatoliy)
      
         - NVMe pull request from Christoph, with fixes for regressions in
           this window, FC connect/reconnect path code unification, and a
           trace point addition.
      
         - timeout fix (Christoph)
      
         - remove a few unused functions (Christoph)
      
         - blk-mq tag_set reinit fix (Roman)"
      
      * tag 'for-linus-20180616' of git://git.kernel.dk/linux-block:
        bsg: fix race of bsg_open and bsg_unregister
        block: remov blk_queue_invalidate_tags
        nvme-fabrics: fix and refine state checks in __nvmf_check_ready
        nvme-fabrics: handle the admin-only case properly in nvmf_check_ready
        nvme-fabrics: refactor queue ready check
        blk-mq: remove blk_mq_tagset_iter
        nvme: remove nvme_reinit_tagset
        nvme-fc: fix nulling of queue data on reconnect
        nvme-fc: remove reinit_request routine
        blk-mq: don't time out requests again that are in the timeout handler
        nvme-fc: change controllers first connect to use reconnect path
        nvme: don't rely on the changed namespace list log
        nvmet: free smart-log buffer after use
        nvme-rdma: fix error flow during mapping request data
        nvme: add bio remapping tracepoint
        nvme: fix NULL pointer dereference in nvme_init_subsystem
        blk-mq: reinit q->tag_set_list entry only after grace period
      265c5596
    • Linus Torvalds's avatar
      Merge tag 'docs-broken-links' of git://linuxtv.org/mchehab/experimental · 5e7b9212
      Linus Torvalds authored
      Pull documentation fixes from Mauro Carvalho Chehab:
       "This solves a series of broken links for files under Documentation,
        and improves a script meant to detect such broken links (see
        scripts/documentation-file-ref-check).
      
        The changes on this series are:
      
         - can.rst: fix a footnote reference;
      
         - crypto_engine.rst: Fix two parsing warnings;
      
         - Fix a lot of broken references to Documentation/*;
      
         - improve the scripts/documentation-file-ref-check script, in order
           to help detecting/fixing broken references, preventing
           false-positives.
      
        After this patch series, only 33 broken references to doc files are
        detected by scripts/documentation-file-ref-check"
      
      * tag 'docs-broken-links' of git://linuxtv.org/mchehab/experimental: (26 commits)
        fix a series of Documentation/ broken file name references
        Documentation: rstFlatTable.py: fix a broken reference
        ABI: sysfs-devices-system-cpu: remove a broken reference
        devicetree: fix a series of wrong file references
        devicetree: fix name of pinctrl-bindings.txt
        devicetree: fix some bindings file names
        MAINTAINERS: fix location of DT npcm files
        MAINTAINERS: fix location of some display DT bindings
        kernel-parameters.txt: fix pointers to sound parameters
        bindings: nvmem/zii: Fix location of nvmem.txt
        docs: Fix more broken references
        scripts/documentation-file-ref-check: check tools/*/Documentation
        scripts/documentation-file-ref-check: get rid of false-positives
        scripts/documentation-file-ref-check: hint: dash or underline
        scripts/documentation-file-ref-check: add a fix logic for DT
        scripts/documentation-file-ref-check: accept more wildcards at filenames
        scripts/documentation-file-ref-check: fix help message
        media: max2175: fix location of driver's companion documentation
        media: v4l: fix broken video4linux docs locations
        media: dvb: point to the location of the old README.dvb-usb file
        ...
      5e7b9212
    • Linus Torvalds's avatar
      Merge tag 'fsnotify_for_v4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · dbb2816f
      Linus Torvalds authored
      Pull fsnotify updates from Jan Kara:
       "fsnotify cleanups unifying handling of different watch types.
      
        This is the shortened fsnotify series from Amir with the last five
        patches pulled out. Amir has modified those patches to not change
        struct inode but obviously it's too late for those to go into this
        merge window"
      
      * tag 'fsnotify_for_v4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        fsnotify: add fsnotify_add_inode_mark() wrappers
        fanotify: generalize fanotify_should_send_event()
        fsnotify: generalize send_to_group()
        fsnotify: generalize iteration of marks by object type
        fsnotify: introduce marks iteration helpers
        fsnotify: remove redundant arguments to handle_event()
        fsnotify: use type id to identify connector object type
      dbb2816f
    • Linus Torvalds's avatar
      Merge tag 'fbdev-v4.18' of git://github.com/bzolnier/linux · 644f2639
      Linus Torvalds authored
      Pull fbdev updates from Bartlomiej Zolnierkiewicz:
       "There is nothing really major here, few small fixes, some cleanups and
        dead drivers removal:
      
         - mark omapfb drivers as orphans in MAINTAINERS file (Tomi Valkeinen)
      
         - add missing module license tags to omap/omapfb driver (Arnd
           Bergmann)
      
         - add missing GPIOLIB dependendy to omap2/omapfb driver (Arnd
           Bergmann)
      
         - convert savagefb, aty128fb & radeonfb drivers to use msleep & co.
           (Jia-Ju Bai)
      
         - allow COMPILE_TEST build for viafb driver (media part was reviewed
           by media subsystem Maintainer)
      
         - remove unused MERAM support from sh_mobile_lcdcfb and shmob-drm
           drivers (drm parts were acked by shmob-drm driver Maintainer)
      
         - remove unused auo_k190xfb drivers
      
         - misc cleanups (Souptick Joarder, Wolfram Sang, Markus Elfring, Andy
           Shevchenko, Colin Ian King)"
      
      * tag 'fbdev-v4.18' of git://github.com/bzolnier/linux: (26 commits)
        fb_omap2: add gpiolib dependency
        video/omap: add module license tags
        MAINTAINERS: make omapfb orphan
        video: fbdev: pxafb: match_string() conversion fixup
        video: fbdev: nvidia: fix spelling mistake: "scaleing" -> "scaling"
        video: fbdev: fix spelling mistake: "frambuffer" -> "framebuffer"
        video: fbdev: pxafb: Convert to use match_string() helper
        video: fbdev: via: allow COMPILE_TEST build
        video: fbdev: remove unused sh_mobile_meram driver
        drm: shmobile: remove unused MERAM support
        video: fbdev: sh_mobile_lcdcfb: remove unused MERAM support
        video: fbdev: remove unused auo_k190xfb drivers
        video: omap: Improve a size determination in omapfb_do_probe()
        video: sm501fb: Improve a size determination in sm501fb_probe()
        video: fbdev-MMP: Improve a size determination in path_init()
        video: fbdev-MMP: Delete an error message for a failed memory allocation in two functions
        video: auo_k190x: Delete an error message for a failed memory allocation in auok190x_common_probe()
        video: sh_mobile_lcdcfb: Delete an error message for a failed memory allocation in two functions
        video: sh_mobile_meram: Delete an error message for a failed memory allocation in sh_mobile_meram_probe()
        video: fbdev: sh_mobile_meram: Drop SUPERH platform dependency
        ...
      644f2639
  6. Jun 16, 2018