Hi, > -----Original Message----- > From: Intel-gfx [mailto:intel-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx] On Behalf Of > Kumar, Abhijeet > Sent: tiistai 13. helmikuuta 2018 7.18 > To: Takashi Iwai <tiwai@xxxxxxx>; Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: intel-gfx@xxxxxxxxxxxxxxxxxxxxx > Subject: Re: [PATCH] AWOOGA: Revert "ALSA: hda: Make use of core > codec functions to sync power state" > > > > On 2/13/2018 10:41 AM, Takashi Iwai wrote: > > On Mon, 12 Feb 2018 18:29:53 +0100, > > Chris Wilson wrote: > >> This reverts commit 3b5b899ca67db07a4c4825911072221f99e157e2. > >> > >> Fixes: 3b5b899ca67d ("ALSA: hda: Make use of core codec functions to > >> sync power state") > >> Cc: Abhijeet Kumar <abhijeet.kumar@xxxxxxxxx> > >> Cc: Takashi Iwai <tiwai@xxxxxxx> > > Did the patch break anything? > Not sure, why it would break anything. As there was literally no functional > change. You can also doing so by yourself just looking at resutls from revert, but I also sent mail to explain. > > Chris, > Can you help us in understanding the issue caused by this patch ? > > Warm Regards, > Abhijeet > > I don't understand it without any real context... > > > > > > thanks, > > > > Takashi > > > >> --- > >> sound/pci/hda/hda_codec.c | 28 +++++++++++++++++++++++++++- > >> sound/pci/hda/hda_local.h | 6 +----- > >> 2 files changed, 28 insertions(+), 6 deletions(-) > >> > >> diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c > >> index 5bc3a7468e17..e018ecbf78a8 100644 > >> --- a/sound/pci/hda/hda_codec.c > >> +++ b/sound/pci/hda/hda_codec.c > >> @@ -2702,6 +2702,32 @@ void snd_hda_codec_set_power_to_all(struct > hda_codec *codec, hda_nid_t fg, > >> } > >> EXPORT_SYMBOL_GPL(snd_hda_codec_set_power_to_all); > >> > >> +/* > >> + * wait until the state is reached, returns the current state */ > >> +static unsigned int hda_sync_power_state(struct hda_codec *codec, > >> + hda_nid_t fg, > >> + unsigned int power_state) > >> +{ > >> + unsigned long end_time = jiffies + msecs_to_jiffies(500); > >> + unsigned int state, actual_state; > >> + > >> + for (;;) { > >> + state = snd_hda_codec_read(codec, fg, 0, > >> + AC_VERB_GET_POWER_STATE, 0); > >> + if (state & AC_PWRST_ERROR) > >> + break; > >> + actual_state = (state >> 4) & 0x0f; > >> + if (actual_state == power_state) > >> + break; > >> + if (time_after_eq(jiffies, end_time)) > >> + break; > >> + /* wait until the codec reachs to the target state */ > >> + msleep(1); > >> + } > >> + return state; > >> +} > >> + > >> /** > >> * snd_hda_codec_eapd_power_filter - A power filter callback for EAPD > >> * @codec: the HDA codec > >> @@ -2764,7 +2790,7 @@ static unsigned int hda_set_power_state(struct > hda_codec *codec, > >> state); > >> snd_hda_codec_set_power_to_all(codec, fg, > power_state); > >> } > >> - state = snd_hda_sync_power_state(codec, fg, power_state); > >> + state = hda_sync_power_state(codec, fg, power_state); > >> if (!(state & AC_PWRST_ERROR)) > >> break; > >> } > >> diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h > >> index 321e78baa63c..5b5c324c99b9 100644 > >> --- a/sound/pci/hda/hda_local.h > >> +++ b/sound/pci/hda/hda_local.h > >> @@ -622,11 +622,7 @@ snd_hda_check_power_state(struct hda_codec > *codec, hda_nid_t nid, > >> { > >> return snd_hdac_check_power_state(&codec->core, nid, target_state); > >> } > >> -static inline bool snd_hda_sync_power_state(struct hda_codec *codec, > >> - hda_nid_t nid, unsigned int target_state) > >> -{ > >> - return snd_hdac_sync_power_state(&codec->core, nid, target_state); > >> -} > >> + > >> unsigned int snd_hda_codec_eapd_power_filter(struct hda_codec *codec, > >> hda_nid_t nid, > >> unsigned int power_state); > >> -- > >> 2.16.1 > >> > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx