- 17 11月, 2015 1 次提交
-
-
由 Dan Williams 提交于
Some AHCI controllers support per-port MSI-X vectors. At the same time the Linux AHCI driver needs to support one-off architectures that implement a single MSI-X vector for all ports. The heuristic for enabling AHCI ports becomes, in order of preference: 1/ per-port multi-MSI-X 2/ per-port multi-MSI 3/ single MSI 4/ single MSI-X 5/ legacy INTX This all depends on AHCI implementations with potentially broken MSI-X requesting less vectors than the number of ports. If this assumption is violated we will need to start explicitly white-listing AHCI-MSIX implementations. Reported-by: NRicardo Neri <ricardo.neri@intel.com> [ricardo: fix struct msix_entry handling] Reported-by: Nkernel test robot <ying.huang@linux.intel.com> Signed-off-by: NDan Williams <dan.j.williams@intel.com> Signed-off-by: NTejun Heo <tj@kernel.org>
-
- 01 10月, 2015 1 次提交
-
-
由 Manuel Lauss 提交于
If the AHCI ports' HPCP or ESP bits are set, the port should be considered external (e.g. eSATA) and is marked as removable. Userspace tools like udisks then treat it like an usb drive. With this patch applied, when I plug a drive into the esata port, KDE pops up a window asking what to do with the drives(s), just like it does for any random USB stick. Removability is indicated to the upper layers by way of the SCSI RMB bit, as I haven't found another way to signal userspace to treat a sata disk like any usb stick. Signed-off-by: NManuel Lauss <manuel.lauss@gmail.com> Signed-off-by: NTejun Heo <tj@kernel.org>
-
- 03 6月, 2015 1 次提交
-
-
由 Robert Richter 提交于
Currently, ahci supports only msi and intx. To also support msix the handling of the irq number need to be changed. The irq number for msix devices is taken from msi_list instead of pci_dev. Thus, the irq number of a device needs to be stored in struct ahci_host_priv now. This allows the host controller to be activated in a generic way. This change is only intended for ahci drivers. For that reason the irq number is stored in struct ahci_host_priv used only by ahci drivers. Thus, the ABI changes only for ahci_host_activate(), but existing ata drivers (about 50) are unaffected and keep unchanged. All users of ahci_host_activate() have been updated. While touching drivers/ata/libahci.c, doing a small code cleanup in ahci_port_start(). Signed-off-by: NRobert Richter <rrichter@cavium.com> Signed-off-by: NTejun Heo <tj@kernel.org>
-
- 10 5月, 2015 1 次提交
-
-
由 Suman Tripathi 提交于
This patch adds the support to handle HOST_IRQ_STAT as edge trigger latch. Signed-off-by: NSuman Tripathi <stripathi@apm.com> Signed-off-by: NTejun Heo <tj@kernel.org>
-
- 29 1月, 2015 1 次提交
-
-
由 Akinobu Mita 提交于
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: NAkinobu Mita <akinobu.mita@gmail.com> Signed-off-by: NTejun Heo <tj@kernel.org> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Christoph Hellwig <hch@lst.de> Cc: "James E.J. Bottomley" <JBottomley@parallels.com> Cc: linux-ide@vger.kernel.org Cc: linux-scsi@vger.kernel.org
-
- 19 1月, 2015 1 次提交
-
-
由 Gregory CLEMENT 提交于
The current implementation of the libahci allows using multiple PHYs but not multiple regulators. This patch adds the support of multiple regulators. Until now it was mandatory to have a PHY under a subnode, now a port subnode can contain either a regulator or a PHY (or both). In order to be able to asociate a port with a regulator the port are now a platform device in the device tree case. There was only one driver which used directly the regulator field of the ahci_host_priv structure. To preserve the bisectability the change in the ahci_imx driver was done in the same patch. Signed-off-by: NGregory CLEMENT <gregory.clement@free-electrons.com> Acked-by: NHans de Goede <hdegoede@redhat.com> Signed-off-by: NTejun Heo <tj@kernel.org>
-
- 06 10月, 2014 3 次提交
-
-
由 Alexander Gordeev 提交于
As described in AHCI v1.0 specification chapter 10.6.2.2 "Multiple MSI Based Messages" generation of interrupts is not controlled through the HOST_IRQ_STAT register. Considering MMIO access is expensive remove unnecessary reading and writing of HOST_IRQ_STAT register. Further, serializing access to the host data is no longer needed and the interrupt service routine can avoid competing on the host lock. Signed-off-by: NAlexander Gordeev <agordeev@redhat.com> Suggested-by: N"Jiang, Dave" <dave.jiang@intel.com> Signed-off-by: NTejun Heo <tj@kernel.org> Cc: "Jiang, Dave" <dave.jiang@intel.com> Cc: linux-ide@vger.kernel.org
-
由 Alexander Gordeev 提交于
Currently host activation done by calling either function ahci_host_activate() or ata_host_activate(). Consolidate the code by only calling ahci_host_activate() for all AHCI devices. Signed-off-by: NAlexander Gordeev <agordeev@redhat.com> Signed-off-by: NTejun Heo <tj@kernel.org> Cc: linux-ide@vger.kernel.org
-
由 Alexander Gordeev 提交于
This update is a prerequisite for consolidation of AHCI host activation code within ahci_host_activate() function. Signed-off-by: NAlexander Gordeev <agordeev@redhat.com> Signed-off-by: NTejun Heo <tj@kernel.org> Cc: linux-ide@vger.kernel.org
-
- 28 9月, 2014 1 次提交
-
-
由 Alexander Gordeev 提交于
Sharing Last Message (SLM) mode is currently checked in two functions: ahci_host_activate() and ahci_init_interrupts(). This update consolidates SLM mode check with activation of multiple MSIs mode. Signed-off-by: NAlexander Gordeev <agordeev@redhat.com> Signed-off-by: NTejun Heo <tj@kernel.org> Cc: linux-ide@vger.kernel.org
-
- 23 9月, 2014 1 次提交
-
-
由 Kumar Gala 提交于
Qualcomm IPQ806x SoCs with SATA controllers need 5 clocks to be enabled. Signed-off-by: NKumar Gala <galak@codeaurora.org> Reviewed-by: NHans de Goede <hdegoede@redhat.com> Signed-off-by: NTejun Heo <tj@kernel.org>
-
- 31 7月, 2014 2 次提交
-
-
由 Antoine Ténart 提交于
The current implementation of the libahci does not allow to use multiple PHYs. This patch adds the support of multiple PHYs by the libahci while keeping the old bindings valid for device tree compatibility. This introduce a new way of defining SATA ports in the device tree, with one port per sub-node. This as the advantage of allowing a per port configuration. Because some ports may be accessible but disabled in the device tree, the port_map mask is computed automatically when using this. Signed-off-by: NAntoine Ténart <antoine.tenart@free-electrons.com> Acked-by: NHans de Goede <hdegoede@redhat.com> Acked-by: NKishon Vijay Abraham I <kishon@ti.com> Signed-off-by: NTejun Heo <tj@kernel.org>
-
由 Antoine Ténart 提交于
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: NAntoine Ténart <antoine.tenart@free-electrons.com> Signed-off-by: NTejun Heo <tj@kernel.org>
-
- 19 7月, 2014 1 次提交
-
-
由 Mikko Perttunen 提交于
The Tegra124 SATA controller requires 4 clocks. Increase this constant to be able to use them all. Signed-off-by: NMikko Perttunen <mperttunen@nvidia.com> Acked-by: NHans de Goede <hdegoede@redhat.com> Signed-off-by: NTejun Heo <tj@kernel.org>
-
- 08 7月, 2014 1 次提交
-
-
由 Suman Tripathi 提交于
The subsequent patch will make use of them. Signed-off-by: NLoc Ho <lho@apm.com> Signed-off-by: NSuman Tripathi <stripathi@apm.com> Signed-off-by: NTejun Heo <tj@kernel.org>
-
- 15 5月, 2014 1 次提交
-
-
由 Kefeng Wang 提交于
Append AHCI_HFLAG_NO_FBS to force turning off FBS flag. Reviewed-by: NHans de Goede <hdegoede@redhat.com> Signed-off-by: NHaojian Zhuang <haojian.zhuang@linaro.org> Signed-off-by: NKefeng Wang <kefeng.wang@linaro.org> Signed-off-by: NTejun Heo <tj@kernel.org>
-
- 24 4月, 2014 1 次提交
-
-
由 Jacob Pan 提交于
On Intel Valleyview SoC, SATA device sleep is not reliable. When DEVSLP is attempted on certain SSDs, port_devslp write would fail and result in malfunction of AHCI controller. AHCI controller may be not shown in PCI enumeration after reset. Complete power source removal may be required to recover from this failure. So we blacklist this device and override host device reported capabilities such that device LPM will only attempt slumber but not DEVSLP. Signed-off-by: NJacob Pan <jacob.jun.pan@linux.intel.com> Acked-by: NDan Williams <dan.j.williams@intel.com> Signed-off-by: NTejun Heo <tj@kernel.org>
-
- 17 4月, 2014 1 次提交
-
-
由 Alexander Gordeev 提交于
The AHCI specification allows hardware to choose to revert to single MSI mode when fewer messages are allocated than requested. Yet, at least ICH10 chipset reverts to single MSI mode even when enough messages are allocated in some cases (see below). This update forces the driver to not rely on initialization of multiple MSIs mode alone and always check if "MSI Revert to Single Message" (MRSM) mode was enforced by the controller and fallback to the single MSI mode in case it did. That prevents a situation when the driver configured multiple per-port IRQ handlers, but the controller sends all port's interrupts to a single IRQ, which could easily screw up the interrupt handling and lead to delays and possibly crashes. The fix was tested on a 6-port controller that successfully reverted to the single MSI mode: 00:1f.2 SATA controller: Intel Corporation 82801JI (ICH10 Family) SATA AHCI Controller (prog-if 01 [AHCI 1.0]) Subsystem: Super Micro Computer Inc Device 10a7 Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 101 I/O ports at f110 [size=8] I/O ports at f100 [size=4] I/O ports at f0f0 [size=8] I/O ports at f0e0 [size=4] I/O ports at f020 [size=32] Memory at fbf00000 (32-bit, non-prefetchable) [size=2K] Capabilities: [80] MSI: Enable+ Count=1/16 Maskable- 64bit- Capabilities: [70] Power Management version 3 Capabilities: [a8] SATA HBA v1.0 Capabilities: [b0] PCI Advanced Features Kernel driver in use: ahci With 6 ports just 8 MSI vectors should be enough, but the adapter enforces the MRSM mode when less than 16 vectors are written to the Multiple Messages Enable PCI register. I instigated MRSM mode by forcing @nvec to 8 in ahci_init_interrupts(). Signed-off-by: NAlexander Gordeev <agordeev@redhat.com> Cc: linux-ide@vger.kernel.org Cc: stable@vger.kernel.org Signed-off-by: NTejun Heo <tj@kernel.org>
-
- 23 2月, 2014 5 次提交
-
-
由 Roger Quadros 提交于
On OMAP platforms the device needs to be runtime resumed before it can be accessed. The OMAP HWMOD framework takes care of enabling the module and its resources based on the device's runtime PM state. In this patch we runtime resume during .probe() and runtime suspend after .remove(). We also update the runtime PM state during .resume(). CC: Balaji T K <balajitk@ti.com> Signed-off-by: NRoger Quadros <rogerq@ti.com> Signed-off-by: NHans de Goede <hdegoede@redhat.com> Signed-off-by: NTejun Heo <tj@kernel.org>
-
由 Roger Quadros 提交于
Some platforms have a PHY hooked up to the SATA controller. The PHY needs to be initialized and powered up for SATA to work. We do that using the PHY framework. tj: Minor comment formatting updates. CC: Balaji T K <balajitk@ti.com> Signed-off-by: NRoger Quadros <rogerq@ti.com> Signed-off-by: NHans de Goede <hdegoede@redhat.com> Signed-off-by: Tejun Heo<tj@kernel.org>
-
由 Hans de Goede 提交于
Signed-off-by: NHans de Goede <hdegoede@redhat.com> Signed-off-by: NTejun Heo <tj@kernel.org>
-
由 Hans de Goede 提交于
The allwinner-sun4i AHCI controller needs 2 clocks to be enabled and the imx AHCI controller needs 3 clocks to be enabled. tj: Minor comment formatting updates. Signed-off-by: NHans de Goede <hdegoede@redhat.com> Signed-off-by: NTejun Heo <tj@kernel.org>
-
由 Hans de Goede 提交于
Allwinner A10 and A20 ARM SoCs have an AHCI sata controller which needs a special register to be poked before starting the DMA engine. This register gets reset on an ahci_stop_engine call, so there is no other place then ahci_start_engine where this poking can be done. This commit allows drivers to override ahci_start_engine behavior for use by the Allwinner AHCI driver (and potentially other drivers in the future). Signed-off-by: NHans de Goede <hdegoede@redhat.com> Signed-off-by: NTejun Heo <tj@kernel.org>
-
- 15 10月, 2013 1 次提交
-
-
由 Richard Zhu 提交于
In order to save power consumption as much as possible. * Disable sata phy internal pll reference clock when sysetem enter into suspend mode, enable it after resume. * Setup module parameter used to enable imx ahci test power down mode(PDDQ) or not, when there is no device detected on the port * minor modifications: - The format of the copyright is changed, because that the original one can't pass fsl internal patch reivew without the character '(c)'. - Exports ahci_platform_ops and ahci_error_handler(). NOTE: * The hot-plug can't be supported when PDDQ mode is ever enabled. * module parameter usage how-to: - default: enable PDDQ mode when no device detected. - add "ahci-imx.hotplug=1" into kernel command line if your don't want to enable PDDQ mode when no device detected on the port. tj: Slightly updated description and comments. Signed-off-by: NRichard Zhu <r65037@freescale.com> Signed-off-by: NTejun Heo <tj@kernel.org>
-
- 07 6月, 2013 1 次提交
-
-
由 Mark Langsdorf 提交于
Highbank supports SGPIO by bit-banging out the SGPIO signals over three GPIO pins defined in the DTB. Add support for this SGPIO functionality. Signed-off-by: NMark Langsdorf <mark.langsdorf@calxeda.com> Signed-off-by: NTejun Heo <tj@kernel.org>
-
- 22 5月, 2013 1 次提交
-
-
由 Alexander Gordeev 提交于
Currently all interrupts assigned to AHCI ports show up in '/proc/interrupts' as 'ahci'. This fix adds port numbers as suffixes and hence makes the descriptions distinct. Reported-by: NJan Beulich <JBeulich@suse.com> Signed-off-by: NAlexander Gordeev <agordeev@redhat.com> Signed-off-by: NTejun Heo <tj@kernel.org>
-
- 15 5月, 2013 1 次提交
-
-
由 Tejun Heo 提交于
Jeff moved on to a greener pasture. s/Maintained by: Jeff Garzik/Maintained by: Tejun Heo/g Signed-off-by: NTejun Heo <tj@kernel.org> Cc: Jeff Garzik <jgarzik@pobox.com>
-
- 25 1月, 2013 1 次提交
-
-
由 Alexander Gordeev 提交于
Take advantage of multiple MSIs implementation on x86 - on systems with IRQ remapping AHCI ports not only get assigned separate MSI vectors - but also separate IRQs. As result, interrupts generated by different ports could be serviced on different CPUs rather than on a single one. In cases when number of allocated MSIs is less than requested the Sharing Last MSI mode does not get used, no matter implemented in hardware or not. Instead, the driver assumes the advantage of multiple MSIs is negated and falls back to the single MSI mode as if MRSM bit was set (some Intel chips implement this strategy anyway - MRSM bit gets set even if the number of allocated MSIs exceeds the number of implemented ports). Signed-off-by: NAlexander Gordeev <agordeev@redhat.com> Acked-by: NJeff Garzik <jgarzik@redhat.com> Cc: Bjorn Helgaas <bhelgaas@google.com> Cc: Suresh Siddha <suresh.b.siddha@intel.com> Cc: Yinghai Lu <yinghai@kernel.org> Cc: Matthew Wilcox <willy@linux.intel.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/15bf7ee314dd55f21ec7d2a01c47613cd8190a7c.1353324359.git.agordeev@redhat.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
-
- 13 9月, 2012 2 次提交
-
-
由 Viresh Kumar 提交于
On many architectures, drivers are supposed to prepare/unprepare & enable/disable functional clock of device. This patch adds clock support for ahci_platform. Signed-off-by: NViresh Kumar <viresh.kumar@linaro.com> Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
-
由 Shane Huang 提交于
Device Sleep is a feature as described in AHCI 1.3.1 Technical Proposal. This feature enables an HBA and SATA storage device to enter the DevSleep interface state, enabling lower power SATA-based systems. Aggressive Device Sleep enables the HBA to assert the DEVSLP signal as soon as there are no commands outstanding to the device and the port specific Device Sleep idle timer has expired. This enables autonomous entry into the DevSleep interface state without waiting for software in power sensitive systems. This patch enables Aggressive Device Sleep only if both host controller and device support it. Tested on AMD reference board together with Device Sleep supported device sample. Signed-off-by: NShane Huang <shane.huang@amd.com> Reviewed-by: NAaron Lu <aaron.lwe@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
-
- 18 8月, 2012 1 次提交
-
-
由 Rob Herring 提交于
Make ahci_dev_classify available to the ahci platform driver for custom hard reset function. Signed-off-by: NRob Herring <rob.herring@calxeda.com> Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
-
- 14 3月, 2012 2 次提交
-
-
由 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: NBrian Norris <computersforpeace@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@redhat.com> 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 7faa33da 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: NBrian Norris <computersforpeace@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@redhat.com> Cc: stable@kernel.org
-
- 24 7月, 2011 1 次提交
-
-
由 Yuan-Hsin Chen 提交于
ahci_sb600_softreset was in ahci.c. This function is used to fix soft reset failure and renames as ahci_pmp_retry_softreset in libahci.c. Signed-off-by: NYuan-Hsin Chen <yhchen@faraday-tech.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
- 24 4月, 2011 1 次提交
-
-
由 Hannes Reinecke 提交于
This patch adds an sysfs attribute 'em_message_supported' to the ahci host device which prints out the supported enclosure management message types. Signed-off-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
- 31 3月, 2011 1 次提交
-
-
由 Lucas De Marchi 提交于
Fixes generated by 'codespell' and manually reviewed. Signed-off-by: NLucas De Marchi <lucas.demarchi@profusion.mobi>
-
- 02 3月, 2011 3 次提交
-
-
由 Sergei Shtylyov 提交于
Commit 6b7ae954 (libata: reimplement link power management) removed the check of ATA_FLAG_LPM but neglected to remove the flag itself. Do it now... Signed-off-by: NSergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
-
由 Sergei Shtylyov 提交于
All checks of ATA_FLAG_NO_LEGACY have been removed by the commits c791c306 ([libata] minor PCI IDE probe fixes and cleanups) and f0d36efd (libata: update libata core layer to use devres), so I think it's time to finally get rid of this flag... Signed-off-by: NSergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
-
由 Sergei Shtylyov 提交于
Commit 0d5ff566 (libata: convert to iomap) removed all checks of ATA_FLAG_MMIO but neglected to remove the flag itself. Do it now, at last... Signed-off-by: NSergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
-
- 06 1月, 2011 1 次提交
-
-
由 David Milburn 提交于
Add support for Acard ATP8620 host controller. Based upon initial version by Jeff Garzik. Signed-off-by: NDavid Milburn <dmilburn@redhat.com> Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
-