22 Sep, 2011
2 commits
-
Commit 9676001559fce06e37c7dc230ab275f605556176
("ALSA: fm801: add error handling if auto-detect fails") seems to
break systems that were previously working without a tuner.As a bonus, this should fix init and cleanup for the case where the
tuner is explicitly disabled.Reported-and-tested-by: Hor Jiun Shyong
References: http://bugs.debian.org/641946
Signed-off-by: Ben Hutchings
Cc: stable@kernel.org [v3.0+]
Signed-off-by: Takashi Iwai -
Commit 9676001559fce06e37c7dc230ab275f605556176
("ALSA: fm801: add error handling if auto-detect fails") added
incorrect error handling.Once we have successfully called snd_device_new(), the cleanup
function fm801_free() will automatically be called by snd_card_free()
and we must *not* also call fm801_free() directly.Reported-by: Hor Jiun Shyong
References: http://bugs.debian.org/641946
Signed-off-by: Ben Hutchings
Cc: stable@kernel.org [v3.0+]
Signed-off-by: Takashi Iwai
10 Jun, 2011
2 commits
-
The name argument of request_irq() appears in /proc/interrupts, and
it's quite ugly when the name entry contains a space or special letters.
In general, it's simpler and more readable when the module name appears
there, so let's replace all entries with KBUILD_MODNAME.Signed-off-by: Takashi Iwai
-
The convention for pci_driver.name entry in kernel drivers seem to be
the module name or equivalent ones. But, so far, almost all PCI sound
drivers use more verbose name like "ABC Xyz (12)", and these are fairly
confusing when appearing as a file name.This patch converts the all pci_driver.name entries in sound/pci/* to
use KBUILD_MODNAME for more unified appearance.Signed-off-by: Takashi Iwai
03 Jun, 2011
1 commit
-
In the original code if auto detect failed and tea575x_tuner == 4
then we copy bogus information to chip->tea.card. I've changed the
autodetect code to cleanup and return -ENODEV on error instead.Signed-off-by: Dan Carpenter
Signed-off-by: Takashi Iwai
15 May, 2011
1 commit
-
Remove TEA575X_RADIO define from fm801.c.
Also update Kconfig help text to include all supported cards.Signed-off-by: Ondrej Zary
Signed-off-by: Takashi Iwai
14 May, 2011
3 commits
-
Provide real card and bus_info instead of hardcoded values.
Signed-off-by: Ondrej Zary
Signed-off-by: Takashi Iwai -
struct snd_card *card is present in struct snd_tea575x but never used.
Remove it.Signed-off-by: Ondrej Zary
Signed-off-by: Takashi Iwai -
freq_fixup is a constant, no need to hold it in struct snd_tea575x and set in
each driver.Signed-off-by: Ondrej Zary
Signed-off-by: Takashi Iwai
11 May, 2011
1 commit
-
Autodetect TEA575x tuner connection type during init. This allows tuner to
work out-of-the box.tea575x_tuner module parameter remains functional to force tuner type.
Tested with SF256-PCP and SF64-PCR.
Signed-off-by: Ondrej Zary
Signed-off-by: Takashi Iwai
10 May, 2011
1 commit
-
Use common functions to access TEA575x tuner - remove original read/write
functions and provide new pin manipulation functions instead.Also convert the original triple implementation to a simple GPIO pin map.
Tested with SF256-PCP and SF64-PCR (added the GPIO pin for MO/ST signal
for them).
SF256-PCS untested (pin for MO/ST signal is a guess).Signed-off-by: Ondrej Zary
Signed-off-by: Takashi Iwai
21 Mar, 2011
1 commit
-
Remove unused dev_nr from struct tea575x_tuner.
Signed-off-by: Ondrej Zary
Signed-off-by: Takashi Iwai
09 Feb, 2010
1 commit
-
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
-
When primary AC97 is not found, don't fail with tons of AC97 errors.
Assume that the card is SF64-PCR (tuner-only).
This makes the SF64-PCR radio card work "out of the box".Also fixes a bug that can cause an oops here:
if (tea575x_tuner > 0 && (tea575x_tuner & 0x000f) < 4) {
when tea575x_tuner == 16, it passes this check and causes problems
a couple lines below:
chip->tea.ops = &snd_fm801_tea_ops[(tea575x_tuner & 0x000f) - 1];Tested with SF64-PCR, but I don't have any of those sound or sound+radio cards
to test if I didn't break anything.Signed-off-by: Ondrej Zary
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
24 Apr, 2008
1 commit
-
id was only used as a counter in a for loop, move the declaration
to where it is used and change it to i.
sound/pci/fm801.c:1288:6: warning: symbol 'id' shadows an earlier one
sound/pci/fm801.c:51:13: originally declared here[tiwai - fixed a coding style issue as well]
Signed-off-by: Harvey Harrison
Signed-off-by: Takashi Iwai
01 Feb, 2008
2 commits
-
This is improvement of the early support of the FM-only cards where the
fm801 chip represents the PCI to tuner bridge.
The tuner initialization isn't included the mute on as well as mute support
via V4L request. Proposed patch should fix this at least for 64-PCR model.Signed-off-by: Andy Shevchenko
Signed-off-by: Takashi Iwai
Signed-off-by: Jaroslav Kysela -
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
16 Oct, 2007
1 commit
-
Signed-off-by: Jaroslav Kysela
12 Jul, 2007
1 commit
-
Instead of all drivers reading pci config space to get the revision
ID, they can now use the pci_device->revision member.This exposes some issues where drivers where reading a word or a dword
for the revision number, and adding useless error-handling around the
read. Some drivers even just read it for no purpose of all.In devices where the revision ID is being copied over and used in what
appears to be the equivalent of hotpath, I have left the copy code
and the cached copy as not to influence the driver's performance.Compile tested with make all{yes,mod}config on x86_64 and i386.
Signed-off-by: Auke Kok
Acked-by: Dave Jones
Signed-off-by: Greg Kroah-Hartman
09 Feb, 2007
1 commit
-
Mark TLV data as 'const'
Signed-of-by: Philipp Matthias HahnSigned-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
22 Oct, 2006
1 commit
-
- Check the return value of pci_enable_device() and request_irq()
in the suspend. If any error occurs there, disable the device
using snd_card_disconnect().
- Call pci_set_power_state() properly with pci_choose_state().
- Fix the order to call pci_set_power_state().
- Removed obsolete house-made PM codes in some drivers.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)
23 Sep, 2006
4 commits
-
Added the dB scale information to fm801 driver.
Signed-off-by: Takashi Iwai
Signed-off-by: Jaroslav Kysela -
Use ARRAY_SIZE macro instead of sizeof(x)/sizeof(x[0])
Signed-off-by: Tobias Klauser
Signed-off-by: Andrew Morton
Signed-off-by: Takashi Iwai
Signed-off-by: Jaroslav Kysela -
- do not allocate and enable interrupt
- do not do the FM tuner mute (it should be handled more cleanly)Signed-off-by: Jaroslav Kysela
-
Signed-off-by: Andy Shevchenko
Signed-off-by: Jaroslav Kysela
13 Jul, 2006
2 commits
-
Fixed 'section mismatch' errors in ALSA PCI drivers:
- removed invalid __devinitdata from pci id tables
- fix/remove __devinit of functions called in suspend/resumeSigned-off-by: Takashi Iwai
Signed-off-by: Jaroslav Kysela -
CONFIG_SND_FM801=y, CONFIG_SND_FM801_TEA575X=m resulted in the following
compile error:...
LD vmlinux
sound/built-in.o: In function 'snd_fm801_free':
fm801.c:(.text+0x3c15b): undefined reference to 'snd_tea575x_exit'
sound/built-in.o: In function 'snd_card_fm801_probe':
fm801.c:(.text+0x3cfde): undefined reference to 'snd_tea575x_init'
make: *** [vmlinux] Error 1This patch fixes kernel Bugzilla #6458.
Signed-off-by: Adrian Bunk
Signed-off-by: Takashi Iwai
Signed-off-by: Jaroslav Kysela
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
2 commits
-
Change the 5th argument of snd_mpu401_uart_new() to bit flags
instead of a boolean. The argument takes bits that consist of
MPU401_INFO_XXX flags.
The callers that used the value 1 there are replaced with
MPU401_INFO_INTEGRATED.Signed-off-by: Takashi Iwai
-
Removed zero-initializations of static variables.
A tiny optimization.Signed-off-by: Takashi Iwai
28 Apr, 2006
1 commit
-
Signed-off-by: Henrik Kretzschmar
Signed-off-by: Takashi Iwai
03 Jan, 2006
3 commits
-
Modules: FM801 driver
Add PM support to fm801 driver.
Signed-off-by: Takashi Iwai
-
Modules: FM801 driver
Remove xxx_t typedefs from the PCI FM801 driver.
Signed-off-by: Takashi Iwai
-
Remove superflous pcm_free callbacks.
Signed-off-by: Takashi Iwai
11 Nov, 2005
1 commit
-
Signed-off-by: Greg Kroah-Hartman
04 Nov, 2005
2 commits
-
Use schedule_timeout_{,un}interruptible() instead of
set_current_state()/schedule_timeout() to reduce kernel size. Also use
human-time conversion functions instead of hard-coded division to avoid
rounding issues.Signed-off-by: Nishanth Aravamudan
Signed-off-by: Andrew Morton
Signed-off-by: Takashi Iwai -
Add missing KERN_* suffix to printk.
Signed-off-by: Takashi Iwai