--- init.c	2004-04-08 15:17:39.038216193 +0200
+++ init.c	2004-04-08 16:16:07.923889354 +0200
@@ -1,3 +1,4 @@
+#define __NO_VERSION__
 /*
  *  Initialization routines
  *  Copyright (c) by Jaroslav Kysela <perex@suse.cz>
@@ -197,7 +198,9 @@
 		f_ops = &s_f_ops->f_ops;
 
 		memset(f_ops, 0, sizeof(*f_ops));
+#ifndef LINUX_2_2
 		f_ops->owner = file->f_op->owner;
+#endif
 		f_ops->release = file->f_op->release;
 		f_ops->poll = snd_disconnect_poll;
 
@@ -759,6 +762,31 @@
 #endif
 
 #ifdef CONFIG_PCI
+#ifdef PCI_OLD_SUSPEND
+void snd_card_pci_suspend(struct pci_dev *dev)
+{
+	snd_card_t *card = pci_get_drvdata(dev);
+	if (! card || ! card->pm_suspend)
+		return;
+	if (card->power_state == SNDRV_CTL_POWER_D3hot)
+		return;
+	/* FIXME: correct state value? */
+	card->pm_suspend(card, 0);
+}
+
+void snd_card_pci_resume(struct pci_dev *dev)
+{
+	snd_card_t *card = pci_get_drvdata(dev);
+	if (! card || ! card->pm_resume)
+		return;
+	if (card->power_state == SNDRV_CTL_POWER_D0)
+		return;
+	/* FIXME: correct state value? */
+	card->pm_resume(card, 0);
+}
+
+#else
+
 int snd_card_pci_suspend(struct pci_dev *dev, u32 state)
 {
 	snd_card_t *card = pci_get_drvdata(dev);
@@ -780,6 +808,8 @@
 	/* FIXME: correct state value? */
 	return card->pm_resume(card, 0);
 }
+
+#endif
 #endif
 
 #endif /* CONFIG_PM */
