[PATCH 00/11] Tegra audio driver

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

 



This patchset adds an ALSA ASoC driver for Tegra, and plumbs it into
the Harmony board.

Known issues:

* Capture/recording has not been tested at all.
  This should work. There may be issues with concurrent capture/playback
  e.g. harmony_asoc_hw_params() shoudn't reprogram the clock if it's
  already at the correct rate, since it affects both streams.

* harmony.c is missing controls/routing/DAPM setup logic.
  This is present in the ChromeOS code this driver was based on, but I
  haven't yet investigated whether it correctly describes Harmony, or
  some other board.

* Noise especially at low sample rates.
  Not sure if this is a clock programming issue, or simply an issue
  in the board layout itself.

* Not sure how to make snd-soc-tegra-harmony.ko auto-load based on
  running on Harmony. Perhaps ASoC machine module loading isn't meant
  to be automatic?

* I2S FIFO is not drained when stopping playback. Equally, outstanding
  DMA requests are cancelled instead of drained. Need to investigate
  whether this will cut off the end of streams instead of flushing them
  out or not.

* DMA driver's interrupt handler sometimes segfaults. Haven't found a
  reliable way to reproduce this yet (although it's typically accompanied
  by aplay complaining about underrun). Need to investigate this still.

Anyway, I figure the current state is a good start for others to give
feedback.

My next steps are to look at forward-porting this to 2.6.37 or mainline
kernel, then perform additional cleanups and fixes there.

Stephen Warren (11):
  ARM: Add SZ_128
  ARM: tegra: Add Kconfig for tegra_i2s_audio.c
  ARM: tegra: s/i2s/tegra-is2/
  ARM: tegra: pll_a clock fixes
  ARM: tegra: Add tegra-das platform device definition
  ASoC: tegra: Base Kconfig infra-structure
  ASoC: tegra: Add tegra-das driver
  ASoC: tegra: Add tegra-pcm driver
  ASoC: tegra: Add tegra-i2s driver
  ASoC: tegra: Harmony machine support
  ARM: tegra: Enable Harmony audio support

 arch/arm/include/asm/sizes.h               |    1 +
 arch/arm/mach-tegra/Kconfig                |    8 +
 arch/arm/mach-tegra/Makefile               |    2 +-
 arch/arm/mach-tegra/board-harmony-pinmux.c |    4 +-
 arch/arm/mach-tegra/board-harmony.c        |   30 ++
 arch/arm/mach-tegra/devices.c              |   43 ++-
 arch/arm/mach-tegra/devices.h              |    1 +
 arch/arm/mach-tegra/include/mach/iomap.h   |    3 +
 arch/arm/mach-tegra/tegra2_clocks.c        |    8 +-
 arch/arm/mach-tegra/tegra_i2s_audio.c      |    2 +-
 sound/soc/Kconfig                          |    1 +
 sound/soc/Makefile                         |    1 +
 sound/soc/tegra/Kconfig                    |   29 ++
 sound/soc/tegra/Makefile                   |   13 +
 sound/soc/tegra/harmony.c                  |  313 +++++++++++++++++++
 sound/soc/tegra/tegra_das.c                |  264 ++++++++++++++++
 sound/soc/tegra/tegra_das.h                |  119 +++++++
 sound/soc/tegra/tegra_i2s.c                |  468 ++++++++++++++++++++++++++++
 sound/soc/tegra/tegra_i2s.h                |  166 ++++++++++
 sound/soc/tegra/tegra_pcm.c                |  362 +++++++++++++++++++++
 sound/soc/tegra/tegra_pcm.h                |   57 ++++
 21 files changed, 1874 insertions(+), 21 deletions(-)
 create mode 100644 sound/soc/tegra/Kconfig
 create mode 100644 sound/soc/tegra/Makefile
 create mode 100644 sound/soc/tegra/harmony.c
 create mode 100644 sound/soc/tegra/tegra_das.c
 create mode 100644 sound/soc/tegra/tegra_das.h
 create mode 100644 sound/soc/tegra/tegra_i2s.c
 create mode 100644 sound/soc/tegra/tegra_i2s.h
 create mode 100644 sound/soc/tegra/tegra_pcm.c
 create mode 100644 sound/soc/tegra/tegra_pcm.h

-- 
nvpublic

--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux