All of lore.kernel.org
 help / color / mirror / Atom feed
* cleanup capacity flag handling in UAS
@ 2019-11-14 11:27 Oliver Neukum
  2019-11-14 11:27 ` [PATCH 1/3] uas: honor flag to avoid CAPACITY16 Oliver Neukum
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Oliver Neukum @ 2019-11-14 11:27 UTC (permalink / raw)
  To: gregKH, linux-usb

This series intends to bring UAS up to storage in terms
of handling flags for capacity quirks as far as that is applicable.
In addition it documents which driver handles which flag.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/3] uas: honor flag to avoid CAPACITY16
  2019-11-14 11:27 cleanup capacity flag handling in UAS Oliver Neukum
@ 2019-11-14 11:27 ` Oliver Neukum
  2019-11-14 11:27 ` [PATCH 2/3] UAS: heed CAPACITY_HEURISTICS Oliver Neukum
  2019-11-14 11:27 ` [PATCH 3/3] documentation: flags on usb-storage versus UAS Oliver Neukum
  2 siblings, 0 replies; 4+ messages in thread
From: Oliver Neukum @ 2019-11-14 11:27 UTC (permalink / raw)
  To: gregKH, linux-usb; +Cc: Oliver Neukum

Copy the support over from usb-storage to get feature parity

Signed-off-by: Oliver Neukum <oneukum@suse.com>
---
 drivers/usb/storage/uas.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c
index e78397dca72f..6adc8f9a9ab0 100644
--- a/drivers/usb/storage/uas.c
+++ b/drivers/usb/storage/uas.c
@@ -834,6 +834,10 @@ static int uas_slave_configure(struct scsi_device *sdev)
 		sdev->wce_default_on = 1;
 	}
 
+	/* Some disks cannot handle READ_CAPACITY_16 */
+	if (devinfo->flags & US_FL_NO_READ_CAPACITY_16)
+		sdev->no_read_capacity_16 = 1;
+
 	/*
 	 * Some disks return the total number of blocks in response
 	 * to READ CAPACITY rather than the highest block number.
-- 
2.16.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/3] UAS: heed CAPACITY_HEURISTICS
  2019-11-14 11:27 cleanup capacity flag handling in UAS Oliver Neukum
  2019-11-14 11:27 ` [PATCH 1/3] uas: honor flag to avoid CAPACITY16 Oliver Neukum
@ 2019-11-14 11:27 ` Oliver Neukum
  2019-11-14 11:27 ` [PATCH 3/3] documentation: flags on usb-storage versus UAS Oliver Neukum
  2 siblings, 0 replies; 4+ messages in thread
From: Oliver Neukum @ 2019-11-14 11:27 UTC (permalink / raw)
  To: gregKH, linux-usb; +Cc: Oliver Neukum

There is no need to ignore this flag. We should be as close
to storage in that regard as makes sense, so honor flags whose
cost is tiny.

Signed-off-by: Oliver Neukum <oneukum@suse.com>
---
 drivers/usb/storage/uas.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c
index 6adc8f9a9ab0..4d4723e15c61 100644
--- a/drivers/usb/storage/uas.c
+++ b/drivers/usb/storage/uas.c
@@ -846,6 +846,12 @@ static int uas_slave_configure(struct scsi_device *sdev)
 	if (devinfo->flags & US_FL_FIX_CAPACITY)
 		sdev->fix_capacity = 1;
 
+	/*
+	 * in some cases we have to guess
+	 */
+	if (devinfo->flags & US_FL_CAPACITY_HEURISTICS)
+		sdev->guess_capacity = 1;
+
 	/*
 	 * Some devices don't like MODE SENSE with page=0x3f,
 	 * which is the command used for checking if a device
-- 
2.16.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 3/3] documentation: flags on usb-storage versus UAS
  2019-11-14 11:27 cleanup capacity flag handling in UAS Oliver Neukum
  2019-11-14 11:27 ` [PATCH 1/3] uas: honor flag to avoid CAPACITY16 Oliver Neukum
  2019-11-14 11:27 ` [PATCH 2/3] UAS: heed CAPACITY_HEURISTICS Oliver Neukum
@ 2019-11-14 11:27 ` Oliver Neukum
  2 siblings, 0 replies; 4+ messages in thread
From: Oliver Neukum @ 2019-11-14 11:27 UTC (permalink / raw)
  To: gregKH, linux-usb; +Cc: Oliver Neukum

Document which flags work storage, UAS or both

Signed-off-by: Oliver Neukum <oneukum@suse.com>
---
 Documentation/admin-guide/kernel-parameters.txt | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index a84a83f8881e..a02b1799a756 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -4998,13 +4998,13 @@
 			Flags is a set of characters, each corresponding
 			to a common usb-storage quirk flag as follows:
 				a = SANE_SENSE (collect more than 18 bytes
-					of sense data);
+					of sense data, not on uas);
 				b = BAD_SENSE (don't collect more than 18
-					bytes of sense data);
+					bytes of sense data, not on uas);
 				c = FIX_CAPACITY (decrease the reported
 					device capacity by one sector);
 				d = NO_READ_DISC_INFO (don't use
-					READ_DISC_INFO command);
+					READ_DISC_INFO command, not on uas);
 				e = NO_READ_CAPACITY_16 (don't use
 					READ_CAPACITY_16 command);
 				f = NO_REPORT_OPCODES (don't use report opcodes
@@ -5019,17 +5019,18 @@
 				j = NO_REPORT_LUNS (don't use report luns
 					command, uas only);
 				l = NOT_LOCKABLE (don't try to lock and
-					unlock ejectable media);
+					unlock ejectable media, not on uas);
 				m = MAX_SECTORS_64 (don't transfer more
-					than 64 sectors = 32 KB at a time);
+					than 64 sectors = 32 KB at a time,
+					not on uas);
 				n = INITIAL_READ10 (force a retry of the
-					initial READ(10) command);
+					initial READ(10) command, not on uas);
 				o = CAPACITY_OK (accept the capacity
-					reported by the device);
+					reported by the device, not on uas);
 				p = WRITE_CACHE (the device cache is ON
-					by default);
+					by default, not on uas);
 				r = IGNORE_RESIDUE (the device reports
-					bogus residue values);
+					bogus residue values, not on uas);
 				s = SINGLE_LUN (the device has only one
 					Logical Unit);
 				t = NO_ATA_1X (don't allow ATA(12) and ATA(16)
@@ -5038,7 +5039,8 @@
 				w = NO_WP_DETECT (don't test whether the
 					medium is write-protected).
 				y = ALWAYS_SYNC (issue a SYNCHRONIZE_CACHE
-					even if the device claims no cache)
+					even if the device claims no cache,
+					not on uas)
 			Example: quirks=0419:aaf5:rl,0421:0433:rc
 
 	user_debug=	[KNL,ARM]
-- 
2.16.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-11-14 11:28 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-14 11:27 cleanup capacity flag handling in UAS Oliver Neukum
2019-11-14 11:27 ` [PATCH 1/3] uas: honor flag to avoid CAPACITY16 Oliver Neukum
2019-11-14 11:27 ` [PATCH 2/3] UAS: heed CAPACITY_HEURISTICS Oliver Neukum
2019-11-14 11:27 ` [PATCH 3/3] documentation: flags on usb-storage versus UAS Oliver Neukum

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.