mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 19:51:31 -04:00
Merge commit 'v2.6.37-rc1' into for-2.6.37
This commit is contained in:
commit
29c798fecb
9796 changed files with 963722 additions and 504219 deletions
|
|
@ -31,7 +31,6 @@
|
|||
#include <sound/initval.h>
|
||||
#include <sound/soc.h>
|
||||
|
||||
#include <plat/control.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/mcbsp.h>
|
||||
#include "omap-mcbsp.h"
|
||||
|
|
@ -598,93 +597,6 @@ static int omap_mcbsp_dai_set_clkdiv(struct snd_soc_dai *cpu_dai,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int omap_mcbsp_dai_set_clks_src(struct omap_mcbsp_data *mcbsp_data,
|
||||
int clk_id)
|
||||
{
|
||||
int sel_bit;
|
||||
u16 reg, reg_devconf1 = OMAP243X_CONTROL_DEVCONF1;
|
||||
|
||||
if (cpu_class_is_omap1()) {
|
||||
/* OMAP1's can use only external source clock */
|
||||
if (unlikely(clk_id == OMAP_MCBSP_SYSCLK_CLKS_FCLK))
|
||||
return -EINVAL;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (cpu_is_omap2420() && mcbsp_data->bus_id > 1)
|
||||
return -EINVAL;
|
||||
|
||||
if (cpu_is_omap343x())
|
||||
reg_devconf1 = OMAP343X_CONTROL_DEVCONF1;
|
||||
|
||||
switch (mcbsp_data->bus_id) {
|
||||
case 0:
|
||||
reg = OMAP2_CONTROL_DEVCONF0;
|
||||
sel_bit = 2;
|
||||
break;
|
||||
case 1:
|
||||
reg = OMAP2_CONTROL_DEVCONF0;
|
||||
sel_bit = 6;
|
||||
break;
|
||||
case 2:
|
||||
reg = reg_devconf1;
|
||||
sel_bit = 0;
|
||||
break;
|
||||
case 3:
|
||||
reg = reg_devconf1;
|
||||
sel_bit = 2;
|
||||
break;
|
||||
case 4:
|
||||
reg = reg_devconf1;
|
||||
sel_bit = 4;
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (clk_id == OMAP_MCBSP_SYSCLK_CLKS_FCLK)
|
||||
omap_ctrl_writel(omap_ctrl_readl(reg) & ~(1 << sel_bit), reg);
|
||||
else
|
||||
omap_ctrl_writel(omap_ctrl_readl(reg) | (1 << sel_bit), reg);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int omap_mcbsp_dai_set_rcvr_src(struct omap_mcbsp_data *mcbsp_data,
|
||||
int clk_id)
|
||||
{
|
||||
int sel_bit, set = 0;
|
||||
u16 reg = OMAP2_CONTROL_DEVCONF0;
|
||||
|
||||
if (cpu_class_is_omap1())
|
||||
return -EINVAL; /* TODO: Can this be implemented for OMAP1? */
|
||||
if (mcbsp_data->bus_id != 0)
|
||||
return -EINVAL;
|
||||
|
||||
switch (clk_id) {
|
||||
case OMAP_MCBSP_CLKR_SRC_CLKX:
|
||||
set = 1;
|
||||
case OMAP_MCBSP_CLKR_SRC_CLKR:
|
||||
sel_bit = 3;
|
||||
break;
|
||||
case OMAP_MCBSP_FSR_SRC_FSX:
|
||||
set = 1;
|
||||
case OMAP_MCBSP_FSR_SRC_FSR:
|
||||
sel_bit = 4;
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (set)
|
||||
omap_ctrl_writel(omap_ctrl_readl(reg) | (1 << sel_bit), reg);
|
||||
else
|
||||
omap_ctrl_writel(omap_ctrl_readl(reg) & ~(1 << sel_bit), reg);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int omap_mcbsp_dai_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
|
||||
int clk_id, unsigned int freq,
|
||||
int dir)
|
||||
|
|
@ -693,6 +605,14 @@ static int omap_mcbsp_dai_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
|
|||
struct omap_mcbsp_reg_cfg *regs = &mcbsp_data->regs;
|
||||
int err = 0;
|
||||
|
||||
/* The McBSP signal muxing functions are only available on McBSP1 */
|
||||
if (clk_id == OMAP_MCBSP_CLKR_SRC_CLKR ||
|
||||
clk_id == OMAP_MCBSP_CLKR_SRC_CLKX ||
|
||||
clk_id == OMAP_MCBSP_FSR_SRC_FSR ||
|
||||
clk_id == OMAP_MCBSP_FSR_SRC_FSX)
|
||||
if (cpu_class_is_omap1() || mcbsp_data->bus_id != 0)
|
||||
return -EINVAL;
|
||||
|
||||
mcbsp_data->in_freq = freq;
|
||||
|
||||
switch (clk_id) {
|
||||
|
|
@ -700,8 +620,20 @@ static int omap_mcbsp_dai_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
|
|||
regs->srgr2 |= CLKSM;
|
||||
break;
|
||||
case OMAP_MCBSP_SYSCLK_CLKS_FCLK:
|
||||
if (cpu_class_is_omap1()) {
|
||||
err = -EINVAL;
|
||||
break;
|
||||
}
|
||||
err = omap2_mcbsp_set_clks_src(mcbsp_data->bus_id,
|
||||
MCBSP_CLKS_PRCM_SRC);
|
||||
break;
|
||||
case OMAP_MCBSP_SYSCLK_CLKS_EXT:
|
||||
err = omap_mcbsp_dai_set_clks_src(mcbsp_data, clk_id);
|
||||
if (cpu_class_is_omap1()) {
|
||||
err = 0;
|
||||
break;
|
||||
}
|
||||
err = omap2_mcbsp_set_clks_src(mcbsp_data->bus_id,
|
||||
MCBSP_CLKS_PAD_SRC);
|
||||
break;
|
||||
|
||||
case OMAP_MCBSP_SYSCLK_CLKX_EXT:
|
||||
|
|
@ -710,11 +642,18 @@ static int omap_mcbsp_dai_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
|
|||
regs->pcr0 |= SCLKME;
|
||||
break;
|
||||
|
||||
|
||||
case OMAP_MCBSP_CLKR_SRC_CLKR:
|
||||
omap2_mcbsp1_mux_clkr_src(CLKR_SRC_CLKR);
|
||||
break;
|
||||
case OMAP_MCBSP_CLKR_SRC_CLKX:
|
||||
omap2_mcbsp1_mux_clkr_src(CLKR_SRC_CLKX);
|
||||
break;
|
||||
case OMAP_MCBSP_FSR_SRC_FSR:
|
||||
omap2_mcbsp1_mux_fsr_src(FSR_SRC_FSR);
|
||||
break;
|
||||
case OMAP_MCBSP_FSR_SRC_FSX:
|
||||
err = omap_mcbsp_dai_set_rcvr_src(mcbsp_data, clk_id);
|
||||
omap2_mcbsp1_mux_fsr_src(FSR_SRC_FSX);
|
||||
break;
|
||||
default:
|
||||
err = -ENODEV;
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@
|
|||
#include <sound/initval.h>
|
||||
#include <sound/soc.h>
|
||||
|
||||
#include <plat/control.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/mcbsp.h>
|
||||
#include "mcpdm.h"
|
||||
|
|
|
|||
|
|
@ -52,8 +52,8 @@ static int __init sh7760_ac97_init(void)
|
|||
unsigned short ipsel;
|
||||
|
||||
/* enable both AC97 controllers in pinmux reg */
|
||||
ipsel = ctrl_inw(IPSEL);
|
||||
ctrl_outw(ipsel | (3 << 10), IPSEL);
|
||||
ipsel = __raw_readw(IPSEL);
|
||||
__raw_writew(ipsel | (3 << 10), IPSEL);
|
||||
|
||||
ret = -ENOMEM;
|
||||
sh7760_ac97_snd_device = platform_device_alloc("soc-audio", -1);
|
||||
|
|
|
|||
|
|
@ -127,6 +127,7 @@ static int siu_pcm_wr_set(struct siu_port *port_info,
|
|||
sg_init_table(&sg, 1);
|
||||
sg_set_page(&sg, pfn_to_page(PFN_DOWN(buff)),
|
||||
size, offset_in_page(buff));
|
||||
sg_dma_len(&sg) = size;
|
||||
sg_dma_address(&sg) = buff;
|
||||
|
||||
desc = siu_stream->chan->device->device_prep_slave_sg(siu_stream->chan,
|
||||
|
|
@ -176,6 +177,7 @@ static int siu_pcm_rd_set(struct siu_port *port_info,
|
|||
sg_init_table(&sg, 1);
|
||||
sg_set_page(&sg, pfn_to_page(PFN_DOWN(buff)),
|
||||
size, offset_in_page(buff));
|
||||
sg_dma_len(&sg) = size;
|
||||
sg_dma_address(&sg) = buff;
|
||||
|
||||
desc = siu_stream->chan->device->device_prep_slave_sg(siu_stream->chan,
|
||||
|
|
|
|||
|
|
@ -233,6 +233,7 @@ static const struct file_operations codec_reg_fops = {
|
|||
.open = codec_reg_open_file,
|
||||
.read = codec_reg_read_file,
|
||||
.write = codec_reg_write_file,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
static void soc_init_codec_debugfs(struct snd_soc_codec *codec)
|
||||
|
|
|
|||
|
|
@ -1084,6 +1084,7 @@ static ssize_t dapm_widget_power_read_file(struct file *file,
|
|||
static const struct file_operations dapm_widget_power_fops = {
|
||||
.open = dapm_widget_power_open_file,
|
||||
.read = dapm_widget_power_read_file,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
void snd_soc_dapm_debugfs_init(struct snd_soc_codec *codec)
|
||||
|
|
|
|||
Loading…
Reference in a new issue