diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-08 13:03:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-08 13:03:52 -0400 |
commit | 132d68d37d33f1d0b9c1f507c8b4d64c27ecec8a (patch) | |
tree | b3c05972e5579e1574873fe745fb1358c62a269c /drivers/usb/storage/scsiglue.c | |
parent | 80f232121b69cc69a31ccb2b38c1665d770b0710 (diff) | |
parent | 3515468a87a47781f6af818773650513ff14656a (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.c | 26 |
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) | |||
65 | static int slave_alloc (struct scsi_device *sdev) | 65 | static 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 | ||