[RFC 11/12] omap: mcbsp: Remove conditional compilation for OMAP3
Varadarajan, Charulatha
charu at ti.com
Fri Jul 1 07:00:09 EDT 2011
Jarkko,
On Fri, Jul 1, 2011 at 14:22, Jarkko Nikula <jhnikula at gmail.com> 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 at gmail.com>
> ---
> 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 at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
More information about the linux-arm-kernel
mailing list