mirror of
https://github.com/torvalds/linux.git
synced 2026-06-09 23:23:53 +02:00
Merge branch 'develop' of zyf@10.10.10.29:/home/rockchip/kernel into develop
This commit is contained in:
commit
f491f9a162
4
Makefile
4
Makefile
|
|
@ -1596,3 +1596,7 @@ FORCE:
|
|||
# Declare the contents of the .PHONY variable as phony. We keep that
|
||||
# information in a variable so we can use it in if_changed and friends.
|
||||
.PHONY: $(PHONY)
|
||||
|
||||
|
||||
%.o: %.uu prepare scripts FORCE
|
||||
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.32.27
|
||||
# Fri Dec 17 10:31:38 2010
|
||||
# Fri Dec 17 17:20:56 2010
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
|
|
@ -883,8 +883,73 @@ CONFIG_SSB_POSSIBLE=y
|
|||
# CONFIG_MFD_PCF50633 is not set
|
||||
# CONFIG_AB3100_CORE is not set
|
||||
# CONFIG_REGULATOR is not set
|
||||
# CONFIG_MEDIA_SUPPORT is not set
|
||||
CONFIG_MEDIA_SUPPORT=y
|
||||
|
||||
#
|
||||
# Multimedia core support
|
||||
#
|
||||
CONFIG_VIDEO_DEV=y
|
||||
CONFIG_VIDEO_V4L2_COMMON=y
|
||||
CONFIG_VIDEO_ALLOW_V4L1=y
|
||||
CONFIG_VIDEO_V4L1_COMPAT=y
|
||||
# CONFIG_DVB_CORE is not set
|
||||
CONFIG_VIDEO_MEDIA=y
|
||||
|
||||
#
|
||||
# Multimedia drivers
|
||||
#
|
||||
# CONFIG_MEDIA_ATTACH is not set
|
||||
CONFIG_MEDIA_TUNER=y
|
||||
# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
|
||||
CONFIG_MEDIA_TUNER_SIMPLE=y
|
||||
CONFIG_MEDIA_TUNER_TDA8290=y
|
||||
CONFIG_MEDIA_TUNER_TDA9887=y
|
||||
CONFIG_MEDIA_TUNER_TEA5761=y
|
||||
CONFIG_MEDIA_TUNER_TEA5767=y
|
||||
CONFIG_MEDIA_TUNER_MT20XX=y
|
||||
CONFIG_MEDIA_TUNER_XC2028=y
|
||||
CONFIG_MEDIA_TUNER_XC5000=y
|
||||
CONFIG_MEDIA_TUNER_MC44S803=y
|
||||
CONFIG_VIDEO_V4L2=y
|
||||
CONFIG_VIDEO_V4L1=y
|
||||
CONFIG_VIDEOBUF_GEN=y
|
||||
CONFIG_VIDEOBUF_DMA_CONTIG=y
|
||||
CONFIG_VIDEO_CAPTURE_DRIVERS=y
|
||||
# CONFIG_VIDEO_ADV_DEBUG is not set
|
||||
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
|
||||
CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
|
||||
# CONFIG_VIDEO_VIVI is not set
|
||||
# CONFIG_VIDEO_CPIA is not set
|
||||
# CONFIG_VIDEO_SAA5246A is not set
|
||||
# CONFIG_VIDEO_SAA5249 is not set
|
||||
CONFIG_SOC_CAMERA=y
|
||||
# CONFIG_SOC_CAMERA_MT9M001 is not set
|
||||
# CONFIG_SOC_CAMERA_MT9M111 is not set
|
||||
# CONFIG_SOC_CAMERA_MT9T031 is not set
|
||||
# CONFIG_SOC_CAMERA_MT9V022 is not set
|
||||
# CONFIG_SOC_CAMERA_TW9910 is not set
|
||||
# CONFIG_SOC_CAMERA_PLATFORM is not set
|
||||
# CONFIG_SOC_CAMERA_OV772X is not set
|
||||
# CONFIG_SOC_CAMERA_OV2655 is not set
|
||||
CONFIG_SOC_CAMERA_OV2659=y
|
||||
# CONFIG_SOC_CAMERA_OV9650 is not set
|
||||
# CONFIG_SOC_CAMERA_OV3640 is not set
|
||||
CONFIG_SOC_CAMERA_OV5642=y
|
||||
CONFIG_OV5642_AUTOFOCUS=y
|
||||
# CONFIG_OV5642_FIXEDFOCUS is not set
|
||||
# CONFIG_VIDEO_SH_MOBILE_CEU is not set
|
||||
CONFIG_VIDEO_RK29=y
|
||||
CONFIG_VIDEO_RK29_WORK_ONEFRAME=y
|
||||
# CONFIG_VIDEO_RK29_WORK_PINGPONG is not set
|
||||
CONFIG_VIDEO_RK29_WORK_IPP=y
|
||||
# CONFIG_VIDEO_RK29_WORK_NOT_IPP is not set
|
||||
CONFIG_RADIO_ADAPTERS=y
|
||||
# CONFIG_I2C_SI4713 is not set
|
||||
# CONFIG_RADIO_SI4713 is not set
|
||||
# CONFIG_RADIO_SI470X is not set
|
||||
# CONFIG_RADIO_TEA5764 is not set
|
||||
# CONFIG_SMS_SIANO_MDTV is not set
|
||||
# CONFIG_DAB is not set
|
||||
|
||||
#
|
||||
# Graphics support
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ struct ts_p1003 {
|
|||
struct input_dev *input;
|
||||
char phys[32];
|
||||
struct delayed_work work;
|
||||
struct workqueue_struct *wq;
|
||||
|
||||
struct i2c_client *client;
|
||||
struct multitouch_event mt_event;
|
||||
|
|
@ -96,6 +97,8 @@ static void p1003_report_event(struct ts_p1003 *ts,struct multitouch_event *tc)
|
|||
ts->pendown = pandown;
|
||||
input_sync(input);
|
||||
}
|
||||
|
||||
#if defined (Singltouch_Mode)
|
||||
static void p1003_report_single_event(struct ts_p1003 *ts,struct multitouch_event *tc)
|
||||
{
|
||||
struct input_dev *input = ts->input;
|
||||
|
|
@ -114,6 +117,8 @@ static void p1003_report_single_event(struct ts_p1003 *ts,struct multitouch_even
|
|||
sakura_dbg_report_key_msg("%s x =0x%x,y = 0x%x \n",ts->status?"down":"up",tc->point_data[cid].x,tc->point_data[cid].y);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline int p1003_read_values(struct ts_p1003 *ts, struct multitouch_event *tc)
|
||||
{
|
||||
int data;
|
||||
|
|
@ -164,13 +169,9 @@ static void p1003_work(struct work_struct *work)
|
|||
|
||||
out:
|
||||
if (ts->pendown)
|
||||
schedule_delayed_work(&ts->work,
|
||||
msecs_to_jiffies(10));
|
||||
queue_delayed_work(ts->wq, &ts->work, msecs_to_jiffies(10));
|
||||
else
|
||||
enable_irq(ts->irq);
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
static irqreturn_t p1003_irq(int irq, void *handle)
|
||||
|
|
@ -179,8 +180,7 @@ static irqreturn_t p1003_irq(int irq, void *handle)
|
|||
#if 1
|
||||
if (!ts->get_pendown_state || likely(ts->get_pendown_state())) {
|
||||
disable_irq_nosync(ts->irq);
|
||||
schedule_delayed_work(&ts->work,
|
||||
msecs_to_jiffies(10));
|
||||
queue_delayed_work(ts->wq, &ts->work, 0);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
@ -228,7 +228,8 @@ static int __devinit p1003_probe(struct i2c_client *client,
|
|||
ts->input = input_dev;
|
||||
ts->status =0 ;// fjp add by 2010-9-30
|
||||
ts->pendown = 0; // fjp add by 2010-10-06
|
||||
|
||||
|
||||
ts->wq = create_rt_workqueue("p1003_wq");
|
||||
INIT_DELAYED_WORK(&ts->work, p1003_work);
|
||||
|
||||
ts->model = pdata->model;
|
||||
|
|
|
|||
|
|
@ -388,3 +388,12 @@ endif
|
|||
# information in a variable se we can use it in if_changed and friends.
|
||||
|
||||
.PHONY: $(PHONY)
|
||||
|
||||
|
||||
# .uu -> .o
|
||||
# ---------------------------------------------------------------------------
|
||||
quiet_cmd_uudecode_o_uu = DECODE $@
|
||||
cmd_uudecode_o_uu = uudecode -o $@ $<
|
||||
|
||||
$(obj)/%.o: $(src)/%.uu FORCE
|
||||
$(call if_changed,uudecode_o_uu)
|
||||
|
|
|
|||
|
|
@ -119,8 +119,8 @@
|
|||
#define WM8900_REG_CLOCKING1_BCLK_MASK (~0x01e)
|
||||
#define WM8900_REG_CLOCKING1_OPCLK_MASK (~0x7000)
|
||||
|
||||
#define WM8900_REG_CLOCKING2_ADC_CLKDIV 0xe0
|
||||
#define WM8900_REG_CLOCKING2_DAC_CLKDIV 0x1c
|
||||
#define WM8900_REG_CLOCKING2_ADC_CLKDIV 0x1c
|
||||
#define WM8900_REG_CLOCKING2_DAC_CLKDIV 0xe0
|
||||
|
||||
#define WM8900_REG_DACCTRL_MUTE 0x004
|
||||
#define WM8900_REG_DACCTRL_DAC_SB_FILT 0x100
|
||||
|
|
@ -440,11 +440,11 @@ SOC_SINGLE("LINEOUT2 LP -12dB", WM8900_REG_LOUTMIXCTL1,
|
|||
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new wm8900_dapm_loutput2_control =
|
||||
SOC_DAPM_SINGLE("LINEOUT2L Switch", WM8900_REG_POWER3, 6, 1, 0);
|
||||
static const struct snd_kcontrol_new wm8900_dapm_loutput2_control[] = {
|
||||
SOC_DAPM_SINGLE("LINEOUT2L Switch", WM8900_REG_POWER3, 6, 1, 0),};
|
||||
|
||||
static const struct snd_kcontrol_new wm8900_dapm_routput2_control =
|
||||
SOC_DAPM_SINGLE("LINEOUT2R Switch", WM8900_REG_POWER3, 5, 1, 0);
|
||||
static const struct snd_kcontrol_new wm8900_dapm_routput2_control[] = {
|
||||
SOC_DAPM_SINGLE("LINEOUT2R Switch", WM8900_REG_POWER3, 5, 1, 0),};
|
||||
|
||||
static const struct snd_kcontrol_new wm8900_loutmix_controls[] = {
|
||||
SOC_DAPM_SINGLE("LINPUT3 Bypass Switch", WM8900_REG_LOUTMIXCTL1, 7, 1, 0),
|
||||
|
|
@ -477,15 +477,20 @@ SOC_DAPM_SINGLE("Input PGA Switch", WM8900_REG_ADCPATH, 2, 1, 0),
|
|||
};
|
||||
|
||||
static const struct snd_kcontrol_new wm8900_linpga_controls[] = {
|
||||
SOC_DAPM_SINGLE("LINPUT1 Switch", WM8900_REG_INCTL, 6, 1, 0),
|
||||
SOC_DAPM_SINGLE("LINPUT2 Switch", WM8900_REG_INCTL, 5, 1, 0),
|
||||
SOC_DAPM_SINGLE("LINPUT3 Switch", WM8900_REG_INCTL, 4, 1, 0),
|
||||
SOC_SINGLE("MIC LINPUT1 Switch", WM8900_REG_INCTL, 6, 1, 0),
|
||||
SOC_SINGLE("MIC LINPUT2 Switch", WM8900_REG_INCTL, 5, 1, 0),
|
||||
SOC_SINGLE("MIC LINPUT3 Switch", WM8900_REG_INCTL, 4, 1, 0),
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new wm8900_rinpga_controls[] = {
|
||||
SOC_DAPM_SINGLE("RINPUT1 Switch", WM8900_REG_INCTL, 2, 1, 0),
|
||||
SOC_DAPM_SINGLE("RINPUT2 Switch", WM8900_REG_INCTL, 1, 1, 0),
|
||||
SOC_DAPM_SINGLE("RINPUT3 Switch", WM8900_REG_INCTL, 0, 1, 0),
|
||||
SOC_SINGLE("MIC RINPUT1 Switch", WM8900_REG_INCTL, 2, 1, 0),
|
||||
SOC_SINGLE("MIC RINPUT2 Switch", WM8900_REG_INCTL, 1, 1, 0),
|
||||
SOC_SINGLE("MIC RINPUT3 Switch", WM8900_REG_INCTL, 0, 1, 0),
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new wm8900_inmix_controls[] = {
|
||||
SOC_SINGLE("LINPUT PGA Switch", WM8900_REG_ADCPATH, 6, 1, 0),
|
||||
SOC_SINGLE("RINPUT PGA Switch", WM8900_REG_ADCPATH, 2, 1, 0),
|
||||
};
|
||||
|
||||
static const char *wm9700_lp_mux[] = { "Disabled", "Enabled" };
|
||||
|
|
@ -687,8 +692,39 @@ static int wm8900_hw_params(struct snd_pcm_substream *substream,
|
|||
snd_soc_write(codec, WM8900_REG_LOUT2CTL, 0x126);
|
||||
snd_soc_write(codec, WM8900_REG_ROUT2CTL, 0x126);
|
||||
snd_soc_write(codec, WM8900_REG_HPCTL1, 0xC0);
|
||||
}
|
||||
} else {
|
||||
snd_soc_write(codec, WM8900_REG_POWER1, 0x211D);
|
||||
snd_soc_write(codec, WM8900_REG_POWER2, 0xC03F);
|
||||
|
||||
//User for asound.conf File
|
||||
snd_soc_write(codec, WM8900_REG_LADC_DV, 0x00C1);
|
||||
snd_soc_write(codec, WM8900_REG_RADC_DV, 0x01C0);
|
||||
|
||||
snd_soc_write(codec, WM8900_REG_INCTL, 0x0066);
|
||||
|
||||
snd_soc_write(codec, WM8900_REG_LINVOL, 0x0115);
|
||||
snd_soc_write(codec, WM8900_REG_RINVOL, 0x0115);
|
||||
snd_soc_write(codec, WM8900_REG_INBOOSTMIX1, 0x0042);
|
||||
snd_soc_write(codec, WM8900_REG_INBOOSTMIX2, 0x0042);
|
||||
snd_soc_write(codec, WM8900_REG_ADCPATH, 0x0077);
|
||||
|
||||
|
||||
/*
|
||||
// MIC to DAC
|
||||
snd_soc_write(codec, 0x01, 0x211D);
|
||||
snd_soc_write(codec, 0x02, 0xC03C);
|
||||
snd_soc_write(codec, 0x03, 0x00EC);
|
||||
snd_soc_write(codec, 0x16, 0x0115);
|
||||
snd_soc_write(codec, 0x17, 0x0115);
|
||||
snd_soc_write(codec, 0x1A, 0x0077);
|
||||
|
||||
snd_soc_write(codec, 0x2E, 0x00DD);
|
||||
snd_soc_write(codec, 0x35, 0x011F);
|
||||
snd_soc_write(codec, 0x36, 0x011F);
|
||||
snd_soc_write(codec, 0x3A, 0x00C0);
|
||||
*/
|
||||
}
|
||||
WM8900_DBG("<<<<<<<<<<<<<<<<<<<<Exit:%s, %d \n", __FUNCTION__, __LINE__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -1424,6 +1460,13 @@ static int wm8900_probe(struct platform_device *pdev)
|
|||
|
||||
snd_soc_add_controls(codec, wm8900_snd_controls,
|
||||
ARRAY_SIZE(wm8900_snd_controls));
|
||||
snd_soc_add_controls(codec, wm8900_linpga_controls,
|
||||
ARRAY_SIZE(wm8900_linpga_controls));
|
||||
snd_soc_add_controls(codec, wm8900_rinpga_controls,
|
||||
ARRAY_SIZE(wm8900_rinpga_controls));
|
||||
snd_soc_add_controls(codec, wm8900_inmix_controls,
|
||||
ARRAY_SIZE(wm8900_inmix_controls));
|
||||
|
||||
wm8900_add_widgets(codec);
|
||||
|
||||
ret = snd_soc_init_card(socdev);
|
||||
|
|
|
|||
|
|
@ -407,7 +407,9 @@ int rockchip_i2s_resume(struct snd_soc_dai *cpu_dai)
|
|||
#define rockchip_i2s_resume NULL
|
||||
#endif
|
||||
|
||||
#define ROCKCHIP_I2S_RATES SNDRV_PCM_RATE_48000
|
||||
#define ROCKCHIP_I2S_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |\
|
||||
SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 |\
|
||||
SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000)
|
||||
|
||||
static struct snd_soc_dai_ops rockchip_i2s_dai_ops = {
|
||||
.trigger = rockchip_i2s_trigger,
|
||||
|
|
|
|||
|
|
@ -36,6 +36,8 @@ static int rk29_hw_params(struct snd_pcm_substream *substream,
|
|||
struct snd_soc_pcm_runtime *rtd = substream->private_data;
|
||||
struct snd_soc_dai *codec_dai = rtd->dai->codec_dai;
|
||||
struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai;
|
||||
unsigned int pll_out = 0;
|
||||
unsigned int lrclk = 0;
|
||||
int ret;
|
||||
|
||||
DBG("Enter::%s----%d\n",__FUNCTION__,__LINE__);
|
||||
|
|
@ -61,7 +63,7 @@ static int rk29_hw_params(struct snd_pcm_substream *substream,
|
|||
#endif
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
#if 0
|
||||
|
||||
/* set cpu DAI configuration */
|
||||
#if defined (CONFIG_SND_RK29_CODEC_SOC_SLAVE)
|
||||
ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_I2S |
|
||||
|
|
@ -73,13 +75,39 @@ static int rk29_hw_params(struct snd_pcm_substream *substream,
|
|||
#endif
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
switch(params_rate(params)) {
|
||||
case 8000:
|
||||
case 16000:
|
||||
case 24000:
|
||||
case 32000:
|
||||
case 48000:
|
||||
pll_out = 12288000;
|
||||
break;
|
||||
case 11025:
|
||||
case 22050:
|
||||
case 44100:
|
||||
pll_out = 11289600;
|
||||
break;
|
||||
default:
|
||||
DBG("Enter:%s, %d, Error rate=%d\n",__FUNCTION__,__LINE__,params_rate(params));
|
||||
return -EINVAL;
|
||||
break;
|
||||
}
|
||||
DBG("Enter:%s, %d, rate=%d\n",__FUNCTION__,__LINE__,params_rate(params));
|
||||
|
||||
pll_out = 12000000;
|
||||
//snd_soc_dai_set_pll(codec_dai, NULL, 12000000, pll_out);
|
||||
|
||||
snd_soc_dai_set_clkdiv(codec_dai, WM8900_BCLK_DIV, WM8900_BCLK_DIV_4);
|
||||
snd_soc_dai_set_clkdiv(codec_dai, WM8900_LRCLK_MODE, 0x400);
|
||||
snd_soc_dai_set_clkdiv(codec_dai, WM8900_DAC_LRCLK,0x40);
|
||||
|
||||
snd_soc_dai_set_clkdiv(codec_dai, WM8900_DAC_LRCLK,(pll_out/4)/params_rate(params));
|
||||
snd_soc_dai_set_clkdiv(codec_dai, WM8900_ADC_LRCLK,(pll_out/4)/params_rate(params));
|
||||
DBG("Enter:%s, %d, LRCK=%d\n",__FUNCTION__,__LINE__,(pll_out/4)/params_rate(params));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user