From: Sergei Shtylyov on 11 Mar 2010 06:10 Hello. Sudhakar Rajashekhara wrote: > 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(a)ti.com> > --- > arch/arm/mach-davinci/include/mach/mmc.h | 3 +++ > drivers/mmc/host/davinci_mmc.c | 22 +++++++++++++++------- > 2 files changed, 18 insertions(+), 7 deletions(-) > > diff --git a/arch/arm/mach-davinci/include/mach/mmc.h b/arch/arm/mach-davinci/include/mach/mmc.h > index 5a85e24..384fc0e 100644 > --- a/arch/arm/mach-davinci/include/mach/mmc.h > +++ b/arch/arm/mach-davinci/include/mach/mmc.h > @@ -22,6 +22,9 @@ struct davinci_mmc_config { > > /* Version of the MMC/SD controller */ > u8 version; > + > + /* Number of sg segments */ > + u32 nr_sg; > Why waste 4 bytres if the maximum number is 16? > diff --git a/drivers/mmc/host/davinci_mmc.c b/drivers/mmc/host/davinci_mmc.c > index 3bd0ba2..19c050c 100644 > --- a/drivers/mmc/host/davinci_mmc.c > +++ b/drivers/mmc/host/davinci_mmc.c > @@ -137,15 +137,15 @@ > > /* > * One scatterlist dma "segment" is at most MAX_CCNT rw_threshold units, > - * and we handle up to NR_SG segments. MMC_BLOCK_BOUNCE kicks in only > + * and we handle up to MAX_NR_SG segments. MMC_BLOCK_BOUNCE kicks in only > * for drivers with max_hw_segs == 1, making the segments bigger (64KB) > - * than the page or two that's otherwise typical. NR_SG == 16 gives at > - * least the same throughput boost, using EDMA transfer linkage instead > - * of spending CPU time copying pages. > + * than the page or two that's otherwise typical. nr_sg (passed from > + * platform data) == 16 gives at least the same throughput boost, using > + * EDMA transfer linkage instead of spending CPU time copying pages. > */ > #define MAX_CCNT ((1 << 16) - 1) > > -#define NR_SG 16 > +#define MAX_NR_SG 16 > > static unsigned rw_threshold = 32; > module_param(rw_threshold, uint, S_IRUGO); > @@ -192,7 +192,7 @@ struct mmc_davinci_host { > struct edmacc_param tx_template; > struct edmacc_param rx_template; > unsigned n_link; > - u32 links[NR_SG - 1]; > + u32 links[MAX_NR_SG - 1]; > > /* For PIO we walk scatterlists one segment at a time. */ > > unsigned int sg_len; > @@ -202,6 +202,8 @@ struct mmc_davinci_host { > u8 version; > /* for ns in one cycle calculation */ > unsigned ns_in_one_cycle; > + /* Number of sg segments */ > + u32 nr_sg; > Same question. WBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Andrew Morton on 15 Mar 2010 17:50 On Fri, 12 Mar 2010 18:04:09 +0530 Sudhakar Rajashekhara <sudhakar.raj(a)ti.com> wrote: > 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. It's unclear what the runtime effects of this change are. I assumed (without justification) that they're minor and I scheduled the patch for 2.6.35. If that was the wrong decision then blame the changelog ;) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|
Pages: 1 Prev: execve for script don't return ENOEXEC, bug ? Next: lp3971: Fix BUCK_VOL_CHANGE_SHIFT logic |