dma: imx-sdma: Assign a default script number for ROM firmware cases
authorNicolin Chen <Guangyu.Chen@freescale.com>
Wed, 8 Jan 2014 08:45:56 +0000 (16:45 +0800)
committerVinod Koul <vinod.koul@intel.com>
Mon, 13 Jan 2014 09:22:04 +0000 (14:52 +0530)
i.MX series have inner firmware in its ROM code: when SDMA isn't provided
any firmware from Kernel or rootfs, the default inner ROM firmware will be
activated. However the current driver doesn't assign any script number to
this situation, and those platform running in this case would be broken.

Thus this patch adds a default script number when no external firmware being
loaded so that people would continue to be able to use basic scripts to run
their platform without any firmware.

Reported-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>
Tested-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/imx-sdma.c

index 152247675febf42c805b57592c222fc716c8d516..4e7918339b1263a2720c3da11d271714dd9669ad 100644 (file)
@@ -1252,6 +1252,10 @@ static void sdma_add_scripts(struct sdma_engine *sdma,
        s32 *saddr_arr = (u32 *)sdma->script_addrs;
        int i;
 
+       /* use the default firmware in ROM if missing external firmware */
+       if (!sdma->script_number)
+               sdma->script_number = SDMA_SCRIPT_ADDRS_ARRAY_SIZE_V1;
+
        for (i = 0; i < sdma->script_number; i++)
                if (addr_arr[i] > 0)
                        saddr_arr[i] = addr_arr[i];