alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* [RFC 00/19] Enable platform HDA drivers
@ 2014-02-28 23:41 Dylan Reid
  2014-02-28 23:41 ` [RFCv2 01/22] ALSA: hda - Move some definitions to new hda_priv.h Dylan Reid
                   ` (22 more replies)
  0 siblings, 23 replies; 29+ messages in thread
From: Dylan Reid @ 2014-02-28 23:41 UTC (permalink / raw)
  To: alsa-devel; +Cc: tiwai, Dylan Reid, swarren

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.

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

^ permalink raw reply	[flat|nested] 29+ messages in thread
* [RFC 00/19] Enable platform HDA drivers
@ 2014-02-28  6:35 Dylan Reid
  2014-02-28  7:57 ` Takashi Iwai
  0 siblings, 1 reply; 29+ messages in thread
From: Dylan Reid @ 2014-02-28  6:35 UTC (permalink / raw)
  To: alsa-devel; +Cc: tiwai, Dylan Reid, swarren

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.


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

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2014-03-01 10:42 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-28 23:41 [RFC 00/19] Enable platform HDA drivers Dylan Reid
2014-02-28 23:41 ` [RFCv2 01/22] ALSA: hda - Move some definitions to new hda_priv.h Dylan Reid
2014-02-28 23:41 ` [RFCv2 02/22] ALSA: hda - Allow different ops to read/write registers Dylan Reid
2014-02-28 23:41 ` [RFCv2 03/22] ALSA: hda - Keep pointer to bdl_pos_fix in chip struct Dylan Reid
2014-02-28 23:41 ` [RFCv2 04/22] ALSA: hda - Use device pointer from the card instead of pci Dylan Reid
2014-02-28 23:41 ` [RFCv2 05/22] ALSA: hda - Add function pointer for disabling MSI Dylan Reid
2014-02-28 23:41 ` [RFCv2 06/22] ALSA: hda - remove unused clear of STATESTS Dylan Reid
2014-02-28 23:41 ` [RFCv2 07/22] ALSA: hda - Add jackpoll_ms to struct azx Dylan Reid
2014-02-28 23:41 ` [RFCv2 08/22] ALSA: hda - Pass max_slots and power_save to codec_create Dylan Reid
2014-02-28 23:41 ` [RFCv2 09/22] ALSA: hda - Move snd page allocation to ops Dylan Reid
2014-02-28 23:41 ` [RFCv2 10/22] ALSA: hda - Add pcm_mmap_prepare op Dylan Reid
2014-02-28 23:41 ` [RFCv2 11/22] ALSA: hda - Add hda_controller.c and move pcm ops from hda_intel Dylan Reid
2014-02-28 23:41 ` [RFCv2 12/22] ALSA: hda - Pull pages allocation to hda_controller Dylan Reid
2014-02-28 23:41 ` [RFCv2 13/22] ALSA: hda - Move the dsp loader " Dylan Reid
2014-02-28 23:41 ` [RFCv2 14/22] ALSA: hda - Relocate RIRB/CORB interface " Dylan Reid
2014-02-28 23:41 ` [RFCv2 15/22] ALSA: hda - move alloc_cmd_io " Dylan Reid
2014-02-28 23:41 ` [RFCv2 16/22] ALSA: hda - Move low level functions " Dylan Reid
2014-02-28 23:41 ` [RFCv2 17/22] ALSA: hda - Add position_check op Dylan Reid
2014-02-28 23:41 ` [RFCv2 18/22] ALSA: hda - Move azx_interrupt to hda_controller Dylan Reid
2014-02-28 23:41 ` [RFCv2 19/22] ALSA: hda - Move codec create " Dylan Reid
2014-02-28 23:41 ` [RFCv2 20/22] ALSA: core - Define snd_pci_quirk without CONFIG_PCI Dylan Reid
2014-02-28 23:41 ` [RFCv2 21/22] ALSA: hda - remove PCI dependency in Kconfig Dylan Reid
2014-02-28 23:41 ` [RFCv2 22/22] WIP: ALSA: hda - Add driver for Tegra SoC HDA Dylan Reid
2014-03-01  9:07 ` [RFC 00/19] Enable platform HDA drivers Takashi Iwai
2014-03-01  9:37   ` Dylan Reid
2014-03-01 10:42     ` Takashi Iwai
  -- strict thread matches above, loose matches on Subject: below --
2014-02-28  6:35 Dylan Reid
2014-02-28  7:57 ` Takashi Iwai
2014-02-28  8:31   ` Dylan Reid

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).