| Age | Commit message (Collapse) | Author |
|
Signed-off-by: Andy Green <andy.green@linaro.org>
|
|
Signed-off-by: Andy Green <andy.green@linaro.org>
|
|
Hi Andy,
On Mon, 2011-03-28 at 15:43 +0100, Andy Green wrote:
> Hi -
>
> Just a little issue I noticed, the operation of "Aux FM" slider in the
> current alsa stuff is a bit broken in terms of its mapping to the
> effective attenuation that happens.
>
> Starting at 0 everything is quiet, but as we go up it increases and
> decreases the volume in left and right individually. It's like it has
> the idea the attenuator is a single mono one where actually it's two
> smaller stereo ones.
>
> Also, Panda FM reception seems to work but with a headset lead as
> antenna, it's not what I would call reasonable signal quality. Is that
> anyone else's experience too?
>
> -Andy
I've just had a very quick check against the TRM and have attached an
untested patch (as my Panda is broken). Could you give this a try.
Liam
commit 3981b720b800bda16028f36ab10d2c9ec7e7c6c7
Author: Liam Girdwood <lrg@slimlogic.co.uk>
Date: Mon Mar 28 19:23:23 2011 +0100
ASoC: twl6040 - fix LINEGAIN volume control
Fix the TWL6040 LINEGAIN volume control to match the TRM.
Signed-off-by: Liam Girdwood <lrg@ti.com>
|
|
ABE needs a step size of 24 * 4, whilst HDMI requires a step size
of 32 * 4 bits. These constraints are only applicable for OMAP4.
Change-Id: I338f207816ef6c165ffb06dc8c346b29969ef4ee
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
If sysclk contrainst are not set by the machine driver then
we will register NULL constraints at PCM startup.
Fix this by making setting default constraints at probe()
Change-Id: I5630dd5d72095cb8eef1fa3d1d3e275c6b87111d
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
|
This stops userspace opening backend PCMs.
Change-Id: Ide3df013f158a4ad49da2bfcacb91aa8f3b6970b
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
|
Digital microphone bias is now supplied through SoC DAPM,
it's not required anymore to explicitly enable/disable bias
in DMIC PCM ops.
Change-Id: If6681ea7b1830ea95f68f23ec52220944821f4b5
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
Blaze/SDP4430 contains DMic0, DMic1 and DMic2 interfaces, which
are supplied by Digital Mic Bias 1 from TWL6040. An alternate
second digital microphone bias could be used from Digital Mic
Bias 2, but it's currently not installed in application board.
Change-Id: Icdbe25fffa627e373866de64c38dac4619622c5e
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
Add a control to select output voltage (1.80 or 1.85V) of Digital
Mic Bias 1 and 2.
Change-Id: I7d76df5c8678fbcff4280bcf9ae87f9c859952f3
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
For HF playback stream pmdown_time was not set to 500ms,
5000ms was used as a default delay, which was causing
pops at the end of audio rendering because playback streams
were powered down after McPDM shutdown.
Change-Id: I1a8ca45229898ef1c1c9d6f04f3c985e790bbfb8
Signed-off-by: Axel Castaneda Gonzalez <x0055901@ti.com>
|
|
McPDM irq request and free was associated to mcpdm_request and
mcpdm_free APIs, which are called when audio stream is opened
and closed, respectively. These multiple calls are unnecessary
as irq can be requested when driver is probed and released
during driver removal.
Change-Id: I3afcae888eb0baffd8a3f85878e30b61c70c73c8
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
In order to safely free McPDM interface during playback
stream shutdown, it's also required to check that no new
playback streams have been opened since the time the
delayed shutdown work was scheduled and the time it got
executed. Otherwise, McPDM interface could get freed
between stream startup and hw_params calls, which could
end up crashing the system.
Change-Id: I50d5ce897b5f4684a7afe3723eb1dd90de65dacd
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
TWL6040 sysclk can be changed during hw_params() call depending
on the requested sample rate, which requires private sysclk value
to be updated as well.
Change-Id: I26cd8c6314b64946f073012c17455d4cfc9efafb
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
Enable ramp down/up step to be configured based on
platform.
Change-Id: I4e5aff8b9b6ab477919e5f98af71e77dfd370e92
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
Signed-off-by: Axel Castaneda Gonzalez <x0055901@ti.com>
|
|
For OMAP4, a widget is used without a codec associated,
so accessing the codec would generate a hang.
This may be a temporary hack. Final solution is discussed
upstream.
Signed-off-by: Sebastien Jan <s-jan@ti.com>
Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com>
|
|
This patch allows building of the SoC SDP4430 stuff as modules
Signed-off-by: Andy Green <andy.green@linaro.org>
|
|
Select dynamic minor numbers for ABE to allow registration of
all ABE PCMs.
Change-Id: I0c14a81ca64f27d4208a3bf2f77062bc06977350
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
ALSA runtime dma_area had an incorrect additional offset for
ping-pong buffer. Some of the addresses defined in ABE DSP driver
which were already defined in ABE HAL are also removed.
Change-Id: Ib6e954dbb486d937cd0a67015a110cb3eba9d153
Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com>
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
When playback stream is not started (e.g. parameters not supported,
file doesn't exist, etc), pm_runtime resource is never acquired as
hw_params for McPDM never gets executed. In that scenario, during
stream shutdown pm_runtime resource should not be released otherwise
it unbalances usage counter.
Change-Id: I2da9931f5e5adf3656218de3baabb9c4a1982382
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
ABE HAL public API to add a subroutine is 'abe_plug_subroutine',
'abe_add_subroutine' was used previously, but it's restricted for
internal ABE HAL usage.
Change-Id: Idfb8448431a7e33450eae070d43544d27e3719d2
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
omap_hwmod_get_mpu_rt_va cannot be used if the driver is compiled
as a module, McPDM memory is ioremap'ed explicitly instead.
Change-Id: Idd05c536a80eae7223d27cccc2b925fda4a22dc1
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com>
|
|
omap_hwmod_get_mpu_rt_va cannot be used if the driver is compiled
as a module, ABE memory is ioremap'ed explicitly instead.
Change-Id: Idd05c536a80eae7223d27cccc2b925fda4a22dc1
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com>
|
|
The machine driver sets high-performance audio as the default
audio mode in sdp4430. This was done as a workaround when
Phoenix low-power was not ready.
Standard Multimedia mode is now the default state of the audio
driver. Consequently, TWL6040 will use LP PLL.
Change-Id: I182900bd7defa885d35f20e417ed76ebcb97400e
Signed-off-by: Jorge Eduardo Candelaria <jorge.candelaria@ti.com>
|
|
ASoC suspend doesn't check if DAIs are shared between
suspendable and non-suspendable DAI links. During voice
call, modem DAI link and associated DAIs need to continue
active, even if the DAIs are shared with non-suspendable
DAI links.
Temporal solution is to mark DAI links using shared DAIs as
non-suspendables. In Android, the non-suspendable DAI links
are not active when suspend happens. This solution should be
reworked when ASoC framework adds more support for non-
suspendable streams.
Change-Id: I34643d8cfd9951f476ce7adc25cb9f48cf59a6c0
Signed-off-by: Francois Mazard <f-mazard@ti.com>
|
|
Add fixup for McBSP and DMIC backends. Backend hw_params
are fixed regardless of frontend configuration as follow:
McBSP configuration for the backends shall be fixed as follow:
BT_VX -> McBSP1 : Mono, S16_LE
MM_EXT -> McBSP2 : Stere, S16_LE
DMIC configuration for backends is restricted to S32_LE.
Change-Id: I256bdcb7caffbadc549826663591c2b8ffb8caf1
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
|
|
MODEM frontend can be used with different backends
like McPDM or DMIC. McBSP2 needs to be configured
for modem voice call regardless of selected backend.
Change-Id: I6eaf1da312b4cb513a39fea5d5ed4dc7249865de
Signed-off-by: Francois Mazard <f-mazard@ti.com>
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
|
|
Add a 500ms delay to shutdown headset components in order
to reduce pop noise. In order to minimize pop noise, McPDM
interface needs to shutdown after analog paths have been
disabled, hence McPDM shutdown delay is longer.
Change-Id: Ida3f61b2f219799d6a291c98a4be45ba39e340d3
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
SDP4430 uses a TPS6130X boost converter to provide
TWL6040 VDDHF supply. TPS61300/TPS61301 have ENVM to
force voltage regulation mode which is connected to
TWL6040 GPO2, and there is no need to explicitly enable
the regulator. TPS61305/TPS61306 don't have ENVM, so
it's required to enable voltage regulation mode through
i2c registers.
Change-Id: Iedfcf2933563d9c1fa07e290de6fd473374276a9
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
Signed-off-by: David Anders <x0132446@ti.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
|
|
Add support to share the sdp4430 audio configuration with Panda.
Change-Id: Ib4ae39edd507e2850bcda1c67eb8c338fe690482
Signed-off-by: David Anders <x0132446@ti.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
|
|
Enable host-less support for DAI links involved in connectivity
usecases as there is no data transfer between CPU and CODEC.
Change-Id: Ia8cf3ae83a7444473d663b0580e5a8833d9aff89
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
SDP4430 implements the following DAI links:
- SDP4430 Media: Frontend connecting MM_UL and MM_DL
Supported backends are PDM_DL1, PDM_DL2, PDM_UL,
BT_VX, MM_EXT, DMIC0, DMIC1 and DMIC2
- SDP4430 Media Capture: Frontend for MM_UL2
Supported backends are PDM_UL, BT_VX, MM_EXT,
DMIC0, DMIC1 and DMIC2
- SDP4430 Voice: Frontend connecting VX_UL and VX_DL
Supports all media backends
- SDP4430 Tones Playback: Frontend for TONES_DL
Supported backends are PDM_DL1, PDM_DL2, BT_VX and
MM_EXT
- SDP4430 Vibra Playback: Frontend for VIB_DL
Only supported backend is PDM_VIB
- SDP4430 MODEM: Frontend connecting MODEM with McBSP2
Supported backends are the same as in media links
- SDP4430 Media LP: Frontend for MM_DL with ping-pong
buffer. Supported backends are PDM_DL1, PDM_DL2,
BT_VX and MM_EXT
- HDMI: Frontend for HDMI
- Legacy McBSP: Direct link between processor and
MM_EXT (McBSP2)
- Legacy McPDM: Direct link between processor and
PDM_DL1
- Legacy DMIC: Direct link between DMIC0 and processor
Change-Id: Ib3a8c844be5c4fa6f6b6a6371086f8e4a0e1fe7b
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Signed-off-by: Jorge Eduardo Candelaria <jorge.candelaria@ti.com>
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
Signed-off-by: Chris Kelly <c-kelly@ti.com>
|
|
McPDM channels management need to be control in a specific way
in order to reset the internal digital filter of the IP for
Uplink and downlink channels.
Perform a Software reset when we are requestig the module.
Change-Id: Ie5d351604d4162eafca0b4ed2ea0d557d6e90998
Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com>
|
|
Use mutex instead of spinlocks to allow protecting sleeping
functions like pm_runtime calls.
Change-Id: I373b340c6895bb3d8c7827a37a1a20406c461c6c
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
When McPDM interface is used with ABE active, there are
some interdepencies between them for appropriate enable
and disable sequences than cannot expressed properly in
ASoC terms. For that reason, a new set of DAIs is created
for McPDM + ABE link.
McPDM shutdown work is queued in the kernel global queue
to ensure proper sequencing and avoid race conditions.
Delay time must be longer than power down time specified
through ASoC framework.
For McPDM DL the ATC channel of ABE is stopped after the AESS close.
Enable/Disable of PDM DL ATC should use PM interface to avoid PM
issue
Change-Id: Ie2aae98a512260f9f8fb01cfdd22b9cea3f644a3
Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com>
Signed-off-by: Ricardo Neri <ricardo.neri@ti.com>
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
In order to reduce pop noise during stream close, McPDM
shutdown is delayed so that analog companion chip can
switch off first determined by ramp down time specified
through ALSA SoC. McPDM shutdown work is queued in the
kernel global queue to ensure proper sequencing and avoid
race conditions.
Change-Id: I49cdd26cbee41f6b28e2e1fd7b427caaeacf9126
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Ricardo Neri <ricardo.neri@ti.com>
Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com>
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
McPDM interface supports an offset cancellation feature
to eliminate the offset of the analog headset downlink
path. External audio companion chip should provide
the offset values. Offset values are fixed in this
implementation.
Change-Id: Iafbdb719b5d693bdae707717224c4be503567eeb
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
McPDM interface contains following DAIs: PDM_DL1,
PDM_DL2, PDM_UL and VIB_DL.
Change-Id: I984f58b656a8182e6a62750c675e3770f2e34695
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
Convert McPDM driver to pm_runtime framework.
Change-Id: Ibdcb43ee70c6dbbdb3eec606e3c14e014ada15f2
Signed-off-by: Jorge Eduardo Candelaria <jorge.candelaria@ti.com>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
With revision ES2.0 a new bit is provide to enable the
pdm watchdog logic.
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
|
|
Increase FIFO threshold to 4 to improve audio performance.
McPDM FIFO threshold must match ATC iteration number when
ABE is in use to ensure proper synchronization.
Change-Id: I45bd70d9d2f5d7a8971504336b389eea322c4a20
Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
|
|
There is currently no need to separate McPDM support into
two separate files, this just complicates implementation.
This patch merges files into a single more simplified DAI
driver.
Change-Id: Ia1a166d084cbf1e8043ccff9afefcdf3d680b1d3
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
|
|
Disable constraints in OMAP4 audio drivers temporarily.
It's required for now as backends need to define their
own constraints.
Change-Id: I943589c1417ebd7690d08dbda1edf17bb2609f3b
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
Add support for all twl6040 DAIs: uplink, headset downlink,
handsfree downlink and vibrator.
Change-Id: I684c2452904fcdcc21a2890c5912e5e6d90e368c
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
TWL6040 CODEC driver is a client of TWL6040 MFD, following
modifications are done:
- skip access to shared registers (vibrator, gpo, pll)
- remove shared operations (power-up/down, irq)
- use new MFD APIs for register access, pll setting and irq
handling
- register definitions are removed from header file as
already defined in MFD code
Change-Id: Ic8d1ad28ed8d02d3eff0d95e3656b57f3268ef93
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
Remove dependency between pll (hppll, lppll) and headset power
mode (low-power, high-performance), as headset power mode can
be used with any pll.
A new control is created to allow headset power mode configuration
from userspace. Changing headset power mode during earpiece related
usecases is not allowed as earpiece requires HS DAC in HP mode.
Change-Id: Icb313f8fa7e17bdf52a618cd5c829d976e8cc580
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
Add Audio Backend HAL 09.06.
Change-Id: Id9ec2ab0961182a45980c629d3a3562fc8f361aa
Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com>
|
|
Add support for the OMAP4 ABE DSP.
Change-Id: I104d1bea41a17b6fda8caad4f4509a8d13515e66
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
Signed-off-by: Jorge Eduardo Candelaria <jorge.candelaria@ti.com>
Signed-off-by: Ricardo Neri <ricardo.neri@ti.com>
Signed-off-by: Hector Barajas <barajas@ti.com>
|
|
Add support for the OMAP4 Audio Backend Engine.
Change-Id: I0a8e367ce1858e07de6eca1da2f2b15299bea936
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
|
|
Add digital microphone DAI support for OMAP4.
Change-Id: Ia171abd8540417f46f27be39b7d5277f4c006a81
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
|
|
Multiple calls to dapm_power_widgets() can create a race condition
causing widget power list to be corrupted. Those scenarios can
occur in multistream usecases, stream start/stop along with update
power calls (mixer, mux, dapm_sync, stream_event) simultaneously.
Change-Id: I197f6ec223bf4451f207842b2a7ff72f81dcd313
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|