Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 133122
b: refs/heads/master
c: bb6ac72
h: refs/heads/master
v: v3
  • Loading branch information
Takashi Iwai committed Mar 13, 2009
1 parent 40fc442 commit d3e38a1
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 13 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 307282c8990c5658604b9fda8a64a9a07079b850
refs/heads/master: bb6ac72fb19c6676eb8bafa8e3b8bf970a2294a2
15 changes: 8 additions & 7 deletions trunk/sound/pci/hda/hda_codec.c
Original file line number Diff line number Diff line change
Expand Up @@ -842,6 +842,9 @@ static void snd_hda_codec_free(struct hda_codec *codec)
kfree(codec);
}

static void hda_set_power_state(struct hda_codec *codec, hda_nid_t fg,
unsigned int power_state);

/**
* snd_hda_codec_new - create a HDA codec
* @bus: the bus to assign
Expand Down Expand Up @@ -941,6 +944,11 @@ int /*__devinit*/ snd_hda_codec_new(struct hda_bus *bus, unsigned int codec_addr
if (bus->modelname)
codec->modelname = kstrdup(bus->modelname, GFP_KERNEL);

/* power-up all before initialization */
hda_set_power_state(codec,
codec->afg ? codec->afg : codec->mfg,
AC_PWRST_D0);

if (do_init) {
err = snd_hda_codec_configure(codec);
if (err < 0)
Expand Down Expand Up @@ -2413,19 +2421,12 @@ EXPORT_SYMBOL_HDA(snd_hda_build_controls);
int snd_hda_codec_build_controls(struct hda_codec *codec)
{
int err = 0;
/* fake as if already powered-on */
hda_keep_power_on(codec);
/* then fire up */
hda_set_power_state(codec,
codec->afg ? codec->afg : codec->mfg,
AC_PWRST_D0);
hda_exec_init_verbs(codec);
/* continue to initialize... */
if (codec->patch_ops.init)
err = codec->patch_ops.init(codec);
if (!err && codec->patch_ops.build_controls)
err = codec->patch_ops.build_controls(codec);
snd_hda_power_down(codec);
if (err < 0)
return err;
return 0;
Expand Down
14 changes: 9 additions & 5 deletions trunk/sound/pci/hda/hda_hwdep.c
Original file line number Diff line number Diff line change
Expand Up @@ -176,25 +176,29 @@ static int reconfig_codec(struct hda_codec *codec)
{
int err;

snd_hda_power_up(codec);
snd_printk(KERN_INFO "hda-codec: reconfiguring\n");
err = snd_hda_codec_reset(codec);
if (err < 0) {
snd_printk(KERN_ERR
"The codec is being used, can't reconfigure.\n");
return err;
goto error;
}
err = snd_hda_codec_configure(codec);
if (err < 0)
return err;
goto error;
/* rebuild PCMs */
err = snd_hda_codec_build_pcms(codec);
if (err < 0)
return err;
goto error;
/* rebuild mixers */
err = snd_hda_codec_build_controls(codec);
if (err < 0)
return err;
return snd_card_register(codec->bus->card);
goto error;
err = snd_card_register(codec->bus->card);
error:
snd_hda_power_down(codec);
return err;
}

/*
Expand Down

0 comments on commit d3e38a1

Please sign in to comment.