19 Aug, 2017

1 commit


17 Aug, 2017

1 commit


06 Feb, 2016

1 commit

  • Drivers should include asm/pci-bridge.h only when they need the arch-
    specific things provided there. Outside of the arch/ directories, the only
    drivers that actually need things provided by asm/pci-bridge.h are the
    powerpc RPA hotplug drivers in drivers/pci/hotplug/rpa*.

    Remove the includes of asm/pci-bridge.h from the other drivers, adding an
    include of linux/pci.h if necessary.

    Signed-off-by: Bjorn Helgaas

    Bjorn Helgaas
     

23 Mar, 2015

1 commit

  • ppc has special instruction forms to efficiently load and store values
    in non-native endianness. These can be accessed via the arch-specific
    {ld,st}_le{16,32}() inlines in arch/powerpc/include/asm/swab.h.

    However, gcc is perfectly capable of generating the byte-reversing
    load/store instructions when using the normal, generic cpu_to_le*() and
    le*_to_cpu() functions eaning the arch-specific functions don't have much
    point.

    Worse the "le" in the names of the arch specific functions is now
    misleading, because they always generate byte-reversing forms, but some
    ppc machines can now run a little-endian kernel.

    To start getting rid of the arch-specific forms, this patch removes them
    from all the old Power Macintosh drivers, replacing them with the
    generic byteswappers.

    Signed-off-by: David Gibson
    Signed-off-by: Benjamin Herrenschmidt

    David Gibson
     

28 Jan, 2015

1 commit


04 Jan, 2015

1 commit


17 Nov, 2014

1 commit


27 Jun, 2014

1 commit

  • There are a bunch of users open coding the for_each_node_by_name() by
    calling of_find_node_by_name() directly instead of using the macro. This
    is getting in the way of some cleanups, and the possibility of removing
    of_find_node_by_name() entirely. Clean it up so that all the users are
    consistent.

    Signed-off-by: Grant Likely
    Cc: Rob Herring
    Cc: Benjamin Herrenschmidt
    Cc: "Rafael J. Wysocki"
    Cc: Greg Kroah-Hartman
    Cc: Takashi Iwai

    Grant Likely
     

10 Oct, 2013

1 commit


07 Dec, 2012

1 commit

  • CONFIG_HOTPLUG is going away as an option. As result the __dev*
    markings will be going away.

    Remove use of __devinit, __devexit_p, __devinitdata, __devinitconst,
    and __devexit.

    Signed-off-by: Bill Pemberton
    Signed-off-by: Takashi Iwai

    Bill Pemberton
     

10 Jun, 2011

1 commit


28 Feb, 2011

1 commit


22 Nov, 2010

1 commit


09 Feb, 2010

1 commit


03 Jun, 2009

2 commits

  • All __initdata should be __devinitdata as platform device is hotpluggable.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • [I am not sure if this is the correct approach as I don't know if any of
    this actual hardware or drivers are really hot pluggable.]

    Gets rid of these build warnings:

    WARNING: sound/ppc/snd-powermac.o(.devinit.text+0x5c): Section mismatch in reference from the function .snd_pmac_probe() to the function .init.text:.snd_pmac_new()
    The function __devinit .snd_pmac_probe() references
    a function __init .snd_pmac_new().
    If .snd_pmac_new is only used by .snd_pmac_probe then
    annotate .snd_pmac_new with a matching annotation.

    WARNING: sound/ppc/snd-powermac.o(.devinit.text+0x10c): Section mismatch in reference from the function .snd_pmac_probe() to the function .init.text:.snd_pmac_burgundy_init()
    The function __devinit .snd_pmac_probe() references
    a function __init .snd_pmac_burgundy_init().
    If .snd_pmac_burgundy_init is only used by .snd_pmac_probe then
    annotate .snd_pmac_burgundy_init with a matching annotation.

    WARNING: sound/ppc/snd-powermac.o(.devinit.text+0x164): Section mismatch in reference from the function .snd_pmac_probe() to the function .init.text:.snd_pmac_daca_init()
    The function __devinit .snd_pmac_probe() references
    a function __init .snd_pmac_daca_init().
    If .snd_pmac_daca_init is only used by .snd_pmac_probe then
    annotate .snd_pmac_daca_init with a matching annotation.

    WARNING: sound/ppc/snd-powermac.o(.devinit.text+0x1dc): Section mismatch in reference from the function .snd_pmac_probe() to the function .init.text:.snd_pmac_tumbler_init()
    The function __devinit .snd_pmac_probe() references
    a function __init .snd_pmac_tumbler_init().
    If .snd_pmac_tumbler_init is only used by .snd_pmac_probe then
    annotate .snd_pmac_tumbler_init with a matching annotation.

    WARNING: sound/ppc/snd-powermac.o(.devinit.text+0x1ec): Section mismatch in reference from the function .snd_pmac_probe() to the function .init.text:.snd_pmac_tumbler_post_init()
    The function __devinit .snd_pmac_probe() references
    a function __init .snd_pmac_tumbler_post_init().
    If .snd_pmac_tumbler_post_init is only used by .snd_pmac_probe then
    annotate .snd_pmac_tumbler_post_init with a matching annotation.

    WARNING: sound/ppc/snd-powermac.o(.devinit.text+0x28c): Section mismatch in reference from the function .snd_pmac_probe() to the function .init.text:.snd_pmac_awacs_init()
    The function __devinit .snd_pmac_probe() references
    a function __init .snd_pmac_awacs_init().
    If .snd_pmac_awacs_init is only used by .snd_pmac_probe then
    annotate .snd_pmac_awacs_init with a matching annotation.

    WARNING: sound/ppc/snd-powermac.o(.devinit.text+0x2bc): Section mismatch in reference from the function .snd_pmac_probe() to the function .init.text:.snd_pmac_pcm_new()
    The function __devinit .snd_pmac_probe() references
    a function __init .snd_pmac_pcm_new().
    If .snd_pmac_pcm_new is only used by .snd_pmac_probe then
    annotate .snd_pmac_pcm_new with a matching annotation.

    WARNING: sound/ppc/snd-powermac.o(.devinit.text+0x2f8): Section mismatch in reference from the function .snd_pmac_probe() to the function .init.text:.snd_pmac_attach_beep()
    The function __devinit .snd_pmac_probe() references
    a function __init .snd_pmac_attach_beep().
    If .snd_pmac_attach_beep is only used by .snd_pmac_probe then
    annotate .snd_pmac_attach_beep with a matching annotation.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Takashi Iwai

    Stephen Rothwell
     

09 Mar, 2009

2 commits


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