[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240528063332.GA30051@lst.de>
Date: Tue, 28 May 2024 08:33:32 +0200
From: Christoph Hellwig <hch@....de>
To: Dave Stevenson <dave.stevenson@...pberrypi.com>
Cc: Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
Florian Fainelli <florian.fainelli@...adcom.com>,
Broadcom internal kernel review list <bcm-kernel-feedback-list@...adcom.com>,
Ray Jui <rjui@...adcom.com>, Scott Branden <sbranden@...adcom.com>,
Vinod Koul <vkoul@...nel.org>, Maxime Ripard <mripard@...nel.org>,
Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Thomas Zimmermann <tzimmermann@...e.de>,
David Airlie <airlied@...il.com>, Daniel Vetter <daniel@...ll.ch>,
Ulf Hansson <ulf.hansson@...aro.org>,
Mark Brown <broonie@...nel.org>, Christoph Hellwig <hch@....de>,
Marek Szyprowski <m.szyprowski@...sung.com>,
Robin Murphy <robin.murphy@....com>,
Liam Girdwood <lgirdwood@...il.com>,
Jaroslav Kysela <perex@...ex.cz>, Takashi Iwai <tiwai@...e.com>,
Vladimir Murzin <vladimir.murzin@....com>,
Phil Elwell <phil@...pberrypi.com>,
Stefan Wahren <wahrenst@....net>,
Serge Semin <Sergey.Semin@...kalelectronics.ru>,
devicetree@...r.kernel.org, linux-rpi-kernel@...ts.infradead.org,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
dmaengine@...r.kernel.org, dri-devel@...ts.freedesktop.org,
linux-mmc@...r.kernel.org, linux-spi@...r.kernel.org,
iommu@...ts.linux.dev, linux-sound@...r.kernel.org
Subject: Re: [PATCH 01/18] dma-direct: take dma-ranges/offsets into account
in resource mapping
On Fri, May 24, 2024 at 07:26:45PM +0100, Dave Stevenson wrote:
> From: Serge Semin <Sergey.Semin@...kalelectronics.ru>
>
> A basic device-specific linear memory mapping was introduced back in
> commit ("dma: Take into account dma_pfn_offset") as a single-valued offset
> preserved in the device.dma_pfn_offset field, which was initialized for
> instance by means of the "dma-ranges" DT property. Afterwards the
> functionality was extended to support more than one device-specific region
> defined in the device.dma_range_map list of maps. But all of these
> improvements concerned a single pointer, page or sg DMA-mapping methods,
> while the system resource mapping function turned to miss the
> corresponding modification. Thus the dma_direct_map_resource() method now
> just casts the CPU physical address to the device DMA address with no
> dma-ranges-based mapping taking into account, which is obviously wrong.
> Let's fix it by using the phys_to_dma_direct() method to get the
> device-specific bus address from the passed memory resource for the case
> of the directly mapped DMA.
My memory is getting a little bad, but as dma_direct_map_resource is
mostly used for (non-PCIe) peer to peer transfers, any kind of mapping
from the host address should be excluded.
(dma_direct_map_resource in general is a horrible interface and I'd
prefer everyone to switch to the map_sg based P2P support, but we
have plenty of users for it unfortunately)
Powered by blists - more mailing lists