Subject: [PATCH] ARM: mach-imx: sdhci-esdhc-imx: initialize DMA mask

From: [email-masked] (Adrian Hunter)
Date: Tue, 12 Apr 2016 09:05:34 +0300

On 11/04/16 19:13, Alexander Kurz wrote:
> Hi Adrian,
> On Mon, 11 Apr 2016, Adrian Hunter wrote:
> 
>> On 11/04/16 11:35, Uwe Kleine-K?nig wrote:
>>> Hello,
>>>
>>> I added the people involved in 7b91369b4655 to Cc.
>>>
>>> On Mon, Apr 11, 2016 at 10:20:46AM +0200, Alexander Kurz wrote:
>>>> With commit 7b91369b DMA access got disabled for device drivers with zero
>>
>> Is that because dma_set_mask_and_coherent() fails?
> right, dma_set_mask_and_coherent() fails, thats the only reason for
> this patch. This popped up on a Kindle3 (IMX35 with eMMC based root fs).

Arnd, Alexandre : Why should dma_set_mask_and_coherent() fail in this case
when DMA apparently doesn't need a dma_mask anyway?

> 
> Sorry for the checkpatch / improper commit citation issue.
> 
>>
>>>
>>> Please reference commits like:
>>>
>>> 	With commit 7b91369b4655 ("mmc: sdhci: Set DMA mask when adding
>>> 	host") DMA access ...
>>>
>>>
>>>> DMA mask property. sdhci-esdhc-imx got blocked from DMA access by this.
>>>> Hence: initialize the dma mask to enable access again.
>>>>
>>>> Signed-off-by: Alexander Kurz <[email-masked]>
>>>> ---
>>>>  arch/arm/mach-imx/devices/platform-sdhci-esdhc-imx.c | 5 +++--
>>>>  1 file changed, 3 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/arch/arm/mach-imx/devices/platform-sdhci-esdhc-imx.c b/arch/arm/mach-imx/devices/platform-sdhci-esdhc-imx.c
>>>> index a5edd7d..3d039ef 100644
>>>> --- a/arch/arm/mach-imx/devices/platform-sdhci-esdhc-imx.c
>>>> +++ b/arch/arm/mach-imx/devices/platform-sdhci-esdhc-imx.c
>>>> @@ -71,6 +71,7 @@ struct platform_device *__init imx_add_sdhci_esdhc_imx(
>>>>  	if (!pdata)
>>>>  		pdata = &default_esdhc_pdata;
>>>>  
>>>> -	return imx_add_platform_device(data->devid, data->id, res,
>>>> -			ARRAY_SIZE(res), pdata, sizeof(*pdata));
>>>> +	return imx_add_platform_device_dmamask(data->devid, data->id, res,
>>>> +			ARRAY_SIZE(res), pdata, sizeof(*pdata),
>>>> +			DMA_BIT_MASK(32));
>>>>  }
>>>> -- 
>>>> 2.1.4
>>>>
>>>>
>>>