Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 43c9c591 authored by Tejun Heo's avatar Tejun Heo Committed by Jeff Garzik
Browse files

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: default avatarTejun Heo <tj@kernel.org>
Cc: Larry Baker <baker@usgs.gov>
Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
parent e7ecd435
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1252,6 +1252,8 @@ and is between 256 and 4096 characters. It is defined in the file
			* nohrst, nosrst, norst: suppress hard, soft
                          and both resets.

			* dump_id: dump IDENTIFY data.

			If there are multiple matching configurations changing
			the same attribute, the last one is used.

+9 −0
Original line number Diff line number Diff line
@@ -2126,6 +2126,14 @@ int ata_dev_read_id(struct ata_device *dev, unsigned int *p_class,
		goto err_out;
	}

	if (dev->horkage & ATA_HORKAGE_DUMP_ID) {
		ata_dev_printk(dev, KERN_DEBUG, "dumping IDENTIFY data, "
			       "class=%d may_fallback=%d tried_spinup=%d\n",
			       class, may_fallback, tried_spinup);
		print_hex_dump(KERN_DEBUG, "", DUMP_PREFIX_OFFSET,
			       16, 2, id, ATA_ID_WORDS * sizeof(*id), true);
	}

	/* Falling back doesn't make sense if ID data was read
	 * successfully at least once.
	 */
@@ -6377,6 +6385,7 @@ static int __init ata_parse_force_one(char **cur,
		{ "3.0Gbps",	.spd_limit	= 2 },
		{ "noncq",	.horkage_on	= ATA_HORKAGE_NONCQ },
		{ "ncq",	.horkage_off	= ATA_HORKAGE_NONCQ },
		{ "dump_id",	.horkage_on	= ATA_HORKAGE_DUMP_ID },
		{ "pio0",	.xfer_mask	= 1 << (ATA_SHIFT_PIO + 0) },
		{ "pio1",	.xfer_mask	= 1 << (ATA_SHIFT_PIO + 1) },
		{ "pio2",	.xfer_mask	= 1 << (ATA_SHIFT_PIO + 2) },
+1 −0
Original line number Diff line number Diff line
@@ -386,6 +386,7 @@ enum {
	ATA_HORKAGE_1_5_GBPS	= (1 << 13),	/* force 1.5 Gbps */
	ATA_HORKAGE_NOSETXFER	= (1 << 14),	/* skip SETXFER, SATA only */
	ATA_HORKAGE_BROKEN_FPDMA_AA	= (1 << 15),	/* skip AA */
	ATA_HORKAGE_DUMP_ID	= (1 << 16),	/* dump IDENTIFY data */

	 /* DMA mask for user DMA control: User visible values; DO NOT
	    renumber */