23 Feb, 2011
5 commits
-
In contrast to the RME MADI card, coax/optical selection on the MADIface
is done via a physical switch located at the breakout box. Obviously,
the driver cannot switch ports in software.Signed-off-by: Adrian Knoth
Signed-off-by: Takashi Iwai -
Caused by two typos, no output channel mappings were assigned for
MADI/MADIface at double/quad speed.The channel mapping is indeed identical to the single speed mapping, the
cards will simply use the first N channels.Signed-off-by: Florian Faber
Signed-off-by: Fredrik Lingvall
Signed-off-by: Adrian Knoth
Signed-off-by: Takashi Iwai -
Without calling an appropriate rule, AES/AES32 cards would announce a
theoretical channel count of 64 (HDSPM_MAX_CHANNELS), leading to the
already known bug:[37422.640481] ------------[ cut here ]------------
[37422.640487] WARNING: at sound/pci/rme9652/hdspm.c:5449
snd_hdspm_ioctl+0x18f/0x202 [snd_hdspm]()
[37422.640489] Hardware name: PRIMERGY RX100 S6
[37422.640490] BUG? (info->channel >= hdspm->max_channels_in)
[37422.640492] Modules linked in: snd_hdspm snd_seq_midi ipmi_watchdog
ipmi_poweroff ipmi_si ipmi_devintf ipmi_msghandler i2c_i801 e1000e
snd_rawmidi power_meter [last unloaded: snd_hdspm]
[37422.640501] Pid: 22231, comm: jackd Tainted: G D W
2.6.36-gentoo-r5 #5
[37422.640502] Call Trace:
[37422.640508] [] warn_slowpath_common+0x80/0x98
[37422.640511] [] warn_slowpath_fmt+0x41/0x43
[37422.640514] [] ? get_parent_ip+0x11/0x42
[37422.640518] [] snd_hdspm_ioctl+0x18f/0x202
[snd_hdspm]
[37422.640522] [] snd_pcm_channel_info+0x73/0x7c
[37422.640525] [] snd_pcm_common_ioctl1+0x326/0xb01
[37422.640527] [] ? get_parent_ip+0x11/0x42
[37422.640531] [] ? __srcu_read_unlock+0x3b/0x59
[37422.640533] [] snd_pcm_capture_ioctl1+0x20a/0x227
[37422.640537] [] ? file_has_perm+0x90/0x9e
[37422.640540] [] snd_pcm_capture_ioctl+0x2a/0x2e
[37422.640543] [] do_vfs_ioctl+0x404/0x453
[37422.640546] [] sys_ioctl+0x51/0x74
[37422.640549] [] system_call_fastpath+0x16/0x1b
[37422.640552] ---[ end trace 0cd919cd68118082 ]---We already have all the right values in place, we simply have to inform
the upper layers about this restriction.Note that snd_hdspm_hw_rule_rate_out_channels and
snd_hdspm_hw_rule_rate_in_channels must not be called on AES32, because
the channel count is always 16, no matter of the samplerate in use.Signed-off-by: Adrian Knoth
Signed-off-by: Takashi Iwai -
Only RayDAT and AIO provide sane buffer pointers that can be used with
HDSPM_BufferPositionMask, on all other cards, this would result in a
wrong HW pointer leading to xruns and these messages:[260808.916788] BUG: pcmC0D0p:0, pos = 2976, buffer size = 1024, period size = 512
[260808.961124] BUG: pcmC0D0c:0, pos = 4944, buffer size = 1024, period size = 512Signed-off-by: Adrian Knoth
Signed-off-by: Takashi Iwai -
On RME AES and AES(32), none of the required information
(max_channels_in, max_channels_out, channel mappings, port names) was
set, leading to the BUG below.This patch adds the missing bits, thus fixing the bug.
125.058768] ------------[ cut here ]------------
[ 125.058773] WARNING: at sound/pci/rme9652/hdspm.c:5389
snd_hdspm_ioctl+0x10c/0x1d8 [snd_hdspm]()
[ 125.058775] Hardware name: PRIMERGY RX100 S6
[ 125.058777] BUG? (info->channel >= hdspm->max_channels_out)
[ 125.058778] Modules linked in: ipmi_watchdog ipmi_poweroff ipmi_si
ipmi_devintf ipmi_msghandler snd_hdspm power_meter e1000e snd_rawmidi
i2c_i801
[ 125.058787] Pid: 3652, comm: audacity Tainted: G W
2.6.36-gentoo-r5 #5
[ 125.058788] Call Trace:
[ 125.058792] [] warn_slowpath_common+0x80/0x98
[ 125.058796] [] warn_slowpath_fmt+0x41/0x43
[ 125.058800] [] snd_hdspm_ioctl+0x10c/0x1d8
[snd_hdspm]
[ 125.058803] [] snd_pcm_channel_info+0x73/0x7c
[ 125.058806] [] snd_pcm_common_ioctl1+0x326/0xb01
[ 125.058809] [] ? __do_fault+0x361/0x3a6
[ 125.058812] [] snd_pcm_playback_ioctl1+0x20a/0x227
[ 125.058815] [] ? file_has_perm+0x90/0x9e
[ 125.058818] [] snd_pcm_playback_ioctl+0x2a/0x2e
[ 125.058821] [] do_vfs_ioctl+0x404/0x453
[ 125.058824] [] sys_ioctl+0x51/0x74
[ 125.058827] [] system_call_fastpath+0x16/0x1b
[ 125.058830] ---[ end trace 5bddb08e5d4cbeb1 ]---Signed-off-by: Adrian Knoth
Signed-off-by: Florian Faber
Signed-off-by: Fredrik Lingvall
Signed-off-by: Takashi Iwai
27 Jan, 2011
3 commits
-
Signed-off-by: Jaroslav Kysela
Signed-off-by: Takashi Iwai -
As requested by Takashi and Jaroslav, these arrays should not be in the
header file.Signed-off-by: Adrian Knoth
Signed-off-by: Jaroslav Kysela
Signed-off-by: Takashi Iwai -
Incorporate changes by Florian Faber into hdspm.c. Code taken from
http://wiki.linuxproaudio.org/index.php/Driver:hdspe
Heavily reworked to mostly comply with the coding standard (whitespace
fixes, line width, C++ style comments)The code was tested and confirmed to be working on RME RayDAT.
Signed-off-by: Adrian Knoth
Signed-off-by: Jaroslav Kysela
Signed-off-by: Takashi Iwai
02 Nov, 2010
1 commit
-
"gadget", "through", "command", "maintain", "maintain", "controller", "address",
"between", "initiali[zs]e", "instead", "function", "select", "already",
"equal", "access", "management", "hierarchy", "registration", "interest",
"relative", "memory", "offset", "already",Signed-off-by: Uwe Kleine-König
Signed-off-by: Jiri Kosina
25 Sep, 2010
1 commit
-
The SNDRV_HDSP_IOCTL_GET_CONFIG_INFO and
SNDRV_HDSP_IOCTL_GET_CONFIG_INFO ioctls in hdspm.c and hdsp.c allow
unprivileged users to read uninitialized kernel stack memory, because
several fields of the hdsp{m}_config_info structs declared on the stack
are not altered or zeroed before being copied back to the user. This
patch takes care of it.Signed-off-by: Dan Rosenberg
Cc:
Signed-off-by: Takashi Iwai
08 Mar, 2010
1 commit
-
Conflicts:
Documentation/filesystems/proc.txt
arch/arm/mach-u300/include/mach/debug-macro.S
drivers/net/qlge/qlge_ethtool.c
drivers/net/qlge/qlge_main.c
drivers/net/typhoon.c
09 Feb, 2010
2 commits
-
In particular, several occurances of funny versions of 'success',
'unknown', 'therefore', 'acknowledge', 'argument', 'achieve', 'address',
'beginning', 'desirable', 'separate' and 'necessary' are fixed.Signed-off-by: Daniel Mack
Cc: Joe Perches
Cc: Junio C Hamano
Signed-off-by: Jiri Kosina -
Use DEFINE_PCI_DEVICE_TABLE() to make PCI device ids go to
.devinit.rodata section, so they can be discarded in some cases,
and make them const.Signed-off-by: Alexey Dobriyan
Signed-off-by: Takashi Iwai
04 Dec, 2009
1 commit
-
That is "success", "unknown", "through", "performance", "[re|un]mapping"
, "access", "default", "reasonable", "[con]currently", "temperature"
, "channel", "[un]used", "application", "example","hierarchy", "therefore"
, "[over|under]flow", "contiguous", "threshold", "enough" and others.Signed-off-by: André Goddard Rosa
Signed-off-by: Jiri Kosina
05 Jun, 2009
1 commit
-
Replace the house-made div64_32() with the standard div_u64*() functions.
Signed-off-by: Takashi Iwai
24 Mar, 2009
1 commit
05 Feb, 2009
1 commit
-
Remove NOP hwdep ops in sound drivers.
Signed-off-by: Takashi Iwai
12 Jan, 2009
1 commit
-
Convert from snd_card_new() to the new snd_card_create() function
in sound/pci/*.Signed-off-by: Takashi Iwai
25 Dec, 2008
1 commit
18 Dec, 2008
1 commit
-
Replace all tasklet_hi_schedule() callers with the normal
tasklet_schedule(). The former often causes troubles with
RT-kernels, and has actually no merit.Signed-off-by: Takashi Iwai
13 Nov, 2008
1 commit
-
The card->id (card text identification) can be changed at runtime.
It might be confusing to have old text identification in device name.Signed-off-by: Jaroslav Kysela
Signed-off-by: Takashi Iwai
25 Aug, 2008
1 commit
-
Clean up SG-buffer helper functions and macros. Helpers take substream
as arguments now.Signed-off-by: Takashi Iwai
Signed-off-by: Jaroslav Kysela
13 Aug, 2008
1 commit
-
Kill snd_assert() in sound/pci/*, either removed or replaced with
if () with snd_BUG_ON().Signed-off-by: Takashi Iwai
Signed-off-by: Jaroslav Kysela
24 Apr, 2008
2 commits
-
sound/pci/rme9652/hdspm.c has unusually large number of static inline
functions - 22.I looked through them and some of them seem to be too big to warrant inlining.
This patch removes "inline" from these static functions (regardless of number
of callsites - gcc nowadays auto-inlines statics with one callsite).Size difference on 32bit x86:
text data bss dec hex filename
20437 2160 516 23113 5a49 linux-2.6-ALLYES/sound/pci/rme9652/hdspm.o
18036 2160 516 20712 50e8 linux-2.6.inline-ALLYES/sound/pci/rme9652/hdspm.o[coding fix by Takashi Iwai ]
Signed-off-by: Denys Vlasenko
Signed-off-by: Takashi Iwai -
Just drop the returns.
sound/pci/rme9652/hdspm.c:1031:3: warning: returning void-valued expression
sound/pci/rme9652/hdspm.c:1033:3: warning: returning void-valued expressionSigned-off-by: Harvey Harrison
Signed-off-by: Takashi Iwai
01 Feb, 2008
2 commits
-
This header file exists only for some hacks to adapt alsa-driver
tree. It's useless for building in the kernel. Let's move a few
lines in it to sound/core.h and remove it.
With this patch, sound/driver.h isn't removed but has just a single
compile warning to include it. This should be really killed in
future.Signed-off-by: Takashi Iwai
Signed-off-by: Jaroslav Kysela -
Signed-off-by: Joe Perches
Signed-off-by: Takashi Iwai
Signed-off-by: Jaroslav Kysela
16 Oct, 2007
3 commits
-
* better report of speed mode change failures
* autosync_ref control bugfix (was reporting pref_sync_ref instead)
(changed HDSPM_AES32_AUTOSYNC_FROM_NONE value to comply with array
indexing in snd_hdspm_info_autosync_ref())
* added support for master modes up to 192kHz (clock source control
value was restricted up to 96kHz)Signed-off-by: Remy Bruno
Signed-off-by: Takashi Iwai
Signed-off-by: Jaroslav Kysela -
Fix codes to follow more to the standard kernel coding style.
Signed-off-by: Takashi Iwai
Signed-off-by: Jaroslav Kysela -
Clean up codes using the new common snd_ctl_boolean_*_info() callbacks.
Signed-off-by: Takashi Iwai
Signed-off-by: Jaroslav Kysela
11 May, 2007
2 commits
-
The current MADI driver was found not to completely work, at least on recent
MADI cards (rev 204), in particular at 96kHz. This patch solves this:
* Add support of DDS feature
* Channel map fixed
* Channel/rate rules fixed
* DMA allocation fixed (need to alloc for all channels and not only for the
used ones)
Full support for AES32 master mode was added:
* Add support of DDS feature
* Channel map fixed
* Channel/rate rules fixedSigned-off-by: Remy Bruno
Signed-off-by: Takashi Iwai
Signed-off-by: Jaroslav Kysela -
Added a new macro snd_pcm_group_for_each_entry() just for code cleanup.
Old macros, snd_pcm_group_for_each() and snd_pcm_group_substream_entry(),
are removed.Signed-off-by: Takashi Iwai
Signed-off-by: Jaroslav Kysela
06 Mar, 2007
1 commit
-
Added the missing sysfs device assignment for ALSA PCI drivers.
Signed-off-by: Takashi Iwai
Signed-off-by: Jaroslav Kysela
09 Feb, 2007
2 commits
-
sound/pci/rme9652/hdspm.c: In function 'snd_hdspm_hw_params':
sound/pci/rme9652/hdspm.c:3681: warning: format '%08X' expects type 'unsigned int', but argument 4 has type 'unsigned char *'
sound/pci/rme9652/hdspm.c:3692: warning: format '%08X' expects type 'unsigned int', but argument 4 has type 'unsigned char *'Signed-off-by: Takashi Iwai
Signed-off-by: Jaroslav Kysela -
Add support for AES32. Difference between MADI and AES32 is done
through revision. Master support is not finished for now (RME so-called DDS
feature is not supported yet)Signed-off-by: Remy Bruno
Signed-off-by: Takashi Iwai
Signed-off-by: Jaroslav Kysela
20 Dec, 2006
1 commit
-
Fix IRQ flags for PCI devices.
The shared IRQs for PCI devices shouldn't be allocated with
IRQF_DISABLED. Also, when MSI is enabled, IRQF_SHARED shouldn't
be used.
The patch removes unnecessary cast in request_irq and free_irq,
too.Signed-off-by: Takashi Iwai
Signed-off-by: Jaroslav Kysela
05 Oct, 2006
1 commit
-
Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
of passing regs around manually through all ~1800 interrupt handlers in the
Linux kernel.The regs pointer is used in few places, but it potentially costs both stack
space and code to pass it around. On the FRV arch, removing the regs parameter
from all the genirq function results in a 20% speed up of the IRQ exit path
(ie: from leaving timer_interrupt() to leaving do_IRQ()).Where appropriate, an arch may override the generic storage facility and do
something different with the variable. On FRV, for instance, the address is
maintained in GR28 at all times inside the kernel as part of general exception
handling.Having looked over the code, it appears that the parameter may be handed down
through up to twenty or so layers of functions. Consider a USB character
device attached to a USB hub, attached to a USB controller that posts its
interrupts through a cascaded auxiliary interrupt controller. A character
device driver may want to pass regs to the sysrq handler through the input
layer which adds another few layers of parameter passing.I've build this code with allyesconfig for x86_64 and i386. I've runtested the
main part of the code on FRV and i386, though I can't test most of the drivers.
I've also done partial conversion for powerpc and MIPS - these at least compile
with minimal configurations.This will affect all archs. Mostly the changes should be relatively easy.
Take do_IRQ(), store the regs pointer at the beginning, saving the old one:struct pt_regs *old_regs = set_irq_regs(regs);
And put the old one back at the end:
set_irq_regs(old_regs);
Don't pass regs through to generic_handle_irq() or __do_IRQ().
In timer_interrupt(), this sort of change will be necessary:
- update_process_times(user_mode(regs));
- profile_tick(CPU_PROFILING, regs);
+ update_process_times(user_mode(get_irq_regs()));
+ profile_tick(CPU_PROFILING);I'd like to move update_process_times()'s use of get_irq_regs() into itself,
except that i386, alone of the archs, uses something other than user_mode().Some notes on the interrupt handling in the drivers:
(*) input_dev() is now gone entirely. The regs pointer is no longer stored in
the input_dev struct.(*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does
something different depending on whether it's been supplied with a regs
pointer or not.(*) Various IRQ handler function pointers have been moved to type
irq_handler_t.Signed-Off-By: David Howells
(cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
03 Jul, 2006
1 commit
-
Signed-off-by: Thomas Gleixner
Cc: Ingo Molnar
Cc: "David S. Miller"
Cc: Benjamin Herrenschmidt
Cc: Jaroslav Kysela
Cc: Takashi Iwai
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
23 Jun, 2006
1 commit
-
Remove unneeded read/write_size fields in proc text ops.
snd_info_set_text_ops() is fixed, too.Signed-off-by: Takashi Iwai
28 Apr, 2006
1 commit
-
Signed-off-by: Henrik Kretzschmar
Signed-off-by: Takashi Iwai