01 Nov, 2011
1 commit
-
Lots of sound drivers were getting module.h via the implicit presence
of it in but we are going to clean that up. So
fix up those users now.Signed-off-by: Paul Gortmaker
14 Sep, 2011
1 commit
-
The semantics of snd_mpu401_uart_new()'s interrupt parameters are
somewhat counterintuitive: To prevent the function from allocating its
own interrupt, either the irq number must be invalid, or the irq_flags
parameter must be zero. At the same time, the irq parameter being
invalid specifies that the mpu401 code has to work without an interrupt
allocated by the caller. This implies that, if there is an interrupt
and it is allocated by the caller, the irq parameter must be set to
a valid-looking number which then isn't actually used.With the removal of IRQF_DISABLED, zero becomes a valid irq_flags value,
which forces us to handle the parameters differently.This patch introduces a new flag MPU401_INFO_IRQ_HOOK for when the
device interrupt is handled by the caller, and makes the allocation of
the interrupt to depend only on the irq parameter. As suggested by
Takashi, the irq_flags parameter was dropped because, when used, it had
the constant value IRQF_DISABLED.Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai
10 Jun, 2011
1 commit
-
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
10 Jan, 2011
2 commits
-
Apparently, the revision is 2 on all sold sound cards, so this
information is not actually useful.Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai -
Replace the get_i2s_mclk callback with tables of MCLK values. This
simplifies the MCLK-handling code in both the framework and the model-
specific drivers.Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai
13 Dec, 2010
2 commits
-
flush_scheduled_work() is deprecated and scheduled to be removed.
* cancel[_delayed]_work() + flush_scheduled_work() ->
cancel[_delayed]_work_sync().* wm8350, wm8753 and soc-core use custom code to cancel a delayed
work, execute it immediately if it was pending and wait for its
completion. This is equivalent to flush_delayed_work_sync(). Use
it instead.Signed-off-by: Tejun Heo
Acked-by: Mark Brown
Signed-off-by: Takashi Iwai
06 Dec, 2010
2 commits
-
Instead of the hardcoded "CMI8788", show the actual chip name.
Note: This is neither what the chip is (it's always the same),
nor what the chip is actually called.Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai -
To help with debugging, add the registers of the model-specific
codecs to the controller and AC97 register dump in the proc file.Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai
03 Nov, 2010
1 commit
-
Add support for the Kuroutoshikou CMI8787-HG2PCI sound card.
[replaced non-latin letters in the patch by tiwai]
Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai
06 Oct, 2010
2 commits
-
Configure the PEX8111 bridge on the PCI Express cards so that the audio
DMA controller can do proper burst reads and is less likely to lose
data. This is usually done automatically, but is required on older
cards where the user has not applied the PLX firmware update.Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai -
Change the PCIe/PCI bridge initialization code to configure only the
bridge that is actually connected to the sound chip, instead of any
bridge found in the system. The new code also makes it easier to add
other bridges.Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai
08 Sep, 2010
1 commit
-
For the WM8776 chip, this driver uses a different sample format and
more features than the Windows driver. When rebooting from Linux into
Windows, the latter driver does not reset the chip but assumes all its
registers have their default settings, so we get garbled sound or, if
the output happened to be muted before rebooting, no sound.To make that driver happy, hook our driver's cleanup function into the
shutdown notifier and ensure that the chip gets reset.Signed-off-by: Clemens Ladisch
Reported-and-tested-by: Nathan Schagen
Cc:
Signed-off-by: Takashi Iwai
30 Mar, 2010
1 commit
-
…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>
28 Sep, 2009
2 commits
-
If the card is used with a Pericom PI7C9X110 PCI-E/PCI bridge,
reconfigure the latter's PCI buffering to fix an unknown problem.Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai -
On cards where the EEPROM was deliberately omitted, we do not need to
try to restore the EEPROM's contents.Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai
03 Sep, 2009
1 commit
-
The card model detection code introduced in 2.6.30 that tries to work
around partially broken EEPROM contents by reading the EEPROM directly
does not handle cards where the EEPROM has been omitted. In this case,
we have to use the default ID to allow the driver to load.Signed-off-by: Clemens Ladisch
Reported-and-tested-by: Ozan Çağlayan
Cc:
Signed-off-by: Takashi Iwai
28 Feb, 2009
1 commit
-
Model drivers assume that model_data is zeroed, so we better use
kzalloc() (like we did before when it was allocated together with the
card structure).Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai
19 Feb, 2009
5 commits
-
If the EEPROM was partially overwritten (which seems to happen before the OS is
booted), restore its entire contents by deducing it from the remaining
information.This does not have any effect on the Linux driver, which works even with
incomplete information in the EEPROM, but it makes other drivers work again.Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai -
Under as yet unknown circumstances, the first word of the sound card's
EEPROM gets overwritten. When this has happened, we cannot rely on the
subsystem IDs that the kernel reads from the PCI configuration
registers. Instead, we read the IDs directly from the EEPROM and do the
ID matching manually.Because the model-specific driver cannot determine the model before
calling oxygen_pci_probe(), that function now gets a get_model()
callback as parameter. The customizing of the model structure, which
was formerly done by the probe() callback, also has moved into
get_model().Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai -
When allocating resources, use a fixed name instead of reading it from
the model structure. This allows us to allocate the resources before
the actual model is known.Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai -
Allocate the model-specific data dynamically instead of including it in
the memory block of the card structure. This will allow us to determine
the actual model after the card creation.Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai -
Move the owner field out of the oxygen_model structure and make it
a parameter of oxygen_pci_probe(), because the actual owner module does
not depend on the card model. Furthermore, moving it out of the model
structure allows us to create the card structure before the actual model
is known.Signed-off-by: Clemens Ladisch
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
22 Sep, 2008
5 commits
-
Add functions to allow model drivers to communicate with external chips
by doing I/O with the not-used-for-MIDI UART.Signed-off-by: Clemens Ladisch
-
To enable the MIDI port, model drivers must now set flags in
device_config, not only in misc_flags. This allows model drivers to
enable the UART without creating an ALSA MIDI device.Signed-off-by: Clemens Ladisch
-
Rename the pcm_dev_cfg field to device_config because there will be
additional flags that do not describe PCM devices.Signed-off-by: Clemens Ladisch
-
Add a probe callback to the model structure so that model-specific
drivers can refine their model detection before the card is initialized.Signed-off-by: Clemens Ladisch
-
Put a copy of the model structure into the chip structure so that model-
specific drivers can modify it depending on a particular device
instance.Signed-off-by: Clemens Ladisch
19 May, 2008
3 commits
-
Add suspend/resume support.
Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
Remove another magic number - add a symbol for the size of the PCI I/O
range.Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
Adjust the MODULE_LICENSE strings to properly reflect the actual license.
Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela
24 Apr, 2008
8 commits
-
free_irq() calls synchronize_irq() for you, so there is no need for
drivers to manually do the same thing (again). Thus, calls where
sync-irq immediately precedes free-irq can be simplified.However, during this audit several bugs were noticed, where free-irq is
preceded by a "irq >= 0" check... but the sync-irq call is not covered
by the same check.So, where sync-irq could not be eliminated completely, the missing check
was added.Signed-off-by: Jeff Garzik
Signed-off-by: Takashi Iwai -
Initialize the playback volume controls as being muted and having
minimal volume.Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai -
Add fields for the DAC volume limits to the module structure so that
model drivers do not need to install their own control info handlers.Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai -
If the card model does not have a digital input or an AC97 codec,
disable the respective interrupt and mixer controls.Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai -
On C-Media cards, the GPIO pin 0 of the CM9780 must be handled exactly
like on Xonar cards, so move the Xonar code to the common mixer code.Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai -
Disable the master clock outputs of any unused I2S inputs.
Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai -
Put the flag that enables the MIDI port into the model structure instead
of passing it as a separate parameter to oxygen_pci_probe().Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai -
Allow the model drivers to specify if the codec communication goes over
SPI or a 2-wire bus.Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai