Instead of non-standard sysfs, reimplement the LED controls on
TonePort as LED class devices.
Tested-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Currently disconnect callback is used as a driver's destructor, and
this has to be called not only at the disconnection time but also at
the error paths during probe.
Tested-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
... so that timer_del_sync() in the destructor can be called safely at
any time. Also move the mod_timer() call in toneport_setup(), which
is a bit clearer place.
Tested-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The interface and driver objects are always set when callbacks are
called. Drop such superfluous NULL checks in init and disconnect
calls of each driver.
Tested-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
It's utterly unsafe to proceed further the disconnect procedure if the
assigned usbdev is inconsistent with the expected object. Better to
put a WARN_ON() for more cautions and abort immediately.
Tested-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The driver version string was removed in an ealier commit for being
useless. These are equally useless.
Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The correct spelling includes the space. Fix this in strings and
comments that refer to the manufacturer.
Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Call line6_pcm_disconnect() at disconnect to make sure that all URBs
are cleared. Also reduce the superfluous snd_pcm_stop() calls from
the function (and remove the unused function) since the streams are
guaranteed to be stopped at this point via snd_card_disconnect().
Tested-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Calling line6_pcm_disconnect() at suspend callback is superfluous and
rather confusing. Let's get rid of it.
Tested-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Such a debug is needed in the core code, not in each lowlevel driver.
Tested-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This is rather useless for a driver that has been already merged into
the official tree.
Tested-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This is a fairly big rewrite regarding the card resource management in
line6 drivers:
- The card creation is moved into line6_probe(). This adds the global
destructor to private_free, so that each driver doesn't have to call
it any longer.
- The USB disconnect callback handles the card release, thus each
driver needs to concentrate on only its own resources. No need to
snd_card_*() call in the destructor.
- Fix the potential stall in disconnection by removing
snd_card_free(). It's replaced with snd_card_free_when_closed()
for asynchronous release.
- The only remaining operation for the card in each driver is the call
of snd_card_register(). All the rest are dealt in the common module
by itself.
- These ended up with removal of audio.[ch] as a result of a reduction
of one layer. Each driver just needs to call line6_probe().
Tested-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The PCM trigger callback is guaranteed to be called already in
spinlock / irq-disabled context.
Tested-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The line6 drivers don't support the full resume although they set
SNDRV_PCM_INFO_RESUME. These flags have to be dropped to inform
properly to the user-space.
Also, drop the CONFIG_PM in trigger callbacks, too, which are rather
superfluous.
Tested-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Like the previous fix for PCM, attach the card-specific resource into
rawmidi->private_data instead of handling in a snd_device object.
This simplifies the code and structure.
Tested-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Instead of handling the card-specific resource in snd_device, attach
it into pcm->private_data and release it directly in private_free.
This simplifies the code and structure.
Tested-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Instead of sysfs and the conditional build with Kconfig, implement the
handling of the impulse response controls via control API, and always
enable the build. Two new controls, "Impulse Response Volume" and
"Impulse Response Period" are added as a replacement for the former
sysfs files.
Tested-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Split to each individual driver for POD, PODHD, TonePort and Variax
with a core LINE6 helper module. The new modules follow the standard
ALSA naming rule with snd prefix: snd-usb-pod, snd-usb-podhd,
snd-usb-toneport and snd-usb-variax, together with the corresponding
CONFIG_SND_USB_* Kconfig items.
Tested-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Promote line6 driver from staging to sound/usb/line6 directory, and
maintain through sound subsystem tree.
This commit just moves the code and adapts Makefile / Kconfig.
The further renames and misc cleanups will follow.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Although the 't->length' is a big-endian value, it's used without any
conversion. This means that the driver always uses 'length' parameter.
Fixes: 555e8a8f7f14("ALSA: fireworks: Add command/response functionality into hwdep interface")
Reported-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Vendor ID 0x10de0072 is used by a yet-to-be-named GPU chip.
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
stac_store_hints() does utterly wrong for masking the values for
gpio_dir and gpio_data, likely due to copy&paste errors. Fortunately,
this feature is used very rarely, so the impact must be really small.
Reported-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Commit 897c329bc ("ALSA: usb: caiaq: check for cdev->n_streams > 1")
introduced a safety check to protect against bogus data provided by
devices. However, the n_streams variable is already divided by
CHANNELS_PER_STREAM, so the correct check is 'n_streams > 0'.
Fix this to un-break support for stereo devices.
Signed-off-by: Daniel Mack <daniel@zonque.org>
Cc: stable@kernel.org [v3.18+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
A few fixes for v3.19, a few driver specifics and one core fix which
fixes a boot crash on OMAP if deferred probing kicks in due to
attempting to modify static data.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQEcBAABAgAGBQJUoXnhAAoJECTWi3JdVIfQU98H+wYL3/11DUS+qOhjkHBUzStB
VIIuw4Zf1gfEG+0gPSVI/oE0nTVZyYGGV2qIn01SDPMjOdcCRpC5sdwHDEN/YNXR
v9zpWydtUILkram4xXsUiqyJTznPOeqM7HUVROZu3IkR3IcFZ8eCjoXghZXcNuWo
6RezroZkV3KhUrxSWl0D07cWfl76dJt4XSKrT9a1iFGFg1fMBK9PwquhNbD1vami
n2kR740u95wDPIbxRliBm6yYuJ6D2Fwi5BmCGfp4gml+685tXMBmDZ26+W3nKQdZ
TiZyhMbtcGN3rYEoaKwHEeTCgfQtMxgxoyhcniOIZvbiV9oT3jtTJAl38xnnS5E=
=pFlY
-----END PGP SIGNATURE-----
Merge tag 'asoc-fix-v3.19-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v3.19
A few fixes for v3.19, a few driver specifics and one core fix which
fixes a boot crash on OMAP if deferred probing kicks in due to
attempting to modify static data.
The total stream number of Skylake's input and output stream
exceeds 15, which will cause some streams do not work because
of the overflow on SDxCTL.STRM field if using the legacy
stream tag allocation method.
This patch uses the new stream tag allocation method by add
the flag AZX_DCAPS_SEPARATE_STREAM_TAG for Skylake platform.
Signed-off-by: Libin Yang <libin.yang@intel.com>
Reviewed-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Implemented separate stream_tag assignment for input and output streams.
According to hda specification stream tag must be unique throughout the
input streams group, however an output stream might use a stream tag
which is already in use by an input stream. This change is necessary
to support HW which provides a total of more than 15 stream DMA engines
which with legacy implementation causes an overflow on SDxCTL.STRM
field (and the whole SDxCTL register) and as a result usage of
Reserved value 0 in the SDxCTL.STRM field which confuses HDA controller.
Signed-off-by: Rafal Redzimski <rafal.f.redzimski@intel.com>
Signed-off-by: Jayachandran B <jayachandran.b@intel.com>
Signed-off-by: Libin Yang <libin.yang@intel.com>
Reviewed-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Since RK3288 DMAC's burst length only support max to 4, here
set maxburst of playback and capture dma data to 4.
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
According to description about "Transmit Data Level",
This bit field controls the level at which a DMA request
is made by the transmit logic.
It is equal to the watermark level.
That is, the dma_tx_req signal is generated when the number
of valid data entries in the TXFIFO
(TXFIFO0 if CSR=00
TXFIFO1 if CSR=01
TXFIFO2 if CSR=10
TXFIFO3 if CSR=11)
is equal to or below this field value.
Different to receive data level, transmit data level does not need
to "-1".
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
For block span more than 1 section, when allocate it from
a free block, we need allocate the remain buffers within
the block, and then continue alloc the rest of needed
size buffer.
Here also make sure this free block is moved from free
list to used list, and add it to block_list which may
be used for power gating disabling later.
Signed-off-by: Jie Yang <yang.jie@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
snd_kcontrol_chip should return snd_soc_component instead of
snd_soc_codec
Signed-off-by: Fang, Yang A <yang.a.fang@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
snd_soc_sst_bytcr_dpcm_rt5640 doesn't autoload because MODULE_ALIAS doesn't
match with "bytt100_rt5640" platform device.
Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Cc: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
BYTCR DSP firmware is in intel/ subdirectory. See linux-firmware.git
commit d562a3b63632 ("linux-firmware: add sst audio firmware for baytrail
platforms").
Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
The Designware core can be configured with up to four stereo channels.
Each stereo channel is individually configured so, when the driver's
hw_params call is made, each requested stereo channel has to be
programmed.
Signed-off-by: Andrew Jackson <Andrew.Jackson@arm.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Flush the FIFOs when the stream is prepared for use. This avoids
an inadvertent swapping of the left/right channels if the FIFOs are
not empty at startup.
Signed-off-by: Andrew Jackson <Andrew.Jackson@arm.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
Fix following build error when CONFIG_I2C is not enabled:
sound/soc/codecs/rt5640.c:2252:1: warning: data definition has no type or storage class
module_i2c_driver(rt5640_i2c_driver);
^
sound/soc/codecs/rt5640.c:2252:1: error: type defaults to ‘int’ in declaration of ‘module_i2c_driver’ [-Werror=implicit-int]
sound/soc/codecs/rt5640.c:2252:1: warning: parameter names (without types) in function declaration
sound/soc/codecs/rt5640.c:2241:26: warning: ‘rt5640_i2c_driver’ defined but not used [-Wunused-variable]
static struct i2c_driver rt5640_i2c_driver = {
^
cc1: some warnings being treated as errors
Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
This removes the last few uses of CONFIG_PM_RUNTIME introduced
recently and makes that config option finally go away.
CONFIG_PM will be available directly from the menu now and
also it will be selected automatically if CONFIG_SUSPEND or
CONFIG_HIBERNATION is set.
/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iQIcBAABCAAGBQJUlYaPAAoJEILEb/54YlRx/SoP/2wYioGzBhOCYfHw6fZF8zrP
rotQ86sakhvSHre8K9QyFjvsA9wJ0CaTJF46YKZuHFhqU+IJZ7aXvNdEM1hK214J
Mf3L2AcbcdnXioAN+HpeZhQklp2qHe84YkVXBqsFD6kb/qUNV2LSjy6nKEUdY3jW
6KL2f3RgF/LDjTdedujJgcCYwMBwfX4B7U42BG4NQQ8z3wCV+imJgzNDrR5nNlqK
xu8ab8hO1Gi3msOJxS0y4MN6VTUpYOvQKhSyM9ErcB2ibclAdmcivKuFAz6gy5U7
PyDfYo/P3mXjMRBFb9fLqGtRcfstsnxPPSeKwp236tIQFX19Bj76UVUMJoUlXJP5
/f55/P7mCascg74ZZC4GiD/BSCRdqwInCsFMzqAfSq2NciKzeS6W7Mhd9VTLKDpl
5kqE39imUjZyps7/QqkfWskzB7Puhmqk3ZgTq2yAd4uQTpV7xlJYcnvr4oHCmAia
SsLdYOqMQzWr3qyz2f5cOqPAvOo3/Xk/HHfTOCHW/4L+Ov+C921/f3d5GnxX9Ha+
ucRaMp9j5FPYVwFaFkczAMNF2Eanq+Fupa3e6XUNNbYdchFqT9obnHZbVKyvswjR
vdGAYAjP/cLzIH9ETDCCXCRvBRw5pzeelDgvDPjPdmPjndHXG8WViyTIEyLL4+1i
BENtc/SUw3pZ7iNlGO78
=QnSO
-----END PGP SIGNATURE-----
Merge tag 'pm-config-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull CONFIG_PM_RUNTIME elimination from Rafael Wysocki:
"This removes the last few uses of CONFIG_PM_RUNTIME introduced
recently and makes that config option finally go away.
CONFIG_PM will be available directly from the menu now and also it
will be selected automatically if CONFIG_SUSPEND or CONFIG_HIBERNATION
is set"
* tag 'pm-config-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
PM: Eliminate CONFIG_PM_RUNTIME
tty: 8250_omap: Replace CONFIG_PM_RUNTIME with CONFIG_PM
sound: sst-haswell-pcm: Replace CONFIG_PM_RUNTIME with CONFIG_PM
spi: Replace CONFIG_PM_RUNTIME with CONFIG_PM
Here are a few fixes that have landed after the previous pull
request. All are driver specific fixes including:
- error/int value fixes in OXFW,
- Intel Skylake HD-audio HDMI codec support,
- Additional HD-audio Realtek codecs and AD1986A codec fixes/quirks,
- a few more DSD support and a quirk for Arcam rPAC in usb-audio,
- a typo fix for Scarlett 6i6,
- fixes for new ASIHPI firmware,
- ASoC Exynos7 cleanups,
- Intel ACPI support, and
- a fix for PCM512 register cache sync.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUkwikAAoJEGwxgFQ9KSmkBq4QAJKgRY2eTJNhg9tZhI1ldxRi
zSLtcMqDrFd/FjlutHxIlF8iXvm0dldfJP0rZwCQ/ULb6Fcy9tkXhhzfVsO4/507
vYpPpaq7zGVLeOzT6zgguQUnEMzMc3VIIqiPG9YC73/NYx7cxgmG27oa/PJz+Brm
/gVLlDzWn5rIagodSRMbUUf3YM5P9t2KZpRa8JAEUwWBy8PnzmMA9yx6cifbmnlV
Gcd7j438O22cW6ubXFtKsezV2hrWYoBSKiH3kj2soEZafCpnoI+Y0rxDeW4vI1SB
e/cI6C2ncxZodOD6fN1gJDgL5TLQetIAmN19ww9txb78UnP53b39J1fruJwGXdPV
h+H4oftIkoDx2ACT02xcW5EFn309PJphZi/g8qOFSLRAXZBTb9yw1PfyCHxPynT5
XbL7HTdgFU1S+eHjTFLjLGgsybJ7LaJCBwtQMeutXr1qjCAYTIKQeYxoi5ItSoM3
NeNe68XVV5D4lq6udt42uVxjOdAggXQAnS5YDH8TDTWaERIMLmQGueZaDkZ7bGVO
Wp3k4akURdF5mkVoQ5s3P4yYCOkf2zamZZsfSYIvT9MNZ9KWb+C/bslwsCzbmVLO
sIMXQ1FYo9tbVIa9TTLBLfmYaIkPq/V2xERw5ugf5iLibO+o4K0fnoquctIeEXCI
VQZ6BM6P7xB7iIyf7Of+
=HRbM
-----END PGP SIGNATURE-----
Merge tag 'sound-fix-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai:
"Here are a few fixes that have landed after the previous pull request.
All are driver specific fixes including:
- error/int value fixes in OXFW,
- Intel Skylake HD-audio HDMI codec support,
- Additional HD-audio Realtek codecs and AD1986A codec fixes/quirks,
- a few more DSD support and a quirk for Arcam rPAC in usb-audio,
- a typo fix for Scarlett 6i6,
- fixes for new ASIHPI firmware,
- ASoC Exynos7 cleanups,
- Intel ACPI support, and
- a fix for PCM512 register cache sync"
* tag 'sound-fix-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (24 commits)
ALSA: usb-audio: extend KEF X300A FU 10 tweak to Arcam rPAC
ALSA: hda/realtek - New codec support for ALC298
ALSA: asihpi: update to HPI version 4.14
ALSA: asihpi: increase tuner pad cache size
ALSA: asihpi: relax firmware version check
ALSA: usb-audio: Fix Scarlett 6i6 initialization typo
ALSA: hda - Add quirk for Packard Bell EasyNote MX65
ALSA: usb-audio: add native DSD support for Matrix Audio DACs
ALSA: hda/realtek - New codec support for ALC256
ALSA: hda/realtek - Add new Dell desktop for ALC3234 headset mode
ASoC: Intel: fix possible acpi enumeration panic
ALSA: hda/hdmi - apply Haswell fix-ups to Skylake display codec
ASoC: Intel: fix return value check in sst_acpi_probe()
ALSA: hda - Make add_stereo_mix_input flag tristate
ALSA: hda - Create capture source ctls when stereo mix input is added
ALSA: hda - Fix typos in snd_hda_get_int_hint() kerneldoc comments
ALSA: hda - add codec ID for Skylake display audio codec
ALSA: oxfw: some signedness bugs
ALSA: oxfw: fix detect_loud_models() return value
ASoC: rt5677: add REGMAP_I2C and REGMAP_IRQ dependency
...