rendered paste body--- hx4700_audio.c~ 2006-04-14 18:00:34.000000000 +0200+++ hx4700_audio.c 2006-04-15 20:17:47.000000000 +0200@@ -76,6 +76,7 @@ unsigned long flags; int irq; + snd_printk (KERN_INFO "snd_hx4700_audio_hp_detection_on()\n"); irq = HX4700_IRQ(EARPHONE_DET_N); if (request_irq(irq, snd_hx4700_audio_hp_isr, SA_INTERRUPT | SA_SAMPLE_RANDOM, "hp jack", NULL) != 0)@@ -89,6 +90,7 @@ static void snd_hx4700_audio_hp_detection_off(void) {+ snd_printk (KERN_INFO "snd_hx4700_audio_hp_detection_off()\n"); free_irq(HX4700_IRQ(EARPHONE_DET_N), NULL); } @@ -101,6 +103,7 @@ static int snd_hx4700_audio_activate(void) {+ snd_printk (KERN_INFO "snd_hx4700_audio_activate()\n"); /* AK4641 on PXA2xx I2C bus */ ak.i2c_client.adapter = i2c_get_adapter(0); @@ -113,28 +116,33 @@ static void snd_hx4700_audio_deactivate(void) {+ snd_printk (KERN_INFO "snd_hx4700_audio_deactivate()\n"); snd_hx4700_audio_hp_detection_off(); snd_ak4641_deactivate(&ak); } static int snd_hx4700_audio_open_stream(int stream) {+ snd_printk (KERN_INFO "snd_hx4700_open_stream(%d)\n", stream); return snd_ak4641_open_stream(&ak, stream); } static void snd_hx4700_audio_close_stream(int stream) {+ snd_printk (KERN_INFO "snd_hx4700_close_stream(%d)\n", stream); snd_ak4641_close_stream(&ak, stream); } static int snd_hx4700_audio_add_mixer_controls(struct snd_card *acard) {+ snd_printk (KERN_INFO "snd_hx4700_add_mixer_controls(%p)\n", acard); return snd_ak4641_add_mixer_controls(&ak, acard); } #ifdef CONFIG_PM static int snd_hx4700_audio_suspend(pm_message_t state) {+ snd_printk (KERN_INFO "snd_hx4700_audio_suspend\n"); snd_hx4700_audio_hp_detection_off(); snd_ak4641_suspend(&ak, state); return 0;@@ -142,6 +150,7 @@ static int snd_hx4700_audio_resume(void) {+ snd_printk (KERN_INFO "snd_hx4700_audio_resume\n"); snd_ak4641_resume(&ak); snd_hx4700_audio_hp_detection_on(); return 0;--- ak4641.c~ 2006-04-14 17:14:54.000000000 +0200+++ ak4641.c 2006-04-15 20:25:15.000000000 +0200@@ -206,6 +206,7 @@ static int snd_ak4641_actl_playback_volume_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) {+ snd_printk (KERN_INFO "snd_ak4641_actl_playback_volume_info\n"); uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; uinfo->value.integer.min = 0;@@ -218,6 +219,7 @@ { struct snd_ak4641 *ak = (struct snd_ak4641 *) kcontrol->private_data; + snd_printk (KERN_INFO "snd_ak4641_actl_playback_volume_get\n"); snd_ak4641_lock(ak); ucontrol->value.integer.value[0] = INV_RANGE(ak->regs[R_ATTL], 0xff); ucontrol->value.integer.value[1] = INV_RANGE(ak->regs[R_ATTR], 0xff);@@ -230,6 +232,7 @@ { struct snd_ak4641 *ak = (struct snd_ak4641 *) kcontrol->private_data; + snd_printk (KERN_INFO "snd_ak4641_actl_playback_volume_put\n"); snd_ak4641_lock(ak); ak->regs[R_ATTL] = INV_RANGE(ucontrol->value.integer.value[0], 0xff); ak->regs[R_ATTR] = INV_RANGE(ucontrol->value.integer.value[1], 0xff);@@ -242,6 +245,7 @@ static int snd_ak4641_actl_mic_gain_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) {+ snd_printk (KERN_INFO "snd_ak4641_actl_mic_gain_info\n"); uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 1; uinfo->value.integer.min = 0;@@ -254,6 +258,7 @@ { struct snd_ak4641 *ak = (struct snd_ak4641 *) kcontrol->private_data; + snd_printk (KERN_INFO "snd_ak4641_mic_gain_get\n"); ucontrol->value.integer.value[0] = ak->regs[R_PGA]; return 0; }@@ -263,6 +268,7 @@ { struct snd_ak4641 *ak = (struct snd_ak4641 *) kcontrol->private_data; + snd_printk (KERN_INFO "snd_ak4641_mic_gain_put\n"); snd_ak4641_lock(ak); ak->regs[R_PGA] = ucontrol->value.integer.value[0]; snd_ak4641_reg_changed(ak, R_PGA);@@ -287,6 +293,7 @@ static int snd_ak4641_actl_bool_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) {+ snd_printk (KERN_INFO "snd_ak4641_actl_bool_info\n"); uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; return 0;@@ -299,6 +306,7 @@ struct snd_ak4641_uctl_bool *uctl = (struct snd_ak4641_uctl_bool *) kcontrol->private_value; + snd_printk (KERN_INFO "snd_ak4641_bool_get\n"); ucontrol->value.integer.value[0] = uctl->get(ak); return 0; }@@ -310,16 +318,19 @@ struct snd_ak4641_uctl_bool *uctl = (struct snd_ak4641_uctl_bool *) kcontrol->private_value; + snd_printk (KERN_INFO "snd_ak4641_actl_bool_put\n"); return uctl->set(ak, ucontrol->value.integer.value[0]); } static int snd_ak4641_uctl_playback_switch_get(struct snd_ak4641 *ak) {+ snd_printk (KERN_INFO "snd_ak4641_uctl_playback_switch_get\n"); return (ak->regs[R_DAC] & R_DAC_SMUTE) == 0x00; } static int snd_ak4641_uctl_playback_switch_set(struct snd_ak4641 *ak, int on) {+ snd_printk (KERN_INFO "snd_ak4641_uctl_playback_switch_set\n"); snd_ak4641_lock(ak); ak->regs[R_DAC] = WRITE_MASK(ak->regs[R_DAC], on ? 0x00 : R_DAC_SMUTE, R_DAC_SMUTE);@@ -330,11 +341,13 @@ static int snd_ak4641_uctl_mic_boost_get(struct snd_ak4641 *ak) {+ snd_printk (KERN_INFO "snd_ak4641_uctl_mic_boost_get\n"); return (ak->regs[R_MIC] & R_MIC_MGAIN) == R_MIC_MGAIN; } static int snd_ak4641_uctl_mic_boost_set(struct snd_ak4641 *ak, int on) {+ snd_printk (KERN_INFO "snd_ak4641_uctl_mic_boost_set\n"); snd_ak4641_lock(ak); ak->regs[R_MIC] = WRITE_MASK(ak->regs[R_MIC], on ? R_MIC_MGAIN : 0x00, R_MIC_MGAIN);@@ -361,6 +374,7 @@ void snd_ak4641_hp_connected(struct snd_ak4641 *ak, int connected) {+ snd_printk (KERN_INFO "snd_ak4641_hp_connected(%d)\n", connected); snd_ak4641_lock(ak); if (connected != ak->hp_connected) { ak->hp_connected = connected;@@ -424,6 +438,7 @@ static void snd_ak4641_headphone_on(struct snd_ak4641 *ak, int on) {+ snd_printk (KERN_INFO "snd_ak4641_headphone_on(%d)\n", on); if (on) { ak->regs[R_PM1] = WRITE_MASK(ak->regs[R_PM1], R_PM1_PMLO, R_PM1_PMLO); snd_ak4641_hwsync_write(ak, R_PM1);@@ -444,6 +459,7 @@ static void snd_ak4641_speaker_on(struct snd_ak4641 *ak, int on) {+ snd_printk (KERN_INFO "snd_ak4641_ak4641_speaker_on(%d)\n", on); if (on) { ak->regs[R_PM1] = WRITE_MASK(ak->regs[R_PM2], R_PM2_PMMO2, R_PM2_PMMO2); snd_ak4641_hwsync_write(ak, R_PM2);@@ -462,6 +478,7 @@ static inline int snd_ak4641_power_on(struct snd_ak4641 *ak) {+ snd_printk (KERN_INFO "snd_ak4641_power_on\n"); ak->reset_pin(1); ak->power_on_chip(1); msleep(1);@@ -472,6 +489,7 @@ static inline int snd_ak4641_power_off(struct snd_ak4641 *ak) {+ snd_printk (KERN_INFO "snd_ak4641_power_off\n"); ak->powered_on = 0; ak->power_on_chip(0); return 0;@@ -479,16 +497,19 @@ static inline void snd_ak4641_headphone_out_on(struct snd_ak4641 *ak, int on) {+ snd_printk (KERN_INFO "snd_ak4641_headphone_out_on\n"); if (ak->headphone_out_on) ak->headphone_out_on(on); } static inline void snd_ak4641_speaker_out_on(struct snd_ak4641 *ak, int on) {+ snd_printk (KERN_INFO "snd_ak4641_speaker_out_on\n"); if (ak->speaker_out_on) ak->speaker_out_on(on); } static int snd_ak4641_playback_on(struct snd_ak4641 *ak) {+ snd_printk (KERN_INFO "snd_ak4641_playback_on\n"); if (ak->playback_on) return 0; ak->regs[R_PM2] = WRITE_MASK(ak->regs[R_PM2],@@ -506,6 +527,7 @@ static int snd_ak4641_playback_off(struct snd_ak4641 *ak) {+ snd_printk (KERN_INFO "snd_ak4641_playback_off\n"); if (!ak->playback_on) return 0; ak->playback_on = 0;@@ -527,6 +549,7 @@ int mic = 0; u8 r_mic; + snd_printk (KERN_INFO "snd_ak4641_select_mic\n"); if (ak->hp_connected) { /* check headset mic */ ak->regs[R_MIC] = WRITE_MASK(ak->regs[R_MIC], R_MIC_MPWRE, R_MIC_MPWRE);@@ -546,6 +569,7 @@ static int snd_ak4641_capture_on(struct snd_ak4641 *ak) {+ snd_printk (KERN_INFO "snd_ak4641_capture_on\n"); if (ak->capture_on) return 0; if (!ak->playback_on) {@@ -567,6 +591,7 @@ static int snd_ak4641_capture_off(struct snd_ak4641 *ak) {+ snd_printk (KERN_INFO "snd_ak4641_capture_off\n"); if (!ak->capture_on) return 0; ak->regs[R_MIC] = WRITE_MASK(ak->regs[R_MIC],@@ -586,6 +611,7 @@ int snd_ak4641_open_stream(struct snd_ak4641 *ak, int stream) {+ snd_printk (KERN_INFO "snd_ak4641_open_stream(%d)\n", stream); snd_ak4641_lock(ak); if (stream == SNDRV_PCM_STREAM_PLAYBACK) { ak->playback_stream_opened = 1;@@ -600,6 +626,7 @@ int snd_ak4641_close_stream(struct snd_ak4641 *ak, int stream) {+ snd_printk (KERN_INFO "snd_ak4641_close_stream(%d)\n", stream); snd_ak4641_lock(ak); if (stream == SNDRV_PCM_STREAM_PLAYBACK) { ak->playback_stream_opened = 0;@@ -614,6 +641,7 @@ static int snd_ak4641_init_regs(struct snd_ak4641 *ak) {+ snd_printk (KERN_INFO "snd_ak4641_init_regs\n"); snd_ak4641_hwsync_read_all(ak); //@@ MEMO: add some configs@@ -628,6 +656,7 @@ int snd_ak4641_suspend(struct snd_ak4641 *ak, pm_message_t state) {+ snd_printk (KERN_INFO "snd_ak4641_suspend\n"); snd_ak4641_lock(ak); if (ak->playback_on) snd_ak4641_playback_off(ak); if (ak->capture_on) snd_ak4641_capture_off(ak);@@ -638,6 +667,7 @@ int snd_ak4641_resume(struct snd_ak4641 *ak) {+ snd_printk (KERN_INFO "snd_ak4641_resume\n"); snd_ak4641_lock(ak); snd_ak4641_power_on(ak); snd_ak4641_hwsync_write_all(ak);@@ -649,6 +679,7 @@ static void snd_ak4641_init_ak(struct snd_ak4641 *ak) {+ snd_printk (KERN_INFO "snd_ak4641_init_ak\n"); init_MUTEX(&ak->sem); ak->i2c_client.driver = &snd_ak4641_i2c_driver; }@@ -657,6 +688,7 @@ { int ret = 0; + snd_printk (KERN_INFO "snd_ak4641_activate\n"); snd_ak4641_init_ak(ak); snd_ak4641_lock(ak); snd_ak4641_power_on(ak);@@ -678,6 +710,7 @@ void snd_ak4641_deactivate(struct snd_ak4641 *ak) {+ snd_printk (KERN_INFO "snd_ak4641_deactivate\n"); snd_ak4641_lock(ak); snd_ak4641_hp_detected_free(ak); snd_ak4641_i2c_detach(ak);@@ -687,6 +720,7 @@ int snd_ak4641_add_mixer_controls(struct snd_ak4641 *ak, struct snd_card *card) {+ snd_printk (KERN_INFO "snd_ak4641_add_mixer_controls\n"); snd_ak4641_lock(ak); snd_ctl_add(card, snd_ctl_new1(&snd_ak4641_actl_playback_volume, ak)); snd_ctl_add(card, snd_ctl_new1(&snd_ak4641_actl_playback_switch, ak));