Re: [PATCH] nand: ranw: qcom_nand: stop using phys_to_dma()

From: Arnd Bergmann
Date: Tue Jul 17 2018 - 16:30:04 EST


On Tue, Jul 17, 2018 at 10:01 PM, Boris Brezillon
<boris.brezillon@xxxxxxxxxxx> wrote:
> Hi Arnd,
>
> On Wed, 11 Jul 2018 16:26:31 +0200
> Arnd Bergmann <arnd@xxxxxxxx> wrote:
>
>> On Wed, Jul 11, 2018 at 3:04 PM, Boris Brezillon
>> <boris.brezillon@xxxxxxxxxxx> wrote:
>> > On Wed, 11 Jul 2018 14:26:58 +0200
>> > Arnd Bergmann <arnd@xxxxxxxx> wrote:
>> >
>> >> Compile-testing this driver on x86 caused a link error:
>> >>
>> >> ERROR: "__phys_to_dma" [drivers/mtd/nand/raw/qcom_nandc.ko] undefined!
>> >>
>> >> The problem here is that the driver attempts to convert the physical
>> >> address into the DMA controller as a dma_addr_t and calls phys_to_dma()
>> >> to do the conversion.
>> >>
>> >> However, there is no generic way to convert a phys_addr_t into a dma_addr_t
>> >> for anything other than RAM (which should use the dma-mapping API instead).
>> >> The only correct use of phys_to_dma() instead is inside of the dma-mapping
>> >> implementation.
>> >
>> > Should we use dma_map_resource() to do the phys_addr_t to dma_addr_t
>> > conversion?
>>
>> I had not seen that interface before, but yes, that does seem like the best
>> way to do it here.
>
> Do you plan to send a new version using dma_map_resource()?

I somehow thought you were going to do that yourself, but have now
posted a new version of the patch the way you suggested.

> BTW, there's typo in the subject prefix (s/ranw/rawnand/).

Hmm, missed that again in v2. Can you fix it up when applying?

Arnd