16 Oct, 2007

40 commits

  • The last patches to replace with schedule_timeout() don't work as expected.

    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Takashi Iwai
     
  • This patch sync sparc driver with x86 isa cs4231 driver patches.
    It fixes wrong waiting for the auto calibration bit and makes
    further waiting use much finer granularity.

    Signed-off-by: Krzysztof Helt
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Krzysztof Helt
     
  • This patch replaces cs4231 registers definitions with
    common include.

    Signed-off-by: Krzysztof Helt
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Krzysztof Helt
     
  • the BTC 1817DW board.
    The QS1000 is connected through the digital input
    to the Opti931 chip.

    Signed-off-by: Krzysztof Helt
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Krzysztof Helt
     
  • open and close operations are called only from pcm layer
    and mutexed there with pcm->open_mutex.

    Signed-off-by: Krzysztof Helt
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Krzysztof Helt
     
  • when simulating a storm of fake GUS interrupts (without actually owning
    this venerable piece of ISA hardware) the driver falls over (crashes) in
    two ways:
    1) spinlocks being initialized too late:
    INFO: trying to register non-static key.
    the code is fine but needs lockdep annotation.
    turning off the locking correctness validator.
    [] show_trace_log_lvl+0x1a/0x30
    [] show_trace+0x12/0x20
    [] dump_stack+0x16/0x20
    [] __lock_acquire+0xcfb/0x1030
    [] lock_acquire+0x60/0x80
    [] _spin_lock_irqsave+0x38/0x50
    [] snd_gf1_i_look8+0x22/0x60
    [] snd_gus_interrupt+0x13e/0x270
    [] handle_IRQ_event+0x28/0x60
    [] handle_fasteoi_irq+0x71/0xe0
    [] do_IRQ+0x48/0xa0
    [] common_interrupt+0x2e/0x40
    [] register_handler_proc+0x92/0xf0
    [] setup_irq+0xe2/0x190
    [] request_irq+0xb4/0xd0
    [] snd_gus_create+0x124/0x3c0
    [] snd_gusclassic_probe+0x2a7/0x4b0
    [] isa_bus_probe+0x1f/0x30
    [] driver_probe_device+0x84/0x190
    [] __device_attach+0x8/0x10
    [] bus_for_each_drv+0x53/0x80
    [] device_attach+0x8b/0x90
    [] bus_attach_device+0x48/0x80
    [] device_add+0x45d/0x5a0
    [] device_register+0x12/0x20
    [] isa_register_driver+0xb3/0x140
    [] alsa_card_gusclassic_init+0x12/0x20
    [] kernel_init+0x133/0x310
    [] kernel_thread_helper+0x7/0x10
    =======================
    2) callback functions not being filled in yet:
    BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000
    printing eip:
    00000000
    *pde = 00000000
    Oops: 0000 [#1]
    SMP DEBUG_PAGEALLOC
    CPU: 0
    EIP: 0060:[] Not tainted VLI
    EFLAGS: 00010002 (2.6.23 #37)
    EIP is at 0x0
    eax: 7fe94000 ebx: 7fe94000 ecx: 00000000 edx: 00000226
    esi: 00000000 edi: 00000005 ebp: 7ff87c28 esp: 7ff87bf4
    ds: 007b es: 007b fs: 00d8 gs: 0000 ss: 0068
    Process swapper (pid: 1, ti=7ff86000 task=7ff84000 task.ti=7ff86000)
    Stack: 40590683 408424a9 408db87c 00000029 40787406 00000064 00000046 ff000000
    000000ff 00000001 7faefaf0 00000000 00000005 7ff87c40 401548e8 00000000
    40a52000 7faefaf0 00000005 7ff87c58 40155cc1 40a52030 00000005 00000000
    Call Trace:
    [] show_trace_log_lvl+0x1a/0x30
    [] show_stack_log_lvl+0xab/0xd0
    [] show_registers+0x1cc/0x2d0
    [] die+0x116/0x240
    [] do_page_fault+0x18b/0x670
    [] error_code+0x72/0x80
    [] handle_IRQ_event+0x28/0x60
    [] handle_fasteoi_irq+0x71/0xe0
    [] do_IRQ+0x48/0xa0
    [] common_interrupt+0x2e/0x40
    [] proc_create+0x3e/0x120
    [] proc_mkdir_mode+0x23/0x50
    [] proc_mkdir+0xf/0x20
    [] register_handler_proc+0xd4/0xf0
    [] setup_irq+0xe2/0x190
    [] request_irq+0xb4/0xd0
    [] snd_gus_create+0x124/0x3c0
    [] snd_gusclassic_probe+0x2a7/0x4b0
    [] isa_bus_probe+0x1f/0x30
    [] driver_probe_device+0x84/0x190
    [] __device_attach+0x8/0x10
    [] bus_for_each_drv+0x53/0x80
    [] device_attach+0x8b/0x90
    [] bus_attach_device+0x48/0x80
    [] device_add+0x45d/0x5a0
    [] device_register+0x12/0x20
    [] isa_register_driver+0xb3/0x140
    [] alsa_card_gusclassic_init+0x12/0x20
    [] kernel_init+0x133/0x310
    [] kernel_thread_helper+0x7/0x10
    =======================
    Code: Bad EIP value.
    EIP: [] 0x0 SS:ESP 0068:7ff87bf4
    Kernel panic - not syncing: Fatal exception in interrupt
    with these things fixed, i get the expected 'no such hardware' result
    from the driver initialization:
    Calling initcall 0x40aa3dc0: alsa_card_gusclassic_init+0x0/0x20()
    ALSA sound/isa/gus/gusclassic.c:136: [0x220] check 1 failed - 0xff
    initcall 0x40aa3dc0: alsa_card_gusclassic_init+0x0/0x20() returned 0.
    initcall 0x40aa3dc0 ran for 133 msecs:
    alsa_card_gusclassic_init+0x0/0x20()

    Signed-off-by: Ingo Molnar
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Ingo Molnar
     
  • Fixed SKU ID function for realtek codecs. It's used by the automatic
    BIOS configuration mode. Now it supports the correct jack-detection
    mechanism, too.

    Signed-off-by: Kailang Yang
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Kailang Yang
     
  • Signed-off-by: Kailang Yang
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Kailang Yang
     
  • Reported by Jan-Marek Glogowski.
    The dmic array is passed to snd_hda_parse_pin_def_config() and
    should be zero-terminated.

    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Takashi Iwai
     
  • Fix zero-division bug in the calculation dds offset.

    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Takashi Iwai
     
  • Remove superfluous comment line (maybe a merge failure).

    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Takashi Iwai
     
  • Reported by zhejiang
    'I found that STAC_VOLKNOB hardwired the KNOB nid to 0x24.
    It is okay for stac9205 and stac927x.
    But the VolumeKnob nid of stac9220-9221 is 0x16.'

    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Takashi Iwai
     
  • Signed-off-by: Jaroslav Kysela

    Jaroslav Kysela
     
  • Fixed ALC262 fujitsu model to support Fujitsu Lifebook C1410 properly.
    It requires EAPD and has separate int/ext mic inputs (which was missing
    in the current driver).

    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Takashi Iwai
     
  • Since the last patch made the ENTER_UART command optional, the
    enter_uart option and its corresponding flag have become superfluous.
    The uart_enter option remains for backward compatibility but just prints
    a warning when used.

    Signed-off-by: Clemens Ladisch
    Signed-off-by: Jaroslav Kysela

    Clemens Ladisch
     
  • The original MPU-401 does not send an ACK byte after processing the
    ENTER_UART command, so we better do not try to wait for it.
    Many clones get this wrong and do send an ACK, but when interpreting it
    as MIDI, it is just a harmless Active Sensing message, and it is likely
    to be read and discarded by the interrupt handler before the MIDI input
    device is triggered.

    Signed-off-by: Clemens Ladisch
    Signed-off-by: Jaroslav Kysela

    Clemens Ladisch
     
  • Shuttle AK31v2 works well with dxs_support=5 (ALSA bug#2926).

    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Takashi Iwai
     
  • My bad, I forgot to update the num_items field when added a new item
    to vaio_mux items table, so the last item 'PCM' disappeared.
    Now it has the right number 3.

    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Takashi Iwai
     
  • Signed-off-by: Tim Gardner
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Tim Gardner
     
  • Some dB level information is wrong in pcxhr driver according to the
    datasheet. Fixed now.

    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Takashi Iwai
     
  • Fix the output of Gateway laptops with STAC9200 codec chip.
    They require the EAPD control for some pins. These pins shouldn't be
    powered down.
    To enable EAPD control, a new model 'gateway' was added to STAC9200.
    The known PCI SSIDs are included in the quirk list.
    The fix was originally suggested by Brian Hinz, in ALSA bug#2948.

    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Takashi Iwai
     
  • Added zero checks in input-mux helper functions to avoid Oops.
    Some devices may have no input pins while the driver registers
    control elements calling these functions.

    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Takashi Iwai
     
  • snd_register_device_for_dev() can oops when device_create() returns
    ERR_PTR(err).
    Scenario:
    preg->dev = device_create(...); /* fails */
    if (preg->dev) /* contains ERR_PTR(err) */
    dev_set_drvdata(preg->dev, private_data);
    and dev_set_drvdata() looks like this:
    static inline void
    dev_set_drvdata (struct device *dev, void *data)
    {
    dev->driver_data = data;
    Signed-off-by: Andrew Morton
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Mariusz Kozlowski
     
  • Signed-off-by: James Courtier-Dutton
    Signed-off-by: Jaroslav Kysela

    James Courtier-Dutton
     
  • Signed-off-by: Andrew Morton
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Andrew Morton
     
  • Fix hda help text typo.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Randy Dunlap
     
  • Add the MCP79 support to hda driver.
    The patch base on kernel 2.6.23-rc7

    Signed-off-by: Peer Chen
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Peer Chen
     
  • Reading the signature of CS8427 over SPI/I2C fails on some devices
    by mysterious reason. In most cases, however, it succeeds at the
    sequential read. So, let's give a second chance to check the signature
    again.

    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Takashi Iwai
     
  • Added the missing support for ASUS A7J [0x1043 0x1243]

    Signed-off-by: Kailang Yang
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Kailang Yang
     
  • * Fixed ALC662 init verbs (wrong NIDs)
    * Fixed ALC662 auto model issue (wrong DAC index)

    Signed-off-by: Kailang Yang
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Kailang Yang
     
  • The polling loop to check for ACI to go down was more convoluted than it
    needed to be. New loop should be more efficient and it is a lot simpler. The
    old loop checked for a timeout before checking for ACI down, which could
    result in an erroneous timeout. It's only a failure if the timeout expires
    _and_ ACI is still high. There is nothing wrong with the timeout expiring
    while the task is sleeping if ACI went low.
    A polling loop to check for the device to leaving INIT mode is removed. The
    device must have already left init for the previous ACI loop to have finished.
    Acked-by: Rene Herman

    Signed-off-by: Trent Piepho
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Trent Piepho
     
  • Simplest fix.
    Acked-by: Rene Herman

    Signed-off-by: Trent Piepho
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Trent Piepho
     
  • These patches enable a few YMF743 controls (Tone/3D/IEC958) that won't
    be detected with the current version of ALSA.
    The second one contains following changes:
    - A chip-specific SPDIF support for YMF743 (It doesn't have AC97
    standard SPDIF registers seen on YMF753).
    - The implementation for 'IEC958 Playback Source' and 'IEC958 Mute'
    are identical to the ones for YMF753. But there is no 'IEC958 Output
    Pin' for YMF743.

    Signed-off-by: Keita Maehara
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Keita Maehara
     
  • These patches enable some YMF743 controls (Tone/3D/IEC958) that won't
    be detected with the current version of ALSA.
    The first one contains only cosmetic changes to share a few
    YMF753-specific symbols with YMF743.

    Signed-off-by: Keita Maehara
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Keita Maehara
     
  • Replace schedule_timeout() with schedule_timeout_uninterruptible()
    to avoid signals in loop.

    Signed-off-by: Rene Herman
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Rene Herman
     
  • Fix schedule_timeout() use in alsa-kernel. Mostly just
    schedule_timeout(1) --> schedule_timeout_uninterruptible(1)
    The wavefront_synth one fixes the surrounding loop as well. In ymfpci_main,
    delete a superfluous set_current_state() and in soc/soc-dapm.c replace an
    _interruptible with _uninterruptible in some debug code; it's not waiting
    for signals.

    Signed-off-by: Rene Herman
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Rene Herman
     
  • More laptop BIOS changes the subsystem id for STAC9205 cards if the
    microphone is toggled on/off in the settings.
    The patch removes the old STAC_9205_M43xx and use STAC_9205_DELL_M43.

    Signed-off-by: Matthew Ranostay
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Matthew Ranostay
     
  • Added CONFIG_SND_AC97_POWER_SAVE_DEFAULT and CONFIG_SND_HDA_POWER_SAVE_DEFAULT
    Kconfig options as the default values for power-saving mode of AC97 and
    HD-audio drivers, respectively.

    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Takashi Iwai
     
  • This patch adds support for audio part of the Ensoniq
    SoundScape VIVO cards. The MIDI part is not supported.

    Signed-off-by: Krzysztof Helt
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Krzysztof Helt
     
  • The OPTi ISA-PnP chips advertise their OPL4 base at 0x380 (to 0x3f0) through
    pnp and put their on-chip OPL3 at +8. The driver assumes the provided
    value is the ALBase (OPL3 address) though and checks for an OPL4 at -8,
    which means that simply adding 8 to the pnp provides value works to fix
    detection of both OPL3 and OPL4.
    Problem spotted on 931 and 933 by Krzysztof Helt and confirmed on 924 and
    925 (together all OPTi ISA-PnP chips) by me.
    Signed-off-by; Rene Herman
    Acked-by: Krzysztof Helt

    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Takashi Iwai