[alsa-devel] [PATCH 00/13] dmaengine + omap drivers: support fro deferred probing

Peter Ujfalusi peter.ujfalusi at ti.com
Tue May 26 15:25:55 CEST 2015


Hi,

Vinod: as I promised: https://lkml.org/lkml/2015/5/8/80

With this series it is possible to put omap-dma or edma to even late_initcall
and the drivers will figure out the load order fine(ish).
We need to add dma_request_slave_channel_compat_reason() which is the equivalent
of dma_request_slave_channel_compat() but returning with error codes in case of
failure instead of NULL pointer.
The rest of the series just converts the OMAP/daVinci drivers to use this new
function to get the channel(s) and to handle the deferred probing.

I did not moved the omap-dma, edma or ti-dma-crossbar from arch_initcall. If I
do so UART will only comes up after the DMA driver is loaded since we are using,
or going to use 8250 with DAM support. This delays the kernel messages. Other
issue is the MMC/SD cards. On  board with eMMC and SD card slot the mmcblk0/1
might get swapped due to different probe order for the MMC/SD drivers. For
example in omap5-uevm:
1. omap-dma in arch_initcall the SD card is mmcblk1 (4809c000.mmc) and eMMC is
mmcblk0 (480b4000.mmc)
2. omap-dma in late_initcall the SD card is mmcblk0 (4809c000.mmc) and eMMC is
mmcblk1 (480b4000.mmc)

Because in case 1 the 4809c000.mmc got deferred by missing regulator so
480b4000.mmc got registered first. In case 2 both deferring because of DMA and
at the end 4809c000.mmc get registered first. So far I have not found a way to
bind mmcblk0/1 to a specific node...

Regards,
Peter
---
Peter Ujfalusi (13):
  dmaengine: of_dma: Correct return code for
    of_dma_request_slave_channel in case !CONFIG_OF
  dmaengine: Introduce dma_request_slave_channel_compat_reason()
  serial: 8250_dma: Support for deferred probing when requesting DMA
    channels
  mmc: omap_hsmmc: No need to check DMA channel validity at module
    remove
  mmc: omap_hsmmc: Support for deferred probing when requesting DMA
    channels
  mmc: omap: Support for deferred probing when requesting DMA channels
  mmc: davinci_mmc: Support for deferred probing when requesting DMA
    channels
  crypto: omap-aes - Support for deferred probing when requesting DMA
    channels
  crypto: omap-des - Support for deferred probing when requesting DMA
    channels
  crypto: omap-sham - Support for deferred probing when requesting DMA
    channel
  spi: omap2-mcspi: Support for deferred probing when requesting DMA
    channels
  [media] omap3isp: Support for deferred probing when requesting DMA
    channel
  ASoC: omap-pcm: Switch to use
    dma_request_slave_channel_compat_reason()

 drivers/crypto/omap-aes.c                 | 38 ++++++++++++++++---------------
 drivers/crypto/omap-des.c                 | 38 ++++++++++++++++---------------
 drivers/crypto/omap-sham.c                | 15 ++++++++----
 drivers/media/platform/omap3isp/isphist.c | 12 +++++++---
 drivers/mmc/host/davinci_mmc.c            | 26 ++++++++++++---------
 drivers/mmc/host/omap.c                   | 20 ++++++++++++----
 drivers/mmc/host/omap_hsmmc.c             | 28 ++++++++++-------------
 drivers/spi/spi-omap2-mcspi.c             | 36 +++++++++++++++++------------
 drivers/tty/serial/8250/8250_dma.c        | 18 +++++++--------
 include/linux/dmaengine.h                 | 22 ++++++++++++++++++
 include/linux/of_dma.h                    |  2 +-
 sound/soc/omap/omap-pcm.c                 | 16 ++++++++-----
 12 files changed, 164 insertions(+), 107 deletions(-)

-- 
2.3.5



More information about the Alsa-devel mailing list