- 09 2月, 2006 1 次提交
-
-
由 Tejun Heo 提交于
This patch makes sure that pio tasks are flushed before proceeding with EH. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
- 29 1月, 2006 1 次提交
-
-
由 Randy Dunlap 提交于
This is a merger of libata docs + cleanups from Martin Waitz <tali@admingilde.org> and me. From: Randy Dunlap <rdunlap@xenotime.net> From: Martin Waitz <tali@admingilde.org> Fix libata kernel-doc comments to match code. Add some function parameters to kernel-doc. Fix some typos/spellos. Put comments in <= 80 columns. Make one DPRINTK string unique. Fix sparse cast warnings. Signed-off-by: NRandy Dunlap <rdunlap@xenotime.net> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
- 28 1月, 2006 2 次提交
-
-
由 Tejun Heo 提交于
Implement SRST, COMRESET and standard postreset component operations for ata_drive_probe_reset(), and use these three functions to implement ata_std_probe_reset. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Tejun Heo 提交于
Most low level drivers share supported reset/classify actions and sequence. This patch implements ata_drive_probe_reset() which helps constructing ->probe_reset from three component operations - softreset, hardreset and postreset. This minimizes duplicate code and yet allows flexibility if needed. The three component operations can also be shared by EH later. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
- 27 1月, 2006 10 次提交
-
-
由 Tejun Heo 提交于
Add new ->probe_reset operation to ata_port_operations obsoleting ->phy_reset. The main difference from ->phy_reset is that the new operation is not allowed to manipulate libata internals directly. It's not allowed to configure or disable the port or devices. It can only succeed or fail and classify attached devices into passed @classes. This change gives more control to higher level and eases sharing reset methods with EH. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Tejun Heo 提交于
Make ata_dev_try_classify take @r_err to store tf error register value on completion and return device class instead of directly manipulating dev->class. This is preparation for new reset mechanism. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Tejun Heo 提交于
Export ata_busy_sleep(), to be used by low level driver reset functions. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Tejun Heo 提交于
Wrap pio/atapi task queueing in correspondingly named functions. This change doesn't change anything. It's preparation for follow-up pio-task/eh sync patch. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Tejun Heo 提交于
Implement ata_eh_qc_complete/retry() using scsi_eh_finish_cmd() and scsi_eh_flush_done_q(). This removes all eh scsicmd finish hacks from low level drivers. This change was first suggested by Jeff Garzik. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Tejun Heo 提交于
Return AC_ERR_* mask from issue fuctions instead of 0/-1. This enables things like failing a qc with AC_ERR_HSM when the device doesn't set DRDY when the qc is about to be issued. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Tejun Heo 提交于
Add detailed AC_ERR_* flags and use them. Long-term goal is to describe all errors with err_mask and tf combination (tf for failed sector information, etc...). After proper error diagnosis is implemented, sense data should also be generated from err_mask instead of directly from hardware tf registers as it is currently. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Tejun Heo 提交于
When ata_qc_issue() fails, the qc might have been dma mapped or not. So, performing only ata_qc_free() results in dma map leak. This patch makes ata_qc_issue() mark dma map flags correctly on failure and calls ata_qc_complete() after ata_qc_issue() fails. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Tejun Heo 提交于
qc used to be freed automatically on command completion. However, as a qc can carry information about its completion status, it can be useful to its owner/issuer after command completion. This patch makes freeing qc responsibility of its owner. This simplifies ata_exec_internal() and makes command turn-around for atapi request sensing less hackish. This change was originally suggested by Jeff Garzik. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Tejun Heo 提交于
All ata_qc_free() does is calling __ata_qc_complete() which isn't used anywhere else. Fold __ata_qc_complete() into ata_qc_free(). Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
- 18 1月, 2006 4 次提交
-
-
由 Tejun Heo 提交于
Separate out sata_print_link_status() from __sata_phy_reset(). Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Alan Cox 提交于
Signed-off-by: NAlan Cox <alan@redhat.com> Somewhat cleaner in the resync as someone cleaned up the pio xfer users Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Alan Cox 提交于
Signed-off-by: NAlan Cox <alan@redhat.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Alan Cox 提交于
Signed-off-by: NAlan Cox <alan@redhat.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
- 17 1月, 2006 2 次提交
-
-
由 Alan Cox 提交于
This ought to be simple but for PIO2 we have to poke around the drive data to get it 100% correct. Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Alan Cox 提交于
I misread the spec when doing the original. I've tested the corrected version with pre UDMA drives and it now picks the right modes. This is a specific bug fix rather than an update or new feature item. Signed-off-by: NAlan Cox <alan@redhat.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
- 15 1月, 2006 1 次提交
-
-
由 Arjan van de Ven 提交于
Remove the "inline" keyword from a bunch of big functions in the kernel with the goal of shrinking it by 30kb to 40kb Signed-off-by: NArjan van de Ven <arjan@infradead.org> Signed-off-by: NIngo Molnar <mingo@elte.hu> Acked-by: NJeff Garzik <jgarzik@pobox.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
- 07 1月, 2006 1 次提交
-
-
由 Jens Axboe 提交于
This patch adds suspend patch to libata, and ata_piix in particular. For most low level drivers, they should just need to add the 4 hooks to work. As I can only test ata_piix, I didn't enable it for more though. Suspend support is the single most important feature on a notebook, and most new notebooks have sata drives. It's quite embarrassing that we _still_ do not support this. Right now, it's perfectly possible to suspend the drive in mid-transfer. Signed-off-by: NJens Axboe <axboe@suse.de> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
- 06 1月, 2006 1 次提交
-
-
由 Tejun Heo 提交于
Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJens Axboe <axboe@suse.de>
-
- 13 12月, 2005 5 次提交
-
-
由 Tejun Heo 提交于
There is no user of qc->waiting left after ata_exec_internal() changes. Kill the field. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Tejun Heo 提交于
There is no user of ata_qc_wait_err() and ata_qc_complete_noop() after ata_exec_internal() changes. Remove unused functions. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Tejun Heo 提交于
This patch converts all users of libata internal commands to use ata_exec_internal(). Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Tejun Heo 提交于
This patch implements ata_exec_internal() function which performs libata internal command execution. Previously, this was done by each user by manually initializing a qc, issueing it, waiting for its completion and handling errors. In addition to obvious code factoring, using ata_exec_internal() fixes the following bugs. * qc not freed on issue failure * ap->qactive clearing could race with the next internal command * race between timeout handling and irq * ignoring error condition not represented in tf->status Also, qc & hardware are not accessed anymore once it's completed, making internal commands more conformant with general semantics. ata_exec_internal() also makes it easy to issue internal commands from multiple threads if that becomes necessary. This patch only implements ata_exec_internal(). A following patch will convert all users. Signed-off-by: NTejun Heo <htejun@gmail.com> -- Jeff, all patches have been regenerated against upstream branch as of today. (575ab52a) Also, I took out a debug printk from ata_exec_internal (don't know how that one got left there). Other than that, all patches are identical to the previous posting. Thanks. :-) Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Mark Lord 提交于
Fix incorrect pointer usage on two calls to kunmap_atomic(). This seems to happen a lot, because kunmap() wants the struct page *, whereas kunmap_atomic() instead wants the mapped virtual address. Signed-off-by: NMark Lord <liml@rtr.ca> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
- 06 12月, 2005 5 次提交
-
-
由 Albert Lee 提交于
1. ata_pio_complete(): It seems unnecessary to wait for the clearing of the DRQ bit. (Waiting for BSY=0 should be enough. ata_ok() also checks the correctness of the status bits later.) 2. ata_pio_block(): - added error checking, before transfering data. - minor comments fix Signed-off-by: NAlbert Lee <albertcc@tw.ibm.com> ============ Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Albert Lee 提交于
- set qc->err_mask directly when we found the error - remove the code to determine err_mask from device status Signed-off-by: NAlbert Lee <albertcc@tw.ibm.com> ============ Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Albert Lee 提交于
- move "qc->err_mask |= AC_ERR_ATA_BUS" to where the error is found - add "assert(qc->err_mask)" to ata_pio_error() to make sure qc->err_mask was available when we enter the error state Signed-off-by: NAlbert Lee <albertcc@tw.ibm.com> ============ Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Albert Lee 提交于
- remove err_mask from the parameter list of the complete functions - move err_mask to ata_queued_cmd - initialize qc->err_mask when needed - for each function call to ata_qc_complete(), replace the err_mask parameter with qc->err_mask. Signed-off-by: NAlbert Lee <albertcc@tw.ibm.com> =============== Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
由 Albert Lee 提交于
- add qc to ata_pio_poll() - reorder the initialization of qc in ata_pio_complete() Signed-off-by: NAlbert Lee <albertcc@tw.ibm.com> =================== Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
- 01 12月, 2005 1 次提交
-
-
由 Arjan van de Ven 提交于
Hi, the patch below marks several libata (and libata-driver) structures const so that they end up in the .rodata segment and don't false-share cachelines with things that get dirtied often. Signed-off-by: NArjan van de Ven <arjan@infradead.org> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
- 20 11月, 2005 1 次提交
-
-
由 Jeff Garzik 提交于
Make the SATA phy probe messages a bit more informative. Note this only applies to drivers that use __sata_phy_reset(), which excludes some drivers.
-
- 17 11月, 2005 1 次提交
-
-
由 Jeff Garzik 提交于
-
- 16 11月, 2005 1 次提交
-
-
由 Albert Lee 提交于
The following code segment is not functional because the transfer cycle time speficied by the EIDE device is later overwritten by ata_timing_quantize(): /* * If the drive is an EIDE drive, it can tell us it needs extended * PIO/MW_DMA cycle timing. */ if (adev->id[ATA_ID_FIELD_VALID] & 2) { /* EIDE drive */ memset(&p, 0, sizeof(p)); (snip) ata_timing_merge(&p, t, t, ATA_TIMING_CYCLE | ATA_TIMING_CYC8B); <== uninitialized "t" is used here } /* * Convert the timing to bus clock counts. */ ata_timing_quantize(s, t, T, UT); <== t is overwritten by quantized s The patch has been submitted for ide-timing.h before: http://marc.theaimsgroup.com/?l=linux-ide&m=110820013425454&w=2 Resubmitted for libata. Changes: - Minor fix to honor the following transfer cycle time speficied by the device - id[65]: Minimum Multiword DMA transfer cycle time per word - id[67]: Minimum PIO transfer cycle time without flow control - id[68]: Minimum PIO transfer cycle time with IORDY Signed-off-by: NAlbert Lee <albertcc@tw.ibm.com> ======= Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-
- 15 11月, 2005 3 次提交
-
-
由 Jeff Garzik 提交于
- Move ATAPI check-condition handling out of the timeout handler - Use multi-qc-issue feature to issue REQUEST SENSE ATAPI PACKET command upon receiving an ATAPI check-condition. This cleans things up a lot, and eliminates a nasty recursion bug.
-
由 Jeff Garzik 提交于
- in ata_dev_identify(), don't assume that all devices are either ATA or ATAPI. In the future, this code will see port multipliers and other devices. - make a debugging printk less verbose - add new helper ata_qc_reinit() - add new helper BPRINTK() and port flag ATA_FLAG_DEBUGMSG, for fine-grained debugging use.
-
由 Jeff Garzik 提交于
The ATAPI pad-to-next-32bit-boundary code modifies the scatterlist's length variable, sometimes to zero. x86-64 platform would oops if a zero-length scatterlist entry was asked to be mapped. Work around this by ensuring that we never DMA-map a zero length buffer or SG entry.
-