mirror of https://gitee.com/openkylin/linux.git
Merge branch 'for-2.6.31' into for-2.6.32
This commit is contained in:
commit
d5fc3b5fe3
|
@ -5523,6 +5523,13 @@ M: dsaxena@plexity.net
|
|||
S: Maintained
|
||||
F: drivers/char/hw_random/omap-rng.c
|
||||
|
||||
TI TWL4030 SERIES SOC CODEC DRIVER
|
||||
P: Peter Ujfalusi
|
||||
M: peter.ujfalusi@nokia.com
|
||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: sound/soc/codecs/twl4030*
|
||||
|
||||
TIPC NETWORK LAYER
|
||||
P: Per Liden
|
||||
M: per.liden@ericsson.com
|
||||
|
|
|
@ -50,6 +50,7 @@ struct bf5xx_i2s_port {
|
|||
u16 tcr2;
|
||||
u16 rcr2;
|
||||
int counter;
|
||||
int configured;
|
||||
};
|
||||
|
||||
static struct bf5xx_i2s_port bf5xx_i2s;
|
||||
|
@ -168,7 +169,7 @@ static int bf5xx_i2s_hw_params(struct snd_pcm_substream *substream,
|
|||
break;
|
||||
}
|
||||
|
||||
if (bf5xx_i2s.counter == 1) {
|
||||
if (!bf5xx_i2s.configured) {
|
||||
/*
|
||||
* TX and RX are not independent,they are enabled at the
|
||||
* same time, even if only one side is running. So, we
|
||||
|
@ -177,6 +178,7 @@ static int bf5xx_i2s_hw_params(struct snd_pcm_substream *substream,
|
|||
*
|
||||
* CPU DAI:slave mode.
|
||||
*/
|
||||
bf5xx_i2s.configured = 1;
|
||||
ret = sport_config_rx(sport_handle, bf5xx_i2s.rcr1,
|
||||
bf5xx_i2s.rcr2, 0, 0);
|
||||
if (ret) {
|
||||
|
@ -200,6 +202,9 @@ static void bf5xx_i2s_shutdown(struct snd_pcm_substream *substream,
|
|||
{
|
||||
pr_debug("%s enter\n", __func__);
|
||||
bf5xx_i2s.counter--;
|
||||
/* No active stream, SPORT is allowed to be configured again. */
|
||||
if (!bf5xx_i2s.counter)
|
||||
bf5xx_i2s.configured = 0;
|
||||
}
|
||||
|
||||
static int bf5xx_i2s_probe(struct platform_device *pdev,
|
||||
|
@ -244,8 +249,7 @@ static int bf5xx_i2s_suspend(struct snd_soc_dai *dai)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int bf5xx_i2s_resume(struct platform_device *pdev,
|
||||
struct snd_soc_dai *dai)
|
||||
static int bf5xx_i2s_resume(struct snd_soc_dai *dai)
|
||||
{
|
||||
int ret;
|
||||
struct sport_device *sport =
|
||||
|
|
|
@ -375,10 +375,6 @@ static void ssm2602_shutdown(struct snd_pcm_substream *substream,
|
|||
struct snd_soc_codec *codec = socdev->card->codec;
|
||||
struct ssm2602_priv *ssm2602 = codec->private_data;
|
||||
|
||||
if (ssm2602->master_substream == substream)
|
||||
ssm2602->master_substream = ssm2602->slave_substream;
|
||||
|
||||
ssm2602->slave_substream = NULL;
|
||||
/* deactivate */
|
||||
if (!codec->active)
|
||||
ssm2602_write(codec, SSM2602_ACTIVE, 0);
|
||||
|
|
|
@ -1255,22 +1255,18 @@ static struct {
|
|||
int div;
|
||||
} bclk_divs[] = {
|
||||
{ 10, 0 },
|
||||
{ 15, 1 },
|
||||
{ 20, 2 },
|
||||
{ 30, 3 },
|
||||
{ 40, 4 },
|
||||
{ 50, 5 },
|
||||
{ 55, 6 },
|
||||
{ 60, 7 },
|
||||
{ 80, 8 },
|
||||
{ 100, 9 },
|
||||
{ 110, 10 },
|
||||
{ 120, 11 },
|
||||
{ 160, 12 },
|
||||
{ 200, 13 },
|
||||
{ 220, 14 },
|
||||
{ 240, 15 },
|
||||
{ 250, 16 },
|
||||
{ 300, 17 },
|
||||
{ 320, 18 },
|
||||
{ 440, 19 },
|
||||
|
|
|
@ -186,7 +186,7 @@ static int magician_playback_hw_params(struct snd_pcm_substream *substream,
|
|||
|
||||
/* set cpu DAI configuration */
|
||||
ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_DSP_A |
|
||||
SND_SOC_DAIFMT_IB_IF | SND_SOC_DAIFMT_CBS_CFS);
|
||||
SND_SOC_DAIFMT_NB_IF | SND_SOC_DAIFMT_CBS_CFS);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
|
|
|
@ -345,9 +345,11 @@ static void lm4857_write_regs(void)
|
|||
static int lm4857_get_reg(struct snd_kcontrol *kcontrol,
|
||||
struct snd_ctl_elem_value *ucontrol)
|
||||
{
|
||||
int reg = kcontrol->private_value & 0xFF;
|
||||
int shift = (kcontrol->private_value >> 8) & 0x0F;
|
||||
int mask = (kcontrol->private_value >> 16) & 0xFF;
|
||||
struct soc_mixer_control *mc =
|
||||
(struct soc_mixer_control *)kcontrol->private_value;
|
||||
int reg = mc->reg;
|
||||
int shift = mc->shift;
|
||||
int mask = mc->max;
|
||||
|
||||
pr_debug("Entered %s\n", __func__);
|
||||
|
||||
|
@ -358,9 +360,11 @@ static int lm4857_get_reg(struct snd_kcontrol *kcontrol,
|
|||
static int lm4857_set_reg(struct snd_kcontrol *kcontrol,
|
||||
struct snd_ctl_elem_value *ucontrol)
|
||||
{
|
||||
int reg = kcontrol->private_value & 0xFF;
|
||||
int shift = (kcontrol->private_value >> 8) & 0x0F;
|
||||
int mask = (kcontrol->private_value >> 16) & 0xFF;
|
||||
struct soc_mixer_control *mc =
|
||||
(struct soc_mixer_control *)kcontrol->private_value;
|
||||
int reg = mc->reg;
|
||||
int shift = mc->shift;
|
||||
int mask = mc->max;
|
||||
|
||||
if (((lm4857_regs[reg] >> shift) & mask) ==
|
||||
ucontrol->value.integer.value[0])
|
||||
|
|
|
@ -1444,6 +1444,9 @@ int snd_soc_init_card(struct snd_soc_device *socdev)
|
|||
snprintf(codec->card->longname, sizeof(codec->card->longname),
|
||||
"%s (%s)", card->name, codec->name);
|
||||
|
||||
/* Make sure all DAPM widgets are instantiated */
|
||||
snd_soc_dapm_new_widgets(codec);
|
||||
|
||||
ret = snd_card_register(codec->card);
|
||||
if (ret < 0) {
|
||||
printk(KERN_ERR "asoc: failed to register soundcard for %s\n",
|
||||
|
|
|
@ -297,9 +297,9 @@ static int txx9aclc_pcm_new(struct snd_card *card, struct snd_soc_dai *dai,
|
|||
static bool filter(struct dma_chan *chan, void *param)
|
||||
{
|
||||
struct txx9aclc_dmadata *dmadata = param;
|
||||
char devname[BUS_ID_SIZE + 2];
|
||||
char devname[20 + 2]; /* FIXME: old BUS_ID_SIZE + 2 */
|
||||
|
||||
sprintf(devname, "%s.%d", dmadata->dma_res->name,
|
||||
snprintf(devname, sizeof(devname), "%s.%d", dmadata->dma_res->name,
|
||||
(int)dmadata->dma_res->start);
|
||||
if (strcmp(dev_name(chan->device->dev), devname) == 0) {
|
||||
chan->private = &dmadata->dma_slave;
|
||||
|
|
Loading…
Reference in New Issue