18 Nov, 2008

1 commit


24 Apr, 2008

2 commits


01 Feb, 2008

3 commits

  • This patch provides the snd-powermac sound driver with the ability to handle
    dead DMA transfers. If a dead DMA transfer is detected, the driver now sets
    up a new DMA transfer to continue with the sound output at the point where the
    old transfer died.
    This dead DMA transfer handling has become necessary with recent kernels on
    certain G4 PowerMacs. Please refer to the following URLs for more information:
    https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3126
    https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/87652
    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=436723
    The patch is based on the dead DMA transfer handling code from the old dmasound
    driver which can be found in the file sound/oss/dmasound/dmasound_awacs.c in
    the Linux source code.

    Signed-off-by: T. H. Huth
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    T. H. Huth
     
  • 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
     
  • Check the value ranges in ctl put callbacks properly in snd-powermac
    driver.

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

    Takashi Iwai
     

16 Oct, 2007

3 commits


19 Jun, 2007

1 commit

  • The old snd-powermac driver has some serious refcounting issues when
    initialisation fails, which is the case on all new machines with
    a layout-id since those are handled by the new snd-aoa driver.

    Some of those bugs seem to have been under the radar for some time
    (like double pci_dev_put), but one was actually added in 2.6.22 with
    Stephen attempt at teaching refcounting to the driver which didn't
    do it at all.

    This patch fixes both, thus removing all sort of kref errors that
    would happen if that driver gets loaded on a G5 machine or a recent
    PowerBook due to OF nodes left around with a 0 refcount.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     

07 May, 2007

1 commit


24 Apr, 2007

1 commit


13 Apr, 2007

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
     

03 Jul, 2006

1 commit

  • This adds the new irq remapper core and removes the old one. Because
    there are some fundamental conflicts with the old code, like the value
    of NO_IRQ which I'm now setting to 0 (as per discussions with Linus),
    etc..., this commit also changes the relevant platform and driver code
    over to use the new remapper (so as not to cause difficulties later
    in bisecting).

    This patch removes the old pre-parsing of the open firmware interrupt
    tree along with all the bogus assumptions it made to try to renumber
    interrupts according to the platform. This is all to be handled by the
    new code now.

    For the pSeries XICS interrupt controller, a single remapper host is
    created for the whole machine regardless of how many interrupt
    presentation and source controllers are found, and it's set to match
    any device node that isn't a 8259. That works fine on pSeries and
    avoids having to deal with some of the complexities of split source
    controllers vs. presentation controllers in the pSeries device trees.

    The powerpc i8259 PIC driver now always requests the legacy interrupt
    range. It also has the feature of being able to match any device node
    (including NULL) if passed no device node as an input. That will help
    porting over platforms with broken device-trees like Pegasos who don't
    have a proper interrupt tree.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     

02 Jul, 2006

1 commit

  • The 64 bits resource patches did a bit of damage on PowerMac causing a
    buffer overflow in macio_asic and a warning in a sound driver. The
    former is fixed by reverting the sprintf of the bus_id to %08x as it was
    before. The bus_id used for macio devices is always a 32 bits value
    (macio always sits in 32 bits space) and since it's exposed to userland,
    the format of the string shouldn't be changed like that anyway. The
    second by using the proper type for printk.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     

28 Jun, 2006

1 commit


23 Jun, 2006

1 commit

  • This patch removes from snd-powermac the code that check for the layout-id
    and instead adds code that makes it refuse loading when a layout-id property
    is present, nothing that snd-aoa should be used.
    It also removes the 'toonie' codec from snd-powermac which was only ever
    used on the mac mini which has a layout-id property.

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

    Johannes Berg
     

28 Mar, 2006

1 commit

  • This removes statically assigned platform numbers and reworks the
    powerpc platform probe code to use a better mechanism. With this,
    board support files can simply declare a new machine type with a
    macro, and implement a probe() function that uses the flattened
    device-tree to detect if they apply for a given machine.

    We now have a machine_is() macro that replaces the comparisons of
    _machine with the various PLATFORM_* constants. This commit also
    changes various drivers to use the new macro instead of looking at
    _machine.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     

08 Feb, 2006

1 commit

  • The PowerMac sound drivers used to rely on a "bug" of the i2c-keywest
    driver that implemented I2C_SMBUS_BLOCK_DATA incorrectly, that is it did
    what I2C_SMBUS_I2C_BLOCK_DATA should have done. The new i2c-powermac
    driver that replaces keywest has this bug fixed, thus the sound drivers
    must be fixed too.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     

02 Feb, 2006

1 commit

  • In 2.6.16-rc1 there is a small typo introduced by the 'Remove device_node
    addrs/n_addr' changes which prevents my Powerbook G4 sound from working:

    Advanced Linux Sound Architecture Driver Version 1.0.11rc2 (Wed Jan 04 08:57:20 2006 UTC).
    snd: can't request rsrc 0 (Sound Control: 0x80000000:80004fff)
    ALSA device list:
    No soundcards found.

    The patch below fixes it. Of course, the patch fixing the i2c issues
    ('i2c_smbus_write_i2c_block_data' patch) needs to be applied to in order
    for the sound to completly work.

    Signed-off-by: Stelian Pop
    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     

09 Jan, 2006

1 commit

  • The pre-parsed addrs/n_addrs fields in struct device_node are finally
    gone. Remove the dodgy heuristics that did that parsing at boot and
    remove the fields themselves since we now have a good replacement with
    the new OF parsing code. This patch also fixes a bunch of drivers to use
    the new code instead, so that at least pmac32, pseries, iseries and g5
    defconfigs build.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     

03 Jan, 2006

5 commits


04 Nov, 2005

1 commit

  • Remove snd_runtime_check() macro.
    This macro worsens the readability of codes. They should be either
    normal if() or removable asserts.

    Also, the assert displays stack-dump, instead of only the last caller
    pointer.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

07 Oct, 2005

1 commit


12 Sep, 2005

2 commits

  • Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
    OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
    AK4114 receiver,AK4117 receiver,PDAudioCF driver,PPC PMAC driver
    SPARC AMD7930 driver,SPARC cs4231 driver,Synth,Common EMU synth
    USB generic driver,USB USX2Y
    Replace kcalloc(1,..) with kzalloc().

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • PPC PMAC driver
    Here is a patch to correct detection of the soundcard on my iBook model
    (bought really recently).
    Without that fix, there were only andui in the headphone, and the mixer
    was totaly non functional.

    Signed-off-by: Takashi Iwai

    Vincent Pelletier
     

18 Aug, 2005

1 commit


28 Jul, 2005

1 commit

  • `gcc -W' likes to complain if the static keyword is not at the beginning of
    the declaration. This patch fixes all remaining occurrences of "inline
    static" up with "static inline" in the entire kernel tree (140 occurrences in
    47 files).

    While making this change I came across a few lines with trailing whitespace
    that I also fixed up, I have also added or removed a blank line or two here
    and there, but there are no functional changes in the patch.

    Signed-off-by: Jesper Juhl
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jesper Juhl
     

28 Jun, 2005

1 commit

  • This patch removes CONFIG_PMAC_PBOOK (PowerBook support). This is now
    split into CONFIG_PMAC_MEDIABAY for the actual hotswap bay that some
    powerbooks have, CONFIG_PM for power management related code, and just left
    out of any CONFIG_* option for some generally useful stuff that can be used
    on non-laptops as well.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     

29 May, 2005

1 commit


01 May, 2005

1 commit

  • This patch applies on top of my previous g5 related sound patches and adds
    support for the Mac Mini to the PowerMac Alsa driver.

    However, I haven't found any kind of HW support for volume control on this
    machine. If it exist, it's well hidden. That means that you probably want
    to make sure you use software with the ability to do soft volume control,
    or use Alsa 0.9 pre-release with the softvol plugin.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     

17 Apr, 2005

3 commits

  • This patch hacks the current PowerMac Alsa driver to add some basic support
    of analog sound output to some desktop G5s. It has severe limitations
    though:

    - Only 44100Khz 16 bits
    - Only work on G5 models using a TAS3004 analog code, that is early
    single CPU desktops and all dual CPU desktops at this date, but none
    of the more recent ones like iMac G5.
    - It does analog only, no digital/SPDIF support at all, no native
    AC3 support

    Better support would require a complete rewrite of the driver (which I am
    working on, but don't hold your breath), to properly support the diversity
    of apple sound HW setup, including dual codecs, several i2s busses, all the
    new codecs used in the new machines, proper clock switching with digital,
    etc etc etc...

    This patch applies on top of the other PowerMac sound patches I posted in
    the past couple of days (new powerbook support and sleep fixes).

    Note: This is a FAQ entry for PowerMac sound support with TI codecs: They
    have a feature called "DRC" which is automatically enabled for the internal
    speaker (at least when auto mute control is enabled) which will cause your
    sound to fade out to nothing after half a second of playback if you don't
    set a proper "DRC Range" in the mixer. So if you have a problem like that,
    check alsamixer and raise your DRC Range to something reasonable.

    Note2: This patch will also add auto-mute of the speaker when line-out jack
    is used on some earlier desktop G4s (and on the G5) in addition to the
    headphone jack. If that behaviour isn't what you want, just disable
    auto-muting and use the manual mute controls in alsamixer.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     
  • This patch hacks the current Alsa snd-powermac driver to add support for
    recent machine models with the tas3004 chip, that is basically new laptop
    models. The Mac Mini is _NOT_ yet supported by this patch (soon soon ...).
    The G5s (iMac or Desktop) will need the rewritten sound driver on which
    I'm working on (I _might_ get a hack for analog only on some G5s on the
    current driver, but no promise).

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     
  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds