Update of /cvsroot/alsa/alsa-kernel/arm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15639/arm

Modified Files:
        sa11xx-uda1341.c 
Log Message:
- clean up PM codes using the new PM callback functions.


Index: sa11xx-uda1341.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/arm/sa11xx-uda1341.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- sa11xx-uda1341.c    7 Apr 2004 17:48:10 -0000       1.14
+++ sa11xx-uda1341.c    3 May 2004 17:36:50 -0000       1.15
@@ -137,7 +137,6 @@
 }audio_stream_t;
 
 typedef struct snd_card_sa11xx_uda1341 {
-       struct pm_dev *pm_dev;        
        snd_card_t *card;
        struct l3_client *uda1341;
        snd_pcm_t *pcm;
@@ -868,12 +867,10 @@
 
 #ifdef CONFIG_PM
 
-static void snd_sa11xx_uda1341_suspend(sa11xx_uda1341_t *chip)
+static int snd_sa11xx_uda1341_suspend(snd_card_t *card, unsigned int state)
 {
-       snd_card_t *card = chip->card;
+       sa11xx_uda1341_t *chip = snd_magic_cast(sa11x_uda1341_t, 
card->pm_private_data, return -EINVAL);
 
-       if (card->power_state == SNDRV_CTL_POWER_D3hot)
-               return;
        snd_pcm_suspend_all(chip->pcm);
 #ifdef HH_VERSION      
        sa1100_dma_sleep(chip->s[SNDRV_PCM_STREAM_PLAYBACK].dmach);
@@ -884,14 +881,13 @@
        l3_command(chip->uda1341, CMD_SUSPEND, NULL);
        sa11xx_uda1341_audio_shutdown(chip);
        snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
+       return 0;
 }
 
-static void snd_sa11xx_uda1341_resume(sa11xx_uda1341_t *chip)
+static int snd_sa11xx_uda1341_resume(snd_card_t *card, unsigned int state)
 {
-       snd_card_t *card = chip->card;
+       sa11xx_uda1341_t *chip = snd_magic_cast(sa11x_uda1341_t, 
card->pm_private_data, return -EINVAL);
 
-       if (card->power_state == SNDRV_CTL_POWER_D0)
-               return;
        sa11xx_uda1341_audio_init(chip);
        l3_command(chip->uda1341, CMD_RESUME, NULL);
 #ifdef HH_VERSION      
@@ -901,50 +897,14 @@
        //FIXME
 #endif
        snd_power_change_state(card, SNDRV_CTL_POWER_D0);
-}
-
-static int sa11xx_uda1341_pm_callback(struct pm_dev *pm_dev, pm_request_t req, void 
*data)
-{
-       sa11xx_uda1341_t *chip = pm_dev->data;
-        
-       switch (req) {
-       case PM_SUSPEND: /* enter D1-D3 */
-               snd_sa11xx_uda1341_suspend(chip);
-               break;
-       case PM_RESUME:  /* enter D0 */
-               snd_sa11xx_uda1341_resume(chip);
-               break;
-       }
-       return 0;
-}
-
-static int sa11xx_uda1341_set_power_state(snd_card_t *card, unsigned int power_state)
-{
-       sa11xx_uda1341_t *chip = snd_magic_cast(sa11xx_uda1341_t, 
card->power_state_private_data, return);
-
-       switch (power_state) {
-       case SNDRV_CTL_POWER_D0:
-       case SNDRV_CTL_POWER_D1:
-       case SNDRV_CTL_POWER_D2:
-               snd_sa11xx_uda1341_resume(chip);
-               break;
-       case SNDRV_CTL_POWER_D3hot:
-       case SNDRV_CTL_POWER_D3cold:
-               snd_sa11xx_uda1341_suspend(chip);
-               break;
-       default:
-               return -EINVAL;
-       }
        return 0;
 }
-
 #endif /* COMFIG_PM */
 
 void snd_sa11xx_uda1341_free(snd_card_t *card)
 {
        sa11xx_uda1341_t *chip = snd_magic_cast(sa11xx_uda1341_t, card->private_data, 
return);
 
-       pm_unregister(chip->pm_dev);
        audio_dma_free(&chip->s[SNDRV_PCM_STREAM_PLAYBACK]);
        audio_dma_free(&chip->s[SNDRV_PCM_STREAM_CAPTURE]);
        sa11xx_uda1341 = NULL;
@@ -985,15 +945,10 @@
        if ((err = snd_card_sa11xx_uda1341_pcm(sa11xx_uda1341, 0)) < 0)
                goto nodev;
         
-       
-#ifdef CONFIG_PM
-       card->power_state_private_data = sa11xx_uda1341;
-       card->set_power_state = sa11xx_uda1341_set_power_state;
-       sa11xx_uda1341->pm_dev = pm_register(PM_SYS_DEV, 0, 
sa11xx_uda1341_pm_callback);
-       if (sa11xx_uda1341->pm_dev)
-               sa11xx_uda1341->pm_dev->data = sa11xx_uda1341;
-#endif
-        
+       snd_card_set_dev_pm_callback(card, PM_SYS_DEV,
+                                    snd_sa11xx_uda1341_suspend, 
snd_sa11_uda1341_resume,
+                                    sa11xx_uda1341);
+
        strcpy(card->driver, "UDA1341");
        strcpy(card->shortname, "H3600 UDA1341TS");
        sprintf(card->longname, "Compaq iPAQ H3600 with Philips UDA1341TS");



-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog

Reply via email to