27 May, 2012

1 commit

  • Pull arm-soc clock driver changes from Olof Johansson:
    "The new clock subsystem was merged in linux-3.4 without any users,
    this now moves the first three platforms over to it: imx, mxs and
    spear.

    The series also contains the changes for the clock subsystem itself,
    since Mike preferred to have it together with the platforms that
    require these changes, in order to avoid interdependencies and
    conflicts."

    Fix up trivial conflicts in arch/arm/mach-kirkwood/common.c (code
    removed in one branch, added OF support in another) and
    drivers/dma/imx-sdma.c (independent changes next to each other).

    * tag 'clock' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (97 commits)
    clk: Fix CLK_SET_RATE_GATE flag validation in clk_set_rate().
    clk: Provide dummy clk_unregister()
    SPEAr: Update defconfigs
    SPEAr: Add SMI NOR partition info in dts files
    SPEAr: Switch to common clock framework
    SPEAr: Call clk_prepare() before calling clk_enable
    SPEAr: clk: Add General Purpose Timer Synthesizer clock
    SPEAr: clk: Add Fractional Synthesizer clock
    SPEAr: clk: Add Auxiliary Synthesizer clock
    SPEAr: clk: Add VCO-PLL Synthesizer clock
    SPEAr: Add DT bindings for SPEAr's timer
    ARM i.MX: remove now unused clock files
    ARM: i.MX6: implement clocks using common clock framework
    ARM i.MX35: implement clocks using common clock framework
    ARM i.MX5: implement clocks using common clock framework
    ARM: Kirkwood: Replace clock gating
    ARM: Orion: Audio: Add clk/clkdev support
    ARM: Orion: PCIE: Add support for clk
    ARM: Orion: XOR: Add support for clk
    ARM: Orion: CESA: Add support for clk
    ...

    Linus Torvalds
     

23 May, 2012

3 commits

  • Add PATA host controller driver for ep93xx.

    Signed-off-by: Rafal Prylowski
    Cc: Joao Ramos
    Cc: H Hartley Sweeten
    Cc: Ryan Mallon
    Cc: Sergei Shtylyov
    Cc: Bartlomiej Zolnierkiewicz
    Signed-off-by: Jeff Garzik

    Rafal Prylowski
     
  • A user has several systems with a couple of models of flash disks with IDE
    connectors. These disks work fine in 2.6.18-ish kernels but corrupt data on
    new kernels.

    The difference appears to be with the default I/O method used by the IDE
    controller driver between the kernels. In the older kernels, the
    configuration is very conservative and the driver stays in PIO mode. With
    new kernels, the ata driver (pata_serverworks) attempts to use UDMA/66
    which the drive claims to support. This mode, however, does not appear to
    work in DMA mode. The drive does work correctly and no corruption is
    seen if the kernel parameter "libata.force=5:pio0,6:pio0" is used to force
    the driver to use PIO instead of DMA mode.

    Blacklist these drives. Unfortunately the model name of the drive is very
    generic, " 2GB ATA Flash Disk", but the revision is specific, "ADMA428M".

    Signed-off-by: Prarit Bhargava
    Signed-off-by: Jeff Garzik

    Prarit Bhargava
     
  • When ata_generic_ide=1 is set don't do the is_intel_ider() magic
    check. We found at least one box who needed that.

    Cc: alan@linux.intel.com
    Signed-off-by: Andi Kleen
    Signed-off-by: Jeff Garzik

    Andi Kleen
     

16 May, 2012

1 commit

  • * 'clk-next' of git://git.linaro.org/people/mturquette/linux:
    clk: Fix CLK_SET_RATE_GATE flag validation in clk_set_rate().
    clk: Provide dummy clk_unregister()
    ARM: Kirkwood: Replace clock gating
    ARM: Orion: Audio: Add clk/clkdev support
    ARM: Orion: PCIE: Add support for clk
    ARM: Orion: XOR: Add support for clk
    ARM: Orion: CESA: Add support for clk
    ARM: Orion: SDIO: Add support for clk.
    ARM: Orion: NAND: Add support for clk, if there is one.
    ARM: Orion: EHCI: Add support for enabling clocks
    ARM: Orion: SATA: Add per channel clk/clkdev support.
    ARM: Orion: UART: Get the clock rate via clk_get_rate().
    ARM: Orion: WDT: Add clk/clkdev support
    ARM: Orion: Eth: Add clk/clkdev support.
    ARM: Orion: SPI: Add clk/clkdev support.
    ARM: Orion: Add clocks using the generic clk infrastructure.

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

09 May, 2012

1 commit


08 May, 2012

3 commits

  • ATA and SATA drives have had built-in retries for media errors
    for as long as they've been commonplace in computers (early 1990s).

    When libata stumbles across a bad sector, it can waste minutes
    sitting there doing retry after retry before finally giving up
    and letting the higher layers deal with it.

    This patch removes retries for media errors only.

    Signed-off-by: Mark Lord
    Signed-off-by: Jeff Garzik

    Mark Lord
     
  • When we are hosted on a Microsoft Hyper-V hypervisor the guest disks
    are exposed both via the Hyper-V paravirtualised drivers and via an
    emulated SATA disk drive. In this case we want to use the paravirtualised
    drivers if we can as they are much more efficient. Note that the Hyper-V
    paravirtualised drivers only expose the virtual hard disk devices, the
    CDROM/DVD devices must still be enumerated.

    Mark the host controller ATA_HOST_IGNORE_ATA to prevent enumeration of
    disk devices.

    BugLink: http://bugs.launchpad.net/bugs/929545
    BugLink: http://bugs.launchpad.net/bugs/942316
    Signed-off-by: Andy Whitcroft
    Signed-off-by: Jeff Garzik

    Andy Whitcroft
     
  • Where devices are visible via more than one host we sometimes wish to
    indicate that cirtain devices should be ignored on a specific host. Add a
    host flag indicating that this host wishes to ignore ATA specific devices.

    Signed-off-by: Andy Whitcroft
    Signed-off-by: Jeff Garzik

    Andy Whitcroft
     

04 May, 2012

6 commits

  • Pull libata fixes from Jeff Garzik:

    1) Fix regression that could cause a misdiagnosis, which in turn could
    lead to an erroneous 3.0 Gbps -> 1.5 downshift, particularly when hotplug
    and suspend/resume is involved.

    2) Fix a regression that led to ata%d controller ids being numbered one
    larger than in s compatible list
    ata/pata_arasan_cf: Move arasan_cf_pm_ops out of #ifdef, #endif macros
    libata: init ata_print_id to 0
    ahci: Detect Marvell 88SE9172 SATA controller
    libata: skip old error history when counting probe trials

    Linus Torvalds
     
  • SPEAr13xx series of SoCs contain Synopsys AHCI SATA Controller which shares
    ahci_platform driver with other controller versions.

    This patch updates DT compatible list for ahci_platform. It also updates and
    renames binding documentation to more generic name.

    Signed-off-by: Viresh Kumar
    Cc: Rob Herring
    Signed-off-by: Jeff Garzik

    Viresh Kumar
     
  • #ifdef, #endif is not required in definition/usage of arasan_cf_pm_ops. So, move
    this definition and its usage outside of them.

    Signed-off-by: Viresh Kumar
    Signed-off-by: Jeff Garzik

    Viresh Kumar
     
  • When comparing the dmesg between 3.4-rc3 and 3.4-rc4 I found the
    following differences:

    -ata1: SATA max UDMA/133 abar m2048@0xf9fff000 port 0xf9fff100 irq 47
    -ata2: SATA max UDMA/133 abar m2048@0xf9fff000 port 0xf9fff180 irq 47
    -ata3: DUMMY
    +ata2: SATA max UDMA/133 abar m2048@0xf9fff000 port 0xf9fff100 irq 47
    +ata3: SATA max UDMA/133 abar m2048@0xf9fff000 port 0xf9fff180 irq 47
    ata4: DUMMY
    ata5: DUMMY
    -ata6: SATA max UDMA/133 abar m2048@0xf9fff000 port 0xf9fff380 irq 47
    +ata6: DUMMY
    +ata7: SATA max UDMA/133 abar m2048@0xf9fff000 port 0xf9fff380 irq 47

    The change of numbering comes from commit 85d6725b7c0d7e3f ("libata:
    make ata_print_id atomic") that changed lines like

    ap->print_id = ata_print_id++;
    to
    ap->print_id = atomic_inc_return(&ata_print_id);

    As the latter behaves like ++ata_print_id, we must initialize
    it to zero to start the numbering from one.

    Signed-off-by: Tero Roponen
    Acked-by: Dan Williams
    Signed-off-by: Jeff Garzik

    Tero Roponen
     
  • The Marvell 88SE9172 SATA controller (PCI ID 1b4b 917a) already worked
    once it was detected, but was missing an ahci_pci_tbl entry.

    Boot tested on a Gigabyte Z68X-UD3H-B3 motherboard.

    Signed-off-by: Matt Johnson
    Signed-off-by: Jeff Garzik

    Matt Johnson
     
  • Commit d902747("[libata] Add ATA transport class") introduced
    ATA_EFLAG_OLD_ER to mark entries in the error ring as cleared.

    But ata_count_probe_trials_cb() didn't check this flag and it still
    counts the old error history. So wrong probe trials count is returned
    and it causes problem, for example, SATA link speed is slowed down from
    3.0Gbps to 1.5Gbps.

    Fix it by checking ATA_EFLAG_OLD_ER in ata_count_probe_trials_cb().

    Cc: stable # 2.6.37+
    Signed-off-by: Lin Ming
    Signed-off-by: Jeff Garzik

    Lin Ming
     

23 Apr, 2012

2 commits

  • This changes the ordering of initialization and probing events from:
    1/ allocate rphy in PORTE_BYTES_DMAED, DISCE_REVALIDATE_DOMAIN
    2/ allocate ata_port and schedule port probe in DISCE_PROBE
    ...to:
    1/ allocate ata_port in PORTE_BYTES_DMAED, DISCE_REVALIDATE_DOMAIN
    2/ allocate rphy in PORTE_BYTES_DMAED, DISCE_REVALIDATE_DOMAIN
    3/ schedule port probe in DISCE_PROBE

    This ordering prevents PHYE_SIGNAL_LOSS_EVENTS from sneaking in to
    destrory ata devices before they have been fully initialized:

    BUG: unable to handle kernel paging request at 0000000000003b10
    IP: [] sas_ata_end_eh+0x12/0x5e [libsas]
    ...
    [] sas_unregister_common_dev+0x78/0xc9 [libsas]
    [] sas_unregister_dev+0x4f/0xad [libsas]
    [] sas_unregister_domain_devices+0x7f/0xbf [libsas]
    [] sas_deform_port+0x61/0x1b8 [libsas]
    [] sas_phye_loss_of_signal+0x29/0x2b [libsas]

    ...and kills the awkward "sata domain_device briefly existing in the
    domain without an ata_port" state.

    Reported-by: Michal Kosciowski
    Signed-off-by: Dan Williams
    Acked-by: Jeff Garzik
    Signed-off-by: James Bottomley

    Dan Williams
     
  • Use scsi_add_host_with_dma in ata_scsi_add_hosts to pass in the
    correct DMA device(ATA host).

    Bug report: http://marc.info/?l=linux-ide&m=133177818318187&w=2

    Reported-and-tested-by: Jörg Sommer
    Acked-by: Jeff Garzik
    Signed-off-by: Lin Ming
    Signed-off-by: James Bottomley

    Lin Ming
     

19 Apr, 2012

1 commit


13 Apr, 2012

3 commits


23 Mar, 2012

2 commits

  • Pull libata updates from Jeff Garzik:

    1) AHCI regression fix. A recent "make driver conform to spec" change
    broke on deployed hardware. Make new behavior optional, rather than
    default, turning it on only for specific embedded platforms that
    need this.

    Everybody else runs in the famous "non conformant but working" mode.

    2) pata_cmd64x, pata_legacy cleanups

    3) new Intel SATA PCI IDs

    4) misc minor vendor feature additions

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
    pata_cmd64x: implement sff_irq_check() method
    pata_cmd64x: implement sff_irq_clear() method
    pata_cmd64x: use interrupt status from MRDMODE register
    pata_cmd64x: turn string of *if* statements into *switch*
    drivers/ata/pata_mpc52xx.c: clean up error handling code
    ahci_platform: add STRICT_AHCI platform type
    ahci: move AHCI_HFLAGS() macro to ahci.h
    ahci: add AHCI_HFLAG_DELAY_ENGINE host flag
    sata_fsl: add support for interrupt coalsecing feature
    ata/pata_arasan_cf: Add Hibernation support
    pata_legacy: correctly mask recovery field for HT6560B
    ata_piix: IDE-mode SATA patch for Intel Lynx Point DeviceIDs
    ahci: AHCI-mode SATA patch for Intel Lynx Point DeviceIDs

    Linus Torvalds
     
  • SCSI updates from James Bottomley:
    "The update includes the usual assortment of driver updates (lpfc,
    qla2xxx, qla4xxx, bfa, bnx2fc, bnx2i, isci, fcoe, hpsa) plus a huge
    amount of infrastructure work in the SAS library and transport class
    as well as an iSCSI update. There's also a new SCSI based virtio
    driver."

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (177 commits)
    [SCSI] qla4xxx: Update driver version to 5.02.00-k15
    [SCSI] qla4xxx: trivial cleanup
    [SCSI] qla4xxx: Fix sparse warning
    [SCSI] qla4xxx: Add support for multiple session per host.
    [SCSI] qla4xxx: Export CHAP index as sysfs attribute
    [SCSI] scsi_transport: Export CHAP index as sysfs attribute
    [SCSI] qla4xxx: Add support to display CHAP list and delete CHAP entry
    [SCSI] iscsi_transport: Add support to display CHAP list and delete CHAP entry
    [SCSI] pm8001: fix endian issue with code optimization.
    [SCSI] pm8001: Fix possible racing condition.
    [SCSI] pm8001: Fix bogus interrupt state flag issue.
    [SCSI] ipr: update PCI ID definitions for new adapters
    [SCSI] qla2xxx: handle default case in qla2x00_request_firmware()
    [SCSI] isci: improvements in driver unloading routine
    [SCSI] isci: improve phy event warnings
    [SCSI] isci: debug, provide state-enum-to-string conversions
    [SCSI] scsi_transport_sas: 'enable' phys on reset
    [SCSI] libsas: don't recover end devices attached to disabled phys
    [SCSI] libsas: fixup target_port_protocols for expanders that don't report sata
    [SCSI] libsas: set attached device type and target protocols for local phys
    ...

    Linus Torvalds
     

20 Mar, 2012

1 commit


14 Mar, 2012

13 commits

  • Implement sff_irq_check() method for both old and new chips.

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: Jeff Garzik

    Sergei Shtylyov
     
  • Convert the driver's two bmdma_stop() methods into sff_irq_clear() methods --
    they shouldn't have been bothering with clearing interrupts from the very start;
    the driver will now use the standard bmdma_stop() method implementation (where
    appropriate).

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: Jeff Garzik

    Sergei Shtylyov
     
  • Start using faster version of the bmdma_stop() method for the PCI0646U and newer
    chips that have the duplicate interrupt status bits in the I/O mapped MRDMODE
    register. Use the old, slow bmdma_stop() method on the older chips, taking into
    account that the interrupt bits are not coupled to DMA and that's enough to read
    the register to clear the interrupt (on the older chips). Determine what method
    to use at the driver load time.

    Fix kernel-doc of the bmdma_stop() methods, while at it.

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: Jeff Garzik

    Sergei Shtylyov
     
  • Convert string of the *if* statements all checking 'pdev->revision' into more
    natural *switch* statement. While at it, somewhat clarify the comments there...

    Increment the driver version, accounting for the patches that neglected to do
    this in the past.

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: Jeff Garzik

    Sergei Shtylyov
     
  • This patch makes a number of changes with respect to the error-handling
    code:

    * Remove cleanup calls for the devm functions in both the error handling
    code and the remove function. This cleanup is done automatically.

    * The previous change simplifies the cleanup code at the end of the
    function such that there is nothing to do on the failure of the call to
    devm_ioremap. So it is changed to just return directly.

    * There is no need for the ifs in the cleanup code at the end of the
    function, because in each case the cleanup needed is statically
    known. Drop the ifs, add new err labels, and drop the initializations of
    the tested variables to NULL.

    * Change the call to request_irq to a call to devm_request_irq, so that it
    is cleaned up on exit.

    * Cause the return value of devm_request_irq to go into the returned
    variable rv rather than the unused variable ret. Drop ret.

    Signed-off-by: Julia Lawall
    Signed-off-by: Jeff Garzik

    Julia Lawall
     
  • Some platforms need to make use of the AHCI_HFLAG_DELAY_ENGINE flag.

    Signed-off-by: Brian Norris
    Signed-off-by: Jeff Garzik
    Cc: stable@kernel.org

    Brian Norris
     
  • We will need this macro in both ahci.c and ahci_platform.c, so just move it
    to the header.

    Signed-off-by: Brian Norris
    Signed-off-by: Jeff Garzik
    Cc: stable@kernel.org

    Brian Norris
     
  • The following commit was intended to fix problems with specific AHCI
    controller(s) that would become bricks if the AHCI specification was not
    followed strictly (that is, if ahci_start_engine() was called while the
    controller was in the wrong state):

    commit 7faa33da9b7add01db9f1ad92c6a5d9145e940a7
    ahci: start engine only during soft/hard resets

    However, some devices currently have issues with that fix, so we must
    implement a flag that delays the ahci_start_engine() call only for specific
    controllers.

    This commit simply introduces the flag, without enabling it in any driver.

    Note that even when AHCI_HFLAG_DELAY_ENGINE is not enabled, this patch does
    not constitue a full revert to commit 7faa33da; there is still a change in
    behavior to the ahci_port_suspend() failure path.

    Signed-off-by: Brian Norris
    Signed-off-by: Jeff Garzik
    Cc: stable@kernel.org

    Brian Norris
     
  • Adds support for interrupt coalescing feature to reduce interrupt events.
    Provides a mechanism of adjusting coalescing count and timeout tick by sysfs
    at runtime, so that tradeoff of latency and CPU load can be made depending
    on different applications.

    Signed-off-by: Qiang Liu
    Signed-off-by: Jeff Garzik

    Qiang Liu
     
  • This patch adds in Hibernation related callbacks. Also we don't really need to
    free DMA channel on suspend.

    Signed-off-by: Viresh Kumar
    Signed-off-by: Jeff Garzik

    Viresh Kumar
     
  • According to the HT6560H datasheet, the recovery timing field is 4-bit wide,
    with a value of 0 meaning 16 cycles. Correct obvious thinko in the recovery
    field mask.

    Signed-off-by: Sergei Shtylyov
    Cc: stable@kernel.org
    Signed-off-by: Jeff Garzik

    Sergei Shtylyov
     
  • This patch adds the IDE-mode SATA DeviceIDs for the Intel Lynx Point PCH.

    Signed-off-by: Seth Heasley
    Signed-off-by: Jeff Garzik

    Seth Heasley
     
  • This patch adds the AHCI-mode SATA DeviceIDs for the Intel Lynx Point PCH.

    Signed-off-by: Seth Heasley
    Signed-off-by: Jeff Garzik

    Seth Heasley
     

01 Mar, 2012

1 commit

  • libsas ata error handling is already async but this does not help the
    scan case. Move initial link recovery out from under host->scan_mutex,
    and delay synchronization with eh until after all port probe/recovery
    work has been queued.

    Device ordering is maintained with scan order by still calling
    sas_rphy_add() in order of domain discovery.

    Since we now scan the domain list when invoking libata-eh we need to be
    careful to check for fully initialized ata ports.

    Acked-by: Jack Wang
    Acked-by: Jeff Garzik
    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     

20 Feb, 2012

1 commit

  • Link resets leave ata affiliations intact, so arrange for libsas to make
    an effort to avoid dropping the device due to a slow-to-recover link.
    Towards this end carry out reset in the host workqueue so that it can
    check for ata devices and kick the reset request to libata. Hard
    resets, in contrast, bypass libata since they are meant for associating
    an ata device with another initiator in the domain (tears down
    affiliations).

    Need to add a new transport_sas_phy_reset() since the current
    sas_phy_reset() is a utility function to libsas lldds. They are not
    prepared for it to loop back into eh.

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     

14 Feb, 2012

1 commit