aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/storage/scsiglue.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-05-08 13:03:52 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2019-05-08 13:03:52 -0400
commit132d68d37d33f1d0b9c1f507c8b4d64c27ecec8a (patch)
treeb3c05972e5579e1574873fe745fb1358c62a269c /drivers/usb/storage/scsiglue.c
parent80f232121b69cc69a31ccb2b38c1665d770b0710 (diff)
parent3515468a87a47781f6af818773650513ff14656a (diff)
Merge tag 'usb-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB/PHY updates from Greg KH: "Here is the big set of USB and PHY driver patches for 5.2-rc1 There is the usual set of: - USB gadget updates - PHY driver updates and additions - USB serial driver updates and fixes - typec updates and new chips supported - mtu3 driver updates - xhci driver updates - other tiny driver updates Nothing really interesting, just constant forward progress. All of these have been in linux-next for a while with no reported issues. The usb-gadget and usb-serial trees were merged a bit "late", but both of them had been in linux-next before they got merged here last Friday" * tag 'usb-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (206 commits) USB: serial: f81232: implement break control USB: serial: f81232: add high baud rate support USB: serial: f81232: clear overrun flag USB: serial: f81232: fix interrupt worker not stop usb: dwc3: Rename DWC3_DCTL_LPM_ERRATA usb: dwc3: Fix default lpm_nyet_threshold value usb: dwc3: debug: Print GET_STATUS(device) tracepoint usb: dwc3: Do core validation early on probe usb: dwc3: gadget: Set lpm_capable usb: gadget: atmel: tie wake lock to running clock usb: gadget: atmel: support USB suspend usb: gadget: atmel_usba_udc: simplify setting of interrupt-enabled mask dwc2: gadget: Fix completed transfer size calculation in DDMA usb: dwc2: Set lpm mode parameters depend on HW configuration usb: dwc2: Fix channel disable flow usb: dwc2: Set actual frame number for completed ISOC transfer usb: gadget: do not use __constant_cpu_to_le16 usb: dwc2: gadget: Increase descriptors count for ISOC's usb: introduce usb_ep_type_string() function usb: dwc3: move synchronize_irq() out of the spinlock protected block ...
Diffstat (limited to 'drivers/usb/storage/scsiglue.c')
-rw-r--r--drivers/usb/storage/scsiglue.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/drivers/usb/storage/scsiglue.c b/drivers/usb/storage/scsiglue.c
index a73ea495d5a7..59190d88fa9f 100644
--- a/drivers/usb/storage/scsiglue.c
+++ b/drivers/usb/storage/scsiglue.c
@@ -65,6 +65,7 @@ static const char* host_info(struct Scsi_Host *host)
65static int slave_alloc (struct scsi_device *sdev) 65static int slave_alloc (struct scsi_device *sdev)
66{ 66{
67 struct us_data *us = host_to_us(sdev->host); 67 struct us_data *us = host_to_us(sdev->host);
68 int maxp;
68 69
69 /* 70 /*
70 * Set the INQUIRY transfer length to 36. We don't use any of 71 * Set the INQUIRY transfer length to 36. We don't use any of
@@ -74,20 +75,17 @@ static int slave_alloc (struct scsi_device *sdev)
74 sdev->inquiry_len = 36; 75 sdev->inquiry_len = 36;
75 76
76 /* 77 /*
77 * USB has unusual DMA-alignment requirements: Although the 78 * USB has unusual scatter-gather requirements: the length of each
78 * starting address of each scatter-gather element doesn't matter, 79 * scatterlist element except the last must be divisible by the
79 * the length of each element except the last must be divisible 80 * Bulk maxpacket value. Fortunately this value is always a
80 * by the Bulk maxpacket value. There's currently no way to 81 * power of 2. Inform the block layer about this requirement.
81 * express this by block-layer constraints, so we'll cop out 82 */
82 * and simply require addresses to be aligned at 512-byte 83 maxp = usb_maxpacket(us->pusb_dev, us->recv_bulk_pipe, 0);
83 * boundaries. This is okay since most block I/O involves 84 blk_queue_virt_boundary(sdev->request_queue, maxp - 1);
84 * hardware sectors that are multiples of 512 bytes in length, 85
85 * and since host controllers up through USB 2.0 have maxpacket 86 /*
86 * values no larger than 512. 87 * Some host controllers may have alignment requirements.
87 * 88 * We'll play it safe by requiring 512-byte alignment always.
88 * But it doesn't suffice for Wireless USB, where Bulk maxpacket
89 * values can be as large as 2048. To make that work properly
90 * will require changes to the block layer.
91 */ 89 */
92 blk_queue_update_dma_alignment(sdev->request_queue, (512 - 1)); 90 blk_queue_update_dma_alignment(sdev->request_queue, (512 - 1));
93 91