18 Oct, 2017
1 commit
-
commit 99fee508245825765ff60155fed43f970ff83a8f upstream.
caiaq driver doesn't kill the URB properly at its error path during
the probe, which may lead to a use-after-free error later. This patch
addresses it.Reported-by: Johan Hovold
Reviewed-by: Johan Hovold
Signed-off-by: Takashi Iwai
Signed-off-by: Greg Kroah-Hartman
12 Aug, 2016
1 commit
-
kmalloc will print enough information in case of failure.
Signed-off-by: Wolfram Sang
Signed-off-by: Takashi Iwai
05 Jan, 2015
1 commit
-
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
Cc: stable@kernel.org [v3.18+]
Signed-off-by: Takashi Iwai
07 Oct, 2014
1 commit
-
Coverity spotted a possible DIV0 condition when cdev->n_streams is 0.
Fix this by making sure the value is > 1 in snd_usb_caiaq_audio_init().
Signed-off-by: Daniel Mack
Signed-off-by: Takashi Iwai
22 Sep, 2014
1 commit
-
KoreController and KoreController2 need an EP1_CMD_DIMM_LEDS command to set
their LEDs, not EP1_CMD_WRITE_IO.Signed-off-by: Daniel Mack
Reported-and-tested-by: Brad Wilson
Signed-off-by: Takashi Iwai
12 Feb, 2014
1 commit
-
Also remove superfluous snd_card_set_dev() calls.
Signed-off-by: Takashi Iwai
30 Sep, 2013
1 commit
-
This patch adds LED support for the Native Instruments Maschine
Controller. It adds ALSA controls for dimming the LEDs of all
buttons and the backlight of the two displays.Signed-off-by: Hannes Gräuler
Acked-by: Daniel Mack
Signed-off-by: Takashi Iwai
21 Jun, 2013
3 commits
-
In sound/usb/card.c and sound/usb/misc/ua101.c there are no spaces
between the vendor and the device names, use this style in the other
drivers too.This also helps keeping consistency when new drivers copies from the
ones already in the mainline tree.Signed-off-by: Antonio Ospite
Signed-off-by: Takashi Iwai -
For USB devices it's not necessary to allocate physically contiguous
buffers.Signed-off-by: Antonio Ospite
Signed-off-by: Takashi Iwai -
The snd_card_used variable is only read but never written, remove it.
Signed-off-by: Antonio Ospite
Signed-off-by: Takashi Iwai
30 Apr, 2013
1 commit
-
Current code does this:
be16_to_cpu(buf[i * 2] << 8 | buf[(i * 2) + 1])
Which is effectively (neglecting the index):
be16_to_cpu(be16_to_cpu(*((u16 *) buf)))
This means the int16 in the buffer is not converted at all.
Daniel Mack confirmed that the driver works on little endian
CPUs, leading to the conclusion that the device-side structure
is actually little endian.
This changes the code to use le16_to_cpu().Caught by sparse.
Acked-by: Daniel Mack
Signed-off-by: Eldad Zack
Signed-off-by: Takashi Iwai
29 Apr, 2013
1 commit
-
The recent changes in the USB API ("implement new semantics for
URB_ISO_ASAP") made the former meaning of the URB_ISO_ASAP flag the
default, and changed this flag to mean that URBs can be delayed.
This is not the behaviour wanted by any of the audio drivers because
it leads to discontinuous playback with very small period sizes.
Therefore, our URBs need to be submitted without this flag.Reported-by: Joe Rayhawk
Cc: # 3.8 only
Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai
07 Mar, 2013
1 commit
-
Fix three smatch warnings recently introduced:
sound/usb/caiaq/device.c:166 usb_ep1_command_reply_dispatch() warn:
variable dereferenced before check 'cdev' (see line 163)
sound/usb/caiaq/device.c:517 snd_disconnect() warn: variable
dereferenced before check 'card' (see line 514)
sound/usb/caiaq/input.c:510 snd_usb_caiaq_ep4_reply_dispatch() warn:
variable dereferenced before check 'cdev' (see line 506)Signed-off-by: Daniel Mack
Reported-by: Dan Carpenter
Signed-off-by: Takashi Iwai
04 Mar, 2013
2 commits
-
Get rid of the proprietary functions log() and debug() and use the
generic dev_*() approach. A macro is needed to cast a cdev to a struct
device *.Signed-off-by: Daniel Mack
Signed-off-by: Takashi Iwai -
This is needed in order to make the device namespace cleaner, and will
help when moving this driver over to dev_*() logging.Signed-off-by: Daniel Mack
Signed-off-by: Takashi Iwai
29 Jan, 2013
1 commit
-
It looks like MODULE_SUPPORTED_DEVICES() is not implemented yet, but
still, having the entries in the list consistently separated by commas
and with balanced parenthesis won't hurt.Signed-off-by: Antonio Ospite
Acked-by: Daniel Mack
Signed-off-by: Takashi Iwai
07 Dec, 2012
1 commit
-
CONFIG_HOTPLUG is going away as an option. As result the __dev*
markings will be going away.Remove use of __devinit, __devexit_p, __devinitdata, __devinitconst,
and __devexit.Signed-off-by: Bill Pemberton
Acked-by: Daniel Mack
Signed-off-by: Takashi Iwai
27 Jun, 2012
1 commit
-
Fixes the following warning:
CC [M] sound/usb/caiaq/device.o
sound/usb/caiaq/device.c: In function ‘snd_probe’:
sound/usb/caiaq/device.c:500:16: warning: ‘card’ may be used
uninitialized in this function [-Wmaybe-uninitialized]Signed-off-by: Daniel Mack
Signed-off-by: Takashi Iwai
22 Feb, 2012
1 commit
-
Commit 3702b08 added a lock, but did not account for the case of
SNDRV_PCM_POS_XRUN, which would get immediately overwritten.This could be bundled into one if-else-if statement, but the goto
helps to clarify the 'exceptional' case.Thanks to Andreas Pape for spotting this.
Signed-off-by: Mark Hills
Acked-by: Daniel Mack
Signed-off-by: Takashi Iwai
13 Jan, 2012
1 commit
-
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (526 commits)
ASoC: twl6040 - Add method to query optimum PDM_DL1 gain
ALSA: hda - Fix the lost power-setup of seconary pins after PM resume
ALSA: usb-audio: add Yamaha MOX6/MOX8 support
ALSA: virtuoso: add S/PDIF input support for all Xonars
ALSA: ice1724 - Support for ooAoo SQ210a
ALSA: ice1724 - Allow card info based on model only
ALSA: ice1724 - Create capture pcm only for ADC-enabled configurations
ALSA: hdspm - Provide unique driver id based on card serial
ASoC: Dynamically allocate the rtd device for a non-empty release()
ASoC: Fix recursive dependency due to select ATMEL_SSC in SND_ATMEL_SOC_SSC
ALSA: hda - Fix the detection of "Loopback Mixing" control for VIA codecs
ALSA: hda - Return the error from get_wcaps_type() for invalid NIDs
ALSA: hda - Use auto-parser for HP laptops with cx20459 codec
ALSA: asihpi - Fix potential Oops in snd_asihpi_cmode_info()
ALSA: hdsp - Fix potential Oops in snd_hdsp_info_pref_sync_ref()
ALSA: hda/cirrus - support for iMac12,2 model
ASoC: cx20442: add bias control over a platform provided regulator
ALSA: usb-audio - Avoid flood of frame-active debug messages
ALSA: snd-usb-us122l: Delete calls to preempt_disable
mfd: Put WM8994 into cache only mode when suspending
...Fix up trivial conflicts in:
- arch/arm/mach-s3c64xx/mach-crag6410.c:
renamed speyside_wm8962 to tobermory, added littlemill right
next to it
- drivers/base/regmap/{regcache.c,regmap.c}:
duplicate diff that had already come in with other changes in
the regmap tree
19 Dec, 2011
1 commit
-
module_param(bool) used to counter-intuitively take an int. In
fddd5201 (mid-2009) we allowed bool or int/unsigned int using a messy
trick.It's time to remove the int/unsigned int option. For this version
it'll simply give a warning, but it'll break next kernel version.Signed-off-by: Rusty Russell
Signed-off-by: Takashi Iwai
19 Nov, 2011
1 commit
-
This converts the drivers in sound/* to use the
module_usb_driver() macro which makes the code smaller and a bit
simpler.Added bonus is that it removes some unneeded kernel log messages about
drivers loading and/or unloading.Cc: Jaroslav Kysela
Cc: Takashi Iwai
Cc: Daniel Mack
Cc: Clemens Ladisch
Cc: Torsten Schenk
Cc: Paul Gortmaker
Cc: Karsten Wiese
Signed-off-by: Greg Kroah-Hartman
13 Oct, 2011
2 commits
-
This adds partial support for the Maschine controller by Native Instruments.
Supported now are the 1x1 MIDI interface and the 41 buttons, 11 endless
rotary encoders, and 16 pressure-sensitive drum pads. Still to work on are the
dimmable LEDs and the two monochrome screens.Signed-off-by: William Light
Signed-off-by: Takashi Iwai -
There was a case where a newly-registered input device could be opened before
a necessary variable in the device structure was set. When code tried to use
the variable in the URB reply callback, it would cause an Oops.This fix sets the aforementioned variable before calling input_register_device.
Signed-off-by: William Light
Signed-off-by: Takashi Iwai
15 Aug, 2011
1 commit
-
The snd_usb_caiaq driver currently assumes that output urbs are serviced
in time and doesn't track when and whether they are given back by the
USB core. That usually works fine, but due to temporary limitations of
the XHCI stack, we faced that urbs were submitted more than once with
this approach.As it's no good practice to fire and forget urbs anyway, this patch
introduces a proper bit mask to track which requests have been submitted
and given back.That alone however doesn't make the driver work in case the host
controller is broken and doesn't give back urbs at all, and the output
stream will stop once all pre-allocated output urbs are consumed. But
it does prevent crashes of the controller stack in such cases.See http://bugzilla.kernel.org/show_bug.cgi?id=40702 for more details.
Signed-off-by: Daniel Mack
Reported-and-tested-by: Matej Laitl
Cc: Sarah Sharp
Cc: stable@kernel.org
Signed-off-by: Takashi Iwai
11 Aug, 2011
1 commit
-
This fixes faulty outbount packets in case the inbound packets
received from the hardware are fragmented and contain bogus input
iso frames. The bug has been there for ages, but for some strange
reasons, it was only triggered by newer machines in 64bit mode.Signed-off-by: Daniel Mack
Reported-and-tested-by: William Light
Reported-by: Pedro Ribeiro
Cc: stable@kernel.org
Signed-off-by: Takashi Iwai
06 Aug, 2011
1 commit
-
Signed-off-by: Daniel Mack
Reported-by: Renato
Cc: stable@kernel.org
Signed-off-by: Takashi Iwai
11 Mar, 2011
1 commit
15 Feb, 2011
2 commits
-
Use strlcpy() to assure not to overflow the string array sizes by
too long USB device name string.Reported-by: Rafa
Cc: stable
Signed-off-by: Takashi Iwai -
Signed-off-by: Daniel Mack
Signed-off-by: Takashi Iwai
10 Sep, 2010
2 commits
-
This patch adds support for the new Traktor Kontrol S4 by Native
Instruments. It features a new audio data streaming model, MIDI
in and out ports, a huge number of 174 dimmable LEDs, 96 buttons
and 46 absolute encoder axis, including some rotary encoders.All features are supported by the driver now.
Did some code refactoring along the way.
Signed-off-by: Daniel Mack
Signed-off-by: Takashi Iwai -
Let git do the job.
Signed-off-by: Daniel Mack
Signed-off-by: Takashi Iwai
30 May, 2010
4 commits
-
Acked-by: Daniel Mack
Signed-off-by: Mark Hills
Signed-off-by: Takashi Iwai -
Do not explicity set the default input mode. Use the hardware default
of mode 0 ('Control vinyl'), which is now available.This reverts commit e3ca4c9.
Acked-by: Daniel Mack
Signed-off-by: Mark Hills
Signed-off-by: Takashi Iwai -
After removing code, only one case remains. So use an 'if' instead.
Acked-by: Daniel Mack
Signed-off-by: Mark Hills
Signed-off-by: Takashi Iwai -
This feature was undocumented on early A4DJ units. It is indicated
by lighting both the 'line' and 'phono' lamps at the same time.
Newer units document this and the newer Windows drivers enable this
for all units, so restore the functionality.This patch simplifies the code and changes the mode mapping to match
the A8DJ, favouring simpler code and consistency over keeping the
existing mapping.Both 'Control vinyl' and 'Phono' input modes enable the hardware
preamp. The difference is the input impedance.This reverts commit 9a9527e.
Acked-by: Daniel Mack
Signed-off-by: Mark Hills
Signed-off-by: Takashi Iwai
26 May, 2010
1 commit
-
Signed-off-by: Daniel Mack
Signed-off-by: Takashi Iwai
16 Apr, 2010
1 commit
30 Mar, 2010
2 commits
-
…it slab.h inclusion from percpu.h
percpu.h is included by sched.h and module.h and thus ends up being
included when building most .c files. percpu.h includes slab.h which
in turn includes gfp.h making everything defined by the two files
universally available and complicating inclusion dependencies.percpu.h -> slab.h dependency is about to be removed. Prepare for
this change by updating users of gfp and slab facilities include those
headers directly instead of assuming availability. As this conversion
needs to touch large number of source files, the following script is
used as the basis of conversion.http://userweb.kernel.org/~tj/misc/slabh-sweep.py
The script does the followings.
* Scan files for gfp and slab usages and update includes such that
only the necessary includes are there. ie. if only gfp is used,
gfp.h, if slab is used, slab.h.* When the script inserts a new include, it looks at the include
blocks and try to put the new include such that its order conforms
to its surrounding. It's put in the include block which contains
core kernel includes, in the same order that the rest are ordered -
alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
doesn't seem to be any matching order.* If the script can't find a place to put a new include (mostly
because the file doesn't have fitting include block), it prints out
an error message indicating which .h file needs to be added to the
file.The conversion was done in the following steps.
1. The initial automatic conversion of all .c files updated slightly
over 4000 files, deleting around 700 includes and adding ~480 gfp.h
and ~3000 slab.h inclusions. The script emitted errors for ~400
files.2. Each error was manually checked. Some didn't need the inclusion,
some needed manual addition while adding it to implementation .h or
embedding .c file was more appropriate for others. This step added
inclusions to around 150 files.3. The script was run again and the output was compared to the edits
from #2 to make sure no file was left behind.4. Several build tests were done and a couple of problems were fixed.
e.g. lib/decompress_*.c used malloc/free() wrappers around slab
APIs requiring slab.h to be added manually.5. The script was run on all .h files but without automatically
editing them as sprinkling gfp.h and slab.h inclusions around .h
files could easily lead to inclusion dependency hell. Most gfp.h
inclusion directives were ignored as stuff from gfp.h was usually
wildly available and often used in preprocessor macros. Each
slab.h inclusion directive was examined and added manually as
necessary.6. percpu.h was updated not to include slab.h.
7. Build test were done on the following configurations and failures
were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
distributed build env didn't work with gcov compiles) and a few
more options had to be turned off depending on archs to make things
build (like ipr on powerpc/64 which failed due to missing writeq).* x86 and x86_64 UP and SMP allmodconfig and a custom test config.
* powerpc and powerpc64 SMP allmodconfig
* sparc and sparc64 SMP allmodconfig
* ia64 SMP allmodconfig
* s390 SMP allmodconfig
* alpha SMP allmodconfig
* um on x86_64 SMP allmodconfig8. percpu.h modifications were reverted so that it could be applied as
a separate patch and serve as bisection point.Given the fact that I had only a couple of failures from tests on step
6, I'm fairly confident about the coverage of this conversion patch.
If there is a breakage, it's likely to be something in one of the arch
headers which should be easily discoverable easily on most builds of
the specific arch.Signed-off-by: Tejun Heo <tj@kernel.org>
Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com> -
Implicit slab.h inclusion via percpu.h is about to go away. Make sure
gfp.h or slab.h is included as necessary.Signed-off-by: Tejun Heo
Signed-off-by: Takashi Iwai