Re: [PATCH] AWOOGA: Revert "ALSA: hda: Make use of core codec functions to sync power state"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



HI, 
> -----Original Message-----
> From: Intel-gfx [mailto:intel-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx] On Behalf Of
> Takashi Iwai
> Sent: tiistai 13. helmikuuta 2018 7.11
> To: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> Cc: intel-gfx@xxxxxxxxxxxxxxxxxxxxx; Kumar, Abhijeet
> <abhijeet.kumar@xxxxxxxxx>
> Subject: Re:  [PATCH] AWOOGA: Revert "ALSA: hda: Make use of core
> codec functions to sync power state"
> 
> 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?
> I don't understand it without any real context...
Yes. See resutls from link what is fixed by reverting:
https://patchwork.freedesktop.org/series/38097/
Test pm_rpm:
        Subgroup basic-pci-d3-state:
                fail       -> PASS       (fi-hsw-4770)
                fail       -> PASS       (fi-bdw-5557u)
        Subgroup basic-rte:
                fail       -> PASS       (fi-hsw-4770)
                fail       -> PASS       (fi-bdw-5557u)

See also: 
https://intel-gfx-ci.01.org/tree/drm-tip/igt@pm_rpm@xxxxxxxxxxxxxxxxxxxxxxx
https://intel-gfx-ci.01.org/tree/drm-tip/igt@pm_rpm@xxxxxxxxxxxxxx

That build when breakage started had these commits: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_3755/commits_short.log


> 
> 
> thanks,
> 
> Takashi
Br,
Jani Saarinen
Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo
> 
> > ---
> >  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




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux