Re: [PATCH] davinci: MMC: Pass number of SG segments as platform data
From: Kevin Hilman
Date: Thu Mar 11 2010 - 18:39:47 EST
Sudhakar Rajashekhara <sudhakar.raj@xxxxxx> writes:
> On some platforms like DM355, the number of EDMA parameter
> slots available for EDMA_SLOT_ANY usage are few. In such cases,
> if MMC/SD uses 16 slots for each instance of MMC controller,
> then the number of slots available for other modules will be
> very few.
>
> By passing the number of EDMA slots to be used in MMC driver
> from platform data, EDMA slots available for other purposes
> can be controlled.
>
> Signed-off-by: Sudhakar Rajashekhara <sudhakar.raj@xxxxxx>
> ---
> arch/arm/mach-davinci/include/mach/mmc.h | 3 +++
> drivers/mmc/host/davinci_mmc.c | 22 +++++++++++++++-------
> 2 files changed, 18 insertions(+), 7 deletions(-)
>
[...]
> @@ -1202,6 +1206,10 @@ static int __init davinci_mmcsd_probe(struct platform_device *pdev)
>
> init_mmcsd_host(host);
>
> + host->nr_sg = pdata->nr_sg - 1;
If a board doesn't setup pdata->nr_sg it will be zero, leaving
host->nr_sg = -1.
> + if (host->nr_sg > MAX_NR_SG || host->nr_sg == 0)
> + host->nr_sg = MAX_NR_SG;
Since host->nr_sg is unsigned, you get lucky and fix it up here, but
for readability, this not too clean and should be more thorough.
Wrapping the above in 'if (pdata->nr_sg)' is a more standard way
of handling optional platform_data paramaters.
Kevin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/