[00/13] PCI: Define Intel PCI IDs and use them in drivers

Message ID 20230711125726.3509391-1-amadeuszx.slawinski@linux.intel.com
Headers
Series PCI: Define Intel PCI IDs and use them in drivers |

Message

Amadeusz Sławiński July 11, 2023, 12:57 p.m. UTC
  PCI IDs for Intel HDA are duplicated across quite a few drivers, due to
various configurations and historical reasons. Currently almost all uses
of HDA PCI IDs have corresponding comment telling which platform it is.
Additionally there are some inconsistencies between drivers about which
ID corresponds to which device.

Simplify things, by adding PCI IDs to global header and make use of them
in drivers. This allows for removal of comments by having IDs themselves
being self explanatory. Additionally it allows for removal of existing
inconsistencies by having one source of truth.

Changes from RFC:
 - Sort Intel PCI IDs before adding new ones
 - Fix ordering of new PCI IDs (Andy)
 - Define all used Intel IDs (Andy)
 - Add macros for controller type detection (Andy/Bjorn)
 - Add set of patches changing to use above macro (Andy/Bjorn)
 - Use PCI_DEVICE_DATA for Intel IDs in sound/pci/hda/hda_intel.c (Andy)
 - Commit message wording (Andy)
 - Remove unnecessary tabs (Andy)

Amadeusz Sławiński (13):
  PCI: Sort Intel PCI IDs by number
  PCI: Add Intel Audio DSP devices to pci_ids.h
  ALSA: hda: Add controller matching macros
  ALSA: hda: Use global PCI match macro
  ALSA: hda/i915:  Use global PCI match macro
  ASoC: Intel: Skylake: Use global PCI match macro
  ALSA: intel-dsp-config: Convert to PCI device IDs defines
  ALSA: hda: Convert to PCI device IDs defines
  ASoC: Intel: avs: Convert to PCI device IDs defines
  ASoC: Intel: avs: Convert to PCI device IDs defines
  ASoC: Intel: Skylake: Convert to PCI device IDs defines
  ASoC: SOF: Intel: Convert to PCI device IDs defines
  ASoC: Intel: sst: Convert to PCI device IDs defines

 include/linux/pci_ids.h                | 104 +++++--
 include/sound/hda_codec.h              |   3 -
 include/sound/hdaudio.h                |  27 ++
 sound/hda/hdac_i915.c                  |   7 +-
 sound/hda/intel-dsp-config.c           | 119 ++++----
 sound/pci/hda/hda_intel.c              | 373 ++++++++++---------------
 sound/soc/intel/atom/sst/sst.c         |   3 +-
 sound/soc/intel/atom/sst/sst.h         |   1 -
 sound/soc/intel/atom/sst/sst_pci.c     |   4 +-
 sound/soc/intel/avs/board_selection.c  |  10 +-
 sound/soc/intel/avs/core.c             |  16 +-
 sound/soc/intel/skylake/skl-messages.c |  16 +-
 sound/soc/intel/skylake/skl-pcm.c      |   3 +-
 sound/soc/intel/skylake/skl.c          |  36 +--
 sound/soc/sof/intel/pci-apl.c          |   9 +-
 sound/soc/sof/intel/pci-cnl.c          |  15 +-
 sound/soc/sof/intel/pci-icl.c          |  12 +-
 sound/soc/sof/intel/pci-mtl.c          |   3 +-
 sound/soc/sof/intel/pci-skl.c          |   6 +-
 sound/soc/sof/intel/pci-tgl.c          |  45 +--
 sound/soc/sof/intel/pci-tng.c          |   3 +-
 21 files changed, 384 insertions(+), 431 deletions(-)
  

Comments

Pierre-Louis Bossart July 11, 2023, 3:24 p.m. UTC | #1
On 7/11/23 14:57, Amadeusz Sławiński wrote:
> PCI IDs for Intel HDA are duplicated across quite a few drivers, due to
> various configurations and historical reasons. Currently almost all uses
> of HDA PCI IDs have corresponding comment telling which platform it is.
> Additionally there are some inconsistencies between drivers about which
> ID corresponds to which device.
> 
> Simplify things, by adding PCI IDs to global header and make use of them
> in drivers. This allows for removal of comments by having IDs themselves
> being self explanatory. Additionally it allows for removal of existing
> inconsistencies by having one source of truth.

I'd like to hear from Takashi and Mark on how this would work, we have
to provide new PCI IDs for both trees using a common 'pci_ids.h' file.

It's not science fiction, we have new PCI IDs for ArrowLake and LunarLake:

https://github.com/thesofproject/linux/pull/4437
https://github.com/thesofproject/linux/pull/4425

> Changes from RFC:
>  - Sort Intel PCI IDs before adding new ones
>  - Fix ordering of new PCI IDs (Andy)
>  - Define all used Intel IDs (Andy)
>  - Add macros for controller type detection (Andy/Bjorn)
>  - Add set of patches changing to use above macro (Andy/Bjorn)
>  - Use PCI_DEVICE_DATA for Intel IDs in sound/pci/hda/hda_intel.c (Andy)
>  - Commit message wording (Andy)
>  - Remove unnecessary tabs (Andy)
> 
> Amadeusz Sławiński (13):
>   PCI: Sort Intel PCI IDs by number
>   PCI: Add Intel Audio DSP devices to pci_ids.h
>   ALSA: hda: Add controller matching macros
>   ALSA: hda: Use global PCI match macro
>   ALSA: hda/i915:  Use global PCI match macro
>   ASoC: Intel: Skylake: Use global PCI match macro
>   ALSA: intel-dsp-config: Convert to PCI device IDs defines
>   ALSA: hda: Convert to PCI device IDs defines
>   ASoC: Intel: avs: Convert to PCI device IDs defines
>   ASoC: Intel: avs: Convert to PCI device IDs defines
>   ASoC: Intel: Skylake: Convert to PCI device IDs defines
>   ASoC: SOF: Intel: Convert to PCI device IDs defines
>   ASoC: Intel: sst: Convert to PCI device IDs defines
> 
>  include/linux/pci_ids.h                | 104 +++++--
>  include/sound/hda_codec.h              |   3 -
>  include/sound/hdaudio.h                |  27 ++
>  sound/hda/hdac_i915.c                  |   7 +-
>  sound/hda/intel-dsp-config.c           | 119 ++++----
>  sound/pci/hda/hda_intel.c              | 373 ++++++++++---------------
>  sound/soc/intel/atom/sst/sst.c         |   3 +-
>  sound/soc/intel/atom/sst/sst.h         |   1 -
>  sound/soc/intel/atom/sst/sst_pci.c     |   4 +-
>  sound/soc/intel/avs/board_selection.c  |  10 +-
>  sound/soc/intel/avs/core.c             |  16 +-
>  sound/soc/intel/skylake/skl-messages.c |  16 +-
>  sound/soc/intel/skylake/skl-pcm.c      |   3 +-
>  sound/soc/intel/skylake/skl.c          |  36 +--
>  sound/soc/sof/intel/pci-apl.c          |   9 +-
>  sound/soc/sof/intel/pci-cnl.c          |  15 +-
>  sound/soc/sof/intel/pci-icl.c          |  12 +-
>  sound/soc/sof/intel/pci-mtl.c          |   3 +-
>  sound/soc/sof/intel/pci-skl.c          |   6 +-
>  sound/soc/sof/intel/pci-tgl.c          |  45 +--
>  sound/soc/sof/intel/pci-tng.c          |   3 +-
>  21 files changed, 384 insertions(+), 431 deletions(-)
>
  
Mark Brown July 11, 2023, 3:36 p.m. UTC | #2
On Tue, Jul 11, 2023 at 05:24:07PM +0200, Pierre-Louis Bossart wrote:
> On 7/11/23 14:57, Amadeusz Sławiński wrote:

> > Simplify things, by adding PCI IDs to global header and make use of them
> > in drivers. This allows for removal of comments by having IDs themselves
> > being self explanatory. Additionally it allows for removal of existing
> > inconsistencies by having one source of truth.

> I'd like to hear from Takashi and Mark on how this would work, we have
> to provide new PCI IDs for both trees using a common 'pci_ids.h' file.

We can probably just agree on a tree to apply things and work from
there.  It does make for a bit more friction though, you're right there.
  
Takashi Iwai July 11, 2023, 3:42 p.m. UTC | #3
On Tue, 11 Jul 2023 17:36:20 +0200,
Mark Brown wrote:
> 
> On Tue, Jul 11, 2023 at 05:24:07PM +0200, Pierre-Louis Bossart wrote:
> > On 7/11/23 14:57, Amadeusz Sławiński wrote:
> 
> > > Simplify things, by adding PCI IDs to global header and make use of them
> > > in drivers. This allows for removal of comments by having IDs themselves
> > > being self explanatory. Additionally it allows for removal of existing
> > > inconsistencies by having one source of truth.
> 
> > I'd like to hear from Takashi and Mark on how this would work, we have
> > to provide new PCI IDs for both trees using a common 'pci_ids.h' file.
> 
> We can probably just agree on a tree to apply things and work from
> there.

Yes, simply apply on top of 6.5-rc1 or such a stable point and tag it.
Then other trees can merging it.

I can do it if both Bjorn and Mark agree (after all patches get
reviewed and no objection comes up).


Takashi
  
Mark Brown July 11, 2023, 3:58 p.m. UTC | #4
On Tue, Jul 11, 2023 at 05:42:13PM +0200, Takashi Iwai wrote:

> I can do it if both Bjorn and Mark agree (after all patches get
> reviewed and no objection comes up).

Fine by me, I acked on the basis that it probably makes more sense in
someone else's tree.
  
Bjorn Helgaas July 11, 2023, 4:19 p.m. UTC | #5
On Tue, Jul 11, 2023 at 05:42:13PM +0200, Takashi Iwai wrote:
> On Tue, 11 Jul 2023 17:36:20 +0200, Mark Brown wrote:
> > On Tue, Jul 11, 2023 at 05:24:07PM +0200, Pierre-Louis Bossart wrote:
> > > On 7/11/23 14:57, Amadeusz Sławiński wrote:
> > 
> > > > Simplify things, by adding PCI IDs to global header and make use of them
> > > > in drivers. This allows for removal of comments by having IDs themselves
> > > > being self explanatory. Additionally it allows for removal of existing
> > > > inconsistencies by having one source of truth.
> > 
> > > I'd like to hear from Takashi and Mark on how this would work, we have
> > > to provide new PCI IDs for both trees using a common 'pci_ids.h' file.
> > 
> > We can probably just agree on a tree to apply things and work from
> > there.
> 
> Yes, simply apply on top of 6.5-rc1 or such a stable point and tag it.
> Then other trees can merging it.
> 
> I can do it if both Bjorn and Mark agree (after all patches get
> reviewed and no objection comes up).

Sure.  I acked the PCI ones, so you can merge these via whatever tree
makes the most sense.  We might have minor conflicts during the merge
window, but they should be easy to fix.

Bjorn