1. 26 Sep, 2022 1 commit
    • Linus Walleij's avatar
      ARM: dts: integrator: Fix DMA ranges · 7bea67a9
      Linus Walleij authored
      A recent change affecting the behaviour of phys_to_dma() to
      actually require the device tree ranges to work unmasked a
      bug in the Integrator DMA ranges.
      
      The PL110 uses the CMA allocator to obtain coherent allocations
      from a dedicated 1MB video memory, leading to the following
      call chain:
      
      drm_gem_cma_create()
        dma_alloc_attrs()
          dma_alloc_from_dev_coherent()
            __dma_alloc_from_coherent()
              dma_get_device_base()
                phys_to_dma()
                  translate_phys_to_dma()
      
      phys_to_dma() by way of translate_phys_to_dma() will nowadays not
      provide 1:1 mappings unless the ranges are properly defined in
      the device tree and reflected into the dev->dma_range_map.
      
      There is a bug in the device trees because the DMA ranges are
      incorrectly specified, and the patch uncovers this bug.
      
      Solution:
      
      - Fix the LB (logic bus) ranges to be 1-to-1 like they should
        have always been.
      - Provide a 1:1 dma-ranges attribute to the PL110.
      - Mark the PL110 display controller as DMA coherent.
      
      This makes the DMA ranges work right and makes the PL110
      framebuffer work again.
      
      Fixes: af6f23b8 ("ARM/dma-mapping: use the generic versions of dma_to_phys/phys_to_dma by default")
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: stable@vger.kernel.org
      Link: https://lore.kernel.org/r/20220926073311.1610568-1-linus.walleij@linaro.org'
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      7bea67a9
  2. 23 Sep, 2022 7 commits
  3. 22 Sep, 2022 1 commit
  4. 18 Sep, 2022 5 commits
  5. 16 Sep, 2022 10 commits
  6. 15 Sep, 2022 5 commits
  7. 14 Sep, 2022 11 commits