1. 24 3月, 2020 10 次提交
  2. 22 3月, 2020 1 次提交
  3. 21 3月, 2020 9 次提交
  4. 20 3月, 2020 4 次提交
    • S
      soundwire: qcom: add support for get_sdw_stream() · 39ec6f99
      Srinivas Kandagatla 提交于
      Adding support to new get_sdw_stream() that can help machine
      driver to deal with soundwire stream.
      Signed-off-by: NSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
      Link: https://lore.kernel.org/r/20200317092645.5705-1-srinivas.kandagatla@linaro.org
      [fix checkpatch error for "void * qcom_swrm_get_sdw_stream"]
      Signed-off-by: NVinod Koul <vkoul@kernel.org>
      39ec6f99
    • S
      soundwire: stream: Add read_only_wordlength flag to port properties · a9107de4
      Srinivas Kandagatla 提交于
      According to SoundWire Specification Version 1.2.
      "A Data Port number X (in the range 0-14) which supports only one
      value of WordLength may implement the WordLength field in the
      DPX_BlockCtrl1 Register as Read-Only, returning the fixed value of
      WordLength in response to reads."
      
      As WSA881x interfaces in PDM mode making the only field "WordLength"
      in DPX_BlockCtrl1" fixed and read-only. Behaviour of writing to this
      register on WSA881x soundwire slave with Qualcomm Soundwire Controller
      is throwing up an error. Not sure how other controllers deal with
      writing to readonly registers, but this patch provides a way to avoid
      writes to DPN_BlockCtrl1 register by providing a read_only_wordlength
      flag in struct sdw_dpn_prop
      Signed-off-by: NSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
      Link: https://lore.kernel.org/r/20200311113545.23773-2-srinivas.kandagatla@linaro.orgSigned-off-by: NVinod Koul <vkoul@kernel.org>
      a9107de4
    • M
      drm/amd/display: Fix pageflip event race condition for DCN. · eb916a5a
      Mario Kleiner 提交于
      Commit '16f17eda ("drm/amd/display: Send vblank and user
      events at vsartup for DCN")' introduces a new way of pageflip
      completion handling for DCN, and some trouble.
      
      The current implementation introduces a race condition, which
      can cause pageflip completion events to be sent out one vblank
      too early, thereby confusing userspace and causing flicker:
      
      prepare_flip_isr():
      
      1. Pageflip programming takes the ddev->event_lock.
      2. Sets acrtc->pflip_status == AMDGPU_FLIP_SUBMITTED
      3. Releases ddev->event_lock.
      
      --> Deadline for surface address regs double-buffering passes on
          target pipe.
      
      4. dc_commit_updates_for_stream() MMIO programs the new pageflip
         into hw, but too late for current vblank.
      
      => pflip_status == AMDGPU_FLIP_SUBMITTED, but flip won't complete
         in current vblank due to missing the double-buffering deadline
         by a tiny bit.
      
      5. VSTARTUP trigger point in vblank is reached, VSTARTUP irq fires,
         dm_dcn_crtc_high_irq() gets called.
      
      6. Detects pflip_status == AMDGPU_FLIP_SUBMITTED and assumes the
         pageflip has been completed/will complete in this vblank and
         sends out pageflip completion event to userspace and resets
         pflip_status = AMDGPU_FLIP_NONE.
      
      => Flip completion event sent out one vblank too early.
      
      This behaviour has been observed during my testing with measurement
      hardware a couple of time.
      
      The commit message says that the extra flip event code was added to
      dm_dcn_crtc_high_irq() to prevent missing to send out pageflip events
      in case the pflip irq doesn't fire, because the "DCH HUBP" component
      is clock gated and doesn't fire pflip irqs in that state. Also that
      this clock gating may happen if no planes are active. This suggests
      that the problem addressed by that commit can't happen if planes
      are active.
      
      The proposed solution is therefore to only execute the extra pflip
      completion code iff the count of active planes is zero and otherwise
      leave pflip completion handling to the pflip irq handler, for a
      more race-free experience.
      
      Note that i don't know if this fixes the problem the original commit
      tried to address, as i don't know what the test scenario was. It
      does fix the observed too early pageflip events though and points
      out the problem introduced.
      
      Fixes: 16f17eda ("drm/amd/display: Send vblank and user events at vsartup for DCN")
      Reviewed-by: NNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
      Signed-off-by: NMario Kleiner <mario.kleiner.de@gmail.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      eb916a5a
    • C
      rtc: max8907: add missing select REGMAP_IRQ · 5d892919
      Corentin Labbe 提交于
      I have hit the following build error:
      
        armv7a-hardfloat-linux-gnueabi-ld: drivers/rtc/rtc-max8907.o: in function `max8907_rtc_probe':
        rtc-max8907.c:(.text+0x400): undefined reference to `regmap_irq_get_virq'
      
      max8907 should select REGMAP_IRQ
      
      Fixes: 94c01ab6 ("rtc: add MAX8907 RTC driver")
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NCorentin Labbe <clabbe@baylibre.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      5d892919
  5. 19 3月, 2020 16 次提交