summaryrefslogtreecommitdiffstats
path: root/include/sound
Commit message (Collapse)AuthorAgeFilesLines
...
| | | | | | |
| | \ \ \ \ \
| *-. \ \ \ \ \ Merge remote-tracking branches 'asoc/topic/atmel-classd', 'asoc/topic/const' ↵Mark Brown2015-12-231-0/+109
| |\ \ \ \ \ \ \ | | | |/ / / / / | | |/| | | | | | | | | | | | | and 'asoc/topic/da7218' into asoc-next
| | | * | | | | ASoC: da7218: Add da7218 codec driverAdam Thomson2015-11-301-0/+109
| | |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for DA7217 and DA7218 audio codecs. Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | | | | | |
| | \ \ \ \ \
| *-. | | | | | Merge remote-tracking branches 'asoc/topic/ac97', 'asoc/topic/adsp', ↵Mark Brown2015-12-231-0/+3
| |\ \| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'asoc/topic/ak4613' and 'asoc/topic/atmel' into asoc-next
| | * | | | | | ASoC: ac97: add gpio chipRobert Jarzmik2015-11-181-0/+3
| | |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The AC97 specification provides a guide for 16 GPIOs in the codecs. If the gpiolib is compiled in the kernel, declare a gpio chip. This was tested with a pxa27x board (mioa701) and a wm9713 codec. Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | | | | | Merge remote-tracking branch 'asoc/topic/pcm3168a' into asoc-nextMark Brown2015-12-231-0/+8
| |\ \ \ \ \ \
| | * | | | | | ASoC: Add SOC_DOUBLE_STS macroDamien.Horsley2015-12-121-0/+8
| | |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add SOC_DOUBLE_STS macro for read-only volatile status controls Signed-off-by: Damien.Horsley <Damien.Horsley@imgtec.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | | | | | Merge remote-tracking branch 'asoc/topic/pcm-list' into asoc-nextMark Brown2015-12-231-3/+22
| |\ \ \ \ \ \ | | | |_|_|_|/ | | |/| | | |
| | * | | | | ASoC: Define add/remove_dai_link ops for a soc cardMengdong Lin2015-12-081-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A machine driver can register the two ops. When a DAI link is added or removed by a component's topology, the ASoC core can call the ops to notify the machine driver for extra intialization or destruction. E.g. topology can create FE DAI links from a cpu DAI component, and the machine driver may define an add_dai_link ops to set machine-specific .init ops for the DAI link. Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * | | | | ASoC: Implement DAI links in a list & define API to add/remove a linkMengdong Lin2015-12-081-2/+13
| | | |/ / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement a dai link list for the soc card. Add APIs to add/remove a DAI links dynamically, e.g. by topology. And a dobj is embedded into the struct snd_soc_dai_link. Topology can use the dobj to find the links created by it and remove them when the topology component is unloaded. The predefined DAI links are reserved to keep backward compatibility. And they will also be added to the list. Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * | | | ASoC: Change the PCM runtime array to a listMengdong Lin2015-11-181-1/+4
| | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the number of DAI links is statically defined by the machine driver at build time using an array. This makes it difficult to shrink/ grow the number of DAI links at runtime in order to reflect any changes in topology. We can change the DAI link array in the core to a list so that PCMs and FE DAI links can be added and deleted at runtime to reflect changes in use case and DSP topology. The machine driver can still register DAI links as an array. As the 1st step, this patch change the PCM runtime array to a list. A new PCM runtime is added to the list when a DAI link is bound successfully. Later patches will further implement the DAI link list. More: - define snd_soc_new/free_pcm_runtime() to create/free a runtime. - define soc_add_pcm_runtime() to add a runtime to the rtd list. - define soc_remove_pcm_runtimes() to clean up the runtime list. - traverse the rtd list to probe the link components and dais. - Add a field "num" to PCM runtime struct, used to specify the device number when creating the pcm device, and for a soc card to access its dai_props array. - The following 3rd party machine/platform drivers iterate the rtd list to check the runtimes: sound/soc/intel/atom/sst-mfld-platform-pcm.c sound/soc/intel/boards/cht_bsw_rt5645.c sound/soc/intel/boards/cht_bsw_rt5672.c sound/soc/intel/boards/cht_bsw_max98090_ti.c Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | | | Merge remote-tracking branch 'asoc/topic/dapm' into asoc-nextMark Brown2015-12-232-0/+7
| |\ \ \ \ | | |_|_|/ | |/| | |
| | * | | Merge branch 'topic/sink' of ↵Mark Brown2015-12-011-0/+4
| | |\ \ \ | | | | |/ | | | |/| | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-dapm
| | | * | ASoC: dapm: add a dapm sink widgetVinod Koul2015-11-251-0/+4
| | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DAPM models various widgets but lacks a sink widget. DSPs can have modules which take audio data, process it and are capable of generating events thus acting as a sink of data. To make the dapm graph complete for such paths we need a dapm sink widget for these modules, so add a SND_SOC_DAPM_SINK to declare such a widget. This widget will be treated as SND_SOC_DAPM_EP_SINK endpoint in the dapm graph Signed-off-by: Vinod Koul <vinod.koul@intel.com> Reviewed-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * / ASoC: core: mark SND_SOC_BYTES_EXT as deprecatedVinod Koul2015-11-251-0/+3
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | Since we have SND_SOC_BYTES_TLV control to lets devices have larger size data sent, we do not need SND_SOC_BYTES_EXT with 512 byte limitation so mark it deprecated Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* | | Merge branch 'for-linus' into for-nextTakashi Iwai2015-12-231-0/+3
|\| | | | | | | | | | | | | | Conflicts: drivers/gpu/drm/i915/intel_pm.c
| * | ALSA: hda - Fix playback noise with 24/32 bit sample size on BXTLu, Han2015-12-071-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In BXT-P A0, HD-Audio DMA requests is later than expected, and makes an audio stream sensitive to system latencies when 24/32 bits are playing. Adjusting threshold of DMA fifo to force the DMA request sooner to improve latency tolerance at the expense of power. v2: move Intel specific code to hda_intel.c Signed-off-by: Lu, Han <han.lu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: hda - Move audio component accesses to hdac_i915.cTakashi Iwai2015-12-101-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A couple of i915_audio_component ops have been added and accessed directly from patch_hdmi.c. Ideally all these should be factored out into hdac_i915.c. This patch does it, adds two new helper functions for setting N/CTS and fetching ELD bytes. One bonus is that the hackish widget vs port mapping is also moved to hdac_i915.c, so that it can be fixed / enhanced more cleanly. Reviewed-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: compress: Pass id string to snd_compress_newRichard Fitzgerald2015-11-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make snd_compress_new take an id string (like snd_pcm_new). This string can be included in the procfs info. This patch also updates soc_new_compress() to create an ID based on the stream and dai name, as done for PCM streams. Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com> Acked-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: compress: Add procfs info file for compressed nodesRichard Fitzgerald2015-11-301-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements a procfs info file for compr nodes when SND_VERBOSE_PROCFS is enabled. This is equivalent to what the PCM core already does for pcm nodes. Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com> Acked-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: i2c: constify snd_i2c_ops structuresJulia Lawall2015-11-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The snd_i2c_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | Merge branch 'for-linus' into for-nextTakashi Iwai2015-11-271-0/+1
|\| |
| * | Merge remote-tracking branch 'asoc/fix/dapm' into asoc-linusMark Brown2015-11-251-0/+1
| |\ \ | | |/ | |/|
| | * ASoC: dapm: Reset dapm wcache after freeing damp widgetsJyri Sarha2015-11-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If there is anything in damp->path_source_cache or damp->path_sink_cache, it can not be valid after the widgets have been freed. Without this patch a repeated remove and load of a machine driver may cause NULL pointer reference in dapm_wcache_lookup() when a freed widget, not belonging to any list, is haunting in the wcache. Signed-off-by: Jyri Sarha <jsarha@ti.com> Reported-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* | | ALSA: midi: constify snd_rawmidi_global_ops structuresJulia Lawall2015-11-221-1/+1
|/ / | | | | | | | | | | | | | | | | | | The snd_rawmidi_global_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: Constify ratden/ratnum constraintsLars-Peter Clausen2015-10-281-5/+5
| | | | | | | | | | | | | | | | | | | | | | The ALSA core does not modify the constraints provided by a driver. Most constraint helper functions already take a const pointer to the constraint description, the exception at the moment being the ratden and ratnum constraints. Make those const as well, this allows a driver to declare them as const. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge tag 'asoc-v4.3-rc6' of ↵Takashi Iwai2015-10-2611-129/+194
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next ASoC: Updates for v4.4 Not much core work here, a few small tweaks to interfaces but mainly the changes here are driver ones. Highlights include: - Updates to the topology userspace interface - Big updates to the Renesas support from Morimoto-san - Most of the support for Intel Sky Lake systems. - New drivers for Asahi Kasei Microdevices AK4613, Allwinnner A10, Cirrus Logic WM8998, Dialog DA7219, Nuvoton NAU8825 and Rockchip S/PDIF. - A new driver for the Atmel Class D speaker drivers
| *-. Merge remote-tracking branches 'asoc/topic/rt298', 'asoc/topic/rt5640', ↵Mark Brown2015-10-261-1/+2
| |\ \ | | | | | | | | | | | | 'asoc/topic/samsung' and 'asoc/topic/sh' into asoc-next
| | | * ASoC: rt5640: Fill up the IN3's supportOder Chiou2015-10-221-1/+2
| | |/ | | | | | | | | | | | | Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | |
| | \
| *-. | Merge remote-tracking branches 'asoc/topic/rcar', 'asoc/topic/rl6347a', ↵Mark Brown2015-10-261-117/+0
| |\ \| | | | | | | | | | | | | 'asoc/topic/rockchip' and 'asoc/topic/rt286' into asoc-next
| | * | ASoC: rsnd: Remove obsolete platform data supportGeert Uytterhoeven2015-10-071-117/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 3d7608e4c169af03 ("ARM: shmobile: bockw: remove legacy board file and config"), Renesas R-Car SoCs are only supported in generic DT-only ARM multi-platform builds. The driver doesn't need to use platform data anymore, hence remove platform data configuration. Move <sound/rcar_snd.h> to sound/soc/sh/rcar/, as it's no longer needed by platform code. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Mark Brown <broonie@kernel.org>
| | | |
| | \ \
| *-. \ \ Merge remote-tracking branches 'asoc/topic/nau8825' and 'asoc/topic/pxa' ↵Mark Brown2015-10-261-1/+0
| |\ \ \ \ | | | |_|/ | | |/| | | | | | | into asoc-next
| | | * | ASoC: pxa: pxa-pcm-lib: switch over to snd-soc-dmaengine-pcmDaniel Mack2015-09-301-1/+0
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes the old PXA DMA API usage and switches over to generic functions provided by snd-soc-dmaengine-pcm. More cleanups may be done on top of this, and some function stubs can now be removed completetly. However, the intention here was to keep the transition as small as possible. This was tested on the mioa701 pxa27x board. Signed-off-by: Daniel Mack <zonque@gmail.com> [trivial change from mmp-dma to pxa-dma] Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Signed-off-by: Mark Brown <broonie@kernel.org>
| | | |
| | \ \
| *-. | | Merge remote-tracking branches 'asoc/topic/dwc', 'asoc/topic/es8328', ↵Mark Brown2015-10-261-0/+2
| |\ \| | | | | | | | | | | | | | | | | 'asoc/topic/fsl' and 'asoc/topic/fsl-card' into asoc-next
| | * | | ASoC: dwc: support dw i2s in slave modeMaruthi Srinivas Bayyavarapu2015-10-051-0/+2
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dw i2s controller can work in slave mode, codec being master. dw i2s is made to support master/slave operation, by reading dwc register. Signed-off-by: Maruthi Bayyavarapu <maruthi.bayyavarapu@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | | Merge remote-tracking branch 'asoc/topic/da7219' into asoc-nextMark Brown2015-10-263-0/+161
| |\ \ \
| | * | | ASoC: codecs: Add da7219 codec driverAdam Thomson2015-10-022-0/+154
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for the DA7219 audio codec with built-in advanced accessory detect features. Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * | | ASoC: Add SOC_DOUBLE_R_EXTAdam Thomson2015-09-301-0/+7
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | _EXT version of SOC_DOUBLE_R required to allow for custom handlers. Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | | |
| | \ \
| *-. \ \ Merge remote-tracking branches 'asoc/topic/atmel-classd' and ↵Mark Brown2015-10-261-3/+0
| |\ \ \ \ | | | |/ / | | |/| | | | | | | 'asoc/topic/da7213' into asoc-next
| | | * | ASoC: da7213: Add support to handle mclk data provided to driverAdam Thomson2015-10-071-3/+0
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Driver now can make use of mclk data, if provided, to set, enable and disable the clock source. As part of this, the choice to enable clock squaring is dealt with as part of dai_sysclk() call rather than as platform data. Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | | Merge remote-tracking branch 'asoc/topic/doc' into asoc-nextMark Brown2015-10-261-1/+16
| |\ \ \
| | * | | ASoC: Document DAI signal polarityAnatol Pomozov2015-10-231-1/+16
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently there is no clear definition of what FSYNC polarity is. Different drivers use its own definition of what is "normal" and what is "inverted" fsync. This leads to compatibility problems between drivers. For example TegraX1 driver assumes that DSP-A format with frames starting at rising FSYNC edge has "inverted" polarity, while RT5677 assumes it is "normal" polarity. Explicitly specify meaning of BCLK/FSYNC polarity to avoid future compatibility problems. Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | | Merge remote-tracking branch 'asoc/topic/dapm' into asoc-nextMark Brown2015-10-261-0/+3
| |\ \ \
| | * | | ASoC: dapm: Add snd_soc_dapm_kcontrol_widget()Mythri P K2015-10-221-0/+3
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Given a kcontrol, we may want to access the parent widget and it's associated data. So export function to return it. Signed-off-by: Mythri P K <mythri.p.k@intel.com> Signed-off-by: Jeeja KP <jeeja.kp@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | | Merge remote-tracking branch 'asoc/topic/core' into asoc-nextMark Brown2015-10-262-3/+5
| |\ \ \
| | * | | ASoC: compress: add config item for soc-compress to make it compiled only ↵Jie Yang2015-10-222-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when needed We don't always need soc-compress in soc, here add a config item SND_SOC_COMPRESS, when nobody select it, the soc-compress will not be compiled. Here also change Kconfig to 'select SND_SOC_COMPRESS' for drivers that needed soc-compress. Signed-off-by: Jie Yang <yang.jie@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * | | ASoC: Let snd_soc_limit_volume() take a snd_soc_cardLars-Peter Clausen2015-10-221-1/+1
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | snd_soc_limit_volume() operates on a card and the CODEC that is passed in is only used to look up the card. Let it directly take the card instead. This makes it possible to use it when no snd_soc_codec is available. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Tested-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | | Merge tag 'asoc-v4.3-rc2' into asoc-nextMark Brown2015-10-264-1/+18
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ASoC: Updates for v4.4 A first batch of updates targetted at v4.4. There are no substantial core fixes here, the biggest block of changes is updates to the rcar drivers and the addition of a CODEC driver for the AK4613. # gpg: Signature made Fri 25 Sep 2015 05:37:06 KST using RSA key ID 5D5487D0 # gpg: key CD7BEEBC: no public key for trusted key - skipped # gpg: key CD7BEEBC marked as ultimately trusted # gpg: key AF88CD16: no public key for trusted key - skipped # gpg: key AF88CD16 marked as ultimately trusted # gpg: key 16005C11: no public key for trusted key - skipped # gpg: key 16005C11 marked as ultimately trusted # gpg: key 5621E907: no public key for trusted key - skipped # gpg: key 5621E907 marked as ultimately trusted # gpg: key 5C6153AD: no public key for trusted key - skipped # gpg: key 5C6153AD marked as ultimately trusted # gpg: Good signature from "Mark Brown <broonie@sirena.org.uk>" # gpg: aka "Mark Brown <broonie@debian.org>" # gpg: aka "Mark Brown <broonie@kernel.org>" # gpg: aka "Mark Brown <broonie@tardis.ed.ac.uk>" # gpg: aka "Mark Brown <broonie@linaro.org>" # gpg: aka "Mark Brown <Mark.Brown@linaro.org>"
| | \ \ \
| | \ \ \
| *-. \ \ \ Merge remote-tracking branches 'asoc/fix/rt298', 'asoc/fix/sx', ↵Mark Brown2015-10-232-3/+5
| |\ \ \ \ \ | | |_|_|/ / | |/| | | | | | | | | | 'asoc/fix/wm8904' and 'asoc/fix/wm8962' into asoc-linus
| | | * | | ASoC: wm8904: Correct number of EQ registersCharles Keepax2015-10-201-1/+1
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are 24 EQ registers not 25, I suspect this bug came about because the registers start at EQ1 not zero. The bug is relatively harmless as the extra register written is an unused one. Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
| | * | | ASoC: Add info callback for SX_TLV controlsCharles Keepax2015-10-161-2/+4
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SX_TLV controls are intended for situations where the register behind the control has some non-zero value indicating the minimum gain and then gains increasing from there and eventually overflowing through zero. Currently every CODEC implementing these controls specifies the minimum as the non-zero value for the minimum and the maximum as the number of gain settings available. This means when the info callback subtracts the minimum value from the maximum value to calculate the number of gain levels available it is actually under reporting the available levels. This patch fixes this issue by adding a new snd_soc_info_volsw_sx callback that does not subtract the minimum value. Fixes: 1d99f2436d0d ("ASoC: core: Rework SOC_DOUBLE_R_SX_TLV add SOC_SINGLE_SX_TLV") Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Acked-by: Brian Austin <brian.austin@cirrus.com> Tested-by: Brian Austin <brian.austin@cirrus.com> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org