30 Apr, 2007

2 commits

  • * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev: (86 commits)
    SPIN_LOCK_UNLOCKED cleanup in drivers/ata/pata_winbond.c
    drivers/ata/pata_cmd640.c: fix build with CONFIG_PM=n
    pata_hpt37x: Further small fixes
    pata_hpt3x2n: Add HPT371N support and other bits
    ata: printk warning fixes
    libata: separate ATA_EHI_DID_RESET into DID_SOFTRESET and DID_HARDRESET
    ahci: consolidate common port flags
    ata_timing: ensure t->cycle is always correct
    libata: add missing call to ->cable_detect() in new EH path
    pata_amd: remove contamination added during cable_detect conversion
    libata: Handle drives that require a spin-up command before first access
    libata: HPA support
    libata: kill probe_ent and related helpers
    libata: convert the remaining PATA drivers to new init model
    libata: convert the remaining SATA drivers to new init model
    libata: convert ata_pci_init_native_mode() users to new init model
    libata: convert drivers with combined SATA/PATA ports to new init model
    libata: add init helpers including ata_pci_prepare_native_host()
    libata: convert native PCI host handling to new init model
    libata: convert legacy PCI host handling to new init model
    ...

    Linus Torvalds
     
  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (105 commits)
    sonypi: use mutex instead of semaphore
    sony-laptop: remove user visible camera controls as platform attributes
    meye: make meye use sony-laptop instead of sonypi
    sony-laptop: add a meye-usable include file for camera ops
    sony-laptop: complete the motion eye camera support in sony-laptop
    sonypi: try to detect if sony-laptop has already taken one of the known ioports
    sonypi: suggest sonypi users to try sony-laptop instead
    sony-laptop: add edge modem support (also called WWAN)
    sony-laptop: add locking on accesses to the ioport and global vars
    sony-laptop: add camera enable/disable parameter, better handle possible infinite loop
    thinkpad-acpi: make drivers/misc/thinkpad_acpi:fan_mutex static
    ACPI: thinkpad-acpi: add sysfs support to wan and bluetooth subdrivers
    ACPI: thinkpad-acpi: add sysfs support to hotkey subdriver
    ACPI: thinkpad-acpi: improve dock subdriver initialization
    ACPI: thinkpad-acpi: improve debugging for acpi helpers
    ACPI: thinkpad-acpi: improve fan control documentation
    ACPI: thinkpad-acpi: map ENXIO to EINVAL for fan sysfs
    ACPI: thinkpad-acpi: fix a fan watchdog invocation
    ACPI: thinkpad-acpi: do not arm fan watchdog if it would not work
    ACPI: thinkpad-acpi: add a fan-control feature master toggle
    ...

    Linus Torvalds
     

29 Apr, 2007

1 commit

  • Both old-IDE and libata should be able handle all controllers and
    devices found using normal resource reservation methods.

    This eliminates the awful, low-performing split-driver configuration
    where old-IDE drove the PATA portion of a PCI device, in PIO-only mode,
    and libata drove the SATA portion of the /same/ PCI device, in DMA mode.
    Typically vendors would ship SATA hard drive / PATA optical
    configuration, which would lend itself to slow (PIO-only) CD-ROM
    performance.

    For Intel users running in combined mode, it is now wholly dependent on
    your driver choice (potentially link order, if you compile both drivers
    in) whether old-IDE or libata will drive your hardware.

    In either case, you will get full performance from both SATA and PATA
    ports now, without having to pass a kernel command line parameter.

    Signed-off-by: Jeff Garzik

    Jeff Garzik
     

28 Apr, 2007

2 commits

  • This defines a platform hook to enable/disable a device as a wakeup event
    source. It's initially for use with ACPI, but more generally it could be used
    whenever enable_irq_wake()/disable_irq_wake() don't suffice.

    The hook is called -- if available -- inside pci_enable_wake(); and the
    semantics of that call are enhanced so that support for PCI PME# is no longer
    needed. It can now work for devices with "legacy PCI PM", when platform
    support allows it. (That support would use some board-specific signal for for
    the same purpose as PME#.)

    [akpm@linux-foundation.org: Make it compile with CONFIG_PM=n]
    Signed-off-by: David Brownell
    Signed-off-by: Zhang Rui
    Cc: Len Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    David Brownell
     
  • Make multithreaded probing work per subsystem instead of per driver.

    It doesn't make much sense to probe the same device for multiple drivers in
    parallel (after all, only one driver can bind to the device). Instead, create
    a probing thread for each device that probes the drivers one after another.
    Also make the decision to use multi-threaded probe per bus instead of per
    device and adapt the pci code.

    Signed-off-by: Cornelia Huck
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Cornelia Huck
     

25 Apr, 2007

1 commit


24 Apr, 2007

1 commit

  • This reverts commit ed8ccee0918ad063a4741c0656fda783e02df627.

    It causes hang on boot for some users and we don't yet know why:

    http://bugzilla.kernel.org/show_bug.cgi?id=7562

    http://lkml.org/lkml/2007/4/20/404
    http://lkml.org/lkml/2007/3/25/113

    Just reverse it for 2.6.21-final, having broken X server is somehow
    better than unbootable system.

    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     

04 Apr, 2007

1 commit

  • This is a simplified and actually more comprehensive form of a bug
    fix from Mitch Williams .

    When we mask or unmask a msi-x irqs the writes may be posted because
    we are writing to memory mapped region. This means the mask and
    unmask don't happen immediately but at some unspecified time in the
    future. Which is out of sync with how the mask/unmask logic work
    for ioapic irqs.

    The practical result is that we get very subtle and hard to track down
    irq migration bugs.

    This patch performs a read flush after writes to the MSI-X table for mask
    and unmask operations. Since the SMP affinity is set while the interrupt
    is masked, and since it's unmasked immediately after, no additional flushes
    are required in the various affinity setting routines.

    The testing by Mitch Williams on his especially problematic system should
    still be valid as I have only simplified the code, not changed the
    functionality.

    We currently have 7 drivers: cciss, mthca, cxgb3, forceth, s2io,
    pcie/portdrv_core, and qla2xxx in 2.6.21 that are affected by this
    problem when the hardware they driver is plugged into the right slot.

    Given the difficulty of reproducing this bug and tracing it down to
    anything that even remotely resembles a cause, even if people are
    being affected we aren't likely to see many meaningful bug reports, and
    the people who see this bug aren't likely to be able to reproduce this
    bug in a timely fashion. So it is best to get this problem fixed
    as soon as we can so people don't have problems.

    Then if people do have a kernel message stating "No irq for vector" we
    will know it is yet another novel cause that needs a complete new
    investigation.

    Cc: Greg KH
    Cc: Andrew Morton
    Signed-off-by: "Eric W. Biederman"
    Acked-by: Mitch Williams
    Acked-by: "Siddha, Suresh B"
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     

27 Mar, 2007

2 commits


13 Mar, 2007

2 commits

  • Because we do not reserve space for the pci-x and pci-e state in struct
    pci dev we need to dynamically allocate it. However because we need
    to support restore being called multiple times after a single save
    it is never safe to free the buffers we have allocated to hold the
    state.

    So this patch modifies the save routines to first check to see
    if we have already allocated a state buffer before allocating
    a new one. Then the restore routines are modified to not free
    the state after restoring it. Simple and it fixes some subtle
    error path handling bugs, that are hard to test for.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: Greg Kroah-Hartman
    Acked-by: Auke Kok
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • There are two ways pci_save_state and pci_restore_state are used. As
    helper functions during suspend/resume, and as helper functions around
    a hardware reset event. When used as helper functions around a hardware
    reset event there is no reason to believe the calls will be paired, nor
    is there a good reason to believe that if we restore the msi state from
    before the reset that it will match the current msi state. Since arch
    code may change the msi message without going through the driver, drivers
    currently do not have enough information to even know when to call
    pci_save_state to ensure they will have msi state in sync with the other
    kernel irq reception data structures.

    It turns out the solution is straight forward, cache the state in the
    existing msi data structures (not the magic pci saved things) and
    have the msi code update the cached state each time we write to the hardware.
    This means we never need to read the hardware to figure out what the hardware
    state should be.

    By modifying the caching in this manner we get to remove our save_state
    routines and only need to provide restore_state routines.

    The only fields that were at all tricky to regenerate were the msi and msi-x
    control registers and the way we regenerate them currently is a bit dependent
    upon assumptions on how we use the allow msi registers to be configured and used
    making the code a little bit brittle. If we ever change what cases we allow
    or how we configure the msi bits we can address the fragility then.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: Greg Kroah-Hartman
    Acked-by: Auke Kok
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     

10 Mar, 2007

4 commits

  • drivers/pci/search.c caused following section mismatch warning
    (if compiled with CONFIG_HOTPLUG=n):

    WARNING: drivers/pci/built-in.o - Section mismatch: reference to .init.text: from .text.pci_find_bus after 'pci_find_bus' (at offset 0x24)

    This was due to pci_find_bus() calling a function marked __devinit.
    Fix was to remove the __devinit from the offending function.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: Greg Kroah-Hartman

    Sam Ravnborg
     
  • Fix following section mismatch warning (when compiled with CONFIG_HOTPLUG=n):
    WARNING: drivers/pci/built-in.o - Section mismatch: reference to .init.text:aer_probe from .data between 'aerdrv' (at offset 0x1608) and 'aer_error_handlers'

    Warning was fixed by renaming aerdrv to aerdriver so we pass the whitelist.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: Greg Kroah-Hartman

    Sam Ravnborg
     
  • Fix following section mismatch warning (when compiled with CONFIG_HOTPLUG=n):
    WARNING: drivers/pci/built-in.o - Section mismatch: reference to .init.text:pcie_portdrv_probe from .data between 'pcie_portdrv' (at offset 0xe40) and 'pcie_portdrv_err_handler'

    This warning was fixed by renaming pcie_portdrv to pcie_portdriver so we pass
    the whitelist.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: Greg Kroah-Hartman

    Sam Ravnborg
     
  • Sanity check in pcim_pin_device() was too restrictive in that it didn't
    allow multiple calls to the function, which is against the devres
    philosohpy of fire-and-forget. Track pinned status separately and allow
    pinning multiple times.

    Signed-off-by: Tejun Heo
    Acked-by: Ian McDonald
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Tejun Heo
     

05 Mar, 2007

3 commits

  • For devices that do not support msi-x we only support 1 interrupt. Therefore
    we can disable that one interrupt by disabling the msi capability itself. If
    we leave the intx interrupts disabled while we have the msi capability
    disabled no interrupts should be delivered from that device.

    Devices with just the minimal msi support (and thus hitting this code path)
    include things like the intel e1000 nic, so it looks like is going to be a
    fairly common case and thus important to get right.

    Signed-off-by: Eric W. Biederman
    Cc: Michael Ellerman
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • enable/disable_msi_mode have several side effects which keeps them from being
    generally useful. So this patch replaces them with with two much more
    targeted functions: msi_set_enable and msix_set_enable.

    This patch makes pci_dev->msi_enabled and pci_dev->msix_enabled the definitive
    way to test if linux has enabled the msi capability, and has the appropriate
    msi data structures set up.

    This patch ensures that while writing the msi messages in save/restore and
    during device initialization we have the msi capability disabled so we don't
    get into races. The pci spec requires that we do not have the msi capability
    enabled and the msi messages unmasked while we write the messages. Completely
    disabling the capability is overkill but it is easy :)

    Care has been taken so we never have both a msi capability and intx enabled
    simultaneously. We haven't run into a problem yet but better safe then sorry.

    Signed-off-by: Eric W. Biederman
    Cc: Michael Ellerman
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • In some cases when we are not using msi we need a way to ensure that the
    hardware does not have an msi capability enabled. Currently the code has been
    calling disable_msi_mode to try and achieve that. However disable_msi_mode
    has several other side effects and is only available when msi support is
    compiled in so it isn't really appropriate.

    Instead this patch implements pci_msi_off which disables all msi and msix
    capabilities unconditionally with no additional side effects.

    pci_disable_device was redundantly clearing the bus master enable flag and
    clearing the msi enable bit. A device that is not allowed to perform bus
    mastering operations cannot generate intx or msi interrupt messages as those
    are essentially a special case of dma, and require bus mastering. So the call
    in pci_disable_device to disable msi capabilities was redundant.

    quirk_pcie_pxh also called disable_msi_mode and is updated to use pci_msi_off.

    Signed-off-by: Eric W. Biederman
    Cc: Michael Ellerman
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     

04 Mar, 2007

1 commit

  • The change to force legacy mode IDE channels' resources to fixed non-zero
    values confuses (at least some versions of) X, because the values reported
    by the kernel and those readable from PCI config space aren't consistent
    anymore. Therefore, this patch arranges for the respective BARs to also
    get updated if possible.

    Signed-off-by: Jan Beulich
    Acked-by: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Jan Beulich
     

02 Mar, 2007

2 commits

  • Make jmiron_ata quirk update pdev->class after programming the device
    and update ahci and pata_jmicron such that they match class code
    instead of checking function number manually. For ahci, it matches
    for vendor and class. For pata_jmicron, it matches vendor, device and
    class as IDE class isn't as well defined as AHCI class.

    This makes jmicron device matching more conventional and script
    friendly.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • Reimplement jmicron ATA quirk.

    * renamed to quirk_jmicron_ata()
    * quirk is invoked only for the affected controllers
    * programming is stricter. e.g. conf5 bit24 is cleared if
    unnecessary.
    * code factored for readability
    * JMB360 and JMB368 are programmed into proper mode

    Verified on JMB360, 363 and 368.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     

20 Feb, 2007

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial: (25 commits)
    Documentation/kernel-docs.txt update.
    arch/cris: typo in KERN_INFO
    Storage class should be before const qualifier
    kernel/printk.c: comment fix
    update I/O sched Kconfig help texts - CFQ is now default, not AS.
    Remove duplicate listing of Cris arch from README
    kbuild: more doc. cleanups
    doc: make doc. for maxcpus= more visible
    drivers/net/eexpress.c: remove duplicate comment
    add a help text for BLK_DEV_GENERIC
    correct a dead URL in the IP_MULTICAST help text
    fix the BAYCOM_SER_HDX help text
    fix SCSI_SCAN_ASYNC help text
    trivial documentation patch for platform.txt
    Fix typos concerning hierarchy
    Fix comment typo "spin_lock_irqrestore".
    Fix misspellings of "agressive".
    drivers/scsi/a100u2w.c: trivial typo patch
    Correct trivial typo in log2.h.
    Remove useless FIND_FIRST_BIT() macro from cardbus.c.
    ...

    Linus Torvalds
     

18 Feb, 2007

1 commit


17 Feb, 2007

4 commits

  • Export the numa-node attribute of PCI devices in sysfs so that
    user applications may choose where to be placed accordingly.

    Signed-off-by: Brice Goglin
    Signed-off-by: Greg Kroah-Hartman

    Brice Goglin
     
  • I'm currently working on a port to a CPCI board with a MPC5200. When
    testing the PCI interrupt routing, I discovered the following: Even devices
    which don't use interrupts (-> PCI Spec.: Interrupt Pin Register is zero),
    get an interrupt assigned (this is at least true for most of the
    PPC-targets I looked at).

    The cause is pretty obvious in drivers/pci/setup-irq.c. I guess at least
    in an ideal world with correctly designed hardware, the code should rather
    look as in the patch below.

    Of course it doesn't hurt anybody to have an unuseable IRQ assigned to a
    PCI-to-PCI-bridge (or something alike), but to me it seems a bit strange.
    Please correct me, if I'm mislead.

    The patch below is tested on the above mentioned CPCI-MPC5200 board and is
    compiler tested with the latest git-repository kernel on x86.

    Cc: "Eric W. Biederman"
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Linus Torvalds
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Andreas Block
     
  • CARDBUS_MEM_SIZE was increased to 64MB on 2.6.20-rc2, but larger size might
    result in allocation failure for the reserving itself on some platforms
    (for example typical 32bit MIPS). Make it (and CARDBUS_IO_SIZE too)
    customizable by "pci=" option for such platforms.

    Signed-off-by: Atsushi Nemoto
    Cc: Daniel Ritz
    Cc: Ralf Baechle
    Cc: Ivan Kokshaysky
    Cc: Dominik Brodowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Atsushi Nemoto
     
  • Fix kernel-doc warnings in PCI, sysfs, and kobject files.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Greg Kroah-Hartman

    Randy Dunlap
     

15 Feb, 2007

2 commits

  • The obsolete SA_xxx interrupt flags have been used despite the scheduled
    removal. Fixup the remaining users.

    Signed-off-by: Thomas Gleixner
    Acked-by: Ingo Molnar
    Cc: "Luck, Tony"
    Cc: Roman Zippel
    Cc: Geert Uytterhoeven
    Cc: Jeff Garzik
    Cc: Wim Van Sebroeck
    Cc: Roland Dreier
    Cc: Alessandro Zummo
    Cc: James Bottomley
    Cc: Greg KH
    Cc: Dave Airlie
    Cc: James Simmons
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • After Al Viro (finally) succeeded in removing the sched.h #include in module.h
    recently, it makes sense again to remove other superfluous sched.h includes.
    There are quite a lot of files which include it but don't actually need
    anything defined in there. Presumably these includes were once needed for
    macros that used to live in sched.h, but moved to other header files in the
    course of cleaning it up.

    To ease the pain, this time I did not fiddle with any header files and only
    removed #includes from .c-files, which tend to cause less trouble.

    Compile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,
    arm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,
    allmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all
    configs in arch/arm/configs on arm. I also checked that no new warnings were
    introduced by the patch (actually, some warnings are removed that were emitted
    by unnecessarily included header files).

    Signed-off-by: Tim Schmielau
    Acked-by: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tim Schmielau
     

13 Feb, 2007

1 commit

  • Many struct file_operations in the kernel can be "const". Marking them const
    moves these to the .rodata section, which avoids false sharing with potential
    dirty data. In addition it'll catch accidental writes at compile time to
    these shared resources.

    Signed-off-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arjan van de Ven
     

11 Feb, 2007

1 commit

  • This is kind of hokey, we could use the hardware provided facilities
    much better.

    MSIs are assosciated with MSI Queues. MSI Queues generate interrupts
    when any MSI assosciated with it is signalled. This suggests a
    two-tiered IRQ dispatch scheme:

    MSI Queue interrupt --> queue interrupt handler
    MSI dispatch --> driver interrupt handler

    But we just get one-level under Linux currently. What I'd like to do
    is possibly stick the IRQ actions into a per-MSI-Queue data structure,
    and dispatch them form there, but the generic IRQ layer doesn't
    provide a way to do that right now.

    So, the current kludge is to "ACK" the interrupt by processing the
    MSI Queue data structures and ACK'ing them, then we run the actual
    handler like normal.

    We are wasting a lot of useful information, for example the MSI data
    and address are provided with ever MSI, as well as a system tick if
    available. If we could pass this into the IRQ handler it could help
    with certain things, in particular for PCI-Express error messages.

    The MSI entries on sparc64 also tell you exactly which bus/device/fn
    sent the MSI, which would be great for error handling when no
    registered IRQ handler can service the interrupt.

    We override the disable/enable IRQ chip methods in sun4v_msi, so we
    have to call {mask,unmask}_msi_irq() directly from there. This is
    another ugly wart.

    Signed-off-by: David S. Miller

    David S. Miller
     

10 Feb, 2007

2 commits

  • Implement device resource management, in short, devres. A device
    driver can allocate arbirary size of devres data which is associated
    with a release function. On driver detach, release function is
    invoked on the devres data, then, devres data is freed.

    devreses are typed by associated release functions. Some devreses are
    better represented by single instance of the type while others need
    multiple instances sharing the same release function. Both usages are
    supported.

    devreses can be grouped using devres group such that a device driver
    can easily release acquired resources halfway through initialization
    or selectively release resources (e.g. resources for port 1 out of 4
    ports).

    This patch adds devres core including documentation and the following
    managed interfaces.

    * alloc/free : devm_kzalloc(), devm_kzfree()
    * IO region : devm_request_region(), devm_release_region()
    * IRQ : devm_request_irq(), devm_free_irq()
    * DMA : dmam_alloc_coherent(), dmam_free_coherent(),
    dmam_declare_coherent_memory(), dmam_pool_create(),
    dmam_pool_destroy()
    * PCI : pcim_enable_device(), pcim_pin_device(), pci_is_managed()
    * iomap : devm_ioport_map(), devm_ioport_unmap(), devm_ioremap(),
    devm_ioremap_nocache(), devm_iounmap(), pcim_iomap_table(),
    pcim_iomap(), pcim_iounmap()

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • Signed-off-by: Conke Hu
    Signed-off-by: Jeff Garzik

    Conke Hu
     

08 Feb, 2007

6 commits

  • * master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6: (23 commits)
    ide-acpi support warning fix
    ACPI support for IDE devices
    IDE Driver for Delkin/Lexar/etc.. cardbus CF adapter
    ide: it8213 IDE driver update (version 2)
    ide: add it8213 IDE driver
    tc86c001: add missing __init tag for tc86c001_ide_init()
    tc86c001: mark init_chipset_tc86c001() with __devinit tag
    tc86c001: init_hwif_tc86c001() can be static
    ide: add Toshiba TC86C001 IDE driver (take 2)
    pdc202xx_new: remove check_in_drive_lists abomination
    pdc202xx_new: remove useless code
    slc90e66: carry over fixes from piix driver
    piix: tuneproc() fixes/cleanups
    piix: fix 82371MX enablebits
    hpt366: HPT36x PCI clock detection fix
    hpt366: init code rewrite
    hpt366: clean up DMA timeout handling for HPT370
    hpt366: merge HPT37x speedproc handlers
    hpt366: cache channel's MCR address
    hpt366: switch to using pci_get_slot
    ...

    Linus Torvalds
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6: (41 commits)
    Revert "PCI: remove duplicate device id from ata_piix"
    msi: Make MSI useable more architectures
    msi: Kill the msi_desc array.
    msi: Remove attach_msi_entry.
    msi: Fix msi_remove_pci_irq_vectors.
    msi: Remove msi_lock.
    msi: Kill msi_lookup_irq
    MSI: Combine pci_(save|restore)_msi/msix_state
    MSI: Remove pci_scan_msi_device()
    MSI: Replace pci_msi_quirk with calls to pci_no_msi()
    PCI: remove duplicate device id from ipr
    PCI: remove duplicate device id from ata_piix
    PCI: power management: remove noise on non-manageable hw
    PCI: cleanup MSI code
    PCI: make isa_bridge Alpha-only
    PCI: remove quirk_sis_96x_compatible()
    PCI: Speed up the Intel SMBus unhiding quirk
    PCI Quirk: 1k I/O space IOBL_ADR fix on P64H2
    shpchp: delete trailing whitespace
    shpchp: remove DBG_XXX_ROUTINE
    ...

    Linus Torvalds
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6: (28 commits)
    sysfs: Shadow directory support
    Driver Core: Increase the default timeout value of the firmware subsystem
    Driver core: allow to delay the uevent at device creation time
    Driver core: add device_type to struct device
    Driver core: add uevent vars for devices of a class
    SYSFS: Fix missing include of list.h in sysfs.h
    HOWTO: Add a reference to Harbison and Steele
    sysfs: error handling in sysfs, fill_read_buffer()
    kobject: kobject_put cleanup
    sysfs: kobject_put cleanup
    sysfs: suppress lockdep warnings
    Driver core: fix race in sysfs between sysfs_remove_file() and read()/write()
    driver core: Change function call order in device_bind_driver().
    driver core: Don't stop probing on ->probe errors.
    driver core fixes: device_register() retval check in platform.c
    driver core fixes: make_class_name() retval checks
    /sys/modules/*/holders
    USB: add the sysfs driver name to all modules
    SERIO: add the sysfs driver name to all modules
    PCI: add the sysfs driver name to all modules
    ...

    Linus Torvalds
     
  • The arch hooks arch_setup_msi_irq and arch_teardown_msi_irq are now
    responsible for allocating and freeing the linux irq in addition to
    setting up the the linux irq to work with the interrupt.

    arch_setup_msi_irq now takes a pci_device and a msi_desc and returns
    an irq.

    With this change in place this code should be useable by all platforms
    except those that won't let the OS touch the hardware like ppc RTAS.

    Signed-off-by: Eric W. Biederman
    Acked-by: Ingo Molnar
    Signed-off-by: Greg Kroah-Hartman

    Eric W. Biederman
     
  • We need to be able to get from an irq number to a struct msi_desc.
    The msi_desc array in msi.c had several short comings the big one was
    that it could not be used outside of msi.c. Using irq_data in struct
    irq_desc almost worked except on some architectures irq_data needs to
    be used for something else.

    So this patch adds a msi_desc pointer to irq_desc, adds the appropriate
    wrappers and changes all of the msi code to use them.

    The dynamic_irq_init/cleanup code was tweaked to ensure the new
    field is left in a well defined state.

    Signed-off-by: Eric W. Biederman
    Acked-by: Ingo Molnar
    Signed-off-by: Greg Kroah-Hartman

    Eric W. Biederman
     
  • The attach_msi_entry has been reduced to a single simple assignment,
    so for simplicity remove the abstraction and directory perform the
    assignment.

    Signed-off-by: Eric W. Biederman
    Acked-by: Ingo Molnar
    Signed-off-by: Greg Kroah-Hartman

    Eric W. Biederman