24 Apr, 2008

1 commit


29 Feb, 2008

1 commit


01 Feb, 2008

11 commits

  • snd_opti93x_mixer() is only called by __devinit snd_opti93x_probe(),
    so the former can also be __devinit.
    snd_miro_mixer() is only called by __devinit snd_miro_probe(),
    so the former can also be __devinit.
    sound/isa/opti9xx/opti92x-ad1848.c:
    WARNING: vmlinux.o(.text+0xf91cd7): Section mismatch: reference to .init.data:snd_opti93x_controls (between 'snd_opti93x_mixer' and 'snd_card_opti9xx_free')
    WARNING: vmlinux.o(.text+0xf91d66): Section mismatch: reference to .init.data:snd_miro_controls (between 'snd_opti93x_mixer' and 'snd_card_opti9xx_free')
    opti9xx/miro.c:
    WARNING: vmlinux.o(.text+0xf926c2): Section mismatch: reference to .init.data:snd_miro_controls (between 'snd_miro_mixer' and 'snd_legacy_find_free_ioport')
    WARNING: vmlinux.o(.text+0xf926e5): Section mismatch: reference to .init.data:snd_miro_eq_controls (between 'snd_miro_mixer' and 'snd_legacy_find_free_ioport')
    WARNING: vmlinux.o(.text+0xf926f9): Section mismatch: reference to .init.data:snd_miro_line_control (between 'snd_miro_mixer' and 'snd_legacy_find_free_ioport')
    WARNING: vmlinux.o(.text+0xf92716): Section mismatch: reference to .init.data:snd_miro_amp_control (between 'snd_miro_mixer' and 'snd_legacy_find_free_ioport')
    WARNING: vmlinux.o(.text+0xf9273e): Section mismatch: reference to .init.data:snd_miro_preamp_control (between 'snd_miro_mixer' and 'snd_legacy_find_free_ioport')
    WARNING: vmlinux.o(.text+0xf92764): Section mismatch: reference to .init.data:snd_miro_capture_control (between 'snd_miro_mixer' and 'snd_legacy_find_free_ioport')
    WARNING: vmlinux.o(.text+0xf92783): Section mismatch: reference to .init.data:snd_miro_radio_control (between 'snd_miro_mixer' and 'snd_legacy_find_free_ioport')
    WARNING: vmlinux.o(.text+0xf9279a): Section mismatch: reference to .init.data:snd_miro_eq_controls (between 'snd_miro_mixer' and 'snd_legacy_find_free_ioport')
    WARNING: vmlinux.o(.text+0xf927b9): Section mismatch: reference to .init.data:snd_miro_radio_control (between 'snd_miro_mixer' and 'snd_legacy_find_free_ioport')

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

    Randy Dunlap
     
  • This busy_wait is not needed after latest changes
    to the cs4231-lib

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

    Krzysztof Helt
     
  • 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

    Takashi Iwai
     
  • This patch enables wavetable chips ES689/ES69X connected to
    ESS ES18xx chips. The wavetable chip uses FM DAC if the clock signal
    from the wavetable is active.
    It has no effect if there is no ESS wavetable chip present.

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

    Krzysztof Helt
     
  • Signed-off-by: Joe Perches
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Joe Perches
     
  • sound/isa/sb/sb16_csp.c: In function ‘snd_sb_csp_new’:
    sound/isa/sb/sb16_csp.c:121: warning: ‘version’ may be used uninitialized in this function

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

    Takashi Iwai
     
  • This removes the pnp_resource_change use from the ALSA ISAPnP drivers. In
    2.4 these were useful in providing an easy path to setting the resources,
    but in 2.6 they retain function as a layering violation only.
    This makes for a nice cleanup (-550 lines) of ALSA but moreover, ALSA is the
    only remaining user of pnp_init_resource_table(), pnp_resource_change() and
    pnp_manual_config_dev() (and, in fact, of 'struct pnp_resource_table') in
    the tree outide of drivers/pnp itself meaning it makes for more cleanup
    potential inside the PnP layer.
    Thomas Renninger acked their removal from that side, you did from the ALSA
    side (CC list just copied from that thread).
    Against current alsa-kernel HG. Many more potential cleanups in there, but
    this _only_ removes the pnp_resource_change code. Compile tested against
    current alsa-kernel HG and compile- and use-tested against 2.6.23.x (few
    offsets).
    Cc: Thomas Renninger

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

    Rene Herman
     
  • Signed-off-by: Joe Perches
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Joe Perches
     
  • Check the value ranges in ctl put callbacks properly (in the rest drivers).

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

    Takashi Iwai
     
  • Remove sequencer instrument layer from the tree.
    This mechanism hasn't been used much with the actual devices. The only
    reasonable user was OPL3 loader, and now it was rewritten to use hwdep
    instead. So, let's remove the rest of rotten codes.

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

    Takashi Iwai
     
  • Fixed the print format for debug message.
    Spotted by Matthew Wilcox.

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

    Takashi Iwai
     

20 Oct, 2007

1 commit


16 Oct, 2007

26 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
     
  • 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
     
  • Signed-off-by: Jaroslav Kysela

    Jaroslav Kysela
     
  • 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
     
  • 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
     
  • 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
     
  • This patch adds second DMA channel and WSS port settings
    to the sscape driver. Also, it adds internal card type setting.
    The Ensoniq SoundScape VIVO PnP id is added but not handled
    yet.

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

    Krzysztof Helt
     
  • This patch zeroes buffer for the card name and
    fixes incorrect jump in the probe function.

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

    Krzysztof Helt
     
  • This patch fixes ad1848_lib waiting loops to be the same as in the cs4231_lib.
    Acked-by: Rene Herman

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

    Krzysztof Helt
     
  • sound/isa/sc6000.c: In function 'sc6000_dsp_reset':
    sound/isa/sc6000.c:270: error: implicit declaration of function 'udelay' sound/isa/sc6000.c: In function 'sc6000_init_mss':
    sound/isa/sc6000.c:327: error: implicit declaration of function 'msleep'
    {standard input}: Assembler messages:

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

    Andrew Morton
     
  • Signed-off-by: Jaroslav Kysela

    Jaroslav Kysela
     
  • This is port of the Gallant SC-6000 driver from the OSS aedsp16 driver.
    This card was also sold as AudioExcel DSP 16 and Zoltrix AV302 (Audio
    Plus True 16).

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

    Krzysztof Helt
     
  • This patch replaces long msleeps in waiting loops
    with schedule_timeout() calls.

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

    Krzysztof Helt
     
  • While I'm at it another 'while I'm there' -- replace commented out debug
    code with snd-printd{,d}.

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

    Rene Herman
     
  • If I'm not mistaken, any (new) use of HZ these days is considered a bug so
    while I'm there...

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

    Rene Herman
     
  • When the ad1848/cs2431 is first being initialized, auto-calibration may not
    be set causing a timeout waiting for it in snd_ad1848/cs4231_mce_down().
    This has no dire consequences other than an alarming printk, but since what
    we need to wait for is for the calibration to _finish_, let's just check for
    that instead.
    The early chips need a slight delay (as commented -- 5 sample periods) to be
    sure that _if_ calibration is going to happen, it has started when we check
    While the CS4231A datasheet implies it'll happen immediately on downing MCE,
    some testing is showing that there's a window there as well, so just do the
    delay everywhere.
    Thanks to Krysztof Helt for pinpointing this problem.

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

    Rene Herman
     
  • This patch replaces a common delay loop by a function.
    It also uses ARRAY_SIZE macro for the rates table.
    Acked-by: Rene Herman

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

    Krzysztof Helt
     
  • This patch replaces a common delay loop by a function.
    It also uses ARRAY_SIZE macro for the rates table.
    Acked-by: Rene Herman

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

    Krzysztof Helt
     
  • CS5530 is a PCI device and often shares the IRQ although the SB common
    routine tries to allocate it exclusively. This patch allows shared IRQ
    for CS5530.

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

    Takashi Iwai
     
  • Use the standard firmware loader for loading ICS2115 OS firmware file.
    This is the last old bad guy that is still using sys_open() and sys_read()
    calls, and now all should be gone.
    The patch also adds the missing description of module options related
    with wavefront_synth.c.
    Due to this rewrite, user will have to copy or make symlink the firmware
    file appropriately to the standard firmware path such as /lib/firmware.

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

    Takashi Iwai
     
  • Set the SNDRV_PCM_INFO_SYNC_START flag and the substream's sync ID
    (only) if the substream actually can be linked to another one.

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

    Clemens Ladisch
     
  • This patch uses the Kconfig parameters SND_AD1848_LIB and
    SND_CS4231_LIB instead of mentioning each driver that requires
    the ad1848-lib or cs4231-lib separately in the Makefiles.

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

    Krzysztof Helt