1. 12 Oct, 2007 9 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6 · 19f71153
      Linus Torvalds authored
      * 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)
        ...
      19f71153
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds · e6005a85
      Linus Torvalds authored
      * '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
      e6005a85
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight · 6f35308c
      Linus Torvalds authored
      * '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
      6f35308c
    • Linus Torvalds's avatar
      19ad7ae4
    • Linus Torvalds's avatar
      Merge branch 'block-2.6.24' of git://git.kernel.dk/data/git/linux-2.6-block · 1ce48904
      Linus Torvalds authored
      * '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
        ...
      1ce48904
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6 · 55982fd1
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6:
        [AVR32] Fix random segfault with preemption
        [AVR32] Don't use __builtin_xchg()
        [AVR32] ngw100 i2c-gpio tweaks
        [AVR32] Ignore a few irrelevant syscalls
        [AVR32] SMC configuration in clock cycles
        [AVR32] Drop support for redundant "keepinitrd" boot-time parm.
        [AVR32] Make dma_sync_*_for_cpu no-ops
        [AVR32] Remove unneeded 8K alignment of .text section
        [AVR32] Kill a few hardcoded constants in vmlinux.lds
        [AVR32] rename vmlinux.lds
        [AVR32] fix command line parsing in early_parse_fbmem
        [AVR32] checkstack support
        [AVR32] Wire up USBA device
        [AVR32] add multidrive support for pio driver
        [AVR32] /sys/kernel/debug/at32ap_clk
        [AVR32] Move AT32_PM_BASE definition into pm.h
      55982fd1
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6 · 1ef3e362
      Linus Torvalds authored
      * '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
        ...
      1ef3e362
    • Linus Torvalds's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb · c634920a
      Linus Torvalds authored
      * '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
        ...
      c634920a
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc · 6abd2c86
      Linus Torvalds authored
      * '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
        ...
      6abd2c86
  2. 11 Oct, 2007 31 commits
    • Bartlomiej Zolnierkiewicz's avatar
      ide: use only ->set_pio_mode method for programming PIO modes (take 2) · 8f4dd2e4
      Bartlomiej Zolnierkiewicz authored
      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: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      8f4dd2e4
    • Bartlomiej Zolnierkiewicz's avatar
    • Bartlomiej Zolnierkiewicz's avatar
    • Bartlomiej Zolnierkiewicz's avatar
      alim15x3: PIO mode setup fixes · a6fe837e
      Bartlomiej Zolnierkiewicz authored
      * 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: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      a6fe837e
    • Bartlomiej Zolnierkiewicz's avatar
      siimage: fix ->set_pio_mode method to select PIO data transfer · ffe5415c
      Bartlomiej Zolnierkiewicz authored
      * 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: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      ffe5415c
    • Bartlomiej Zolnierkiewicz's avatar
      cs5520: don't enable VDMA in ->speedproc · 326d72f4
      Bartlomiej Zolnierkiewicz authored
      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: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      326d72f4
    • Bartlomiej Zolnierkiewicz's avatar
      sc1200: remove redundant warning message from sc1200_tune_chipset() · fabe1510
      Bartlomiej Zolnierkiewicz authored
      ide_config_drive_speed() called by sc1200_set_xfer_mode() already gives
      a meaningful warning message in case of failure.
      Acked-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      fabe1510
    • Bartlomiej Zolnierkiewicz's avatar
      ide-pmac: PIO mode setup fixes (take 3) · c15d5d43
      Bartlomiej Zolnierkiewicz authored
      * 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 <= 120ns).
      
      * Add setting transfer mode on the device to pmac_ide_set_pio_mode().
      
      * Fix pmac_ide_set_pio() to always program chipset for given PIO timing instead
        of only when the device we want to program PIO timing for is the currently
        selected one.
      
      * Now that pmac_ide_set_pio() is fixed there is no need to set transfer mode
        on the device and program chipset for PIO in pmac_ide_tune_chipset()
        (returning 0 == success is not entirely correct but is OK for now since
        the upper layers are only checking ->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 <benh@kernel.crashing.org>
      Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      c15d5d43
    • Bartlomiej Zolnierkiewicz's avatar
      icside: fix ->speedproc to return on unsupported modes (take 5) · f44ae58a
      Bartlomiej Zolnierkiewicz authored
      * 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 <rmk@arm.linux.org.uk>
      Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      f44ae58a
    • Bartlomiej Zolnierkiewicz's avatar
      sgiioc4: use ide_tune_dma() · ca1997c1
      Bartlomiej Zolnierkiewicz authored
      * 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: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarJeremy Higdon <jeremy@sgi.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      ca1997c1
    • Bartlomiej Zolnierkiewicz's avatar
      amd74xx/via82cxxx: use ide_tune_dma() · 55f17e8d
      Bartlomiej Zolnierkiewicz authored
      * 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: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      55f17e8d
    • Bartlomiej Zolnierkiewicz's avatar
      ide: add ide_set{_max}_pio() (take 4) · 26bcb879
      Bartlomiej Zolnierkiewicz authored
      * 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: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Cc: Jeff Garzik <jeff@garzik.org>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      26bcb879
    • Bartlomiej Zolnierkiewicz's avatar
      ide: Kconfig face-lift · 842c19ad
      Bartlomiej Zolnierkiewicz authored
      * 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: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      842c19ad
    • Bartlomiej Zolnierkiewicz's avatar
      ide: move ide_rate_filter() calls to the upper layer (take 2) · f212ff28
      Bartlomiej Zolnierkiewicz authored
      * 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: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      f212ff28
    • Bartlomiej Zolnierkiewicz's avatar
      sis5513: add ->udma_filter method for chipset_family >= ATA_133 · 3160d541
      Bartlomiej Zolnierkiewicz authored
      * 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: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      3160d541
    • Bartlomiej Zolnierkiewicz's avatar
      ide: mode limiting fixes for user requested speed changes · 7670df73
      Bartlomiej Zolnierkiewicz authored
      * 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 <= 7) modes down
        - fix random PIO timings being set for unsupported/invalid modes
        - fix unsupported/invalid modes being set on the device
      
      * atiixp
        - clip unsupported PIO5 and SWDMA0-2 modes down
        - fix cached MWDMA mode being cleared for unsupported/invalid modes
        - fix PIO{0,2} timings being programmed for unsupported/invalid modes
        - fix theoretical OOPS for PIO5-6 and 0x0F modes
        - fix unsupported/invalid modes being set on the device
      
      * cmd64x
        - clip unsupported SWDMA0-2 modes down
      
      * cs5530
        - clip unsupported PIO5 and SWDMA0-2 modes down
        - fix unsupported/invalid modes being set on the device
        - fix BUG() on unsupported/invalid modes
          (which happened if the device accepted the setting)
      
      * cs5535
        - clip unsupported PIO5 and SWDMA0-2 modes down
        - fix unsupported/invalid modes being set on the device
        - fix theoretical OOPS for PIO5-6 and 0x0F modes
      
      * hpt34x
        - clip DMA modes down for ATAPI devices
        - fix invalid timings being programmed for unsupported/invalid modes
        - fix unsupported/invalid modes being set on the device
      
      * hpt366
        - clip unsupported PIO5 and SWDMA0-2 modes down
        - fix PIO0 timings being programmed for unsupported/invalid modes
        - fix DMA timings being cleared for MWDMA3-4 and 0x25-0x39 modes
        - fix unsupported/invalid modes being set on the device
      
      * it8213
        - clip unsupported PIO5, SWDMA0-1 and MWDMA0 modes down
      
      * it821x
        - clip unsupported PIO5 and SWDMA0-2 modes down
        - clip DMA modes down for ATAPI devices
          (chipset in smart mode and revision 0x10 in pass-through mode)
      
      * jmicron
        - clip unsupported SWDMA0-2 modes down
        - fix unsupported/invalid modes being set on the device
      
      * pdc202xx_new
        - clip unsupported PIO5 and SWDMA0-2 modes down
        - fix unsupported/invalid modes being set on the device
      
      * pdc202xx_old
        - clip unsupported PIO5 mode down
        - fix incorrect timings being set for unsupported/invalid modes
        - fix unsupported/invalid modes being set on the device
      
      * piix
        - clip unsupported PIO5, SWDMA0-1 and MWDMA0 modes down
      
      * sc1200
        - clip unsupported PIO5 and SWDMA0-2 modes down
        - fix unsupported/invalid modes being set on the device
        - fix BUG() on unsupported/invalid modes
          (which happened if the device accepted the setting)
      
      * scc_pata
        - clip unsupported PIO5, SWDMA0-2 and MWDMA0-2 modes down
      
      * serverworks
        - clip unsupported PIO5 and SWDMA0-2 modes down
        - fix DMA/UDMA timings/settings being cleared for unsupported/invalid modes
        - fix unsupported/invalid modes being set on the device
      
      * siimage
        - clip unsupported PIO5 and SWDMA0-2 modes down
        - clip DMA modes down for ATAPI devices (SATA chipsets)
      
      * sis5513
        - clip unsupported PIO5 mode down
        - fix BUG() on unsupported/invalid modes
      
      * sl82c105
        - clip unsupported SWDMA0-2 modes down
      
      * slc90e66
        - clip unsupported PIO5, SWDMA0-1 and MWDMA0 modes down
      
      * tc86c001
        - clip unsupported PIO5 and SWDMA0-2 modes down
        - fix PIO0 timings being programmed for PIO5/0x0F/SWDMA0-2/0x13-0x19 modes
        - fix invalid 0x00 DMA timing being programmed for MWDMA3-4/0x25-0x39 modes
        - fix unsupported/invalid modes being set on the device
      
      * triflex
        - clip unsupported PIO5 mode down
      
      * via82cxxx
        - fix random PIO timings being set for unsupported/invalid modes
        - fix unsupported/invalid modes being set on the device
      
      * pmac
        - clip unsupported PIO5 and SWDMA0-2 modes down
      
      * cmd640/ht6560b
        - clip DMA modes down (if CONFIG_BLK_DEV_IDEDMA=y)
        - fix PIO5 being clipped to PIO4 (if CONFIG_BLK_DEV_IDEDMA=n)
      
      * opti621
        - clip DMA modes down (if CONFIG_BLK_DEV_IDEDMA=y)
        - clip unsupported PIO4 to PIO3 (if CONFIG_BLK_DEV_IDEDMA=n)
      
      
      While at it:
      
      * Use ide_rate_filter() in cs5520.c::cs5520_tune_chipset().
      
      * Remove no longer needed checks from hpt366.c::hpt3{6,7}x_tune_chipset().
      Acked-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      7670df73
    • Bartlomiej Zolnierkiewicz's avatar
      ide: add missing ide_rate_filter() calls to ->speedproc()-s · a8028fcb
      Bartlomiej Zolnierkiewicz authored
      * 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: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      a8028fcb
    • Sergei Shtylyov's avatar
      ide: call udma_filter() before resorting to the UltraDMA mask · 851dd33b
      Sergei Shtylyov authored
      Give the udma_filter() method call precedence over using the mode masks.
      Signed-off-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      851dd33b
    • Tejun Heo's avatar
      ide: make jmicron match vendor and device class · bda7970c
      Tejun Heo authored
      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: default avatarTejun Heo <htejun@gmail.com>
      Cc: Ethan Hsiao <ethanhsiao@jmicron.com>
      Cc: Justin Tsai <justin@jmicron.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      bda7970c
    • Sergei Shtylyov's avatar
      pdc202xx_new: switch to using pci_get_slot() (take 2) · 07047935
      Sergei Shtylyov authored
      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: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      07047935
    • Shaohua Li's avatar
      ide: hook ACPI _PSx method to IDE power on/off · 5e32132b
      Shaohua Li authored
      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: default avatarShaohua Li <shaohua.li@intel.com>
      Acked-by: default avatarLen Brown <len.brown@intel.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      5e32132b
    • Anton Vorontsov's avatar
      ide: Platform IDE driver · 8cb1f567
      Anton Vorontsov authored
      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 <akpm@linux-foundation.org>
      Signed-off-by: default avatarAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: default avatarVitaly Bordug <vitb@kernel.crashing.org>
      Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
      Acked-by: default avatarAlan Cox <alan@redhat.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      8cb1f567
    • Sergei Shtylyov's avatar
      hpt366: MWDMA filter for SATA cards (take 2) · b4e44369
      Sergei Shtylyov authored
      The Marvell bridge chips used on HighPoint SATA cards do not seem to support
      the MWDMA modes (at least that could be seen in their so-called drivers :-),
      so the driver needs to account for this -- to achieve this:
      
      - add mdma_filter() method from the original patch by Bartlomiej Zolnierkiewicz
        with his consent;
      
      - install the method for all chips to only return empty mask if a SATA drive
        is detected on HPT372{AN]/374 chips...
      Signed-off-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      b4e44369
    • Shane Huang's avatar
      atiixp: SB700 contains more than one IDE channel · 7cfa7168
      Shane Huang authored
      SB700 supports one physical IDE channel, but SB700 SATA controller
      supports combined mode.  When the SATA combined mode is enabled,
      two SATA ports (port4 and port5) share one IDE channel from IDE
      controller, and PATA will share the other IDE channel.
      
      Our previous patch adding SB700 IDE device ID only supports one
      IDE channel, which contains bug.  The attached patch fixes the bug.
      Signed-off-by: default avatar"Shane Huang" <Shane.Huang@amd.com>
      Acked-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      7cfa7168
    • Richard Purdie's avatar
      backlight: Convert corgi backlight driver into a more generic driver · c3f8f650
      Richard Purdie authored
      Convert the corgi backlight driver to a more generic version
      so it can be reused by other code rather than being Zaurus/PXA
      specific.
      Signed-off-by: default avatarRichard Purdie <rpurdie@rpsys.net>
      c3f8f650
    • Haavard Skinnemoen's avatar
      backlight: Add Samsung LTV350QV LCD driver · 18f65c79
      Haavard Skinnemoen authored
      This patch adds support for powering on and off the Samsung LTV350QV LCD
      panel via SPI.  The driver responds to framebuffer power management, it
      powers off the panel on reboot/halt/poweroff.  It can also be controlled
      through sysfs.  The panel is powered up when the module is loaded, and off
      when the module is unloaded.  Verified on AVR32 STK1000.
      Signed-off-by: default avatarHaavard Skinnemoen <hskinnemoen@atmel.com>
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarRichard Purdie <rpurdie@rpsys.net>
      18f65c79
    • Jesper Juhl's avatar
      backlight: Fix cr_bllcd allocations and error paths · 0b75f2df
      Jesper Juhl authored
      After fixing the too small memory allocation in cr_backlight_probe()
      from drivers/video/backlight/cr_bllcd.c
      (commit e3bbb3f0) I noticed that the
      Coverity checker also thought there were a few memory leaks in there.
      I took a closer look and confirmed that there were indeed several
      leaks.
      
      At the start of the function we allocate storage for a
      'struct cr_panel' and store the pointer in a variable named 'crp'.
      
      Then we call pci_get_device() and pci_read_config_byte() and if
      either of them fail we return without freeing the memory allocated
      for the 'struct cr_panel'. These two leaks are easy to fix since we
      don't even use 'crp' for anything up to this point, so I simply
      moved the allocation further down in the function so it only happens
      just before we actually need it.
      
      A bit further down we call backlight_device_register() and store the
      result in 'crp->cr_backlight_device'. In case of error we return
      'crp->cr_backlight_device' from the function, thus leaking 'crp'
      itself. The same thing happens with the call to lcd_device_register().
      To fix these two leaks I declare two new pointers to hold the return
      values, so that in case of error we can return the pointer (as before)
      but without leaking 'crp'.
      
      This version of the patch also adds missing
      backlight_device_unregister() / lcd_device_unregister() / pci_dev_put()
      calls to error paths.
        Thanks to Richard Purdie <rpurdie@rpsys.net> for noticing.
      Signed-off-by: default avatarJesper Juhl <jesper.juhl@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarRichard Purdie <rpurdie@rpsys.net>
      0b75f2df
    • Adrian Bunk's avatar
      backlight/leds: Make two structs static · 0ad90efd
      Adrian Bunk authored
      This patch makes two needlessly global structs static.
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarRichard Purdie <rpurdie@rpsys.net>
      0ad90efd
    • Yoichi Yuasa's avatar
      leds: Update Cobalt Qube series front LED support · 4276fd73
      Yoichi Yuasa authored
      Update Cobalt Qube series front LED support.
      Signed-off-by: default avatarYoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
      Acked-by: default avatarRalf Baechle <ralf@linux-mips.org>
      Signed-off-by: default avatarRichard Purdie <rpurdie@rpsys.net>
      4276fd73
    • Yoichi Yuasa's avatar
      leds: Add Cobalt Raq series LEDs support · 97da7aaf
      Yoichi Yuasa authored
      Add Cobalt Raq series LEDs support.
      Signed-off-by: default avatarYoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
      Acked-by: default avatarRalf Baechle <ralf@linux-mips.org>
      Signed-off-by: default avatarRichard Purdie <rpurdie@rpsys.net>
      97da7aaf
    • Yoichi Yuasa's avatar
      leds: Rename leds-cobalt driver · f3b6b6cd
      Yoichi Yuasa authored
      The leds-cobalt driver only supports the Coable Qube series
      (not included in Cobalt Raq series).
      Rename the driver and update Kconfig/Makefile.
      Signed-off-by: default avatarYoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
      Acked-by: default avatarFlorian Fainelli <florian.fainelli@telecomint.eu>
      Signed-off-by: default avatarRichard Purdie <rpurdie@rpsys.net>
      f3b6b6cd