Split omap_mcbsp_read()/_write() functions logic into omap1 and omap2/3/4
parts, then move them out of plat-omap/mcbsp.c into mach-omap1/mcbsp.c and
mach-omap2/mcbsp.c respectively, to leave some of the "if cpu_is_omapxxxx()
else" stuff.

Applies on top of patch 4 from this series:
[PATCH v7 4/5] OMAP: McBSP: Use cache when modifying individual register bits

Tested on OMAP1510 based Amstrad Delta using linux-omap for-next,
commit 82f1d8f22f2c65e70206e40a6f17688bf64a892c.
Compile-tested with omap_generic_2420_defconfig and omap_3430sdp_defconfig.

Signed-off-by: Janusz Krzysztofik <[email protected]>

---
Wednesday 09 December 2009 00:39:16 Tony Lindgren napisał(a):
> * Tony Lindgren <[email protected]> [091208 15:32]:
> > * Janusz Krzysztofik <[email protected]> [091208 11:45]:
> > > Tuesday 08 December 2009 17:59:31 Tony Lindgren napisał(a):
> > > >
> > > > Actually since we already have mach-omap1/mcbsp.c and
> > > > mach-omap2/mcbsp.c, it would be best to pass the cache size from
> > > > omap1_mcbsp_init and omap2_mcbsp_init. That leaves some of the if
> > > > cpu_is_omapxxxx() else stuff.
> > >
> > > Tony,
> > > Almost ready with it, one more question: what do you think about
> > > splitting and moving omap_mcbsp_read()/_write() there as well? If you
> > > agree, should I submit 2 patches, one with this cleanup, the other one
> > > actually introducing cache support, or is one combined OK?
> >
> > Sounds good to me!
>
> Oh sorry forgot to reply to your question. If a single patch looks
> unreadable, then split it into two where the first patch splits
> omap_mcbsp_read/write.

Tony,
Since this one is new, in order to not block the 4 preceding patches that do
not really need this one, I decided to create this additional cleanup as the
last one in the series, to be dropped easily if not accepted for any problems
with it.

Thanks,
Janusz

 arch/arm/mach-omap1/mcbsp.c             |   12 ++++++++++++
 arch/arm/mach-omap2/mcbsp.c             |   22 ++++++++++++++++++++++
 arch/arm/plat-omap/include/plat/mcbsp.h |    3 +++
 arch/arm/plat-omap/mcbsp.c              |   28 ----------------------------
 4 files changed, 37 insertions(+), 28 deletions(-)

diff -upr git.orig/arch/arm/mach-omap1/mcbsp.c git/arch/arm/mach-omap1/mcbsp.c
--- git.orig/arch/arm/mach-omap1/mcbsp.c        2009-12-09 15:49:52.000000000 
+0100
+++ git/arch/arm/mach-omap1/mcbsp.c     2009-12-09 16:20:43.000000000 +0100
@@ -31,6 +31,18 @@ static int dsp_use;
 static struct clk *api_clk;
 static struct clk *dsp_clk;
 
+void omap_mcbsp_write(struct omap_mcbsp *mcbsp, u16 reg, u32 val)
+{
+       ((u16 *)mcbsp->reg_cache)[reg / sizeof(u16)] = (u16)val;
+       __raw_writew((u16)val, mcbsp->io_base + reg);
+}
+
+int omap_mcbsp_read(struct omap_mcbsp *mcbsp, u16 reg, bool from_cache)
+{
+       return !from_cache ? __raw_readw(mcbsp->io_base + reg) :
+                       ((u16 *)mcbsp->reg_cache)[reg / sizeof(u16)];
+}
+
 static void omap1_mcbsp_request(unsigned int id)
 {
        /*
diff -upr git.orig/arch/arm/mach-omap2/mcbsp.c git/arch/arm/mach-omap2/mcbsp.c
--- git.orig/arch/arm/mach-omap2/mcbsp.c        2009-12-09 15:49:52.000000000 
+0100
+++ git/arch/arm/mach-omap2/mcbsp.c     2009-12-09 16:20:43.000000000 +0100
@@ -23,6 +23,28 @@
 #include <plat/cpu.h>
 #include <plat/mcbsp.h>
 
+void omap_mcbsp_write(struct omap_mcbsp *mcbsp, u16 reg, u32 val)
+{
+       if (cpu_is_omap2420()) {
+               ((u16 *)mcbsp->reg_cache)[reg / sizeof(u32)] = (u16)val;
+               __raw_writew((u16)val, mcbsp->io_base + reg);
+       } else {
+               ((u32 *)mcbsp->reg_cache)[reg / sizeof(u32)] = val;
+               __raw_writel(val, mcbsp->io_base + reg);
+       }
+}
+
+int omap_mcbsp_read(struct omap_mcbsp *mcbsp, u16 reg, bool from_cache)
+{
+       if (cpu_is_omap2420()) {
+               return !from_cache ? __raw_readw(mcbsp->io_base + reg) :
+                               ((u16 *)mcbsp->reg_cache)[reg / sizeof(u32)];
+       } else {
+               return !from_cache ? __raw_readl(mcbsp->io_base + reg) :
+                               ((u32 *)mcbsp->reg_cache)[reg / sizeof(u32)];
+       }
+}
+
 static void omap2_mcbsp2_mux_setup(void)
 {
        omap_cfg_reg(Y15_24XX_MCBSP2_CLKX);
diff -upr git.orig/arch/arm/plat-omap/include/plat/mcbsp.h 
git/arch/arm/plat-omap/include/plat/mcbsp.h
--- git.orig/arch/arm/plat-omap/include/plat/mcbsp.h    2009-12-09 
15:49:53.000000000 +0100
+++ git/arch/arm/plat-omap/include/plat/mcbsp.h 2009-12-09 16:20:43.000000000 
+0100
@@ -420,6 +420,9 @@ struct omap_mcbsp {
 extern struct omap_mcbsp **mcbsp_ptr;
 extern int omap_mcbsp_count, omap_mcbsp_cache_size;
 
+void omap_mcbsp_write(struct omap_mcbsp *mcbsp, u16 reg, u32 val);
+int omap_mcbsp_read(struct omap_mcbsp *mcbsp, u16 reg, bool from_cache);
+
 int omap_mcbsp_init(void);
 void omap_mcbsp_register_board_cfg(struct omap_mcbsp_platform_data *config,
                                        int size);
diff -upr git.orig/arch/arm/plat-omap/mcbsp.c git/arch/arm/plat-omap/mcbsp.c
--- git.orig/arch/arm/plat-omap/mcbsp.c 2009-12-09 16:20:29.000000000 +0100
+++ git/arch/arm/plat-omap/mcbsp.c      2009-12-09 16:20:43.000000000 +0100
@@ -30,34 +30,6 @@
 struct omap_mcbsp **mcbsp_ptr;
 int omap_mcbsp_count, omap_mcbsp_cache_size;
 
-void omap_mcbsp_write(struct omap_mcbsp *mcbsp, u16 reg, u32 val)
-{
-       if (cpu_class_is_omap1()) {
-               ((u16 *)mcbsp->reg_cache)[reg / sizeof(u16)] = (u16)val;
-               __raw_writew((u16)val, mcbsp->io_base + reg);
-       } else if (cpu_is_omap2420()) {
-               ((u16 *)mcbsp->reg_cache)[reg / sizeof(u32)] = (u16)val;
-               __raw_writew((u16)val, mcbsp->io_base + reg);
-       } else {
-               ((u32 *)mcbsp->reg_cache)[reg / sizeof(u32)] = val;
-               __raw_writel(val, mcbsp->io_base + reg);
-       }
-}
-
-int omap_mcbsp_read(struct omap_mcbsp *mcbsp, u16 reg, bool from_cache)
-{
-       if (cpu_class_is_omap1()) {
-               return !from_cache ? __raw_readw(mcbsp->io_base + reg) :
-                               ((u16 *)mcbsp->reg_cache)[reg / sizeof(u16)];
-       } else if (cpu_is_omap2420()) {
-               return !from_cache ? __raw_readw(mcbsp->io_base + reg) :
-                               ((u16 *)mcbsp->reg_cache)[reg / sizeof(u32)];
-       } else {
-               return !from_cache ? __raw_readl(mcbsp->io_base + reg) :
-                               ((u32 *)mcbsp->reg_cache)[reg / sizeof(u32)];
-       }
-}
-
 #define MCBSP_READ(mcbsp, reg) \
                omap_mcbsp_read(mcbsp, OMAP_MCBSP_REG_##reg, 0)
 #define MCBSP_WRITE(mcbsp, reg, val) \
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to