|
@@ -26,10 +26,6 @@
|
|
#include <plat/mcbsp.h>
|
|
#include <plat/mcbsp.h>
|
|
#include <linux/pm_runtime.h>
|
|
#include <linux/pm_runtime.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;
|
|
struct omap_mcbsp **mcbsp_ptr;
|
|
int omap_mcbsp_count;
|
|
int omap_mcbsp_count;
|
|
|
|
|
|
@@ -257,13 +253,8 @@ static void omap_st_on(struct omap_mcbsp *mcbsp)
|
|
{
|
|
{
|
|
unsigned int w;
|
|
unsigned int w;
|
|
|
|
|
|
- /*
|
|
|
|
- * Sidetone uses McBSP ICLK - which must not idle when sidetones
|
|
|
|
- * are enabled or sidetones start sounding ugly.
|
|
|
|
- */
|
|
|
|
- w = omap2_cm_read_mod_reg(OMAP3430_PER_MOD, CM_AUTOIDLE);
|
|
|
|
- w &= ~(1 << (mcbsp->id - 2));
|
|
|
|
- omap2_cm_write_mod_reg(w, OMAP3430_PER_MOD, CM_AUTOIDLE);
|
|
|
|
|
|
+ if (mcbsp->pdata->enable_st_clock)
|
|
|
|
+ mcbsp->pdata->enable_st_clock(mcbsp->id, 1);
|
|
|
|
|
|
/* Enable McBSP Sidetone */
|
|
/* Enable McBSP Sidetone */
|
|
w = MCBSP_READ(mcbsp, SSELCR);
|
|
w = MCBSP_READ(mcbsp, SSELCR);
|
|
@@ -284,9 +275,8 @@ static void omap_st_off(struct omap_mcbsp *mcbsp)
|
|
w = MCBSP_READ(mcbsp, SSELCR);
|
|
w = MCBSP_READ(mcbsp, SSELCR);
|
|
MCBSP_WRITE(mcbsp, SSELCR, w & ~(SIDETONEEN));
|
|
MCBSP_WRITE(mcbsp, SSELCR, w & ~(SIDETONEEN));
|
|
|
|
|
|
- w = omap2_cm_read_mod_reg(OMAP3430_PER_MOD, CM_AUTOIDLE);
|
|
|
|
- w |= 1 << (mcbsp->id - 2);
|
|
|
|
- omap2_cm_write_mod_reg(w, OMAP3430_PER_MOD, CM_AUTOIDLE);
|
|
|
|
|
|
+ if (mcbsp->pdata->enable_st_clock)
|
|
|
|
+ mcbsp->pdata->enable_st_clock(mcbsp->id, 0);
|
|
}
|
|
}
|
|
|
|
|
|
static void omap_st_fir_write(struct omap_mcbsp *mcbsp, s16 *fir)
|
|
static void omap_st_fir_write(struct omap_mcbsp *mcbsp, s16 *fir)
|