Message ID | 20200124111700.29910-1-nsaenzjulienne@suse.de (mailing list archive) |
---|---|
State | Mainlined |
Commit | f166795871be4a6a679a5f61ac7130b3c0b21cab |
Headers | show |
Series | [for-next] arm64: defconfig: Set bcm2835-dma as built-in | expand |
Hi Nicolas, On 24/01/2020 13.17, Nicolas Saenz Julienne wrote: > With the introduction of 738987a1d6f1 ("mmc: bcm2835: Use > dma_request_chan() instead dma_request_slave_channel()") sdhost-bcm2835 > now waits for its DMA channel to be available when defined in the > device-tree (it would previously default to PIO). Albeit the right > behaviour, the MMC host is needed for booting. So this makes sure the > DMA channel shows up in time. > > Fixes: 738987a1d6f1 ("mmc: bcm2835: Use dma_request_chan() instead dma_request_slave_channel()") it is not a bug, it is a feature ;) Yes, if a driver have DMA binding and it is needed during boot then the DMA driver also needs to be built in. I believe it is desired to use DMA instead of PIO in any case for MMC and in the past bcm2835 did not used DMA if DMA was module and the MMC was built in. Sorry for the inconvenience this change has caused to bcm2835! Reviewed-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> > --- > arch/arm64/configs/defconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig > index 4631a1190719..905109f6814f 100644 > --- a/arch/arm64/configs/defconfig > +++ b/arch/arm64/configs/defconfig > @@ -683,7 +683,7 @@ CONFIG_RTC_DRV_SNVS=m > CONFIG_RTC_DRV_IMX_SC=m > CONFIG_RTC_DRV_XGENE=y > CONFIG_DMADEVICES=y > -CONFIG_DMA_BCM2835=m > +CONFIG_DMA_BCM2835=y > CONFIG_DMA_SUN6I=m > CONFIG_FSL_EDMA=y > CONFIG_IMX_SDMA=y > - Péter Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
Hi Peter, On Fri Jan 24, 2020 at 1:31 PM, Peter Ujfalusi wrote: > Hi Nicolas, > > On 24/01/2020 13.17, Nicolas Saenz Julienne wrote: > > With the introduction of 738987a1d6f1 ("mmc: bcm2835: Use > > dma_request_chan() instead dma_request_slave_channel()") sdhost-bcm2835 > > now waits for its DMA channel to be available when defined in the > > device-tree (it would previously default to PIO). Albeit the right > > behaviour, the MMC host is needed for booting. So this makes sure the > > DMA channel shows up in time. > > > > Fixes: 738987a1d6f1 ("mmc: bcm2835: Use dma_request_chan() instead dma_request_slave_channel()") > > it is not a bug, it is a feature ;) Agree, I'm just afraid of your series being picked up by a stable release without this patch. But maybe it's not necessary? > Yes, if a driver have DMA binding and it is needed during boot then the > DMA driver also needs to be built in. > I believe it is desired to use DMA instead of PIO in any case for MMC > and in the past bcm2835 did not used DMA if DMA was module and the MMC > was built in. > > Sorry for the inconvenience this change has caused to bcm2835! Not at all :) > Reviewed-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Thanks, Nicolas
On 24/01/2020 13.51, Nicolas Saenz Julienne wrote: > Hi Peter, > > On Fri Jan 24, 2020 at 1:31 PM, Peter Ujfalusi wrote: >> Hi Nicolas, >> >> On 24/01/2020 13.17, Nicolas Saenz Julienne wrote: >>> With the introduction of 738987a1d6f1 ("mmc: bcm2835: Use >>> dma_request_chan() instead dma_request_slave_channel()") sdhost-bcm2835 >>> now waits for its DMA channel to be available when defined in the >>> device-tree (it would previously default to PIO). Albeit the right >>> behaviour, the MMC host is needed for booting. So this makes sure the >>> DMA channel shows up in time. >>> >>> Fixes: 738987a1d6f1 ("mmc: bcm2835: Use dma_request_chan() instead dma_request_slave_channel()") >> >> it is not a bug, it is a feature ;) > > Agree, I'm just afraid of your series being picked up by a stable > release without this patch. But maybe it's not necessary? If you need MMC rootfs then the DMA needs to be built in or have initrd with the modules. The driver expects to have DMA channel and it is going to wait for it to appear unless the request fails. Without moving the DMA as built in and removing the deferred probe handling form the MMC driver, one can just remove the DMA support from the mmc-bcm2835 as it is not used at all. I wonder why this is not signaled by automated boot testing, if any exists for bcm2835. >> Yes, if a driver have DMA binding and it is needed during boot then the >> DMA driver also needs to be built in. >> I believe it is desired to use DMA instead of PIO in any case for MMC >> and in the past bcm2835 did not used DMA if DMA was module and the MMC >> was built in. >> >> Sorry for the inconvenience this change has caused to bcm2835! > > Not at all :) > >> Reviewed-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > > Thanks, > Nicolas > - Péter Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
Hi Peter, On Fri Jan 24, 2020 at 2:05 PM, Peter Ujfalusi wrote: > On 24/01/2020 13.51, Nicolas Saenz Julienne wrote: > > Hi Peter, > > > > On Fri Jan 24, 2020 at 1:31 PM, Peter Ujfalusi wrote: > >> Hi Nicolas, > >> > >> On 24/01/2020 13.17, Nicolas Saenz Julienne wrote: > >>> With the introduction of 738987a1d6f1 ("mmc: bcm2835: Use > >>> dma_request_chan() instead dma_request_slave_channel()") sdhost-bcm2835 > >>> now waits for its DMA channel to be available when defined in the > >>> device-tree (it would previously default to PIO). Albeit the right > >>> behaviour, the MMC host is needed for booting. So this makes sure the > >>> DMA channel shows up in time. > >>> > >>> Fixes: 738987a1d6f1 ("mmc: bcm2835: Use dma_request_chan() instead dma_request_slave_channel()") > >> > >> it is not a bug, it is a feature ;) > > > > Agree, I'm just afraid of your series being picked up by a stable > > release without this patch. But maybe it's not necessary? > > If you need MMC rootfs then the DMA needs to be built in or have initrd > with the modules. > The driver expects to have DMA channel and it is going to wait for it to > appear unless the request fails. > > Without moving the DMA as built in and removing the deferred probe > handling form the MMC driver, one can just remove the DMA support from > the mmc-bcm2835 as it is not used at all. Oh sorry, I meant to ask if the 'Fixes:' tag was really needed. The patch itself is very much needed since not everyone uses initrds in the RPi world, and we want to keep being compatible as much as possible with older device-trees. > I wonder why this is not signaled by automated boot testing, if any > exists for bcm2835. Actually now that you mention it, it's failing since today here: https://kernelci.org/boot/bcm2837-rpi-3-b/ Regards, Nicolas
Hi Nicolas, On 1/24/20 4:47 PM, Nicolas Saenz Julienne wrote: >> If you need MMC rootfs then the DMA needs to be built in or have initrd >> with the modules. >> The driver expects to have DMA channel and it is going to wait for it to >> appear unless the request fails. >> >> Without moving the DMA as built in and removing the deferred probe >> handling form the MMC driver, one can just remove the DMA support from >> the mmc-bcm2835 as it is not used at all. > > Oh sorry, I meant to ask if the 'Fixes:' tag was really needed. Complements: or Needed-for: would be better, but with the Fixed tag this patch would be picked in case the dma_request_chan() conversion patch gets backported for stable. > The > patch itself is very much needed since not everyone uses initrds in the > RPi world, and we want to keep being compatible as much as possible with > older device-trees. Sure. Just checked on my RPi with libreELEC that at least they have the DMA built in, I assume other distros do the same. It would be great if this patch would make it to linux-next as soon as it is possible for sure. >> I wonder why this is not signaled by automated boot testing, if any >> exists for bcm2835> > Actually now that you mention it, it's failing since today here: > https://kernelci.org/boot/bcm2837-rpi-3-b/ Oh, so you can even have a bug report to back this patch ;) - Peter Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
On Fri, 24 Jan 2020 12:17:00 +0100, Nicolas Saenz Julienne <nsaenzjulienne@suse.de> wrote: > With the introduction of 738987a1d6f1 ("mmc: bcm2835: Use > dma_request_chan() instead dma_request_slave_channel()") sdhost-bcm2835 > now waits for its DMA channel to be available when defined in the > device-tree (it would previously default to PIO). Albeit the right > behaviour, the MMC host is needed for booting. So this makes sure the > DMA channel shows up in time. > > Fixes: 738987a1d6f1 ("mmc: bcm2835: Use dma_request_chan() instead dma_request_slave_channel()") > Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> > --- Applied to defconfig-arm64/next, thanks! -- Florian
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index 4631a1190719..905109f6814f 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -683,7 +683,7 @@ CONFIG_RTC_DRV_SNVS=m CONFIG_RTC_DRV_IMX_SC=m CONFIG_RTC_DRV_XGENE=y CONFIG_DMADEVICES=y -CONFIG_DMA_BCM2835=m +CONFIG_DMA_BCM2835=y CONFIG_DMA_SUN6I=m CONFIG_FSL_EDMA=y CONFIG_IMX_SDMA=y
With the introduction of 738987a1d6f1 ("mmc: bcm2835: Use dma_request_chan() instead dma_request_slave_channel()") sdhost-bcm2835 now waits for its DMA channel to be available when defined in the device-tree (it would previously default to PIO). Albeit the right behaviour, the MMC host is needed for booting. So this makes sure the DMA channel shows up in time. Fixes: 738987a1d6f1 ("mmc: bcm2835: Use dma_request_chan() instead dma_request_slave_channel()") Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> --- arch/arm64/configs/defconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)