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,
int (*suspend)(snd_card_t *, unsigned int),
int (*resume)(snd_card_t *, unsigned int),
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 (*resume)(snd_card_t *, unsigned int),
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
int snd_card_pci_suspend(struct pci_dev *dev, u32 state);
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
#define snd_power_get_state(card) SNDRV_CTL_POWER_D0
#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_dev_pm_callback(card,suspend,resume,data) -EINVAL
#define snd_card_set_isa_pm_callback(card,suspend,resume,data) -EINVAL
#define SND_PCI_PM_CALLBACKS
#endif
......
......@@ -739,8 +739,7 @@ int snd_card_set_pm_callback(snd_card_t *card,
return 0;
}
#ifdef CONFIG_ISA
static int snd_isa_pm_callback(struct pm_dev *dev, pm_request_t rqst, void *data)
static int snd_generic_pm_callback(struct pm_dev *dev, pm_request_t rqst, void *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
}
/**
* 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
* @type: PM device type (PM_XXX)
* @suspend: suspend callback function
* @resume: resume callback function
* @private_data: private data to pass to the callback functions
*
* Registers the power-management and sets the lowlevel callbacks for
* the given ISA card. These callbacks are called from the ALSA's
* common PM handler and from the control API.
* the given card with the given PM type. These callbacks are called
* 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 (*resume)(snd_card_t *, unsigned int),
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)
return -ENOMEM;
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
int snd_card_pci_suspend(struct pci_dev *dev, u32 state)
......
......@@ -467,13 +467,11 @@ EXPORT_SYMBOL(snd_card_file_remove);
#ifdef CONFIG_PM
EXPORT_SYMBOL(snd_power_wait);
EXPORT_SYMBOL(snd_card_set_pm_callback);
EXPORT_SYMBOL(snd_card_set_dev_pm_callback);
#ifdef CONFIG_PCI
EXPORT_SYMBOL(snd_card_pci_suspend);
EXPORT_SYMBOL(snd_card_pci_resume);
#endif
#ifdef CONFIG_ISA
EXPORT_SYMBOL(snd_card_set_isa_pm_callback);
#endif
#endif
/* device.c */
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