ARM: OMAP: mcbsp: Use per instance register cache size
authorJarkko Nikula <jarkko.nikula@bitmer.com>
Mon, 26 Sep 2011 07:45:43 +0000 (10:45 +0300)
committerTony Lindgren <tony@atomide.com>
Tue, 27 Sep 2011 00:48:18 +0000 (17:48 -0700)
Rationale here is to remove one global variable and to make possible to have
variable size McBSP register maps inside SoC.

Signed-off-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/plat-omap/include/plat/mcbsp.h
arch/arm/plat-omap/mcbsp.c

index 0fad63c7df18689ff9a67deb04fd3363b8fa026c..648344a89a94c969dfd6185d49006936831d5976 100644 (file)
@@ -359,6 +359,7 @@ struct omap_mcbsp {
        u16 max_tx_thres;
        u16 max_rx_thres;
        void *reg_cache;
+       int reg_cache_size;
 };
 
 /**
@@ -370,7 +371,7 @@ struct omap_mcbsp_dev_attr {
 };
 
 extern struct omap_mcbsp **mcbsp_ptr;
-extern int omap_mcbsp_count, omap_mcbsp_cache_size;
+extern int omap_mcbsp_count;
 
 #define omap_mcbsp_check_valid_id(id)  (id < omap_mcbsp_count)
 #define id_to_mcbsp_ptr(id)            mcbsp_ptr[id];
index 234ab16e839937032ea2d5ce2e4d17810f89cdc5..3ad536ea6c37516be4579df3366dd30d074792c1 100644 (file)
@@ -31,7 +31,7 @@
 #include "../mach-omap2/cm-regbits-34xx.h"
 
 struct omap_mcbsp **mcbsp_ptr;
-int omap_mcbsp_count, omap_mcbsp_cache_size;
+int omap_mcbsp_count;
 
 static void omap_mcbsp_write(struct omap_mcbsp *mcbsp, u16 reg, u32 val)
 {
@@ -678,7 +678,7 @@ int omap_mcbsp_request(unsigned int id)
        }
        mcbsp = id_to_mcbsp_ptr(id);
 
-       reg_cache = kzalloc(omap_mcbsp_cache_size, GFP_KERNEL);
+       reg_cache = kzalloc(mcbsp->reg_cache_size, GFP_KERNEL);
        if (!reg_cache) {
                return -ENOMEM;
        }
@@ -1225,7 +1225,7 @@ static int __devinit omap_mcbsp_probe(struct platform_device *pdev)
                }
        }
        mcbsp->phys_base = res->start;
-       omap_mcbsp_cache_size = resource_size(res);
+       mcbsp->reg_cache_size = resource_size(res);
        mcbsp->io_base = ioremap(res->start, resource_size(res));
        if (!mcbsp->io_base) {
                ret = -ENOMEM;