20 Nov, 2007
1 commit
-
Fix the definitions of the CM_FLINKON/CM_FLINKOFF register bits that
were garbled in the last 'update register definitions' patch.Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela
16 Oct, 2007
24 commits
-
When playing multichannel data, the rear channels can get distorted if
the last sample of the last played stereo stream was not zero. To avoid
this, add a hack to play a few silence samples after the stream is
stopped.Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
Remove some unused field from the struct cmipci_pcm, and change the type
of some others to save some space.Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
When using one of the double sampling rates, use half the sample rate to
look up in the rates[] table, otherwise we stumble over the BUG().Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
By reorganizing the code that sets the CHB3DxC bits we can not only
simplify this code but also fix the bug where the CHB3D8C bit was not
reset when playing a stereo stream after a 7.1 stream.Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
Disallow playback of five channels because the hardware does not support
it (or nobody knows how to do it).Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
Move the code that enables 96 kHz out of the if() that checks for
availability of both DMA channels so that it is enabled even when
another stream is playing on the front channels.Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
Initialize the registers at 0x90 and 0x91 with some undocumented values.
Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
When the chip is initialized, reset it.
Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
Show a dump of all registers in the 0x00-0x27 and 0x90-0x93 ranges in
the 'cmipci' proc file.Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
Update comments for many register symbols, add some new register
symbols, and rename a few ones.Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
Use the proper value for the bit that identifies chip version 37.
Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
Add a msbits constraint to the SPDIF output device to indicate that
S32_LE samples use only 24 bits for data.Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
The '-MCx' suffix that is expected by alsa-lib is only needed in the
card driver string, so we can show the actual chip name in the
shortname.Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
Check that the UART_EN bit actually enabled the MPU-401 port.
Apparently, C-Media thinks that it is a good idea to be paranoid here.Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
Integrated MPU-401/OPL3 ports are available with chip version 39 and
later, so we do not test for the port with version 37.
Now that the test is known to work, we can again enable the MIDI port by
default.Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
Add support for 88.2 kHz and 96 kHz analog and digital playback on
CMI8768/CMI8770 chips.Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
Remove the constraint that sets the channel limit for the first playback
device to that of the second one; the first device supports only stereo.Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
Show the actual name of CMI8762/CMI8768/CMI8769/CMI8770 chips in the
card longname instead of just using 'CMI8738' for all of them.Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
Remove the has_dual_dac variable because it was always set.
Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
Add a case for chip version 39 where no bit is set in register 0Ch, and
move the detection of version 39 before that of 8768. This makes the
logic more compatible with the driver on that other OS.Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
Unused bytes in the I/O register range are likely to have the value 0x00
instead of 0xff, so test against both values when checking for the
presence of the integrated MIDI port.Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
Make sure that the MPU-401 MIDI and OPL-3 FM devices are used only on
those chips where they are supported, and that the correct port
addresses are used.Signed-off-by: Clemens Ladisch
Signed-off-by: Jaroslav Kysela -
Initialize card->shortname early enough so that the MIDI device can pick
it up and does not need to have a generic name.Signed-off-by: Clemens Ladisch
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
06 Mar, 2007
1 commit
-
The driver didn't allow to disable the integrated FM port (if available),
and this annoyed people who don't want FM port. Now fm_port=0 disables
the FM port unconditionally. fm_port=1 is used for enabling the integrated
FM port (as default).
Also fixed the documentation about this option.
Fix ALSA bug#2491.Signed-off-by: Takashi Iwai
Signed-off-by: Jaroslav Kysela
09 Jan, 2007
1 commit
-
Playing with spdif output on cmipci i've noticed the SPDO5V option does
not change appropriate bits the register.
The _snd_cmipci_uswitch_put checks the change in flags in wrong way.
If 'active' state of an option corresponds to a _zero_ bits in a hw
register then function fails. The SPDO5V is the sample.
In the most cases 'active' state of option is set through an non-zerio
bits in a register. This case works fine.
The fix attached.
Unfortunately i was unable to change spdif output voltage anyway.
Although the register changes right at least.
From: Timofei V. Bondarenko
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
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)
13 Jul, 2006
1 commit
-
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
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
4 commits
-
Fixed a typo in 'PC Speaker Playback Switch' control name.
Signed-off-by: Takashi Iwai
-
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
-
Enable the support of mpu401 PCI port only when mpu_port=1 module
option is given, i.e. disabled as default.
It turned out that the check of integrated midi port isn't perfect
and caused hang-ups on some boards.Signed-off-by: Takashi Iwai
-
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
22 Mar, 2006
1 commit
-
Semaphore to mutex conversion.
The conversion was generated via scripts, and the result was validated
automatically via a script as well.Signed-off-by: Ingo Molnar
Signed-off-by: Andrew Morton
Signed-off-by: Takashi Iwai
03 Jan, 2006
2 commits
-
Modules: CMIPCI driver
Add PM support to CMIPCI driver.
Signed-off-by: Takashi Iwai
-
Modules: CMIPCI driver
Remove xxx_t typedefs from the PCI CMIPCI driver.
Signed-off-by: Takashi Iwai