Update of /cvsroot/alsa/alsa-kernel/ppc In directory sc8-pr-cvs1:/tmp/cvs-serv3971
Modified Files: awacs.c pmac.c pmac.h tumbler.c Log Message: clean up PM codes Index: awacs.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/ppc/awacs.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- awacs.c 31 May 2003 11:44:56 -0000 1.21 +++ awacs.c 18 Jun 2003 11:09:58 -0000 1.22 @@ -92,18 +92,9 @@ snd_pmac_awacs_write(chip, val | (reg << 12)); } -static void do_mdelay(int msec, int can_schedule) -{ - if (can_schedule) { - set_current_state(TASK_UNINTERRUPTIBLE); - schedule_timeout((msec * HZ + 999) / 1000); - } else - mdelay(msec); -} - #ifdef CONFIG_PMAC_PBOOK /* Recalibrate chip */ -static void screamer_recalibrate(pmac_t *chip, int can_schedule) +static void screamer_recalibrate(pmac_t *chip) { if (chip->model != PMAC_SCREAMER) return; @@ -114,7 +105,7 @@ snd_pmac_awacs_write_noreg(chip, 1, chip->awacs_reg[1]); if (chip->manufacturer == 0x1) /* delay for broken crystal part */ - do_mdelay(750, can_schedule); + big_mdelay(750); snd_pmac_awacs_write_noreg(chip, 1, chip->awacs_reg[1] | MASK_RECALIBRATE | MASK_CMUTE | MASK_AMUTE); snd_pmac_awacs_write_noreg(chip, 1, chip->awacs_reg[1]); @@ -122,7 +113,7 @@ } #else -#define screamer_recalibrate(chip, can_schedule) /* NOP */ +#define screamer_recalibrate(chip) /* NOP */ #endif @@ -631,7 +622,7 @@ /* * restore all registers */ -static void awacs_restore_all_regs(pmac_t *chip, int can_schedule) +static void awacs_restore_all_regs(pmac_t *chip) { snd_pmac_awacs_write_noreg(chip, 0, chip->awacs_reg[0]); snd_pmac_awacs_write_noreg(chip, 1, chip->awacs_reg[1]); @@ -655,19 +646,19 @@ { if (machine_is_compatible("PowerBook3,1") || machine_is_compatible("PowerBook3,2")) { - do_mdelay(100, 0); + big_mdelay(100); snd_pmac_awacs_write_reg(chip, 1, chip->awacs_reg[1] & ~MASK_PAROUT); - do_mdelay(300, 0); + big_mdelay(300); } - awacs_restore_all_regs(chip, 0); + awacs_restore_all_regs(chip); if (chip->model == PMAC_SCREAMER) { /* reset power bits in reg 6 */ mdelay(5); snd_pmac_awacs_write_noreg(chip, 6, chip->awacs_reg[6]); } - screamer_recalibrate(chip, 0); + screamer_recalibrate(chip); #ifdef PMAC_AMP_AVAIL if (chip->mixer_data) { awacs_amp_t *amp = chip->mixer_data; @@ -775,9 +766,9 @@ chip->awacs_reg[7] = 0; } - awacs_restore_all_regs(chip, 1); + awacs_restore_all_regs(chip); chip->manufacturer = (in_le32(&chip->awacs->codec_stat) >> 8) & 0xf; - screamer_recalibrate(chip, 1); + screamer_recalibrate(chip); chip->revision = (in_le32(&chip->awacs->codec_stat) >> 12) & 0xf; #ifdef PMAC_AMP_AVAIL Index: pmac.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/ppc/pmac.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- pmac.c 5 Jun 2003 11:10:52 -0000 1.22 +++ pmac.c 18 Jun 2003 11:09:58 -0000 1.23 @@ -736,7 +736,7 @@ pmu_suspend(); feature_clear(chip->node, FEATURE_Sound_power); feature_clear(chip->node, FEATURE_Sound_CLK_enable); - mdelay(1000); /* XXX */ + big_mdelay(1000); /* XXX */ pmu_resume(); } if (chip->is_pbook_3400) { Index: pmac.h =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/ppc/pmac.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- pmac.h 31 May 2003 11:56:38 -0000 1.11 +++ pmac.h 18 Jun 2003 11:09:58 -0000 1.12 @@ -201,6 +201,11 @@ int snd_pmac_add_automute(pmac_t *chip); +#define big_mdelay(msec) do {\ + set_current_state(TASK_UNINTERRUPTIBLE);\ + schedule_timeout(((msec) * HZ + 999) / 1000);\ +} while (0) + #ifndef PMAC_SUPPORT_PCM_BEEP #define snd_pmac_attach_beep(chip) 0 #define snd_pmac_beep_stop(chip) /**/ Index: tumbler.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/ppc/tumbler.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- tumbler.c 5 Jun 2003 11:10:53 -0000 1.21 +++ tumbler.c 18 Jun 2003 11:09:58 -0000 1.22 @@ -27,7 +27,6 @@ #include <linux/kmod.h> #include <linux/slab.h> #include <linux/interrupt.h> -#include <linux/workqueue.h> #include <sound/core.h> #include <asm/io.h> #include <asm/irq.h> @@ -93,9 +92,6 @@ unsigned int mix_vol[VOL_IDX_LAST_MIX][2]; /* stereo volumes for tas3004 */ int drc_range; int drc_enable; -#ifdef CONFIG_PMAC_PBOOK - struct work_struct resume_workq; -#endif } pmac_tumbler_t; @@ -870,23 +866,21 @@ pmac_tumbler_t *mix = chip->mixer_data; write_audio_gpio(&mix->audio_reset, 0); - mdelay(200); + big_mdelay(200); write_audio_gpio(&mix->audio_reset, 1); - mdelay(100); + big_mdelay(100); write_audio_gpio(&mix->audio_reset, 0); - mdelay(100); + big_mdelay(100); } #ifdef CONFIG_PMAC_PBOOK /* resume mixer */ -/* we call the i2c transfer in a workqueue because it may need either schedule() - * or completion from timer interrupts. - */ -static void tumbler_resume_work(void *arg) +static void tumbler_resume(pmac_t *chip) { - pmac_t *chip = (pmac_t *)arg; pmac_tumbler_t *mix = chip->mixer_data; + snd_assert(mix, return); + tumbler_reset_audio(chip); if (mix->i2c.client) { if (tumbler_init_client(&mix->i2c) < 0) @@ -909,16 +903,6 @@ tumbler_set_master_volume(mix); if (chip->update_automute) chip->update_automute(chip, 0); -} - -static void tumbler_resume(pmac_t *chip) -{ - pmac_tumbler_t *mix = chip->mixer_data; - snd_assert(mix, return); - INIT_WORK(&mix->resume_workq, tumbler_resume_work, chip); - if (schedule_work(&mix->resume_workq)) - return; - printk(KERN_ERR "ALSA tumbler: cannot schedule resume-workqueue.\n"); } #endif ------------------------------------------------------- This SF.Net email is sponsored by: INetU Attention Web Developers & Consultants: Become An INetU Hosting Partner. Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission! INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php _______________________________________________ Alsa-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-cvslog