[Maverick] [ti-omap4] SRU: audio driver fixings

Dechesne, Nicolas n-dechesne at ti.com
Tue Oct 5 22:19:42 UTC 2010


Dear all,

I confirm that these patches really improve the audio situation on OMAP4. This (quite big) patch series address some critical kernel issues (panic, hang), as well as audio quality issue too, this is a must have for 10.10, without these fixes it's trivial to crash the platform by just playing several audio files consecutively.

fwiw, from a TI perspective, you have my ACK.

nicolas


> SRU Justification:
>
> Impact:
> The audio sound doesn't work out of box in TI omap4 Panda board with our kernel.
> We missed omap4 audio patches.
>
> Fix:
> These 70+ patches bring the necessary audio function into our Maverick kernel.
> They introduce ASoC frontend and backend framework, TWL6040 codec driver, ABE
> driver and etc.
>
> Testcase:
> To make the sound work, we still need some config changes of alsamixer and
> PulseAudio in the userspace. Please follow the testing method in BugLink.
>
> BugLink: http://bugs.launchpad.net/bugs/#637947
>
> The following changes since commit 0add2e2fb57b3be2d95a0c9986132775e479e4bd:
>    Tim Gardner (1):
>          UBUNTU: Ubuntu-2.6.35-903.13
>
> are available in the git repository at:
>
>    git://kernel.ubuntu.com/roc/ubuntu-maverick ti-omap4
>
> Bryan Wu (1):
>        UBUNTU: SAUCE: ASoC: disable those debug message in soc core code
>
> David Lambert (1):
>        ARM: MFD: Vibra fix for TWL6040
>
> Guiriec Sebastien (1):
>        ASoc: ABE DAI - Update Front End port mute/unmute for MM DL port
>
> Jorge Eduardo Candelaria (5):
>        OMAP: PM: Enable hwmod data for audio driver
>        ASoC: ABE DSP: Use pm_runtime to enable/disable clocks
>        ARM: PM: Fix mcpdm hwmod name
>        ASoC: TWL6040: Clear interrupt status at boot time
>        ASoC: TWL6040: Disable SYS_NIRQ safe mode
>
> Liam Girdwood (43):
>        ASoC: Add DMIC legacy PCM for testing.
>        ASoC: SDP4430 - wait 20 seconds before HS power off.
>        ASoC: SDP4430 - Add DMIC specific hw_params()
>        ASoC: core - add FE playback and capture channels config
>        ASoC: SDP4430 - add FE supported channels in DAI link
>        ASoC: OMAP PCM - the codec_dai channels info is invalid for FEs
>        ASoC: ABE - Low power mmap() part 1
>        ASoC: core - make pcm_new() pass only snd_soc_pcm_runtime
>        ASoC: ABE DSP - mmap() support part 2
>        OMAP: McPDM - add irq and phys_base platform data
>        ASoC: McPDM - fix IRQ platform data detection
>        OMAP4: devices - remove ABE AESS platform device.
>        OMAP: devices - add support for AESS device.
>        ASoC: McPDM - remove IRQ and phys_base from plat header
>        ASoC: ABE DSP - get pdev resources and register IRQ handler
>        ASoC: SDP4430 - update ABE dsp name to aess to match hw_mod
>        ASoC: HAL: remove the io_remap hack
>        ASoC: core - only schedule resume work once.
>        ASoC: McPDM - Split out McPDM into 4 logical DAIs
>        ASoC: ABE DAI - Add ref counting for BE DAIs
>        ASoC: SDP4430 - Use new McPDM BE DAIs
>        ASoC: ABE AESS - Use mixer readback for volumes
>        ASoC: ABE DAI - Add Nice mute sequence for playback
>        ASoC: core - make sure we recover from BE startup errors
>        ASoC: McPDM - add DC offset call and cleanup ref counting
>        ASoC: ABE - make sure trigger has completed before we shutdown
>        ASoC: OMAP ABE DAI - Add yet more logic to manage HAL ports.
>        ASoC: McPDM - Make sure we only disable McPDM when safe to do so
>        ASoC: ABE DAI - make sure trigger is pending before we call
>        ASSoC: twl6040 - HS jack detection workaround reminder.
>        ASoC: ABE DSP - Fix the BT/MODEM VX_UL graph
>        ASoC: DAPM - Make sure debug makes more sense
>        ASoC: McPDM - Delay McPDM shutdown after HS
>        ASoC: ABE DAI - continue checking all BE substreams.
>        ASoC: twl6040 - disable mute as ramp does the same thing atm
>        HAL: Fix types for router ul config
>        ASoC: ABE DSP - Update to match HAL bugfix for router typedef
>        ASoC: core - add support for driver and longnames
>        ASoC: SDP4430 - Add longname for driver.
>        ASoC: ABE DAI - serialise the FE calls with a mutex.
>        ASoC: core - BE standalone DAI ops - add locking and ref counting
>        ASoC: core - Make driver name == card->name
>        ASoC: SDP4430 - Fix Mic bias for Panda - REBASE
>
> Margarita Olaya Cabrera (7):
>        ASoC: OMAP4: Add missing changes from merge
>        ASoC: TWL6040: Add digital_mute callback
>        ASoC: McPDM: Revert changes for mcpdm_request
>        ASoC: OMAP: Undefine DEBUG
>        ASoC: ABE DSP: update to HAL 08.05
>        ASoC: ABE DAI: Fix main port selection
>        ASoC: ABE DSP: Remove build warnings
>
> Misael Lopez Cruz (6):
>        ASoC: OMAP4: ABE buffer size contrainst only for omap4
>        ASoC: twl6040: Enable plug detection interrupts
>        ASoC: twl6040: Defer audio interrupt handling
>        ASoC: twl6040: Fix jack detection in early audio interrupt
>        ASoC: omap-abe: Fix trigger completion handling after XRUNs
>        ASoC: twl6040: Add step size and delay for volume ramp
>
> Ricardo Neri (4):
>        ASoC: ABE DAI: Remove 44.1KHz from abe playback capabilities
>        ASoC: ABE DAI: Remove compilation warnings
>        ASoC: ABE DSP: Add support for equalizers
>        ASoC: ABE DAI: Always set PDM_DL when disabling DAI_PDM_UL
>
> Sebastien Guiriec (10):
>        ASoc: ABE DAI - Update Back End port mute/unmute for McPDM port
>        ASoc: ABE DAI - Update Front End port mute/unmute for TONES DL port
>        ASoc: ABE DSP - Update Mixer DL1 constrol with correct constant
>        ASoC: ABE HAL - Update gain control to implement mute/unmute on HAL 08.00
>        ASoC: ABE DAI - Update ABE Front End mute unmute with new ABE functions
>        ASoc: ABE DSP: Update McPDM control for downlink path.
>        ASoC: ABE DSP: Update mixer controls range to -120/30dB
>        ASoC: ABE DSP: Update PM for ABE control.
>        ASoc: ABE DAI - Update Front End port mute/unmute for VOICE DL port
>        ASoc: ABE DSP: Correct disable port with abe port.
>
>   arch/arm/mach-omap2/devices.c                      |   17 -
>   arch/arm/mach-omap2/omap_hwmod_44xx_data.c         |   12 +-
>   arch/arm/plat-omap/devices.c                       |   49 +-
>   arch/arm/plat-omap/include/plat/mcpdm.h            |    3 -
>   drivers/input/misc/twl6040-vibra.c                 |    2 -
>   include/sound/soc-dai.h                            |   63 +-
>   include/sound/soc.h                                |   12 +-
>   sound/soc/atmel/atmel-pcm.c                        |    5 +-
>   sound/soc/au1x/dbdma2.c                            |    7 +-
>   sound/soc/blackfin/bf5xx-ac97-pcm.c                |    5 +-
>   sound/soc/blackfin/bf5xx-i2s-pcm.c                 |    5 +-
>   sound/soc/blackfin/bf5xx-tdm-pcm.c                 |    5 +-
>   sound/soc/codecs/twl6040.c                         |  151 +-
>   sound/soc/codecs/twl6040.h                         |    1 +
>   sound/soc/davinci/davinci-pcm.c                    |    5 +-
>   sound/soc/ep93xx/ep93xx-pcm.c                      |    5 +-
>   sound/soc/fsl/fsl_dma.c                            |    5 +-
>   sound/soc/fsl/mpc5200_dma.c                        |    6 +-
>   sound/soc/imx/imx-pcm-fiq.c                        |    8 +-
>   sound/soc/imx/imx-ssi.c                            |    5 +-
>   sound/soc/imx/imx-ssi.h                            |    3 +-
>   sound/soc/jz4740/jz4740-pcm.c                      |    5 +-
>   sound/soc/kirkwood/kirkwood-dma.c                  |    5 +-
>   sound/soc/nuc900/nuc900-pcm.c                      |    6 +-
>   sound/soc/omap/abe/C_ABE_FW.CM                     | 1319 --
>   sound/soc/omap/abe/C_ABE_FW.PM                     | 2048 --
>   sound/soc/omap/abe/C_ABE_FW.SM32                   | 4462 ----
>   sound/soc/omap/abe/C_ABE_FW.lDM                    |16384 -------------
>   sound/soc/omap/abe/Makefile                        |    1 +
>   sound/soc/omap/abe/abe_api.c                       | 2246 +-
>   sound/soc/omap/abe/abe_api.h                       | 1009 +-
>   sound/soc/omap/abe/abe_cm_addr.h                   |  542 +-
>   sound/soc/omap/abe/abe_cof.h                       |   53 +-
>   sound/soc/omap/abe/abe_dat.c                       |  924 +
>   sound/soc/omap/abe/abe_dat.h                       | 1891 +-
>   sound/soc/omap/abe/abe_dbg.c                       |  287 +-
>   sound/soc/omap/abe/abe_dbg.h                       |  247 +-
>   sound/soc/omap/abe/abe_def.h                       |  572 +-
>   sound/soc/omap/abe/abe_define.h                    |  104 +-
>   sound/soc/omap/abe/abe_dm_addr.h                   |  600 +-
>   sound/soc/omap/abe/abe_ext.c                       |  167 +-
>   sound/soc/omap/abe/abe_ext.h                       |  419 +-
>   sound/soc/omap/abe/abe_firmware.c                  |24213 ++++++++++++++++++++
>   sound/soc/omap/abe/abe_functionsId.h               |   68 -
>   sound/soc/omap/abe/abe_functionsid.h               |   80 +
>   sound/soc/omap/abe/abe_fw.h                        |  526 +-
>   sound/soc/omap/abe/abe_ini.c                       | 2178 ++-
>   sound/soc/omap/abe/abe_initxxx_labels.h            |  627 +-
>   sound/soc/omap/abe/abe_irq.c                       |   64 +-
>   sound/soc/omap/abe/abe_lib.c                       |  689 +-
>   sound/soc/omap/abe/abe_lib.h                       |   95 +-
>   sound/soc/omap/abe/abe_main.c                      |   99 -
>   sound/soc/omap/abe/abe_main.h                      |   58 +-
>   sound/soc/omap/abe/abe_ref.h                       |  211 +-
>   sound/soc/omap/abe/abe_seq.c                       |  262 +-
>   sound/soc/omap/abe/abe_seq.h                       |   41 +-
>   sound/soc/omap/abe/abe_sm_addr.h                   | 1014 +-
>   sound/soc/omap/abe/abe_sys.h                       |   23 +-
>   sound/soc/omap/abe/abe_taskId.h                    |  131 -
>   sound/soc/omap/abe/abe_taskid.h                    |  144 +
>   sound/soc/omap/abe/abe_test.c                      |  865 -
>   sound/soc/omap/abe/abe_test.h                      |   28 -
>   sound/soc/omap/abe/abe_typ.h                       | 1183 +-
>   sound/soc/omap/abe/abe_typedef.h                   |  450 +-
>   .../omap/abe/{C_ABE_FW_SIZE.h =>  c_abe_fw_size.h}  |    1 -
>   sound/soc/omap/omap-abe-coef.h                     |  149 +
>   sound/soc/omap/omap-abe-dsp.c                      |  841 +-
>   sound/soc/omap/omap-abe-dsp.h                      |    4 +-
>   sound/soc/omap/omap-abe.c                          |  571 +-
>   sound/soc/omap/omap-abe.h                          |    1 +
>   sound/soc/omap/omap-mcpdm.c                        |  296 +-
>   sound/soc/omap/omap-mcpdm.h                        |    5 -
>   sound/soc/omap/omap-pcm.c                          |   23 +-
>   sound/soc/omap/sdp4430.c                           |  134 +-
>   sound/soc/pxa/pxa2xx-pcm.c                         |    5 +-
>   sound/soc/s3c24xx/s3c-dma.c                        |    5 +-
>   sound/soc/s6000/s6000-pcm.c                        |    6 +-
>   sound/soc/sh/fsi.c                                 |    5 +-
>   sound/soc/sh/siu_pcm.c                             |    6 +-
>   sound/soc/soc-core.c                               |   32 +-
>   sound/soc/soc-dapm.c                               |   40 +-
>   sound/soc/txx9/txx9aclc.c                          |    5 +-
>   82 files changed, 35136 insertions(+), 33707 deletions(-)
>   delete mode 100644 sound/soc/omap/abe/C_ABE_FW.CM
>   delete mode 100644 sound/soc/omap/abe/C_ABE_FW.PM
>   delete mode 100644 sound/soc/omap/abe/C_ABE_FW.SM32
>   delete mode 100644 sound/soc/omap/abe/C_ABE_FW.lDM
>   create mode 100644 sound/soc/omap/abe/abe_dat.c
>   create mode 100644 sound/soc/omap/abe/abe_firmware.c
>   delete mode 100644 sound/soc/omap/abe/abe_functionsId.h
>   create mode 100644 sound/soc/omap/abe/abe_functionsid.h
>   delete mode 100644 sound/soc/omap/abe/abe_main.c
>   delete mode 100644 sound/soc/omap/abe/abe_taskId.h
>   create mode 100644 sound/soc/omap/abe/abe_taskid.h
>   delete mode 100644 sound/soc/omap/abe/abe_test.c
>   delete mode 100644 sound/soc/omap/abe/abe_test.h
>   rename sound/soc/omap/abe/{C_ABE_FW_SIZE.h =>  c_abe_fw_size.h} (99%)
>   create mode 100644 sound/soc/omap/omap-abe-coef.h
>
> --
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team




More information about the kernel-team mailing list