Jarkko, On Fri, Jul 1, 2011 at 14:22, Jarkko Nikula <jhnikula@xxxxxxxxx> wrote: > Although this increases the build size a little for !OMAP3 builds it makes > the code one step more generic. For instance the threshold based DMA > transfers seems to be possible with OMAP4 too from quick look of the TRM. > > Signed-off-by: Jarkko Nikula <jhnikula@xxxxxxxxx> > --- > arch/arm/plat-omap/include/plat/mcbsp.h | 35 ++++-------------------------- > arch/arm/plat-omap/mcbsp.c | 13 ----------- > 2 files changed, 5 insertions(+), 43 deletions(-) > > diff --git a/arch/arm/plat-omap/include/plat/mcbsp.h b/arch/arm/plat-omap/include/plat/mcbsp.h > index 2a7e8d5..720461c 100644 > --- a/arch/arm/plat-omap/include/plat/mcbsp.h > +++ b/arch/arm/plat-omap/include/plat/mcbsp.h > @@ -26,9 +26,6 @@ > > #include <linux/spinlock.h> > > -#include <mach/hardware.h> > -#include <plat/clock.h> > - > /* macro for building platform_device for McBSP ports */ > #define OMAP_MCBSP_PLATFORM_DEVICE(port_nr) \ > static struct platform_device omap_mcbsp##port_nr = { \ > @@ -314,11 +311,11 @@ struct omap_mcbsp_platform_data { > u8 dma_rx_sync, dma_tx_sync; > u16 rx_irq, tx_irq; > struct omap_mcbsp_ops *ops; > -#ifdef CONFIG_ARCH_OMAP3 > + > /* Sidetone block for McBSP 2 and 3 */ > unsigned long phys_base_st; > int (*enable_st_clock)(unsigned int, bool); > -#endif > + > u16 buffer_size; > unsigned int mcbsp_config_type; > u8 reg_size; > @@ -354,12 +351,12 @@ struct omap_mcbsp { > spinlock_t lock; > struct omap_mcbsp_platform_data *pdata; > struct clk *fclk; > -#ifdef CONFIG_ARCH_OMAP3 > + > struct omap_mcbsp_st_data *st_data; > int dma_op_mode; > u16 max_tx_thres; > u16 max_rx_thres; > -#endif > + > void *reg_cache; > unsigned int mcbsp_config_type; > }; > @@ -380,7 +377,6 @@ extern int omap_mcbsp_count, omap_mcbsp_cache_size; > > int omap_mcbsp_init(void); > void omap_mcbsp_config(unsigned int id, const struct omap_mcbsp_reg_cfg * config); > -#ifdef CONFIG_ARCH_OMAP3 > void omap_mcbsp_set_tx_threshold(unsigned int id, u16 threshold); > void omap_mcbsp_set_rx_threshold(unsigned int id, u16 threshold); > u16 omap_mcbsp_get_max_tx_threshold(unsigned int id); > @@ -389,18 +385,7 @@ u16 omap_mcbsp_get_fifo_size(unsigned int id); > u16 omap_mcbsp_get_tx_delay(unsigned int id); > u16 omap_mcbsp_get_rx_delay(unsigned int id); > int omap_mcbsp_get_dma_op_mode(unsigned int id); > -#else > -static inline void omap_mcbsp_set_tx_threshold(unsigned int id, u16 threshold) > -{ } > -static inline void omap_mcbsp_set_rx_threshold(unsigned int id, u16 threshold) > -{ } > -static inline u16 omap_mcbsp_get_max_tx_threshold(unsigned int id) { return 0; } > -static inline u16 omap_mcbsp_get_max_rx_threshold(unsigned int id) { return 0; } > -static inline u16 omap_mcbsp_get_fifo_size(unsigned int id) { return 0; } > -static inline u16 omap_mcbsp_get_tx_delay(unsigned int id) { return 0; } > -static inline u16 omap_mcbsp_get_rx_delay(unsigned int id) { return 0; } > -static inline int omap_mcbsp_get_dma_op_mode(unsigned int id) { return 0; } > -#endif > + > int omap_mcbsp_request(unsigned int id); > void omap_mcbsp_free(unsigned int id); > void omap_mcbsp_start(unsigned int id, int tx, int rx); > @@ -416,21 +401,11 @@ void omap2_mcbsp1_mux_fsr_src(u8 mux); > int omap_mcbsp_dma_ch_params(unsigned int id, unsigned int stream); > int omap_mcbsp_dma_reg_params(unsigned int id, unsigned int stream); > > -#ifdef CONFIG_ARCH_OMAP3 > /* Sidetone specific API */ > int omap_st_set_chgain(unsigned int id, int channel, s16 chgain); > int omap_st_get_chgain(unsigned int id, int channel, s16 *chgain); > int omap_st_enable(unsigned int id); > int omap_st_disable(unsigned int id); > int omap_st_is_enabled(unsigned int id); > -#else > -static inline int omap_st_set_chgain(unsigned int id, int channel, > - s16 chgain) { return 0; } > -static inline int omap_st_get_chgain(unsigned int id, int channel, > - s16 *chgain) { return 0; } > -static inline int omap_st_enable(unsigned int id) { return 0; } > -static inline int omap_st_disable(unsigned int id) { return 0; } > -static inline int omap_st_is_enabled(unsigned int id) { return 0; } > -#endif > > #endif > diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c > index 1a7cfb3..d565b36 100644 > --- a/arch/arm/plat-omap/mcbsp.c > +++ b/arch/arm/plat-omap/mcbsp.c > @@ -63,7 +63,6 @@ static int omap_mcbsp_read(struct omap_mcbsp *mcbsp, u16 reg, bool from_cache) > } > } > > -#ifdef CONFIG_ARCH_OMAP3 Are there any plans to move the functions omap_mcbsp_st_* to mach-omap2/* as they are specific to OMAP3 only? -V Charulatha > static void omap_mcbsp_st_write(struct omap_mcbsp *mcbsp, u16 reg, u32 val) > { > __raw_writel(val, mcbsp->st_data->io_base_st + reg); > @@ -73,7 +72,6 @@ static int omap_mcbsp_st_read(struct omap_mcbsp *mcbsp, u16 reg) > { > return __raw_readl(mcbsp->st_data->io_base_st + reg); > } > -#endif > > #define MCBSP_READ(mcbsp, reg) \ > omap_mcbsp_read(mcbsp, OMAP_MCBSP_REG_##reg, 0) > @@ -258,7 +256,6 @@ int omap_mcbsp_dma_reg_params(unsigned int id, unsigned int stream) > } > EXPORT_SYMBOL(omap_mcbsp_dma_reg_params); > > -#ifdef CONFIG_ARCH_OMAP3 > static void omap_st_on(struct omap_mcbsp *mcbsp) > { > unsigned int w; > @@ -657,11 +654,6 @@ int omap_mcbsp_get_dma_op_mode(unsigned int id) > } > EXPORT_SYMBOL(omap_mcbsp_get_dma_op_mode); > > -#else > -static inline void omap_st_start(struct omap_mcbsp *mcbsp) {} > -static inline void omap_st_stop(struct omap_mcbsp *mcbsp) {} > -#endif > - > int omap_mcbsp_request(unsigned int id) > { > struct omap_mcbsp *mcbsp; > @@ -935,7 +927,6 @@ void omap2_mcbsp1_mux_fsr_src(u8 mux) > } > #endif > > -#ifdef CONFIG_ARCH_OMAP3 > #define max_thres(m) (mcbsp->pdata->buffer_size) > #define valid_threshold(m, val) ((val) <= max_thres(m)) > #define THRESHOLD_PROP_BUILDER(prop) \ > @@ -1205,10 +1196,6 @@ static inline void __devexit omap34xx_device_exit(struct omap_mcbsp *mcbsp) > omap_st_remove(mcbsp); > } > } > -#else > -static inline void __devinit omap34xx_device_init(struct omap_mcbsp *mcbsp) {} > -static inline void __devexit omap34xx_device_exit(struct omap_mcbsp *mcbsp) {} > -#endif /* CONFIG_ARCH_OMAP3 */ > > /* > * McBSP1 and McBSP3 are directly mapped on 1610 and 1510. > -- > 1.7.0.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-omap" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html