Age | Commit message (Collapse) | Author | Files | Lines |
|
This means we don't need to walk through every single widget in the system
for each stream event which is a bit less silly.
Signed-off-by: Mark Brown <[email protected]>
Acked-by: Liam Girdwood <[email protected]>
|
|
In order to allow us to do smarter things with DAI links create DAPM
widgets which directly represent the DAIs in the DAPM graph. These are
automatically created from the DAIs as we probe the card with references
held in both directions between the widget and the DAI.
The widgets are not made available for direct instantiation by drivers,
they are created automatically from the DAIs. Drivers should be updated
to create stream routes using DAPM maps rather than by annotating AIF
and DAC widgets with streams.
In order to ease transition to this model from existing drivers we
automatically create DAPM routes between the DAI widgets and the existing
stream widgets which are started and stopped by the DAI widgets, though
the old stream handling mechanism is still in place. This also has the
nice effect of removing non-DAPM devices as any device with a DAI
acquires a widget automatically which will allow future simplifications
to the core DAPM logic.
The intention is that in future the AIF and DAI widgets will gain the
ability to interact such that we are able to manage activity on
individual channels independantly rather than powering up and down the
entire AIF as we do currently.
Currently we only generate these for CODECs, mostly as I have no systems
with non-CODEC DAPM to integrate with. It should be a simple matter of
programming to add the additional hookup for these.
Signed-off-by: Mark Brown <[email protected]>
Acked-by: Liam Girdwood <[email protected]>
|
|
Neater and avoids warnings when used in other places where const strings
are desired.
Signed-off-by: Mark Brown <[email protected]>
Acked-by: Liam Girdwood <[email protected]>
|
|
In order to allow us to do something smarter than iterate through widgets
doing strcmp() to work out what to power up for stream events change the
interface used to generate them to be based on the combination of a DAI
and a stream direction rather than just a simple string identifying the
stream.
At some point we'll probably want a set of channels too.
Signed-off-by: Mark Brown <[email protected]>
Acked-by: Liam Girdwood <[email protected]>
|
|
Let the caller fiddle with the widget after we're done in order to
facilitate further refactoring.
Signed-off-by: Mark Brown <[email protected]>
Acked-by: Liam Girdwood <[email protected]>
|
|
Everything now uses snd_soc_dapm_new_controls() instead so we don't need
to make it part of the external API.
Signed-off-by: Mark Brown <[email protected]>
Acked-by: Liam Girdwood <[email protected]>
|
|
We never modify it and this lets us use a const string as the name without
warnings.
Signed-off-by: Mark Brown <[email protected]>
Reviewed-by: Takashi Iwai <[email protected]>
Acked-by: Liam Girdwood <[email protected]>
|
|
This fixes below build warning:
CC sound/soc/pxa/spitz.o
sound/soc/pxa/spitz.c: In function 'spitz_startup':
sound/soc/pxa/spitz.c:116: warning: passing argument 1 of 'spitz_ext_control' from incompatible pointer type
sound/soc/pxa/spitz.c:47: note: expected 'struct snd_soc_card *' but argument is of type 'struct snd_soc_codec *'
Signed-off-by: Axel Lin <[email protected]>
Acked-by: Liam Girdwood <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
I suspect the timer register may also be volatile.
Signed-off-by: Mark Brown <[email protected]>
|
|
Signed-off-by: Mark Brown <[email protected]>
|
|
Convert to module_i2c_driver() too.
Signed-off-by: Mark Brown <[email protected]>
|
|
Redundant, the device is only a CODEC.
Signed-off-by: Mark Brown <[email protected]>
|
|
This allows userspace control of final power off, allowing policy decisions
for register configuration retention.
Signed-off-by: Mark Brown <[email protected]>
|
|
Only enable and disable the FLL when explicitly told to, supporting some
additional use cases and making the driver behaviour more standard.
Signed-off-by: Mark Brown <[email protected]>
|
|
No longer needed with regmap.
Signed-off-by: Mark Brown <[email protected]>
|
|
Signed-off-by: Mark Brown <[email protected]>
|
|
Signed-off-by: Mark Brown <[email protected]>
|
|
Otherwise we might not have a sensible clocking setup ready.
Signed-off-by: Mark Brown <[email protected]>
|
|
Make sure we update for any changes in cases where we reconfigure while
live (eg, for analogue bypass).
Signed-off-by: Mark Brown <[email protected]>
|
|
Machine kcontrols now use card instead of codec for thier "chip".
Signed-off-by: Liam Girdwood <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Show the id we read when the id mismatch is detected.
This is useful for debugging.
Signed-off-by: Axel Lin <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Signed-off-by: Axel Lin <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Allow platform widgets to be visible in debugfs like codec widgets.
Signed-off-by: Liam Girdwood <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Since the addition of the non-CODEC control adds card controls like the
DAPM pin switch have been broken as they are expecting the private data
for the control to be the CODEC but it's now the card. Fix that for the
pin switches, an audit of other drivers is required.
Signed-off-by: Mark Brown <[email protected]>
Acked-by: Liam Girdwood <[email protected]>
|
|
Update the codec debugfs initialisation to use dev_warn() instead of
printk(KERN_WARNING).
Signed-off-by: Liam Girdwood <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Currently when DAPM widgets are power sequenced the stream_event()
completion callback is only called for the stream_event originator
DAPM context. Other components in the card may also be interested so
make sure they are also notified of any widget power events.
Signed-off-by: Liam Girdwood <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
It's useful to export the DAPM reset as a static function for future use
by other DAPM functions. e.g. The dynamic PCM query widgets resets the DAPM
graph before working out active paths.
Signed-off-by: Liam Girdwood <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Improves performance on power up.
Signed-off-by: Mark Brown <[email protected]>
|
|
The main role of the WM9081 is as a class D speaker amplifier so there
is no concern about pops. There are also very few registers and a fast
power up time so we can happily mark the driver as idle_bias_off.
Signed-off-by: Mark Brown <[email protected]>
|
|
Better style and better supports idle_bias_off which we're going to
implement.
Signed-off-by: Mark Brown <[email protected]>
|
|
Signed-off-by: Mark Brown <[email protected]>
|
|
Signed-off-by: Mark Brown <[email protected]>
|
|
Signed-off-by: Mark Brown <[email protected]>
|
|
ALC5632 codec supports digital microphone. This patch adds DAPM widget.
Signed-off-by: Leon Romanovsky <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Ensure we're in a known state when we restart.
Signed-off-by: Mark Brown <[email protected]>
|
|
Raise the ramp time to 50ms to cover corner cases, use the startup bias
generator, explicitly reset the ramp circuit when complete and reorder
things all of which should improve performance somewhat for systems that
are sensitive to noise from VMID.
Signed-off-by: Mark Brown <[email protected]>
|
|
Reduces the amount of time taken to stabilise them.
Signed-off-by: Mark Brown <[email protected]>
|
|
The enable of the single ended line outputs on wm_hubs devices performs
better if the output is enabled prior to starting VMID. Since inactive
outputs are held at VMID anyway there is little cost to doing this for
unused outputs. Add callbacks into wm_hubs and keep track of which outputs
are really active so we can disable them once we're active.
Signed-off-by: Mark Brown <[email protected]>
|
|
Signed-off-by: Andrey Danin <[email protected]>
Signed-off-by: Leon Romanovsky <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
According to the mixer path diagram input sources' attenuators logically
belong to the playback path and DMIC boost only affects capture.
Signed-off-by: Paul Fertser <[email protected]>
Signed-off-by: Leon Romanovsky <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
This brings the TLVs in sync with the documentation and allows to properly
manipulate mic boost controls with alsamixer.
Signed-off-by: Paul Fertser <[email protected]>
Signed-off-by: Leon Romanovsky <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
This patch should fix output through speakers using HP mixer.
Signed-off-by: Andrey Danin <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Fix I2S digital interface power for recording.
Signed-off-by: Andrey Danin <[email protected]>
Signed-off-by: Leon Romanovsky <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Add DMIC switches and controls to ALC5632 codec.
Signed-off-by: Andrey Danin <[email protected]>
Signed-off-by: Leon Romanovsky <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Refactored DAPM routes to add voice support.
- Added undocumented register
- Used AIF in/out
- Added missed voice items and routes
- Added DMIC input
- Romoved unrelevant items
Signed-off-by: Andrey Danin <[email protected]>
Signed-off-by: Leon Romanovsky <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
There is no Phone Mix<->Mono Mix route in datasheet.
Signed-off-by: Andrey Danin <[email protected]>
Signed-off-by: Leon Romanovsky <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Rename capture switches to common scheme XXX2REC.
Signed-off-by: Andrey Danin <[email protected]>
Signed-off-by: Leon Romanovsky <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Add voice DAC playback switch.
Signed-off-by: Andrey Danin <[email protected]>
Signed-off-by: Leon Romanovsky <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Remove extra zero from volume step in DECLARE_TLV_DB_SCALE macro.
Signed-off-by: Andrey Danin <[email protected]>
Signed-off-by: Leon Romanovsky <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Signed-off-by: Andrey Danin <[email protected]>
Signed-off-by: Leon Romanovsky <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|