Hi,

Alan Stern <st...@rowland.harvard.edu> writes:
> On Wed, 4 Nov 2015, Felipe Balbi wrote:
>
>> USB3 devices, because they are much newer, have much
>> less chance of having issues with larger transfers.
>> 
>> We still keep a limit because anything above 2048
>> sectors really rendered negligible speed
>> improvements, so we will simply ignore
>> that. Transferring 1MiB should already give us
>> pretty good performance.
>> 
>> Signed-off-by: Felipe Balbi <ba...@ti.com>
>> ---
>>  drivers/usb/storage/scsiglue.c | 16 +++++++++++-----
>>  drivers/usb/storage/usb.c      |  4 ++++
>>  include/linux/usb_usual.h      |  2 ++
>>  3 files changed, 17 insertions(+), 5 deletions(-)
>> 
>> diff --git a/drivers/usb/storage/scsiglue.c b/drivers/usb/storage/scsiglue.c
>> index 00aadf3a3857..bda2b3c9ae42 100644
>> --- a/drivers/usb/storage/scsiglue.c
>> +++ b/drivers/usb/storage/scsiglue.c
>> @@ -115,13 +115,19 @@ static int slave_configure(struct scsi_device *sdev)
>>  {
>>      struct us_data *us = host_to_us(sdev->host);
>>  
>> -    /* Many devices have trouble transferring more than 32KB at a time,
>> -     * while others have trouble with more than 64K. At this time we
>> -     * are limiting both to 32K (64 sectores).
>> -     */
>> -    if (us->fflags & (US_FL_MAX_SECTORS_64 | US_FL_MAX_SECTORS_MIN)) {
>> +    if (us->fflags & US_FL_USB3) {
>
> ...
>
>> --- a/include/linux/usb_usual.h
>> +++ b/include/linux/usb_usual.h
>> @@ -79,6 +79,8 @@
>>              /* Cannot handle MI_REPORT_SUPPORTED_OPERATION_CODES */ \
>>      US_FLAG(MAX_SECTORS_240,        0x08000000)             \
>>              /* Sets max_sectors to 240 */                   \
>> +    US_FLAG(USB3,           0x10000000)                     \
>> +            /* This is a USB3 Storage Device */             \
>
> This doesn't need to be stored as one of the usb-storage flags.  And
> since we are close to running out of flag bits (on 32-bit
> architectures), it would be better not to use one of them for this.
>
> The test above can be rewritten as:
>
>       if (us->pusb_dev->speed >= USB_SPEED_SUPER)
>
> Since it gets used in only this one place and it's not on a hot path, 
> this is how it should be done

cool, this is much better. Fixed. I'll wait another day or two before
resending. It's the beginning of the merge window anyway.

-- 
balbi

Attachment: signature.asc
Description: PGP signature

Reply via email to