1. 28 10月, 2017 1 次提交
    • R
      drm/msm/adreno: load gpu at probe/bind time · eec874ce
      Rob Clark 提交于
      Previously, in an effort to defer initializing the gpu until firmware
      was available (ie. rootfs mounted), the gpu was not loaded at when the
      subdevice was bound.  Which resulted that clks/etc were requested in a
      place that devm couldn't really help unwind if something failed.
      
      Instead move request_firmware() to gpu->hw_init() and construct the gpu
      earlier in adreno_bind().  To avoid the rest of the driver needing to
      be aware of a gpu that hasn't managed to load firmware and hw_init()
      yet, stash the gpu ptr in the adreno device's drvdata, and don't set
      priv->gpu() until hw_init() succeeds.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      eec874ce
  2. 23 8月, 2017 1 次提交
  3. 17 8月, 2017 1 次提交
  4. 02 8月, 2017 1 次提交
    • A
      drm/msm/mdp5: Set up runtime PM for MDSS · 774e39ee
      Archit Taneja 提交于
      MDSS represents the top level wrapper that contains MDP5, DSI, HDMI and
      other sub-blocks. W.r.t device heirarchy, it's the parent of all these
      devices. The power domain of this device is actually tied to the GDSC
      hw. When any sub-device enables its PD, MDSS's PD is also enabled.
      
      The suspend/resume ops enable the top level clocks that end at the MDSS
      boundary. For now, we're letting them all be optional, since the child
      devices anyway hold a ref to these clocks.
      
      Until now, we'd called a runtime_get() during probe, which ensured that
      the GDSC was always on. Now that we've set up runtime PM for the children
      devices, we can get rid of this hack.
      
      Note: that the MDSS device is the platform_device in msm_drv.c. The
      msm_runtime_suspend/resume ops call the funcs that enable/disable
      the top level MDSS clocks. This is different from MDP4, where the
      platform device created in msm_drv.c represents MDP4 itself. It would
      have been nicer to hide these differences by adding new kms funcs, but
      runtime PM needs to be enabled before kms is set up (i.e, msm_kms_init
      is called).
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      774e39ee
  5. 17 6月, 2017 1 次提交
  6. 16 6月, 2017 4 次提交
  7. 28 5月, 2017 1 次提交
  8. 08 4月, 2017 3 次提交
  9. 08 3月, 2017 1 次提交
  10. 01 3月, 2017 1 次提交
  11. 17 2月, 2017 1 次提交
  12. 08 2月, 2017 1 次提交
  13. 07 2月, 2017 2 次提交
  14. 28 11月, 2016 4 次提交
  15. 09 11月, 2016 1 次提交
  16. 04 11月, 2016 1 次提交
  17. 02 11月, 2016 1 次提交
  18. 25 10月, 2016 1 次提交
  19. 22 9月, 2016 1 次提交
  20. 21 9月, 2016 1 次提交
  21. 04 8月, 2016 1 次提交
    • K
      dma-mapping: use unsigned long for dma_attrs · 00085f1e
      Krzysztof Kozlowski 提交于
      The dma-mapping core and the implementations do not change the DMA
      attributes passed by pointer.  Thus the pointer can point to const data.
      However the attributes do not have to be a bitfield.  Instead unsigned
      long will do fine:
      
      1. This is just simpler.  Both in terms of reading the code and setting
         attributes.  Instead of initializing local attributes on the stack
         and passing pointer to it to dma_set_attr(), just set the bits.
      
      2. It brings safeness and checking for const correctness because the
         attributes are passed by value.
      
      Semantic patches for this change (at least most of them):
      
          virtual patch
          virtual context
      
          @r@
          identifier f, attrs;
      
          @@
          f(...,
          - struct dma_attrs *attrs
          + unsigned long attrs
          , ...)
          {
          ...
          }
      
          @@
          identifier r.f;
          @@
          f(...,
          - NULL
          + 0
           )
      
      and
      
          // Options: --all-includes
          virtual patch
          virtual context
      
          @r@
          identifier f, attrs;
          type t;
      
          @@
          t f(..., struct dma_attrs *attrs);
      
          @@
          identifier r.f;
          @@
          f(...,
          - NULL
          + 0
           )
      
      Link: http://lkml.kernel.org/r/1468399300-5399-2-git-send-email-k.kozlowski@samsung.comSigned-off-by: NKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Acked-by: NVineet Gupta <vgupta@synopsys.com>
      Acked-by: NRobin Murphy <robin.murphy@arm.com>
      Acked-by: NHans-Christian Noren Egtvedt <egtvedt@samfundet.no>
      Acked-by: Mark Salter <msalter@redhat.com> [c6x]
      Acked-by: Jesper Nilsson <jesper.nilsson@axis.com> [cris]
      Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> [drm]
      Reviewed-by: NBart Van Assche <bart.vanassche@sandisk.com>
      Acked-by: Joerg Roedel <jroedel@suse.de> [iommu]
      Acked-by: Fabien Dessenne <fabien.dessenne@st.com> [bdisp]
      Reviewed-by: Marek Szyprowski <m.szyprowski@samsung.com> [vb2-core]
      Acked-by: David Vrabel <david.vrabel@citrix.com> [xen]
      Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> [xen swiotlb]
      Acked-by: Joerg Roedel <jroedel@suse.de> [iommu]
      Acked-by: Richard Kuo <rkuo@codeaurora.org> [hexagon]
      Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> [m68k]
      Acked-by: Gerald Schaefer <gerald.schaefer@de.ibm.com> [s390]
      Acked-by: NBjorn Andersson <bjorn.andersson@linaro.org>
      Acked-by: Hans-Christian Noren Egtvedt <egtvedt@samfundet.no> [avr32]
      Acked-by: Vineet Gupta <vgupta@synopsys.com> [arc]
      Acked-by: Robin Murphy <robin.murphy@arm.com> [arm64 and dma-iommu]
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      00085f1e
  22. 16 7月, 2016 10 次提交