Message ID | 20190526165836.10867-1-yung-chuan.liao@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/5] ALSA: hda - Force polling mode on CNL for fixing codec communication | expand |
On Sun, 26 May 2019 18:58:32 +0200, Bard liao wrote: > > From: Bard Liao <yung-chuan.liao@linux.intel.com> > > We observed the same issue as reported by commit a8d7bde23e7130686b7662 > ("ALSA: hda - Force polling mode on CFL for fixing codec communication") > We don't have a better solution. So apply the same workaround to CNL. > > Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com> I think this should go to 5.2-rc, as it's a bug fix, so likely I'm going to take it soon later. The question is about the rest patches. The patches 2-4 are basically to move the polling handling into HDA-core, so they could be for 5.3. And patch 5 is for SOF. This is still an open question. If this SOF fix is needed for 5.2, all patches should go as well. thanks, Takashi > --- > sound/pci/hda/hda_intel.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c > index 2ec91085fa3e..a93468ffb85c 100644 > --- a/sound/pci/hda/hda_intel.c > +++ b/sound/pci/hda/hda_intel.c > @@ -375,6 +375,7 @@ enum { > > #define IS_BXT(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0x5a98) > #define IS_CFL(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0xa348) > +#define IS_CNL(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0x9dc8) > > static char *driver_short_names[] = { > [AZX_DRIVER_ICH] = "HDA Intel", > @@ -1700,8 +1701,8 @@ static int azx_create(struct snd_card *card, struct pci_dev *pci, > else > chip->bdl_pos_adj = bdl_pos_adj[dev]; > > - /* Workaround for a communication error on CFL (bko#199007) */ > - if (IS_CFL(pci)) > + /* Workaround for a communication error on CFL (bko#199007) and CNL */ > + if (IS_CFL(pci) || IS_CNL(pci)) > chip->polling_mode = 1; > > err = azx_bus_init(chip, model[dev], &pci_hda_io_ops); > -- > 2.17.1 >
> -----Original Message----- > From: Takashi Iwai [mailto:tiwai@suse.de] > Sent: Monday, May 27, 2019 3:37 PM > To: Bard liao <yung-chuan.liao@linux.intel.com> > Cc: broonie@kernel.org; alsa-devel@alsa-project.org; > liam.r.girdwood@linux.intel.com; pierre-louis.bossart@linux.intel.com; Liao, > Bard <bard.liao@intel.com>; Yang, Libin <libin.yang@intel.com> > Subject: Re: [PATCH 1/5] ALSA: hda - Force polling mode on CNL for fixing codec > communication > > On Sun, 26 May 2019 18:58:32 +0200, > Bard liao wrote: > > > > From: Bard Liao <yung-chuan.liao@linux.intel.com> > > > > We observed the same issue as reported by commit > > a8d7bde23e7130686b7662 > > ("ALSA: hda - Force polling mode on CFL for fixing codec > > communication") We don't have a better solution. So apply the same > workaround to CNL. > > > > Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com> > > I think this should go to 5.2-rc, as it's a bug fix, so likely I'm going to take it soon > later. > > The question is about the rest patches. The patches 2-4 are basically to move > the polling handling into HDA-core, so they could be for 5.3. > And patch 5 is for SOF. This is still an open question. If this SOF fix is needed for > 5.2, all patches should go as well. I am fine if patches 2-5 are for 5.3 :) > > > thanks, > > Takashi > > > > --- > > sound/pci/hda/hda_intel.c | 5 +++-- > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c > > index 2ec91085fa3e..a93468ffb85c 100644 > > --- a/sound/pci/hda/hda_intel.c > > +++ b/sound/pci/hda/hda_intel.c > > @@ -375,6 +375,7 @@ enum { > > > > #define IS_BXT(pci) ((pci)->vendor == 0x8086 && (pci)->device == > > 0x5a98) #define IS_CFL(pci) ((pci)->vendor == 0x8086 && (pci)->device > > == 0xa348) > > +#define IS_CNL(pci) ((pci)->vendor == 0x8086 && (pci)->device == > > +0x9dc8) > > > > static char *driver_short_names[] = { > > [AZX_DRIVER_ICH] = "HDA Intel", > > @@ -1700,8 +1701,8 @@ static int azx_create(struct snd_card *card, struct > pci_dev *pci, > > else > > chip->bdl_pos_adj = bdl_pos_adj[dev]; > > > > - /* Workaround for a communication error on CFL (bko#199007) */ > > - if (IS_CFL(pci)) > > + /* Workaround for a communication error on CFL (bko#199007) and > CNL */ > > + if (IS_CFL(pci) || IS_CNL(pci)) > > chip->polling_mode = 1; > > > > err = azx_bus_init(chip, model[dev], &pci_hda_io_ops); > > -- > > 2.17.1 > >
On Tue, 28 May 2019 02:10:02 +0200, Liao, Bard wrote: > > > -----Original Message----- > > From: Takashi Iwai [mailto:tiwai@suse.de] > > Sent: Monday, May 27, 2019 3:37 PM > > To: Bard liao <yung-chuan.liao@linux.intel.com> > > Cc: broonie@kernel.org; alsa-devel@alsa-project.org; > > liam.r.girdwood@linux.intel.com; pierre-louis.bossart@linux.intel.com; Liao, > > Bard <bard.liao@intel.com>; Yang, Libin <libin.yang@intel.com> > > Subject: Re: [PATCH 1/5] ALSA: hda - Force polling mode on CNL for fixing codec > > communication > > > > On Sun, 26 May 2019 18:58:32 +0200, > > Bard liao wrote: > > > > > > From: Bard Liao <yung-chuan.liao@linux.intel.com> > > > > > > We observed the same issue as reported by commit > > > a8d7bde23e7130686b7662 > > > ("ALSA: hda - Force polling mode on CFL for fixing codec > > > communication") We don't have a better solution. So apply the same > > workaround to CNL. > > > > > > Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com> > > > > I think this should go to 5.2-rc, as it's a bug fix, so likely I'm going to take it soon > > later. > > > > The question is about the rest patches. The patches 2-4 are basically to move > > the polling handling into HDA-core, so they could be for 5.3. > > And patch 5 is for SOF. This is still an open question. If this SOF fix is needed for > > 5.2, all patches should go as well. > > I am fine if patches 2-5 are for 5.3 :) OK, now I applied the patch 1 to for-linus branch. The rest are put into topic/hda-polling-mode branch, and merged to for-next branch. Mark, if you need the SOF change into your tree, pull topic/hda-polling-mode branch. It's an immutable branch. thanks, Takashi
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 2ec91085fa3e..a93468ffb85c 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -375,6 +375,7 @@ enum { #define IS_BXT(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0x5a98) #define IS_CFL(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0xa348) +#define IS_CNL(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0x9dc8) static char *driver_short_names[] = { [AZX_DRIVER_ICH] = "HDA Intel", @@ -1700,8 +1701,8 @@ static int azx_create(struct snd_card *card, struct pci_dev *pci, else chip->bdl_pos_adj = bdl_pos_adj[dev]; - /* Workaround for a communication error on CFL (bko#199007) */ - if (IS_CFL(pci)) + /* Workaround for a communication error on CFL (bko#199007) and CNL */ + if (IS_CFL(pci) || IS_CNL(pci)) chip->polling_mode = 1; err = azx_bus_init(chip, model[dev], &pci_hda_io_ops);