12 Oct, 2007

40 commits

  • * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (408 commits)
    [POWERPC] Add memchr() to the bootwrapper
    [POWERPC] Implement logging of unhandled signals
    [POWERPC] Add legacy serial support for OPB with flattened device tree
    [POWERPC] Use 1TB segments
    [POWERPC] XilinxFB: Allow fixed framebuffer base address
    [POWERPC] XilinxFB: Add support for custom screen resolution
    [POWERPC] XilinxFB: Use pdata to pass around framebuffer parameters
    [POWERPC] PCI: Add 64-bit physical address support to setup_indirect_pci
    [POWERPC] 4xx: Kilauea defconfig file
    [POWERPC] 4xx: Kilauea DTS
    [POWERPC] 4xx: Add AMCC Kilauea eval board support to platforms/40x
    [POWERPC] 4xx: Add AMCC 405EX support to cputable.c
    [POWERPC] Adjust TASK_SIZE on ppc32 systems to 3GB that are capable
    [POWERPC] Use PAGE_OFFSET to tell if an address is user/kernel in SW TLB handlers
    [POWERPC] 85xx: Enable FP emulation in MPC8560 ADS defconfig
    [POWERPC] 85xx: Killed
    [POWERPC] 85xx: Add cpm nodes for 8541/8555 CDS
    [POWERPC] 85xx: Convert mpc8560ads to the new CPM binding.
    [POWERPC] mpc8272ads: Remove muram from the CPM reg property.
    [POWERPC] Make clockevents work on PPC601 processors
    ...

    Fixed up conflict in Documentation/powerpc/booting-without-of.txt manually.

    Linus Torvalds
     
  • * 'upstream-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:
    [libata] sata_mv: more S/G fixes

    Linus Torvalds
     
  • * corruption fix: we only want the lower 16 bits of length (0 == 64kb)

    * ditto: the upper layer sets max-phys-segments to LIBATA_MAX_PRD,
    so we must reset it to own hw-specific length.

    * delete unused mv_fill_sg() return value

    Signed-off-by: Jeff Garzik

    Jeff Garzik
     
  • Allow a fixed framebuffer address to be assigned to the framebuffer device
    instead of allocating the framebuffer from the consistent memory pool.

    Signed-off-by: Grant Likely
    Signed-off-by: Paul Mackerras

    Grant Likely
     
  • Some custom implementations of the xilinx fb can use resolutions other
    than 640x480. This patch allows the resolution to be specified in the
    device tree or the xilinx_platform_data structure.

    Signed-off-by: Grant Likely
    Signed-off-by: Paul Mackerras

    Grant Likely
     
  • The call to xilinxfb_assign is getting unwieldy when adding features
    to the Xilinx framebuffer driver. Change xilinxfb_assign() to accept
    a pointer to a xilinxfb_platform_data structure to prepare for adding
    additition configuration options.

    Signed-off-by: Grant Likely
    Signed-off-by: Paul Mackerras

    Grant Likely
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (87 commits)
    mlx4_core: Fix section mismatches
    IPoIB: Allow setting policy to ignore multicast groups
    IB/mthca: Mark error paths as unlikely() in post_srq_recv functions
    IB/ipath: Minor fix to ordering of freeing and zeroing of tid pages.
    IB/ipath: Remove redundant link state checks
    IB/ipath: Fix IB_EVENT_PORT_ERR event
    IB/ipath: Better handling of unexpected GPIO interrupts
    IB/ipath: Maintain active time on all chips
    IB/ipath: Fix QHT7040 serial number check
    IB/ipath: Indicate a couple of chip bugs to userspace
    IB/ipath: iba6110 rev4 no longer needs recv header overrun workaround
    IB/ipath: Use counters in ipath_poll and cleanup interrupts in ipath_close
    IB/ipath: Remove duplicate copy of LMC
    IB/ipath: Add ability to set the LMC via the sysfs debugging interface
    IB/ipath: Optimize completion queue entry insertion and polling
    IB/ipath: Implement IB_EVENT_QP_LAST_WQE_REACHED
    IB/ipath: Generate flush CQE when QP is in error state
    IB/ipath: Remove redundant code
    IB/ipath: Future proof eeprom checksum code (contents reading)
    IB/ipath: UC RDMA WRITE with IMMEDIATE doesn't send the immediate
    ...

    Linus Torvalds
     
  • * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (867 commits)
    [SKY2]: status polling loop (post merge)
    [NET]: Fix NAPI completion handling in some drivers.
    [TCP]: Limit processing lost_retrans loop to work-to-do cases
    [TCP]: Fix lost_retrans loop vs fastpath problems
    [TCP]: No need to re-count fackets_out/sacked_out at RTO
    [TCP]: Extract tcp_match_queue_to_sack from sacktag code
    [TCP]: Kill almost unused variable pcount from sacktag
    [TCP]: Fix mark_head_lost to ignore R-bit when trying to mark L
    [TCP]: Add bytes_acked (ABC) clearing to FRTO too
    [IPv6]: Update setsockopt(IPV6_MULTICAST_IF) to support RFC 3493, try2
    [NETFILTER]: x_tables: add missing ip6t_modulename aliases
    [NETFILTER]: nf_conntrack_tcp: fix connection reopening
    [QETH]: fix qeth_main.c
    [NETLINK]: fib_frontend build fixes
    [IPv6]: Export userland ND options through netlink (RDNSS support)
    [9P]: build fix with !CONFIG_SYSCTL
    [NET]: Fix dev_put() and dev_hold() comments
    [NET]: make netlink user -> kernel interface synchronious
    [NET]: unify netlink kernel socket recognition
    [NET]: cleanup 3rd argument in netlink_sendskb
    ...

    Fix up conflicts manually in Documentation/feature-removal-schedule.txt
    and my new least favourite crap, the "mod_devicetable" support in the
    files include/linux/mod_devicetable.h and scripts/mod/file2alias.c.

    (The latter files seem to be explicitly _designed_ to get conflicts when
    different subsystems work with them - that have an absolutely horrid
    lack of subsystem separation!)

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (24 commits)
    ide: use only ->set_pio_mode method for programming PIO modes (take 2)
    sis5513: don't change UDMA settings when programming PIO
    it8213/piix/slc90e66: don't change DMA settings when programming PIO
    alim15x3: PIO mode setup fixes
    siimage: fix ->set_pio_mode method to select PIO data transfer
    cs5520: don't enable VDMA in ->speedproc
    sc1200: remove redundant warning message from sc1200_tune_chipset()
    ide-pmac: PIO mode setup fixes (take 3)
    icside: fix ->speedproc to return on unsupported modes (take 5)
    sgiioc4: use ide_tune_dma()
    amd74xx/via82cxxx: use ide_tune_dma()
    ide: add ide_set{_max}_pio() (take 4)
    ide: Kconfig face-lift
    ide: move ide_rate_filter() calls to the upper layer (take 2)
    sis5513: add ->udma_filter method for chipset_family >= ATA_133
    ide: mode limiting fixes for user requested speed changes
    ide: add missing ide_rate_filter() calls to ->speedproc()-s
    ide: call udma_filter() before resorting to the UltraDMA mask
    ide: make jmicron match vendor and device class
    pdc202xx_new: switch to using pci_get_slot() (take 2)
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds:
    leds: Update Cobalt Qube series front LED support
    leds: Add Cobalt Raq series LEDs support
    leds: Rename leds-cobalt driver

    Linus Torvalds
     
  • * 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight:
    backlight: Convert corgi backlight driver into a more generic driver
    backlight: Add Samsung LTV350QV LCD driver
    backlight: Fix cr_bllcd allocations and error paths
    backlight/leds: Make two structs static

    Linus Torvalds
     
  • * 'dmi-const' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6:
    drivers/firmware: const-ify DMI API and internals

    Linus Torvalds
     
  • * 'block-2.6.24' of git://git.kernel.dk/data/git/linux-2.6-block: (37 commits)
    [BLOCK] Fix failing compile with BLK_DEV_IO_TRACE=n
    compat_ioctl: move floppy handlers to block/compat_ioctl.c
    compat_ioctl: move cdrom handlers to block/compat_ioctl.c
    compat_ioctl: move BLKPG handling to block/compat_ioctl.c
    compat_ioctl: move hdio calls to block/compat_ioctl.c
    compat_ioctl: handle blk_trace ioctls
    compat_ioctl: add compat_blkdev_driver_ioctl()
    compat_ioctl: move common block ioctls to compat_blkdev_ioctl
    Sysace: Don't enable IRQ until after interrupt handler is registered
    Sysace: sparse fixes
    Sysace: Minor coding convention fixup
    drivers/block/umem: use DRIVER_NAME where appropriate
    drivers/block/umem: trim trailing whitespace
    drivers/block/umem: minor cleanups
    drivers/block/umem: use dev_printk()
    drivers/block/umem: move private include away from include/linux
    Sysace: Labels in C code should not be indented.
    Sysace: Add of_platform_bus binding
    Sysace: Move IRQ handler registration to occur after FSM is initialized
    Sysace: minor rework and cleanup changes
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6: (74 commits)
    Blackfin serial driver: pending a unique anomaly id, tie the break flood issue to ANOMALY_05000230
    blackfin enable arbitary speed serial setting
    Blackfin arch: Remove cruft - CONFIG_DEBUG_SERIAL_EARLY_INIT and DEBUG_KERNEL_START
    Blackfin arch: fix typo in register name
    Blackfin arch: trim the Blackfin arch MAINTAINERS list
    Blackfin arch: fix bug libstdc++ calling writev with an iovec containing { NULL, 0 } fails on Blackfin
    Blackfin arch: Export strcpy - occasionally get module link failures otherwise
    Blackfin arch: the load address is not safe to point to as a workaround for ANOMALY 05000281
    Blackfin arch: show_mem can not be marked as init, since it is called during OOM condition
    Blackfin arch: flush/inv the correct range when using write back cache and fix bugs find by dmacopy
    Blackfin arch: update kgdb patch
    Blackfin arch: Comply with revised Anomaly Workarounds for BF533 05000311 and BF561 05000323
    Blackfin arch: Print out debug info, as early as possible
    Blackfin arch: Enable earlyprintk earlier - so any error after our interrupt tables are set up will print out
    Blackfin arch: fix endless loop bug when a double fault happens
    Blackfin arch: Initial patch to add earlyprintk support
    Blackfin arch: add TWIx_REGBASE and SPIx_REGBASE to specific CPU header files, use the new REGBASE for board platform resources
    Blackfin arch: modify the insX/outsX and dma_insX/dma_outsX to be compatible with other archs
    Blackfin arch: add more common defines for output sections
    Blackfin arch: cleanup IO and DMA_IO API function definitions according to other arches
    ...

    Linus Torvalds
     
  • * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb: (310 commits)
    V4L/DVB (6316): Change list_for_each+list_entry to list_for_each_entry
    V4L/DVB (6315): pvrusb2: Change list_for_each+list_entry to list_for_each_entry
    V4L/DVB (6314): saa7134: Replace list_for_each+list_entry with list_for_each_entry
    V4L/DVB (6313): ivtv: Replace list_for_each+list_entry with list_for_each_entry
    V4L/DVB (6312): cx88: Replace list_for_each+list_entry with list_for_each_entry
    V4L/DVB (6311): dvb: Replace list_for_each+list_entry with list_for_each_entry
    V4L/DVB (6308): V4L: zc0301, remove bad usage of ERESTARTSYS
    V4L/DVB (6307): V4L: w9968cf, remove bad usage of ERESTARTSYS
    V4L/DVB (6306): Few clenups for saa7134 resume code
    V4L/DVB (6305): V4L: videobuf-core.c avoid NULL dereferences in videobuf-core
    V4L/DVB (6301): pvrusb: Update DEBUGIFC sysfs to kernel 2.6.13+
    V4L/DVB (6300): CodingStyle cleanup
    V4L/DVB (6299): dvb: Add dependencies for VIDEOBUF_DVB
    V4L/DVB (6297): cx23885: remove wrong Kconfig selection of VIDEOBUF
    V4L/DVB (6296): dib0700: add support for AverMedia DVB-T Express card
    V4L/DVB (6295): saa7134: add autodetection for KWorld ATSC-115
    V4L/DVB (6293): V4L: convert struct class_device to struct device
    V4L/DVB (6292): videobuf_core init always require callback implementation
    V4L/DVB (6291): Fix: avoid oops on some SMP machines
    V4L/DVB (6290): remove videobuf_set_pci_ops
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc: (67 commits)
    mmc: don't use weight32()
    pxamci: support arbitrary block size
    sdio: make the IRQ thread more resilient in the presence of bad states
    sdio: fix IRQ diagnostic message
    sdhci: remove old dma module params
    sdhci: add SDHCI_QUIRK_BROKEN_DMA quirk
    sdhci: remove DMA capability check from controller's PCI Class reg
    sdhci: fix a typo
    mmc: Disabler for Ricoh MMC controller
    sdio: adaptive interrupt polling
    mmc: pxamci: add SDIO card interrupt reporting capability
    mmc: pxamci: set proper buswidth capabilities according to PXA flavor
    mmc: pxamci: set proper block capabilities according to PXA flavor
    mmc: pxamci: better pending IRQ determination
    arm: i.MX/MX1 SDHC implements SD cards read-only switch read-back
    mmc: add led trigger
    mmc_spi host driver
    MMC core learns about SPI
    MMC/SD card driver learns SPI
    MMC headers learn about SPI
    ...

    Linus Torvalds
     
  • Handle the corner case where budget is exhausted correctly.
    And save unnecessary read of index register.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • In order for the list handling in net_rx_action() to be
    correct, drivers must follow certain rules as stated by
    this comment in net_rx_action():

    /* Drivers must not modify the NAPI state if they
    * consume the entire weight. In such cases this code
    * still "owns" the NAPI instance and therefore can
    * move the instance around on the list at-will.
    */

    A few drivers do not do this because they mix the budget checks
    with reading hardware state, resulting in crashes like the one
    reported by takano@axe-inc.co.jp.

    BNX2 and TG3 are taken care of here, SKY2 fix is from Stephen
    Hemminger.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Use ->set_pio_mode method to program PIO modes in ide_set_xfer_rate()
    (the only place which used ->speedproc to program PIO modes) and remove
    handling of PIO modes from all ->speedproc implementations.

    v2:
    * Fix pmac_ide_tune_chipset() comment.

    There should be no functionality changes caused by this patch.

    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Return failure in ->speedproc method for unsupported/invalid transfer
    modes passed from user-space (fixes theoretical OOPS in ali_tune_pio()
    and/or setting random PIO timings on host controller + disabling UDMA
    bit + setting unsupported/invalid transfer mode on the device).

    * Don't disable UDMA bit when programming PIO modes.

    * Add FIXME about DMA timings never being set.

    * Bump driver version.

    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Remember to select PIO data transfer (with IORDY monitored) in sil_tune_pio()
    (->set_pio_mode method) so the controller is always programmed correctly for
    PIO transfers (this is important if DMA is not going to be used).

    * Don't set DMA/UDMA timings for PIO modes in siimage_tune_chipset().

    * Bump driver version.

    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • There is no need to do it in cs5520_tune_chipset() (->speedproc method)
    since it is correctly handled by cs5520_dma_on() (->ide_dma_on method).

    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • ide_config_drive_speed() called by sc1200_set_xfer_mode() already gives
    a meaningful warning message in case of failure.

    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Add { 0, 0 } entry to {kauai,shasta}_pio_timings[] so kauai_lookup_timing()
    always returns a valid PIO timing (fixes PIO timing not being set for devices
    with minimum PIO cycle speedproc return value for DMA modes).

    v2:
    * s/speed/XFER_PIO_0 + pio/ in pmac_ide_set_pio_mode() so it actually compiles.

    * Removal of kauai_lookup_timing() return value checking went to separate patch.

    v3:
    * Use XFER_PIO_0 not XFER_PIO. (Noticed by Ben)

    Cc: Benjamin Herrenschmidt
    Cc: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * All other implementations of ->speedproc return zero on success
    and non-zero on failure. Currently it doesn't matter for icside host
    driver and isn't a bug per se since:

    - ide_set_xfer_rate() return value is ignored by all IDE core users

    - icside doesn't (yet!) use ide_tune_dma() in icside_dma_check()

    but sooner or later we will need to fix anyway - so lets do it now.

    * icside_set_speed() happily accepts unsupported transfer modes which
    results in drive->drive_data being set to the maximum value (480)
    and drive->current_speed being set to the unsupported transfer mode.

    Fix it.

    v2:
    * The initial version of the patch was broken because it didn't take into
    the account (the different from usual) return values of icside_set_speed()
    (Noticed by Russell).

    v3:
    * Remove no longer needed initialization/checking of cycle_time
    (Noticed by Sergei).

    * No need to set drive->drive_data if DMA is not going to be used
    (Noticed by Sergei).

    * Remove incorrect setting of drive->current_speed
    (Noticed by Sergei).

    * Move ide_config_drive_speed() at the end of icside_set_speed().

    v4:
    * If DMA mode is not found in icside_dma_check() then just return "-1" and
    don't call icside_set_speed() (v3 got it wrong and "1" was returned instead).

    v5:
    * Return "-1"/"0" in icside_set_speed() instead of icside_dma_check() return
    value (just like it was before this patch).

    Cc: Russell King
    Cc: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Add DRV_NAME define and use it instead of sgiioc4_chipset.name.

    * Remove no longer needed sgiioc4_chipset.

    * Remove needless clearing of ->atapi_dma from ide_dma_sgiioc4().

    * Fix ide_dma_sgiioc4() to return success/failure. Check return value in
    sgiioc4_ide_setup_pci_device() and set hwif->autodma accordingly. Also add
    missing setting of drive->autodma.

    * Add sgiioc4_speedproc() (implementation of ->speedproc method).

    * Fix ->mwdma_mask (MWDMA2 mask is 0x04 not 0x02) and remove incorrect
    ->swdma_mask. Also remove needless initialization of ->ultra_mask.

    * Use ide_tune_dma() in sgiioc4_ide_dma_check(), this fixes following bugs:
    - DMA capability bit not being checked on the device
    - DMA blacklist not being checked
    - MWDMA2 mode support by device not being checked

    Acked-by: Sergei Shtylyov
    Signed-off-by: Jeremy Higdon
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Use ide_tune_dma() in amd74xx/via82cxxx driver, this fixes following bugs:
    - DMA capability bit not being checked on the device
    - DMA blacklist not being checked
    - DMA mode being programmed even if drive->autodma == 0
    (thus possibly destroying PIO timings)

    * Bump driver version.

    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Add IDE_HFLAG_ABUSE_{PREFETCH,FAST_DEVSEL,DMA_MODES} flags
    and set them in ht6560, cmd640, cmd64x and sc1200 host drivers.

    * Add set_pio_mode_abuse() for checking if host driver has a non-standard
    ->tuneproc() implementation and use it in do_special().

    * Add ide_set_pio() for setting PIO mode (it uses hwif->pio_mask to find
    the maximum PIO mode supported by the host), also add ide_set_max_pio()
    wrapper for ide_set_pio() to use for auto-tuning. Convert users of
    ->tuneproc to use ide_set{_max}_pio() where possible. This leaves only
    do_special(), set_using_pio(), ide_hwif_restore() and ide_set_pio() as
    a direct users of ->tuneproc.

    * Remove no longer needed ide_get_best_pio_mode() calls and printk-s
    reporting PIO mode selected from ->tuneproc implementations.

    * Rename ->tuneproc hook to ->set_pio_mode and make 'pio' argument const.

    * Remove stale comment from ide_config_drive_speed().

    v2:
    * Fix "ata_" prefix (Noticed by Jeff).

    v3:
    * Minor cleanups/fixups per Sergei's suggestions.

    v4:
    * Fix compile problem in drivers/ide/pci/cmd640.c
    (Noticed by Andrew Morton).

    * Improve some ->set_pio_mode comments.

    Reviewed-by: Sergei Shtylyov
    Cc: Jeff Garzik
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Convert config options for PCI host drivers to select BLK_DEV_IDEPCI.

    * Same for BLK_DEV_IDEDMA_PCI and PCI DMA host drivers, also make this
    config option select BLK_DEV_IDEPCI.

    * Remove no longer needed help for BLK_DEV_IDEPCI and BLK_DEV_IDEDMA_PCI.

    * Remove redundant IDE_CHIPSETS config option.

    As a result of this patch users have now three less config options
    to worry about and can just select host drivers that they need
    (IDE config menu is "flatter").

    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Move ide_rate_filter() calls from host drivers to IDE core.

    * Make ide_rate_filter() static.

    * Make 'speed' argument of ->speedproc const.

    v2:
    * Fix it8213_tune_chipset() comment.

    There should be no functionality changes caused by this patch.

    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Add sis5513_ata133_udma_filter() for chipset_family >= ATA_133,
    use it to filter UDMA6 mode if ATA133 bit is disabled.

    * Remove no longer needed UDMA6 limiting logic from sis5513_tune_chipset().

    * Bump driver version.

    There should be no functionality changes caused by this patch.

    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Add an extra argument to ide_max_dma_mode() for passing requested transfer
    mode. Use it as an upper limit when finding the best DMA for device/host.

    * Rename ide_max_dma_mode() to ide_find_dma_mode() and at the same time add
    ide_max_dma_mode() wrapper which passes XFER_UDMA_6 as a requested mode to
    ide_find_dma_mode(). Also add inline ide_find_dma_mode() version for
    CONFIG_BLK_DEV_IDEDMA=n case.

    * Pass requested transfer mode from ide_find_dma_mode() to ide_get_mode_mask()
    to avoid false warning from eighty_ninty_three().

    * Use ide_find_dma_mode() to limit the user requested transfer mode in
    ide_rate_filter(). Also limit the requested mode by host max PIO mode.

    Above changes make ide_rate_filter() to:

    * Clip desired transfer mode down if it is invalid (values 0x0F, 0x13-0x19
    and 0x25-0x39, values > 0x46 were already clipped down, same for values
    0x25-0x39 but iff UDMA was not supported by the host).

    * Clip desired transfer mode down if it is currently unsupported by IDE core
    (PIO6 and MWDMA3-4, the latter were already clipped down but iff UDMA was
    not supported by the host).

    * Clip desired transfer mode down according to the host capabilities
    (UDMA modes were already clipped down but MWDMA/SWDMA/PIO weren't,
    also ->atapi_dma flag was not respected).

    * Clip desired transfer mode down according to the device capabilities
    (except PIO modes for now which require mode work) - shouldn't be a
    problem since ide_set_xfer_rate() is called _after_ device has accepted
    given transfer mode.

    and also result in a number of host driver specific bugfixes:

    * icside
    - clip unsupported PIO5 mode down
    - fix unsupported/invalid modes being set in drive->current_speed

    * ide-cris
    - clip unsupported PIO5 and SWDMA0-2 modes down
    - clip DMA modes down for ATAPI devices
    - fix BUG() on unsupported/invalid modes

    * au1xxx-ide
    - clip unsupported PIO5, SWDMA0-2 and MWDMA0-2
    (if BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA=n) modes down

    * aec62xx
    - clip unsupported PIO5 and SWDMA0-2 modes down
    - clip DMA modes down for ATAPI devices
    - fix 0x00 being programmed as PIO timing for unsupported/invalid modes
    - fix unsupported/invalid modes being set on the device

    * alim15x3
    - clip DMA modes down for ATAPI devices (chipset revision == 0x20 only)
    - fix theoretical OOPS for 0x0F mode
    - fix unsupported/invalid modes being set on the device

    * amd74xx
    - clip unsupported SWDMA0-2 (on COBRA_7401 revs
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Fix icside, cris-ide, au1xxx-ide, amd74xx, via82cxxx and pmac host drivers
    to use ide_rate_filter().

    This results in the following modes (from user requests) being clipped down:
    - invalid modes (values 0x46-0xFF) [ for all hosts ]
    - unsupported by a host UDMA modes [ for hosts which support UDMA]
    - all UDMA modes and MWDMA3-4 modes [ for hosts which don't support UDMA ]
    - invalid modes (values 0x25-0x39) [ for hosts which don't support UDMA ]

    * Host driver specific changes in behavior:

    icside:
    - no change

    cris-ide
    - clip unsupported UDMA3-6 modes down
    - fix BUG() on trying to set unsupported UDMA3-6 modes

    au1xxx-ide/pmac
    - clip unsupported UDMA modes down

    amd74xx/via82cxxx
    - clip unsupported UDMA modes down
    - fix random PIO timings being set for unsupported/invalid modes
    - fix unsupported/invalid modes being set on the device

    * While at it remove no longer needed checks from pmac.c driver.

    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • Give the udma_filter() method call precedence over using the mode masks.

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Sergei Shtylyov
     
  • PATA part of all current JMB controllers behave the same way and
    JMicron confirms that all future ones will stay compatible. Matching
    vendor and device class is enough.

    For backward compatibility, jmicron still needs to match 361,3,5,6,8
    DIDs regardless of device class if libata is not configured but won't
    need further DID update from this point.

    Bart: cosmetic fixes to jmicron_chipset

    Signed-off-by: Tejun Heo
    Cc: Ethan Hsiao
    Cc: Justin Tsai
    Cc: Alan Cox
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Tejun Heo
     
  • Switch to using pci_get_slot() in init_setup_pdc20270() to get to the mate chip
    behind DC21150 bridge as there's no need for the driver itself to walk the list
    of the PCI devices (and the driver didn't check the bus # of the found device).
    While at it, make it emit warning about IRQ # being fixed up (just like hpt366.c
    does) and "beautify" this whole function as well as init_setup_pdc20276()...

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Sergei Shtylyov
     
  • ACPI spec defines the sequence of IDE power on/off:
    Powering down:
    Call _GTM.
    Power down drive (calls _PS3 method and turns off power planes).
    Powering up:
    Power up drive (calls _PS0 method if present and turns on power planes).
    Call _STM passing info from _GTM (possibly modified), with ID data from
    each drive.
    Initialize the channel.
    May modify the results of _GTF.
    For each drive:
    Call _GTF.
    Execute task file (possibly modified).
    This patch adds the missed _PS0/_PS3 methods call.

    Signed-off-by: Shaohua Li
    Acked-by: Len Brown
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Shaohua Li
     
  • This is now very similar to pata_platform.c, they both use
    same platform data structure and same resources.

    To achieve that, byte_lanes_swapping platform data variable
    and platform specified iops removed from that driver. It's fine,
    since those were never used anyway.

    pata_platform and ide_platform are carrying same driver names,
    to easily switch between these drivers, without need to touch
    platform code.

    Bart:
    - build fix from Andrew Morton

    Signed-off-by: Anton Vorontsov
    Signed-off-by: Vitaly Bordug
    Cc: Sergei Shtylyov
    Acked-by: Alan Cox
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Anton Vorontsov