19 Feb, 2016

1 commit

  • The main difference in the new Armada 3700 is that no address
    decoding needs to take place in the driver probe.

    [gregory.clement@free-electrons.com: reformulate the commit log]

    Signed-off-by: Lior Amsalem
    Reviewed-by: Nadav Haklai
    Tested-by: Nadav Haklai
    Signed-off-by: Gregory CLEMENT
    Signed-off-by: Tejun Heo

    Lior Amsalem
     

21 Nov, 2015

1 commit

  • The newly added suspend/resume implementation for ahci_mvebu causes
    a link error when CONFIG_PM_SLEEP is disabled:

    ERROR: "ahci_platform_suspend_host" [drivers/ata/ahci_mvebu.ko] undefined!
    ERROR: "ahci_platform_resume_host" [drivers/ata/ahci_mvebu.ko] undefined!

    This adds the same #ifdef here that exists in the ahci_platform driver
    which defines the above functions.

    Signed-off-by: Arnd Bergmann
    Fixes: d6ecf1581488 ("ata: ahci_mvebu: add suspend/resume support")
    Acked-by: Thomas Petazzoni
    Signed-off-by: Tejun Heo

    Arnd Bergmann
     

26 Jun, 2015

1 commit

  • Pull libata updates from Tejun Heo:

    - a number of libata core changes to better support NCQ TRIM.

    - ahci now supports MSI-X in single IRQ mode to support a new
    controller which doesn't implement MSI or INTX.

    - ahci now supports edge-triggered IRQ mode to support a new controller
    which for some odd reason did edge-triggered IRQ.

    - the usual controller support additions and changes.

    * 'for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: (27 commits)
    libata: Do not blacklist Micron M500DC
    ata: ahci_mvebu: add suspend/resume support
    ahci, msix: Fix build error for !PCI_MSI
    ahci: Add support for Cavium's ThunderX host controller
    ahci: Add generic MSI-X support for single interrupts to SATA PCI driver
    libata: finally use __initconst in ata_parse_force_one()
    drivers: ata: add support for Ceva sata host controller
    devicetree:bindings: add devicetree bindings for ceva ahci
    ahci: added support for Freescale AHCI sata
    ahci: Store irq number in struct ahci_host_priv
    ahci: Move interrupt enablement code to a separate function
    Doc: libata: Fix spelling typo found in libata.xml
    ata:sata_nv - Change 1 to true for bool type variable.
    ata: add Broadcom AHCI SATA3 driver for STB chips
    Documentation: devicetree: add Broadcom SATA binding
    libata: Fix regression when the NCQ Send and Receive log page is absent
    ata: hpt366: fix constant cast warning
    ata: ahci_xgene: potential NULL dereference in probe
    ata: ahci_xgene: Add AHCI Support for 2nd HW version of APM X-Gene SoC AHCI SATA Host controller.
    libahci: Add support to handle HOST_IRQ_STAT as edge trigger latch.
    ...

    Linus Torvalds
     

18 Jun, 2015

1 commit

  • This commit adds suspend/resume support to the ahci_mvebu driver. The
    suspend hook doesn't do anything special despite calling the generic
    ahci_platform_suspend_host() function. However, the resume hook has to
    restore the MBus windows configuration, as well as the regret option.

    Tested on Marvell Armada 388 GP.

    Signed-off-by: Thomas Petazzoni
    Signed-off-by: Tejun Heo

    Thomas Petazzoni
     

27 May, 2015

1 commit

  • According to the Armada 38x datasheet, the window base address
    registers value is set in bits [31:4] of the register and corresponds
    to the transaction address bits [47:20].

    Therefore, the 32bit base address value should be shifted right by
    20bits and left by 4bits, resulting in 16 bit shift right.

    The bug as not been noticed yet because if the memory available on
    the platform is less than 2GB, then the base address is zero.

    [gregory.clement@free-electrons.com: add extra-explanation]

    Fixes: a3464ed2f14 (ata: ahci_mvebu: new driver for Marvell Armada 380
    AHCI interfaces)
    Signed-off-by: Nadav Haklai
    Reviewed-by: Omri Itach
    Signed-off-by: Gregory CLEMENT
    Cc:
    Signed-off-by: Tejun Heo

    Nadav Haklai
     

29 Jan, 2015

1 commit

  • The owner module reference of the ahci platform's scsi_host is
    initialized to libahci_platform's one, because these drivers use a
    scsi_host_template defined in libahci_platform. So these drivers can
    be unloaded even if the scsi device is being accessed.

    This fixes it by pushing the scsi_host_template from libahci_platform
    to all leaf drivers. The scsi_host_template is passed through a new
    argument of ahci_platform_init_host().

    Signed-off-by: Akinobu Mita
    Signed-off-by: Tejun Heo
    Cc: Hans de Goede
    Cc: Christoph Hellwig
    Cc: "James E.J. Bottomley"
    Cc: linux-ide@vger.kernel.org
    Cc: linux-scsi@vger.kernel.org

    Akinobu Mita
     

20 Oct, 2014

1 commit


31 Jul, 2014

1 commit

  • This patch moves force_port_map and mask_port_map into the
    ahci_host_priv structure. This allows to modify them into the AHCI
    framework. This is needed by the new dt bindings representing ports as
    the port_map mask is computed automatically.

    Parameters modifying force_port_map, mask_port_map and flags have been
    removed from the ahci_platform_init_host() function, and inputs in the
    ahci_host_priv structure are now directly filed.

    Signed-off-by: Antoine Ténart
    Signed-off-by: Tejun Heo

    Antoine Ténart
     

15 May, 2014

1 commit


05 May, 2014

1 commit

  • The Marvell Armada 380 SoC includes two AHCI compatible
    interfaces. However, like all DMA-capable Marvell interface, they
    require special handling to configure MBus windows. Therefore, this
    commit adds a new ahci_mvebu driver, which relies on the
    libahci_platform.c code recently introduced.

    Signed-off-by: Thomas Petazzoni
    Acked-by: Jason Cooper
    Signed-off-by: Tejun Heo

    Thomas Petazzoni