29 Sep, 2008
1 commit
-
Commit 2fd673ecf0378ddeeeb87b3605e50212e0c0ddc6 which tried to remove
hardreset for generic accidentally removed it for all flavors as all
others were inheriting from nv_generic_ops. This patch reinstates
nv_hardreset() and puts it into nv_common_ops which all flavors
inherit from. nv_generic_ops now inherits from nv_common_ops and
overrides .hardreset to ATA_OP_NULL.While at it, explain why nv_hardreset and ATA_OP_NULL override are
necessary.Signed-off-by: Tejun Heo
Signed-off-by: Jeff Garzik
14 Sep, 2008
2 commits
-
Enable LED blinking.
Signed-off-by: Bob Stewart
Signed-off-by: Tejun Heo
Signed-off-by: Jeff Garzik -
drivers/ata/ata_piix.c:1502:7: warning: symbol 'rc' shadows an earlier one
Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
09 Sep, 2008
7 commits
-
Add the Intel Ibex Peak (PCH) SATA RAID Controller DeviceIDs.
Signed-off-by: Seth Heasley
Signed-off-by: Jeff Garzik -
Remove duplicate call to pcim_enable_device in sil680_init_one.
Signed-off-by: David Milburn
Signed-off-by: Jeff Garzik -
On HSM_ST_ERR, ata_hsm_move() triggers WARN_ON() if AC_ERR_DEV or
AC_ERR_HSM is not set. PHY events may trigger HSM_ST_ERR with other
error codes and, with or without it, there just isn't much reason to
do WARN_ON() on it. Even if error code is not set there, core EH
logic won't have any problem dealing with the error condition.OSDL bz#11065 reports this problem.
Signed-off-by: Tejun Heo
Signed-off-by: Jeff Garzik -
of them being unifying probing, hotplug and EH reset paths uniform.
Previously, broken hardreset could go unnoticed as it wasn't used
during probing but when something goes wrong or after hotplug the
problem will surface and bite hard.OSDL bug 11195 reports that sata_nv generic flavor falls into this
category. Hardreset itself succeeds but PHY stays offline after
hardreset. I tried longer debounce timing but the result was the
same.http://bugzilla.kernel.org/show_bug.cgi?id=11195
So, it seems we'll have to drop hardreset from the generic flavor.
Signed-off-by: Tejun Heo
Cc: Peer Chen
Signed-off-by: Jeff Garzik -
Marvell ahcis don't play nicely with PMPs. Disable it.
Reported by KueiHuan Chen in the following thread.
http://thread.gmane.org/gmane.linux.ide/33296
Signed-off-by: Tejun Heo
Cc: KueiHuan Chen
Cc: Mark Lord
Signed-off-by: Jeff Garzik -
Signed-off-by: Petr Jelen
Signed-off-by: Mark Lord
Signed-off-by: Jeff Garzik -
I've been chasing Jeff about this for months. Jeff added the Marvell
device identifiers to the ahci driver without making the AHCI driver
handle the PATA port. This means a lot of users can't use current
kernels and in most distro cases can't even install.This has been going on since March 2008 for the 6121 Marvell, and late 2007
for the 6145!!!This was all pointed out at the time and repeatedly ignored. Bugs assigned
to Jeff about this are ignored also.To quote Jeff in email
> "Just switch the order of 'ahci' and 'pata_marvell' in
> /etc/modprobe.conf, then use Fedora's tools regenerate the initrd.> See? It's not rocket science, and the current configuration can be
> easily made to work for Fedora users."(Which isn't trivial, isn't end user, shouldn't be needed, and as it usually
breaks at install time is in fact impossible)To quote Jeff in August 2007
> " mv-ahci-pata
> Marvell 6121/6141 PATA support. Needs fixing in the 'PATA controller
> command' area before it is usable, and can go upstream."Only he add the ids anyway later and caused regressions, adding a further
id in March causing more regresions.The actual fix for the moment is very simple. If the user has included
the pata_marvell driver let it drive the ports. If they've only selected
for SATA support give them the AHCI driver which will run the port a fraction
faster. Allow the user to control this decision via ahci.marvell_enable as
a module parameter so that distributions can ship 'it works' defaults and
smarter users (or config tools) can then flip it over it desired.Signed-off-by: Alan Cox
Signed-off-by: Jeff Garzik
22 Aug, 2008
13 commits
-
Reported by Andrew Morton:
drivers/ata/pata_it821x.c: In function 'it821x_port_start':
drivers/ata/pata_it821x.c:609: warning: 'mtype' may be used uninitialized in
this functionPretty horrid fix, but so's a warning..
Signed-off-by: Jeff Garzik
-
Dave Müller sent a diff for the pata_oldpiix that highlighted a problem
where a lot of the ATA drivers assume dma_mode == 0 means "no DMA" while
the core code uses 0xFF.This turns out to have other consequences such as code doing >= XFER_UDMA_0
also catching 0xFF as UDMAlots. Fortunately it doesn't generally affect
set_dma_mode, although some drivers call back into their own set mode code
from other points.Having been through the drivers I've added helpers for using_udma/using_mwdma
dma_enabled so that people don't open code ranges that may change (eg if UDMA8
appears somewhere)Thanks to David for the initial bits
[and added fix for pata_oldpiix from and signed-off-by Dave Mueller
-jg]Signed-off-by: Alan Cox
Signed-off-by: Jeff Garzik -
SIS controllers were blacklisted for PMP as enabling it made device
detection fail whether the device was PMP or not - the natural
conclusion was the controller chokes on SRST w/ pmp==15. However, it
turned out that the controller just didn't like issuing SRST after
hardreset w/o clearing SError first. Interestingly, the SRST itself
succeeds but the following commands fail.If SError is cleared between hardreset and SRST, which is the default
behavior now, everything works fine and SIS controllers work with PMPs
happily.Remove PMP blacklisting for SIS AHCIs.
Signed-off-by: Tejun Heo
Cc: Piter PUNK
Signed-off-by: Jeff Garzik -
Commit bfce5e0179ad059035df28558724ff60af708e09 implemented custom
tf_load for pata_via. This patch cleans it up a bit.* Instead of duplicating whole body, copy tf and set ATA_TFLAG_DEVICE
when necessary.* Rename via_ata_tf_load() to via_tf_load().
* No need to set .tf_load in via_port_ops_noirq as it inherits from
via_port_ops.* Clean up indentation.
Signed-off-by: Tejun Heo
Cc: Joseph Chan
Signed-off-by: Jeff Garzik -
Save SControl during probing and restore it on detach. This prevents
adjustments made by libata drivers to seep into the next driver which
gets attached (be it a libata one or not).It's not clear whether SControl also needs to be restored on suspend.
The next system to have control (ACPI or kexec'd kernel) would
probably like to see the original SControl value but there's no
guarantee that a link is gonna keep working after SControl is adjusted
without a reset and adding a reset and modified recovery cycle soley
for this is an overkill. For now, do it only for detach.Signed-off-by: Tejun Heo
Signed-off-by: Jeff Garzik -
SError belongs to link not port. Use ata_link_printk() to print it.
Signed-off-by: Tejun Heo
Signed-off-by: Jeff Garzik -
As an optimization, follow-up SRST used to be skipped if
classification wasn't requested even when hardreset requested it via
-EAGAIN. However, some hardresets can't wait for device readiness and
skipping SRST can cause timeout or other failures during revalidation.
Always perform follow-up SRST if hardreset returns -EAGAIN. This
makes reset paths more predictable and thus less error-prone.While at it, move hardreset error checking such that it's done right
after hardreset is finished. This simplifies followup SRST condition
check a bit and makes the reset path easier to modify.Signed-off-by: Tejun Heo
Signed-off-by: Jeff Garzik -
ehc->i.action got accidentally overwritten to ATA_EH_HARD/SOFTRESET in
ata_eh_reset(). The original intention was to clear reset action
which wasn't selected. This can cause unexpected behavior when other
EH actions are scheduled together with reset. Fix it.Signed-off-by: Tejun Heo
Signed-off-by: Jeff Garzik -
The SoC sata port is based on the 7042/6042 devices (Gen IIE). This patch
will fix various issues when working with PMP and/or NCQ.Signed-off-by: Saeed Bishara
Signed-off-by: Jeff Garzik -
This patch adds the Intel Ibex Peak (PCH) IDE mode SATA Controller DeviceIDs.
Signed-off-by: Seth Heasley
Signed-off-by: Jeff Garzik -
Resend with proper whitespace.
This patch adds the Intel Ibex Peak (PCH) SATA RAID Controller DeviceIDs.
Signed-off-by: Seth Heasley
Signed-off-by: Jeff Garzik -
sata_mv allowed issuing two DMA commands concurrently which the
hardware allows. Unfortunately, libata core layer isn't ready for
this yet and spews ugly warning message and malfunctions on this.
Don't allow concurrent DMA commands for now.Signed-off-by: Tejun Heo
Signed-off-by: Jeff Garzik -
Implement force params nohrst, nosrst and norst. This is to work
around reset related problems and ease debugging.Signed-off-by: Tejun Heo
Signed-off-by: Jeff Garzik
05 Aug, 2008
1 commit
-
Update all avr32-specific files to use the new platform-specific header
locations. Drivers shared with ARM are left alone for now.Signed-off-by: Haavard Skinnemoen
31 Jul, 2008
6 commits
-
- Add support for the RDC 1010 variant
- Rework the core library to have a read_id method. This allows the hacky
bits of it821x to go and prepares us for pata_hd
- Switch from WARN to BUG in ata_id_string as it will reboot if you get
it wrong so WARN won't be seen
- Allow the issue of command 0xFC on the 821x. This is needed to query
rebuild status.
- Tidy up printk formatting
- Do more ident rewriting on RAID volumes to handle firmware provided
ident data which is rather wonky
- Report the firmware revision and device layout in RAID mode
- Don't try and disable raid on the 8211 or RDC - they don't have the
relevant bitsSigned-off-by: Alan Cox
Signed-off-by: Jeff Garzik -
Subsys 106b:00a3 also is the weird apple ich8m which chokes when the
latter two ports are accessed, add it. Reported by Felipe Sere.Signed-off-by: Tejun Heo
Cc: Felipe Sere
Signed-off-by: Jeff Garzik -
Fix a potential memory leak when ata_init() encounters an error.
Signed-off-by: Elias Oltmanns
Cc: Tejun Heo
Cc: Alan Cox
Signed-off-by: Andrew Morton
Signed-off-by: Jeff Garzik -
Global and per-LLD ATAPI disable checks were done in the command issue
path probably because it was left out during EH conversion. On
affected machines, this can cause lots of warning messages. Move them
to where they belong - the probing path.Reported by Chunbo Luo.
Signed-off-by: Tejun Heo
Cc: Chunbo Luo
Signed-off-by: Jeff Garzik -
Add flag VIA_SATA_PATA for vx800, VX800 uses the same
chipset(0x0581/0x5324) as CX700, which has 1 PATA channel(Master/Slave)
and 1 SATA channel(Master/Slave) Add function . This is
to fix the internal bug of VIA chipsets, which will reset the device
register after changing the IEN bit in CTL registerSigned-off-by: Joseph Chan
Cc: Tejun Heo
Cc: Alan Cox
Signed-off-by: Andrew Morton
Signed-off-by: Jeff Garzik -
The ali_init_one() function does a search for an isa_bridge,
but then fails to release it if the revision information was
not correctly found.the problem comes from:
isa_bridge = pci_get_device(...);
if (isa_bridge && ...) {
pci_dev_put(isa_bridge);
}where the pci_dev_put() is never called if isa_bridge
was valid but the extra checks on the chip-revision
fail to match.Signed-off-by: Ben Dooks
Signed-off-by: Jeff Garzik
27 Jul, 2008
1 commit
-
IRQT_* and __IRQT_* were obsoleted long ago by patch [3692/1].
Remove them completely. Sed script for the reference:s/__IRQT_RISEDGE/IRQ_TYPE_EDGE_RISING/g
s/__IRQT_FALEDGE/IRQ_TYPE_EDGE_FALLING/g
s/__IRQT_LOWLVL/IRQ_TYPE_LEVEL_LOW/g
s/__IRQT_HIGHLVL/IRQ_TYPE_LEVEL_HIGH/g
s/IRQT_RISING/IRQ_TYPE_EDGE_RISING/g
s/IRQT_FALLING/IRQ_TYPE_EDGE_FALLING/g
s/IRQT_BOTHEDGE/IRQ_TYPE_EDGE_BOTH/g
s/IRQT_LOW/IRQ_TYPE_LEVEL_LOW/g
s/IRQT_HIGH/IRQ_TYPE_LEVEL_HIGH/g
s/IRQT_PROBE/IRQ_TYPE_PROBE/g
s/IRQT_NOEDGE/IRQ_TYPE_NONE/gSigned-off-by: Dmitry Baryshkov
Signed-off-by: Russell King
26 Jul, 2008
1 commit
-
The new type checking of the flags arguments to irqsave and friends
(commit 3f307891ce0e7b0438c432af1aacd656a092ff45) pointed out this thing
with a big nice warning.Signed-off-by: Linus Torvalds
16 Jul, 2008
2 commits
-
Manual merge of:
arch/powerpc/Kconfig
arch/powerpc/kernel/stacktrace.c
arch/powerpc/mm/slice.c
arch/ppc/kernel/smp.c -
* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
AHCI: Remove an unnecessary flush from ahci_qc_issue
AHCI: speed up resume
[libata] Add support for VPD page b1
ata: endianness annotations in pata drivers
libata-eh: update atapi_eh_request_sense() to take @dev instead of @qc
[libata] sata_svw: update code comments relating to data corruption
libata/ahci: enclosure management support
libata: improve EH internal command timeout handling
libata: use ULONG_MAX to terminate reset timeout table
libata: improve EH retry delay handling
libata: consistently use msecs for time durations
15 Jul, 2008
6 commits
-
Manual fixup of:
arch/powerpc/Kconfig
-
* 'for-linus' of git://git.kernel.dk/linux-2.6-block: (37 commits)
splice: fix generic_file_splice_read() race with page invalidation
ramfs: enable splice write
drivers/block/pktcdvd.c: avoid useless memset
cdrom: revert commit 22a9189 (cdrom: use kmalloced buffers instead of buffers on stack)
scsi: sr avoids useless buffer allocation
block: blk_rq_map_kern uses the bounce buffers for stack buffers
block: add blk_queue_update_dma_pad
DAC960: push down BKL
pktcdvd: push BKL down into driver
paride: push ioctl down into driver
block: use get_unaligned_* helpers
block: extend queue_flag bitops
block: request_module(): use format string
Add bvec_merge_data to handle stacked devices and ->merge_bvec()
block: integrity flags can't use bit ops on unsigned short
cmdfilter: extend default read filter
sg: fix odd style (extra parenthesis) introduced by cmd filter patch
block: add bounce support to blk_rq_map_user_iov
cfq-iosched: get rid of enable_idle being unused warning
allow userspace to modify scsi command filter on per device basis
... -
In an I/O heavy workload (IOZone), ahci_qc_issue is the second-highest
consumer of CPU cycles. Removing the flush gets us approximately 10%
bandwidth improvement. I believe this to be because the CPU can start
queueing the next request instead of waiting for the readl() to flush the
writes to the device. The flush isn't necessary because we're using a
'queue' metaphor; we don't guarantee the command has got to the device,
nor do we need to guarantee the command has got to the controller.Signed-off-by: Matthew Wilcox
Signed-off-by: Jeff Garzik -
During resume, sleep 1 second to wait for the HBA reset
to finish is a waste of time.According to the AHCI 1.2 spec,
We should poll the HOST_CTL register,
and return error if the host reset is not
finished within 1 second.Test results show that the HBA reset can be done quickly(in usecs).
And this patch may save nearly 1 second during resume.Signed-off-by: Zhang Rui
Signed-off-by: Jeff Garzik -
SCSI VPD page b1 reports the nominal rotation speed and physical size
of the device. Devices that conform to ATA-8 can return this information
in words 217 and 168 of the identify data.Signed-off-by: Matthew Wilcox
Signed-off-by: Jeff Garzik