Commit fee2fba3 authored by Takashi Iwai's avatar Takashi Iwai

ALSA: hda - Move power_save option to hda_intel.c

Move power_save option into hda_intel.c, and make a field in hda_bus,
instead of keeping module parameters in separate files.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 986862bd
...@@ -33,14 +33,6 @@ ...@@ -33,14 +33,6 @@
#include <sound/hda_hwdep.h> #include <sound/hda_hwdep.h>
#include "hda_patch.h" /* codec presets */ #include "hda_patch.h" /* codec presets */
#ifdef CONFIG_SND_HDA_POWER_SAVE
/* define this option here to hide as static */
static int power_save = CONFIG_SND_HDA_POWER_SAVE_DEFAULT;
module_param(power_save, int, 0644);
MODULE_PARM_DESC(power_save, "Automatic power-saving timeout "
"(in second, 0 = disable).");
#endif
/* /*
* vendor / preset table * vendor / preset table
*/ */
...@@ -519,6 +511,7 @@ int __devinit snd_hda_bus_new(struct snd_card *card, ...@@ -519,6 +511,7 @@ int __devinit snd_hda_bus_new(struct snd_card *card,
bus->private_data = temp->private_data; bus->private_data = temp->private_data;
bus->pci = temp->pci; bus->pci = temp->pci;
bus->modelname = temp->modelname; bus->modelname = temp->modelname;
bus->power_save = temp->power_save;
bus->ops = temp->ops; bus->ops = temp->ops;
mutex_init(&bus->cmd_mutex); mutex_init(&bus->cmd_mutex);
...@@ -2694,15 +2687,18 @@ void snd_hda_power_up(struct hda_codec *codec) ...@@ -2694,15 +2687,18 @@ void snd_hda_power_up(struct hda_codec *codec)
codec->power_transition = 0; codec->power_transition = 0;
} }
#define power_save(codec) \
((codec)->bus->power_save ? *(codec)->bus->power_save : 0)
void snd_hda_power_down(struct hda_codec *codec) void snd_hda_power_down(struct hda_codec *codec)
{ {
--codec->power_count; --codec->power_count;
if (!codec->power_on || codec->power_count || codec->power_transition) if (!codec->power_on || codec->power_count || codec->power_transition)
return; return;
if (power_save) { if (power_save(codec)) {
codec->power_transition = 1; /* avoid reentrance */ codec->power_transition = 1; /* avoid reentrance */
schedule_delayed_work(&codec->power_work, schedule_delayed_work(&codec->power_work,
msecs_to_jiffies(power_save * 1000)); msecs_to_jiffies(power_save(codec) * 1000));
} }
} }
......
...@@ -585,6 +585,7 @@ struct hda_bus_template { ...@@ -585,6 +585,7 @@ struct hda_bus_template {
void *private_data; void *private_data;
struct pci_dev *pci; struct pci_dev *pci;
const char *modelname; const char *modelname;
int *power_save;
struct hda_bus_ops ops; struct hda_bus_ops ops;
}; };
...@@ -601,6 +602,7 @@ struct hda_bus { ...@@ -601,6 +602,7 @@ struct hda_bus {
void *private_data; void *private_data;
struct pci_dev *pci; struct pci_dev *pci;
const char *modelname; const char *modelname;
int *power_save;
struct hda_bus_ops ops; struct hda_bus_ops ops;
/* codec linked list */ /* codec linked list */
......
...@@ -83,7 +83,10 @@ module_param(enable_msi, int, 0444); ...@@ -83,7 +83,10 @@ module_param(enable_msi, int, 0444);
MODULE_PARM_DESC(enable_msi, "Enable Message Signaled Interrupt (MSI)"); MODULE_PARM_DESC(enable_msi, "Enable Message Signaled Interrupt (MSI)");
#ifdef CONFIG_SND_HDA_POWER_SAVE #ifdef CONFIG_SND_HDA_POWER_SAVE
/* power_save option is defined in hda_codec.c */ static int power_save = CONFIG_SND_HDA_POWER_SAVE_DEFAULT;
module_param(power_save, int, 0644);
MODULE_PARM_DESC(power_save, "Automatic power-saving timeout "
"(in second, 0 = disable).");
/* reset the HD-audio controller in power save mode. /* reset the HD-audio controller in power save mode.
* this may give more power-saving, but will take longer time to * this may give more power-saving, but will take longer time to
...@@ -1230,6 +1233,7 @@ static int __devinit azx_codec_create(struct azx *chip, const char *model, ...@@ -1230,6 +1233,7 @@ static int __devinit azx_codec_create(struct azx *chip, const char *model,
memset(&bus_temp, 0, sizeof(bus_temp)); memset(&bus_temp, 0, sizeof(bus_temp));
bus_temp.private_data = chip; bus_temp.private_data = chip;
bus_temp.modelname = model; bus_temp.modelname = model;
bus_temp.power_save = &power_save;
bus_temp.pci = chip->pci; bus_temp.pci = chip->pci;
bus_temp.ops.command = azx_send_cmd; bus_temp.ops.command = azx_send_cmd;
bus_temp.ops.get_response = azx_get_response; bus_temp.ops.get_response = azx_get_response;
......
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