- 18 12月, 2007 1 次提交
-
-
由 Tejun Heo 提交于
Interestingly, sata_sil raises spurious interrupts if it's coupled with Sil SATA_PATA bridge. Currently, sata_sil interrupt handler is strict about spurious interrupts and freezes the port when it occurs. This patch makes it more forgiving. * On SATA PHY event interrupt, serror value is checked to see whether it really is PHYRDY CHG event. If not, SATA PHY event interrupt is ignored. * If ATA interrupt occurs while no command is in progress, it's cleared and ignored. This fixes bugzilla bug 9505. http://bugzilla.kernel.org/show_bug.cgi?id=9505Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 08 12月, 2007 4 次提交
-
-
由 Tejun Heo 提交于
Spurious NCQ completion detection implemented in ahci was incorrect. On AHCI receving and processing FISes and raising interrupts are not interlocked and spurious interrupts are expected. For example, if an interrupt occurs while interrupt handler is running and the running interrupt handler handles the event the new IRQ indicated, after IRQ handler finishes, it will be executed again because IRQ pending bit is set by the new interrupt but there won't be anything to process. Please read the following message for more information. http://article.gmane.org/gmane.linux.ide/26012 This patch... * Removes all spurious IRQ whining from ahci. Spurious NCQ completion detection was completely wrong. Spurious D2H Register FIS taught us that some early drives send spurious D2H Register FIS with I bit set while NCQ commands are in progress but none of recent drives does that and even the ones which show such behavior can do NCQ fine. * Kills all NCQ blacklist entries which were added because of spurious NCQ completions. I tracked down each commit and verified all removed ones are actually added because of spurious completions. WD740ADFD-00NLR1 wasn't deleted but moved upward because the drive not only had spurious NCQ completions but also is slow on sequential data transfers if NCQ is enabled. Maxtor 7V300F0 was added by 0e3dbc01 from Alan Cox. I can only find evidences that the drive only had troubles with spuruious completions by searching the mailing list. This entry needs to be verified and removed if it doesn't have other NCQ related problems. Signed-off-by: NTejun Heo <htejun@gmail.com> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Tejun Heo 提交于
ICH6 R/Ms share PCI ID between piix and ahci modes and we've been allowing ahci to attach regardless of how BIOS configured it. However, enabling AHCI mode when the controller is in combined mode can result in unexpected behavior. Don't attach if the controller is in combined mode. Signed-off-by: NTejun Heo <htejun@gmail.com> Cc: Bill Nottingham <notting@redhat.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Peter Schwenke 提交于
Add Toshiba Tecra M4 to broken suspend list. This is from OSDL bugzilla bug 7780. Signed-off-by: NPeter Schwenke <peter@bluetoad.com.au> Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Tejun Heo 提交于
There isn't much point in reporting -EOPNOTSUPP as failure. Also the message was missing newline. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 05 12月, 2007 4 次提交
-
-
* Don't program UDMA timings when programming PIO or MWDMA modes. This has also a nice side-effect of fixing regression added by commit 681c80b5 ("libata: correct handling of SRST reset sequences") (->set_piomode method for PIO0 is called before ->cable_detect method which checks UDMA timings to get the cable type). * Bump driver version. Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com> Tested-by: N"Thomas Lindroth" <thomas.lindroth@gmail.com> Acked-by: NAlan Cox <alan@lxorguk.ukuu.org.uk> Cc: Tejun Heo <htejun@gmail.com> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 peerchen 提交于
Add the device IDs of legacy mode of MCP79 AHCI controller to ahci.c Signed-off-by: NPeer Chen <peerchen@gmail.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Mark Lord 提交于
The Highpoint RocketRAID boards using Marvell 7042 chips overwrite the 9th sector of attached drives at boot time, when those drives are configured as "Legacy" (the default) in the HighPoint BIOS. This kills GRUB, and probably other stuff. But it all happens *before* Linux is even loaded. So, for now we'll log a WARNING when such boards are detected, and advise users to configure BIOS "JBOD" volumes instead, which don't appear to suffer from this problem. Signed-off-by: NMark Lord <mlord@pobox.com> Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
-
由 Robert Hancock 提交于
We need to run any DMA command with result taskfile requested in ADMA mode when the port is in ADMA mode, otherwise it may try to use the legacy DMA engine in ADMA mode which is not allowed. Enforce this with BUG_ON() since data corruption could potentially result if this happened. Also, fail any attempt to try and issue NCQ commands with result taskfile requested, since the hardware doesn't allow this. Signed-off-by: NRobert Hancock <hancockr@shaw.ca> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 02 12月, 2007 8 次提交
-
-
由 Mark Lord 提交于
sata_mv: Fix broken Marvell 7042 support. The Marvell 7042 chip is more or less the same as the 6042 internally, but sports a PCIe bus. Despite having identical SATA cores, the 7042 does differ from its PCI bus counterparts in placment and layout of certain bus related registers. This patch fixes sata_mv to distinguish between the PCI bus registers of earlier chips, and the PCIe bus registers of the 7042. Specifically, move the offsets and bit patterns for the PCI/PCIe interrupt cause/mask registers into the struct mv_host_priv, as these values differ between the 6xxx and 7xxx series chips. This fixes the driver to not access reserved PCI addresses, and prevents the lockups reported in linux-2.6.24 with 7042 boards. Also add a new PCI ID for the Highpoint 2300 7042-based board that I'm using for testing this stuff here. Tested with Marvell 6081 + 7042 chips, on x86 & x86_64. Signed-off-by: NMark Lord <mlord@pobox.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Alan Cox 提交于
On Fri, 30 Nov 2007 14:34:11 +0200 (EET) Meelis Roos <mroos@linux.ee> wrote: > > Can you stick a stack trace in at that point ? That would help diagnose > > it a great deal quicker. > > Finally done - found out hard way that BUG() is too bad and > dump_st5ack() suits me better. Thanks. This should fix the real cause, and also allow for port start to fail politely with -ENODEV. Signed-off-by: NAlan Cox <alan@redhat.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Peter Schwenke 提交于
Add more toshiba laptops to broken suspend list. This is from OSDL bugzilla bug 7780. tj: re-formatted patch and added description and SOB. Signed-off-by: NPeter Schwenke <peter@bluetoad.com.au> Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Peter Missel 提交于
libata: Add more TSST (Samsung/Toshiba) IDE drives with broken cable detection validation bits. signed-off-by: Peter Missel (peter.missel@onlinehome.de) Acked-by: NAlan Cox <alan@redhat.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Tejun Heo 提交于
Protocol and CDB allocation size field are important in determining what went wrong with ATAPI commands. Report them on failure. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
Several fixes for the AVR32 PATA driver: * Updated to use new AVR32 SMC timing API. This removes the need for "magic" constants in signal timing. * Removed the ATA_FLAG_PIO_POLLING, the driver should use interrupts. * Removed .port_disable and .irq_ack as these are no longer needed. * Improved some comments. Signed-off-by: NKristoffer Nyborg Gregertsen <kngregertsen@norway.atmel.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Saeed Bishara 提交于
use sstatus instead status. Signed-off-by: NSaeed Bishara <saeed@marvell.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 sonic zhang 提交于
UDMA Mode - Frequency compatibility UDMA5 - 100 MB/s - SCLK = 133 MHz UDMA4 - 66 MB/s - SCLK >= 80 MHz UDMA3 - 44.4 MB/s - SCLK >= 50 MHz UDMA2 - 33 MB/s - SCLK >= 40 MHz Signed-off-by: NSonic Zhang <sonic.zhang@analog.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 27 11月, 2007 2 次提交
-
-
由 Tejun Heo 提交于
None of the drives I have follows what the standard says about transfer chunk size. Of the four SATA and six PATA ATAPI devices tested, four ignore transfer chunk size completely and the ones which honor it don't behave according to the spec when it's odd. According to the spec, transfer chunk size can be odd if the amount of data to transfer equals or is smaller than the chunk size and the device can indicate the same odd number and transfer the whole thing at one go with a pad byte appended. However, in reality, none of the drives I have does that. They all indicate and transfer even number of bytes one byte shorter than the chunk size first; then indicate and transfer two bytes, which is clearly out of spec. In addition to unnecessary second PIO data phase, this also creates a weird problem when combined with SATA controllers which perform PIO via DMA. Some of these controllers use actualy number of bytes received to update DMA pointer so chunks which are sized 4n + 2 makes DMA pointer off by two bytes. This causes data corruption and buffer overruns. This patch rounds nbytes up to the nearest even number such that ATAPI devices don't split data transfer for the last odd byte. This shouldn't confuse controllers which depend on transfer chunk size as devices will report the rounded-up number, actually transfer that much and padding buffer is there to receive them. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 sonic zhang 提交于
INT status can be OR. Signed-off-by: NSonic Zhang <sonic.zhang@analog.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 24 11月, 2007 10 次提交
-
-
由 Jeff Garzik 提交于
Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
-
由 Alan Cox 提交于
If a card has no IRQ then pass no interrupt handler but allow polled usage. Signed-off-by: NAlan Cox <alan@redhat.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Alan Cox 提交于
Signed-off-by: NAlan Cox <alan@redhat.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Alan Cox 提交于
Hopefully there is a better long term solution but for now lets favour reliability. Signed-off-by: NAlan Cox <alan@redhat.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Alan Cox 提交于
Signed-off-by: NAlan Cox <alan@redhat.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Alan Cox 提交于
And next time I'll be able to find the ata tape spec easily... Signed-off-by: NAlan Cox <alan@redhat.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Alan Cox 提交于
Should use ioread* as discussed previously Signed-off-by: NAlan Cox <alan@redhat.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Tejun Heo 提交于
sil24 unnecessarily used LIBATA_MAX_PRD and ATAPI sg table was short by one entry which might cause very obscure problems. This patch updates sg table sizing such that * One full page is used for PRB + sg table. On 4k page, this results in 253 sg's. * Make ATAPI sg block properly sized. * Make build fail if command block size doesn't equal PAGE_SIZE. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Tejun Heo 提交于
There are two bugs in disabled port handling. * test in PORT_PATA0 is reversed * ->prereset should return -ENOENT for disabled ports not 0 The first bug makes the PATA channel considered disabled but the second bug saves the day by returning 0. The net result is that cable is always left at ATA_CBL_UNKNOWN. This results in false 80c configuration and thus transfer errors. This patch fixes both bugs. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Sergei Shtylyov 提交于
Since writing to two reserved bits ain't much of a housekeeping, I think it's time we get rid of the custom error handler in this driver. ;-) Signed-off-by: NSergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 19 11月, 2007 9 次提交
-
-
由 Tejun Heo 提交于
ICH8 and 9 use two SFF controllers to show 6 SATA ports. The first controllre hosts the first 4 ports while the second one hosts the last 2. The PCS register of the first controller encompasses the first four ports or all six ports depending on configuration while PCS of the second controller controls the last two ports. Using 0xf for the first controller and 0x3 for the second controller always result in the correct configuration. Signed-off-by: NTejun Heo <htejun@gmail.com>
-
由 Thomas Rohwer 提交于
ICH8M on apple macbook pro occasionally locks up completely during PCS initialization if ports other than the first one are enabled. Add a separate controller ID and only enable the first port. tj: commit description added and patch updated to fit with the previous controller ID update. Signed-off-by: NThomas Rohwer <tr@tng.de> Signed-off-by: NTejun Heo <htejun@gmail.com>
-
由 Tejun Heo 提交于
Move piix_pata_mwdma to top, rename ich9_2port_sata to ich8_2port_sata for consistency and use automatically incremented values instead of assigning fixed values to ease adding new controller IDs. Signed-off-by: NTejun Heo <htejun@gmail.com>
-
由 Gabriel C 提交于
With newer kernels HDD in my old laptop is limited to UDMA 33. With this patch I get UDMA 100 again. Signed-off-by: NGabriel Craciunescu <nix.or.die@googlemail.com> Signed-off-by: NTejun Heo <htejun@gmail.com>
-
由 Mark Lord 提交于
Sebastian Kemper reported that issuing CD/DVD commands under libata is not fully compatible with ide-scsi. In particular, the GPCMD_SET_STREAMING was being rejected at the host level in some instances. The reason is that libata-scsi insists upon the cmd_len field exactly matching the SCSI opcode being issued, whereas ide-scsi tolerates 12-byte commands contained within a 16-byte (cmd_len) CDB. There doesn't seem to be a good reason for us to not be compatible there, so here is a patch to fix libata-scsi to permit SCSI opcodes so long as they fit within whatever size CDB is provided. Signed-off-by: NMark Lord <mlord@pobox.com> Signed-off-by: NTejun Heo <htejun@gmail.com>
-
由 Albert Lee 提交于
Per Mark's comments, maybe all ATAPI tape drives need ATA_HORKAGE_STUCK_ERR. This patch applys ATA_HORKAGE_STUCK_ERR for all ATAPI tape drives. Signed-off-by: NAlbert Lee <albertcc@tw.ibm.com> Cc: Mark Lord <liml@rtr.ca> Signed-off-by: NTejun Heo <htejun@gmail.com>
-
由 Albert Lee 提交于
After an error condition, some ATAPI tape drives set DRQ=1 together with ERR=1 when asking the host to transfer the CDB of the next packet command (i.e. request sense). This patch, a revised version of Alan/Mark's previous patch, adds ATA_HORKAGE_STUCK_ERR to workaround the problem by ignoring the ERR bit and proceed sending the CDB. Signed-off-by: NAlbert Lee <albertcc@tw.ibm.com> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Mark Lord <liml@rtr.ca> Signed-off-by: NTejun Heo <htejun@gmail.com>
-
由 Adrian Bunk 提交于
This patch removes the following obsolete functions: - libata-core.c: __sata_phy_reset() - libata-core.c: sata_phy_reset() - libata-eh.c: ata_qc_timeout() - libata-eh.c: ata_eng_timeout() Signed-off-by: NAdrian Bunk <bunk@kernel.org> Signed-off-by: NTejun Heo <htejun@gmail.com>
-
由 Tejun Heo 提交于
Satellite U205 has alternate product name where the satellite part is all capatalized. Add it to the blacklist. This is reported by Ross Patterson in kernel bugzilla bug #7780. Signed-off-by: NTejun Heo <htejun@gmail.com> Cc: Ross Patterson <me@rpatterson.net>
-
- 10 11月, 2007 1 次提交
-
-
由 Matthew Garrett 提交于
Experience suggests that the _GTF method may be bad. We currently fail device revalidation in that case, which seems excessive. Signed-off-by: NMatthew Garrett <mjg59@srcf.ucam.org> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 09 11月, 2007 1 次提交
-
-
由 Tejun Heo 提交于
Port / host stop calls used to be made from ata_host_release() which is called after all hardware resources acquired after host allocation are released. This is wrong as port and host stop routines often access the hardware. Add separate devres for port / host stop which is invoked right after IRQ is released but with all other hardware resources intact. The devres is added iff ->host_stop and/or ->port_stop exist. This problem has been spotted by Mark Lord. Signed-off-by: NTejun Heo <htejun@gmail.com> Cc: Mark Lord <liml@rtr.ca> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-