[alsa-devel] [RFC 00/19] Enable platform HDA drivers

Takashi Iwai tiwai at suse.de
Sat Mar 1 10:07:11 CET 2014


At Fri, 28 Feb 2014 15:41:11 -0800,
Dylan Reid wrote:
> 
> This series rearranges some code in the HDA driver to break
> dependencies on PCI and allow for most of the HDA code to be reused
> for non-PCI based HDA controllers.
> 
> I tried to break it up to make it less scary and to keep changes away
> from copies of code.  It is mostly copies with a few modifications to
> make more of the code usable by both HDA drivers.  The main changes
> were to avoid using pci to get a device pointer, and to make the bus
> reads/writes into callbacks so that the Tegra driver could ensure
> 32-bit access to the HDA registers.
> 
> The final patch is a work in progress included here to provide context
> for the preceding patches.  The Tegra HDA driver still needs some
> cleaning up, but nothing that will affect the other changes.  The last
> infrastructure issue is that the Tegra driver uses DT, causing it to be
> probed before the codec patches.  I haven't determined how to fix that
> yet.
> 
> I didn't include the patch to move the hda directory from under pci
> because of its size and how easy it will be to regenerate later.
> 
> Thanks for looking.  Let me know if you think any of these should be
> squashed or re-ordered and if the changes and breakup of code makes
> sense.
> 
> Change since v1:
> 
>  - Rename hda_shared to hda_controller
>  - Add more 'ops' to break out hda_intel specific functions, such as
>    postponed interrupt handling and page allocation
>  - Re order a few patches to make rebases easier
>  - Make bdl_pos_adj optional
>  - I left the position fix code in hda_controller, I don't have a good
>    way to test a refactoring of that, there are a few combinations of
>    settings. It will probably be useful to other controllers as well,
>    but moving it wouldn't be hard if we really want to.

This version looks good enough to me for merge.  Should I merge them
now except for patch 19?  Or would you like keep them until Tegra
driver is finished?


thanks,

Takashi

> 
> Thanks again,
> 
> Dylan
> 
> --
> Dylan Reid (19):
>   ALSA: hda - Move some definitions to new hda_priv.h
>   ALSA: hda - Allow different ops to read/write registers
>   ALSA: hda - Keep pointer to bdl_pos_fix in chip struct
>   ALSA: hda - Store device pointer in chip structure
>   ALSA: hda - Move pcm ops and support funcs to shared file
>   ALSA: hda - Pull pages allocation to shared file
>   ALSA: hda - Move the dsp loader to hda_shared
>   ALSA: hda - Add function pointer for disabling MSI
>   ALSA: hda - Relocate RIRB/CORB interface to hda_shared
>   ALSA: hda - move alloc_cmd_io to hda_shared.
>   ALSA: hda - Move low level functions to hda_shared
>   ALSA: hda - remove unused clear of STATESTS
>   ALSA: hda - Move azx_interrupt to hda_shared
>   ALSA: hda - Add jackpoll_ms to struct azx
>   ALSA: hda - Pass max_slots and power_save to codec_create
>   ALSA: hda - Move codec create to hda_shared
>   ALSA: core - Define snd_pci_quirk without CONFIG_PCI
>   ALSA: hda - remove PCI dependency in Kconfig
>   WIP: ALSA: hda - Add driver for Tegra SoC HDA
> 
>  include/sound/core.h       |   15 +-
>  sound/pci/Kconfig          |    4 +-
>  sound/pci/hda/Kconfig      |   55 +-
>  sound/pci/hda/Makefile     |    8 +-
>  sound/pci/hda/hda_intel.c  | 2832 +++-----------------------------------------
>  sound/pci/hda/hda_priv.h   |  446 +++++++
>  sound/pci/hda/hda_shared.c | 2175 ++++++++++++++++++++++++++++++++++
>  sound/pci/hda/hda_shared.h |   52 +
>  sound/pci/hda/hda_tegra.c  |  858 ++++++++++++++
>  9 files changed, 3778 insertions(+), 2667 deletions(-)
>  create mode 100644 sound/pci/hda/hda_priv.h
>  create mode 100644 sound/pci/hda/hda_shared.c
>  create mode 100644 sound/pci/hda/hda_shared.h
>  create mode 100644 sound/pci/hda/hda_tegra.c
> 
> -- 
> 1.8.1.3.605.g02339dd
> 


More information about the Alsa-devel mailing list