Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh...
[pandora-kernel.git] / arch / arm / plat-omap / mcbsp.c
index eac4b97..b5a6e17 100644 (file)
@@ -28,6 +28,8 @@
 #include <plat/dma.h>
 #include <plat/mcbsp.h>
 
+/* XXX These "sideways" includes are a sign that something is wrong */
+#include "../mach-omap2/cm2xxx_3xxx.h"
 #include "../mach-omap2/cm-regbits-34xx.h"
 
 struct omap_mcbsp **mcbsp_ptr;
@@ -234,9 +236,9 @@ static void omap_st_on(struct omap_mcbsp *mcbsp)
         * Sidetone uses McBSP ICLK - which must not idle when sidetones
         * are enabled or sidetones start sounding ugly.
         */
-       w = cm_read_mod_reg(OMAP3430_PER_MOD, CM_AUTOIDLE);
+       w = omap2_cm_read_mod_reg(OMAP3430_PER_MOD, CM_AUTOIDLE);
        w &= ~(1 << (mcbsp->id - 2));
-       cm_write_mod_reg(w, OMAP3430_PER_MOD, CM_AUTOIDLE);
+       omap2_cm_write_mod_reg(w, OMAP3430_PER_MOD, CM_AUTOIDLE);
 
        /* Enable McBSP Sidetone */
        w = MCBSP_READ(mcbsp, SSELCR);
@@ -263,9 +265,9 @@ static void omap_st_off(struct omap_mcbsp *mcbsp)
        w = MCBSP_READ(mcbsp, SSELCR);
        MCBSP_WRITE(mcbsp, SSELCR, w & ~(SIDETONEEN));
 
-       w = cm_read_mod_reg(OMAP3430_PER_MOD, CM_AUTOIDLE);
+       w = omap2_cm_read_mod_reg(OMAP3430_PER_MOD, CM_AUTOIDLE);
        w |= 1 << (mcbsp->id - 2);
-       cm_write_mod_reg(w, OMAP3430_PER_MOD, CM_AUTOIDLE);
+       omap2_cm_write_mod_reg(w, OMAP3430_PER_MOD, CM_AUTOIDLE);
 }
 
 static void omap_st_fir_write(struct omap_mcbsp *mcbsp, s16 *fir)
@@ -755,7 +757,7 @@ int omap_mcbsp_request(unsigned int id)
                goto err_kfree;
        }
 
-       mcbsp->free = 0;
+       mcbsp->free = false;
        mcbsp->reg_cache = reg_cache;
        spin_unlock(&mcbsp->lock);
 
@@ -815,7 +817,7 @@ err_clk_disable:
        clk_disable(mcbsp->iclk);
 
        spin_lock(&mcbsp->lock);
-       mcbsp->free = 1;
+       mcbsp->free = true;
        mcbsp->reg_cache = NULL;
 err_kfree:
        spin_unlock(&mcbsp->lock);
@@ -858,7 +860,7 @@ void omap_mcbsp_free(unsigned int id)
        if (mcbsp->free)
                dev_err(mcbsp->dev, "McBSP%d was not reserved\n", mcbsp->id);
        else
-               mcbsp->free = 1;
+               mcbsp->free = true;
        mcbsp->reg_cache = NULL;
        spin_unlock(&mcbsp->lock);
 
@@ -1771,7 +1773,7 @@ static int __devinit omap_mcbsp_probe(struct platform_device *pdev)
 
        spin_lock_init(&mcbsp->lock);
        mcbsp->id = id + 1;
-       mcbsp->free = 1;
+       mcbsp->free = true;
        mcbsp->dma_tx_lch = -1;
        mcbsp->dma_rx_lch = -1;
 
@@ -1836,17 +1838,11 @@ static int __devexit omap_mcbsp_remove(struct platform_device *pdev)
 
                omap34xx_device_exit(mcbsp);
 
-               clk_disable(mcbsp->fclk);
-               clk_disable(mcbsp->iclk);
                clk_put(mcbsp->fclk);
                clk_put(mcbsp->iclk);
 
                iounmap(mcbsp->io_base);
-
-               mcbsp->fclk = NULL;
-               mcbsp->iclk = NULL;
-               mcbsp->free = 0;
-               mcbsp->dev = NULL;
+               kfree(mcbsp);
        }
 
        return 0;