01 Feb, 2008

4 commits


16 Oct, 2007

2 commits


13 Oct, 2007

1 commit

  • This changes the uevent buffer functions to use a struct instead of a
    long list of parameters. It does no longer require the caller to do the
    proper buffer termination and size accounting, which is currently wrong
    in some places. It fixes a known bug where parts of the uevent
    environment are overwritten because of wrong index calculations.

    Many thanks to Mathieu Desnoyers for finding bugs and improving the
    error handling.

    Signed-off-by: Kay Sievers
    Cc: Mathieu Desnoyers
    Cc: Cornelia Huck
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     

20 Jul, 2007

1 commit


11 May, 2007

3 commits


07 May, 2007

1 commit


30 Apr, 2007

1 commit


28 Apr, 2007

1 commit


13 Apr, 2007

2 commits


09 Feb, 2007

8 commits

  • This fixes the problem of getting extra bytes inserted at the
    beginning of a recording when using the Apple i2s interface and DBDMA
    controller. It turns out that we can't just abort the DMA; we have to
    let it stop at the end of a command, and then wait for the S7 bit to
    be set before turning off the DBDMA controller. Doing that for
    playback doesn't seem to be necessary, but doesn't hurt either.
    We use the technique used by the Darwin driver: make each transfer
    command branch to a stop command if the S0 status bit is set. Thus we
    can ask the DMA controller to stop at the end of the current command
    by setting S0.
    The interrupt routine now looks at and clears the status word of the
    DBDMA command ring. This is necessary so it can know when the DBDMA
    controller has seen that S0 is set, and so when it should look for the
    DBDMA controller being stopped and S7 being set. This also ended up
    simplifying the calculation in i2sbus_pcm_pointer.
    Tested on a 15 inch albook.
    [Addition by Johannes]
    I modified this patch and added the suspend/resume bits to it to get my
    powermac into a decent state when playing sound across suspend to disk
    that has a different bitrate from what the firmware programs the
    hardware to.
    I also added the SNDRV_PCM_INFO_JOINT_DUPLEX flag because it seemed the
    right thing to do and I was looking at the info stuff.

    Signed-off-by: Paul Mackerras
    Signed-off-by: Johannes Berg
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Paul Mackerras
     
  • This just removes two useless printks.

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

    Johannes Berg
     
  • This patch removes redundant argument checks for of_node_put() and kfree().
    Acked-by: Johannes Berg

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

    Mariusz Kozlowski
     
  • When the machine resumes the onyx codec might be in a weird state. Hence,
    simply fully reset it once (and keep the code to take it out of suspend in
    case the suspend of the codec chip survives a reset).

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

    Johannes Berg
     
  • create sysfs driver symlink for snd-aoa in /sys/bus/aoa-soundbus/devices/*/
    Acked-by: Johannes Berg

    Signed-off-by: Olaf Hering
    Signed-off-by: Andrew Morton
    Signed-off-by: Jaroslav Kysela

    Olaf Hering
     
  • create sysfs device symlinks for snd-aoa in /sys/class/sound/controlC0 This
    allows hald to recognize the device as sound device. Furthermore it allows
    the desktop user to actually access the sound device nodes. hald and
    related packages will modify the acl attributes.
    Fixes https://bugzilla.novell.com/show_bug.cgi?id=106294
    Acked-by: Johannes Berg

    Signed-off-by: Olaf Hering
    Signed-off-by: Andrew Morton
    Signed-off-by: Jaroslav Kysela

    Olaf Hering
     
  • This patch changes i2sbus_attach_codec to implement a proper error handling
    strategy using labels to jump to the right part. Since it has an elaborate
    set-up sequence it also needs that tear-down, which I had hard-coded
    inbetween all the checks. This increases readability and should reduce .text
    size as well.

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

    Johannes Berg
     
  • This patch makes a few whitespace cleanups and makes i2sbus assign the new
    struct device pointer in struct snd_pcm so that the proper device symlink
    shows up in sysfs.

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

    Johannes Berg
     

20 Dec, 2006

1 commit


13 Dec, 2006

1 commit


05 Dec, 2006

1 commit


28 Nov, 2006

1 commit


22 Nov, 2006

1 commit


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)

    David Howells
     

04 Oct, 2006

1 commit


23 Sep, 2006

3 commits


08 Aug, 2006

1 commit


03 Aug, 2006

3 commits

  • Sometimes we simply want to turn off or on everything, and when recently a
    warning was added when a certain platform function can't be called, this
    triggered all the time in those cases. This patch shows the warning only if
    the error was different from the function not existing.
    The alternative would be to not even try calling the function when it
    doesn't exist by first checking which exist and then only calling those that
    do, but that adds complexity that isn't necessary.

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

    Johannes Berg
     
  • This patch fixes the toonie codec to be actually usable.

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

    Johannes Berg
     
  • The IRQ rework caused some hiccups here, in some cases we call
    get_irq without a device node. This patch makes it catch that
    case and return NO_IRQ when it happens, along with changing the
    place where the irq is checked to check for NO_IRQ instead of -1.
    Acked-by: Benjamin Herrenschmidt

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

    Johannes Berg
     

01 Aug, 2006

1 commit


31 Jul, 2006

1 commit