Commit 43c9c59185eec7caaff6e9dd8d4c93a4d9836a86
Committed by
Jeff Garzik
1 parent
e7ecd43569
Exists in
master
and in
4 other branches
libata: implement dump_id force param
Add dump_id libata.force parameter. If specified, libata dumps full IDENTIFY data during device configuration. This is to aid debugging. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Larry Baker <baker@usgs.gov> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Showing 3 changed files with 12 additions and 0 deletions Side-by-side Diff
Documentation/kernel-parameters.txt
drivers/ata/libata-core.c
... | ... | @@ -2126,6 +2126,14 @@ |
2126 | 2126 | goto err_out; |
2127 | 2127 | } |
2128 | 2128 | |
2129 | + if (dev->horkage & ATA_HORKAGE_DUMP_ID) { | |
2130 | + ata_dev_printk(dev, KERN_DEBUG, "dumping IDENTIFY data, " | |
2131 | + "class=%d may_fallback=%d tried_spinup=%d\n", | |
2132 | + class, may_fallback, tried_spinup); | |
2133 | + print_hex_dump(KERN_DEBUG, "", DUMP_PREFIX_OFFSET, | |
2134 | + 16, 2, id, ATA_ID_WORDS * sizeof(*id), true); | |
2135 | + } | |
2136 | + | |
2129 | 2137 | /* Falling back doesn't make sense if ID data was read |
2130 | 2138 | * successfully at least once. |
2131 | 2139 | */ |
... | ... | @@ -6377,6 +6385,7 @@ |
6377 | 6385 | { "3.0Gbps", .spd_limit = 2 }, |
6378 | 6386 | { "noncq", .horkage_on = ATA_HORKAGE_NONCQ }, |
6379 | 6387 | { "ncq", .horkage_off = ATA_HORKAGE_NONCQ }, |
6388 | + { "dump_id", .horkage_on = ATA_HORKAGE_DUMP_ID }, | |
6380 | 6389 | { "pio0", .xfer_mask = 1 << (ATA_SHIFT_PIO + 0) }, |
6381 | 6390 | { "pio1", .xfer_mask = 1 << (ATA_SHIFT_PIO + 1) }, |
6382 | 6391 | { "pio2", .xfer_mask = 1 << (ATA_SHIFT_PIO + 2) }, |
include/linux/libata.h
... | ... | @@ -386,6 +386,7 @@ |
386 | 386 | ATA_HORKAGE_1_5_GBPS = (1 << 13), /* force 1.5 Gbps */ |
387 | 387 | ATA_HORKAGE_NOSETXFER = (1 << 14), /* skip SETXFER, SATA only */ |
388 | 388 | ATA_HORKAGE_BROKEN_FPDMA_AA = (1 << 15), /* skip AA */ |
389 | + ATA_HORKAGE_DUMP_ID = (1 << 16), /* dump IDENTIFY data */ | |
389 | 390 | |
390 | 391 | /* DMA mask for user DMA control: User visible values; DO NOT |
391 | 392 | renumber */ |