[ALSA] vx-driver - Fix PM support

Fix PM support on VX drivers (vxpocket and vx222).

Signed-off-by: Takashi Iwai <tiwai@suse.de>
diff --git a/sound/pcmcia/vx/vxpocket.c b/sound/pcmcia/vx/vxpocket.c
index 0096297..5bb079d 100644
--- a/sound/pcmcia/vx/vxpocket.c
+++ b/sound/pcmcia/vx/vxpocket.c
@@ -342,9 +342,9 @@
 	case CS_EVENT_PM_SUSPEND:
 		snd_printdd(KERN_DEBUG "SUSPEND\n");
 		link->state |= DEV_SUSPEND;
-		if (chip && chip->card->pm_suspend) {
+		if (chip) {
 			snd_printdd(KERN_DEBUG "snd_vx_suspend calling\n");
-			chip->card->pm_suspend(chip->card, PMSG_SUSPEND);
+			snd_vx_suspend(chip, PMSG_SUSPEND);
 		}
 		/* Fall through... */
 	case CS_EVENT_RESET_PHYSICAL:
@@ -362,9 +362,9 @@
 			//struct snd_vxpocket *vxp = (struct snd_vxpocket *)chip;
 			snd_printdd(KERN_DEBUG "requestconfig...\n");
 			pcmcia_request_configuration(link->handle, &link->conf);
-			if (chip && chip->card->pm_resume) {
+			if (chip) {
 				snd_printdd(KERN_DEBUG "calling snd_vx_resume\n");
-				chip->card->pm_resume(chip->card);
+				snd_vx_resume(chip);
 			}
 		}
 		snd_printdd(KERN_DEBUG "resume done!\n");
@@ -407,6 +407,7 @@
 		snd_card_free(card);
 		return NULL;
 	}
+	card->private_data = vxp;
 
 	vxp->index = i;
 	card_alloc |= 1 << i;