Merge branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6
* 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: (163 commits) omap: complete removal of machine_desc.io_pg_offst and .phys_io omap: UART: fix wakeup registers for OMAP24xx UART2 omap: Fix spotty MMC voltages ASoC: OMAP4: MCPDM: Remove unnecessary include of plat/control.h serial: omap-serial: fix signess error OMAP3: DMA: Errata i541: sDMA FIFO draining does not finish omap: dma: Fix buffering disable bit setting for omap24xx omap: serial: Fix the boot-up crash/reboot without CONFIG_PM OMAP3: PM: fix scratchpad memory accesses for off-mode omap4: pandaboard: enable the ehci port on pandaboard omap4: pandaboard: Fix the init if CONFIG_MMC_OMAP_HS is not set omap4: pandaboard: remove unused hsmmc definition OMAP: McBSP: Remove null omap44xx ops comment OMAP: McBSP: Swap CLKS source definition OMAP: McBSP: Fix CLKR and FSR signal muxing OMAP2+: clock: reduce the amount of standard debugging while disabling unused clocks OMAP: control: move plat-omap/control.h to mach-omap2/control.h OMAP: split plat-omap/common.c OMAP: McBSP: implement functional clock switching via clock framework OMAP: McBSP: implement McBSP CLKR and FSR signal muxing via mach-omap2/mcbsp.c ... Fixed up trivial conflicts in arch/arm/mach-omap2/ {board-zoom-peripherals.c,devices.c} as per Tony
This commit is contained in:
@@ -33,7 +33,7 @@
|
||||
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)
|
||||
static 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;
|
||||
@@ -47,7 +47,7 @@ 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)
|
||||
static 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) :
|
||||
@@ -62,12 +62,12 @@ int omap_mcbsp_read(struct omap_mcbsp *mcbsp, u16 reg, bool from_cache)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP3
|
||||
void omap_mcbsp_st_write(struct omap_mcbsp *mcbsp, u16 reg, u32 val)
|
||||
static void omap_mcbsp_st_write(struct omap_mcbsp *mcbsp, u16 reg, u32 val)
|
||||
{
|
||||
__raw_writel(val, mcbsp->st_data->io_base_st + reg);
|
||||
}
|
||||
|
||||
int omap_mcbsp_st_read(struct omap_mcbsp *mcbsp, u16 reg)
|
||||
static int omap_mcbsp_st_read(struct omap_mcbsp *mcbsp, u16 reg)
|
||||
{
|
||||
return __raw_readl(mcbsp->st_data->io_base_st + reg);
|
||||
}
|
||||
@@ -80,9 +80,6 @@ int omap_mcbsp_st_read(struct omap_mcbsp *mcbsp, u16 reg)
|
||||
#define MCBSP_READ_CACHE(mcbsp, reg) \
|
||||
omap_mcbsp_read(mcbsp, OMAP_MCBSP_REG_##reg, 1)
|
||||
|
||||
#define omap_mcbsp_check_valid_id(id) (id < omap_mcbsp_count)
|
||||
#define id_to_mcbsp_ptr(id) mcbsp_ptr[id];
|
||||
|
||||
#define MCBSP_ST_READ(mcbsp, reg) \
|
||||
omap_mcbsp_st_read(mcbsp, OMAP_ST_REG_##reg)
|
||||
#define MCBSP_ST_WRITE(mcbsp, reg, val) \
|
||||
@@ -878,7 +875,7 @@ EXPORT_SYMBOL(omap_mcbsp_free);
|
||||
void omap_mcbsp_start(unsigned int id, int tx, int rx)
|
||||
{
|
||||
struct omap_mcbsp *mcbsp;
|
||||
int idle;
|
||||
int enable_srg = 0;
|
||||
u16 w;
|
||||
|
||||
if (!omap_mcbsp_check_valid_id(id)) {
|
||||
@@ -893,10 +890,13 @@ void omap_mcbsp_start(unsigned int id, int tx, int rx)
|
||||
mcbsp->rx_word_length = (MCBSP_READ_CACHE(mcbsp, RCR1) >> 5) & 0x7;
|
||||
mcbsp->tx_word_length = (MCBSP_READ_CACHE(mcbsp, XCR1) >> 5) & 0x7;
|
||||
|
||||
idle = !((MCBSP_READ_CACHE(mcbsp, SPCR2) |
|
||||
MCBSP_READ_CACHE(mcbsp, SPCR1)) & 1);
|
||||
/* Only enable SRG, if McBSP is master */
|
||||
w = MCBSP_READ_CACHE(mcbsp, PCR0);
|
||||
if (w & (FSXM | FSRM | CLKXM | CLKRM))
|
||||
enable_srg = !((MCBSP_READ_CACHE(mcbsp, SPCR2) |
|
||||
MCBSP_READ_CACHE(mcbsp, SPCR1)) & 1);
|
||||
|
||||
if (idle) {
|
||||
if (enable_srg) {
|
||||
/* Start the sample generator */
|
||||
w = MCBSP_READ_CACHE(mcbsp, SPCR2);
|
||||
MCBSP_WRITE(mcbsp, SPCR2, w | (1 << 6));
|
||||
@@ -919,7 +919,7 @@ void omap_mcbsp_start(unsigned int id, int tx, int rx)
|
||||
*/
|
||||
udelay(500);
|
||||
|
||||
if (idle) {
|
||||
if (enable_srg) {
|
||||
/* Start frame sync */
|
||||
w = MCBSP_READ_CACHE(mcbsp, SPCR2);
|
||||
MCBSP_WRITE(mcbsp, SPCR2, w | (1 << 7));
|
||||
@@ -1645,7 +1645,7 @@ static const struct attribute_group sidetone_attr_group = {
|
||||
.attrs = (struct attribute **)sidetone_attrs,
|
||||
};
|
||||
|
||||
int __devinit omap_st_add(struct omap_mcbsp *mcbsp)
|
||||
static int __devinit omap_st_add(struct omap_mcbsp *mcbsp)
|
||||
{
|
||||
struct omap_mcbsp_platform_data *pdata = mcbsp->pdata;
|
||||
struct omap_mcbsp_st_data *st_data;
|
||||
|
Reference in New Issue
Block a user