Commit 0f2c1fd4 authored by Jaroslav Kysela's avatar Jaroslav Kysela

ALSA CVS update - Takashi Iwai <tiwai@suse.de>

ALSA Core
- added the generic PM callback registration.
- rewritten ISA callbacks to use the new one.
parent 83632df9
...@@ -205,10 +205,12 @@ int snd_card_set_pm_callback(snd_card_t *card, ...@@ -205,10 +205,12 @@ int snd_card_set_pm_callback(snd_card_t *card,
int (*suspend)(snd_card_t *, unsigned int), int (*suspend)(snd_card_t *, unsigned int),
int (*resume)(snd_card_t *, unsigned int), int (*resume)(snd_card_t *, unsigned int),
void *private_data); void *private_data);
int snd_card_set_isa_pm_callback(snd_card_t *card, int snd_card_set_dev_pm_callback(snd_card_t *card, int type,
int (*suspend)(snd_card_t *, unsigned int), int (*suspend)(snd_card_t *, unsigned int),
int (*resume)(snd_card_t *, unsigned int), int (*resume)(snd_card_t *, unsigned int),
void *private_data); void *private_data);
#define snd_card_set_isa_pm_callback(card,suspend,resume,data) \
snd_card_set_dev_pm_callback(card, PM_ISA_DEV, suspend, resume, data)
#ifndef SND_PCI_PM_CALLBACKS #ifndef SND_PCI_PM_CALLBACKS
int snd_card_pci_suspend(struct pci_dev *dev, u32 state); int snd_card_pci_suspend(struct pci_dev *dev, u32 state);
int snd_card_pci_resume(struct pci_dev *dev); int snd_card_pci_resume(struct pci_dev *dev);
...@@ -222,6 +224,7 @@ static inline int snd_power_wait(snd_card_t *card, unsigned int state, struct fi ...@@ -222,6 +224,7 @@ static inline int snd_power_wait(snd_card_t *card, unsigned int state, struct fi
#define snd_power_get_state(card) SNDRV_CTL_POWER_D0 #define snd_power_get_state(card) SNDRV_CTL_POWER_D0
#define snd_power_change_state(card, state) do { (void)(card); } while (0) #define snd_power_change_state(card, state) do { (void)(card); } while (0)
#define snd_card_set_pm_callback(card,suspend,resume,data) -EINVAL #define snd_card_set_pm_callback(card,suspend,resume,data) -EINVAL
#define snd_card_set_dev_pm_callback(card,suspend,resume,data) -EINVAL
#define snd_card_set_isa_pm_callback(card,suspend,resume,data) -EINVAL #define snd_card_set_isa_pm_callback(card,suspend,resume,data) -EINVAL
#define SND_PCI_PM_CALLBACKS #define SND_PCI_PM_CALLBACKS
#endif #endif
......
...@@ -739,8 +739,7 @@ int snd_card_set_pm_callback(snd_card_t *card, ...@@ -739,8 +739,7 @@ int snd_card_set_pm_callback(snd_card_t *card,
return 0; return 0;
} }
#ifdef CONFIG_ISA static int snd_generic_pm_callback(struct pm_dev *dev, pm_request_t rqst, void *data)
static int snd_isa_pm_callback(struct pm_dev *dev, pm_request_t rqst, void *data)
{ {
snd_card_t *card = dev->data; snd_card_t *card = dev->data;
...@@ -758,28 +757,29 @@ static int snd_isa_pm_callback(struct pm_dev *dev, pm_request_t rqst, void *data ...@@ -758,28 +757,29 @@ static int snd_isa_pm_callback(struct pm_dev *dev, pm_request_t rqst, void *data
} }
/** /**
* snd_card_set_isa_pm_callback - set the ISA power-management callbacks * snd_card_set_dev_pm_callback - set the generic power-management callbacks
* @card: soundcard structure * @card: soundcard structure
* @type: PM device type (PM_XXX)
* @suspend: suspend callback function * @suspend: suspend callback function
* @resume: resume callback function * @resume: resume callback function
* @private_data: private data to pass to the callback functions * @private_data: private data to pass to the callback functions
* *
* Registers the power-management and sets the lowlevel callbacks for * Registers the power-management and sets the lowlevel callbacks for
* the given ISA card. These callbacks are called from the ALSA's * the given card with the given PM type. These callbacks are called
* common PM handler and from the control API. * from the ALSA's common PM handler and from the control API.
*/ */
int snd_card_set_isa_pm_callback(snd_card_t *card, int snd_card_set_dev_pm_callback(snd_card_t *card, int type,
int (*suspend)(snd_card_t *, unsigned int), int (*suspend)(snd_card_t *, unsigned int),
int (*resume)(snd_card_t *, unsigned int), int (*resume)(snd_card_t *, unsigned int),
void *private_data) void *private_data)
{ {
card->pm_dev = pm_register(PM_ISA_DEV, 0, snd_isa_pm_callback); card->pm_dev = pm_register(type, 0, snd_generic_pm_callback);
if (! card->pm_dev) if (! card->pm_dev)
return -ENOMEM; return -ENOMEM;
card->pm_dev->data = card; card->pm_dev->data = card;
return snd_card_set_pm_callback(card, suspend, resume, private_data); snd_card_set_pm_callback(card, suspend, resume, private_data);
return 0;
} }
#endif
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
int snd_card_pci_suspend(struct pci_dev *dev, u32 state) int snd_card_pci_suspend(struct pci_dev *dev, u32 state)
......
...@@ -467,13 +467,11 @@ EXPORT_SYMBOL(snd_card_file_remove); ...@@ -467,13 +467,11 @@ EXPORT_SYMBOL(snd_card_file_remove);
#ifdef CONFIG_PM #ifdef CONFIG_PM
EXPORT_SYMBOL(snd_power_wait); EXPORT_SYMBOL(snd_power_wait);
EXPORT_SYMBOL(snd_card_set_pm_callback); EXPORT_SYMBOL(snd_card_set_pm_callback);
EXPORT_SYMBOL(snd_card_set_dev_pm_callback);
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
EXPORT_SYMBOL(snd_card_pci_suspend); EXPORT_SYMBOL(snd_card_pci_suspend);
EXPORT_SYMBOL(snd_card_pci_resume); EXPORT_SYMBOL(snd_card_pci_resume);
#endif #endif
#ifdef CONFIG_ISA
EXPORT_SYMBOL(snd_card_set_isa_pm_callback);
#endif
#endif #endif
/* device.c */ /* device.c */
EXPORT_SYMBOL(snd_device_new); EXPORT_SYMBOL(snd_device_new);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment