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