Merge 3.18-rc4 into usb-next.
This resolves a conflict in drivers/usb/host/Kconfig Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
@@ -52,7 +52,7 @@ int usb_stor_euscsi_init(struct us_data *us)
|
||||
us->iobuf[0] = 0x1;
|
||||
result = usb_stor_control_msg(us, us->send_ctrl_pipe,
|
||||
0x0C, USB_RECIP_INTERFACE | USB_TYPE_VENDOR,
|
||||
0x01, 0x0, us->iobuf, 0x1, USB_CTRL_SET_TIMEOUT);
|
||||
0x01, 0x0, us->iobuf, 0x1, 5 * HZ);
|
||||
usb_stor_dbg(us, "-- result is %d\n", result);
|
||||
|
||||
return 0;
|
||||
@@ -100,7 +100,7 @@ int usb_stor_huawei_e220_init(struct us_data *us)
|
||||
result = usb_stor_control_msg(us, us->send_ctrl_pipe,
|
||||
USB_REQ_SET_FEATURE,
|
||||
USB_TYPE_STANDARD | USB_RECIP_DEVICE,
|
||||
0x01, 0x0, NULL, 0x0, 1000);
|
||||
0x01, 0x0, NULL, 0x0, 1 * HZ);
|
||||
usb_stor_dbg(us, "Huawei mode set result is %d\n", result);
|
||||
return 0;
|
||||
}
|
||||
|
@@ -626,6 +626,7 @@ static int config_autodelink_after_power_on(struct us_data *us)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
static int config_autodelink_before_power_down(struct us_data *us)
|
||||
{
|
||||
struct rts51x_chip *chip = (struct rts51x_chip *)(us->extra);
|
||||
@@ -716,6 +717,7 @@ static void fw5895_init(struct us_data *us)
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_REALTEK_AUTOPM
|
||||
static void fw5895_set_mmc_wp(struct us_data *us)
|
||||
|
@@ -1129,6 +1129,31 @@ int usb_stor_Bulk_transport(struct scsi_cmnd *srb, struct us_data *us)
|
||||
*/
|
||||
if (result == USB_STOR_XFER_LONG)
|
||||
fake_sense = 1;
|
||||
|
||||
/*
|
||||
* Sometimes a device will mistakenly skip the data phase
|
||||
* and go directly to the status phase without sending a
|
||||
* zero-length packet. If we get a 13-byte response here,
|
||||
* check whether it really is a CSW.
|
||||
*/
|
||||
if (result == USB_STOR_XFER_SHORT &&
|
||||
srb->sc_data_direction == DMA_FROM_DEVICE &&
|
||||
transfer_length - scsi_get_resid(srb) ==
|
||||
US_BULK_CS_WRAP_LEN) {
|
||||
struct scatterlist *sg = NULL;
|
||||
unsigned int offset = 0;
|
||||
|
||||
if (usb_stor_access_xfer_buf((unsigned char *) bcs,
|
||||
US_BULK_CS_WRAP_LEN, srb, &sg,
|
||||
&offset, FROM_XFER_BUF) ==
|
||||
US_BULK_CS_WRAP_LEN &&
|
||||
bcs->Signature ==
|
||||
cpu_to_le32(US_BULK_CS_SIGN)) {
|
||||
usb_stor_dbg(us, "Device skipped data phase\n");
|
||||
scsi_set_resid(srb, transfer_length);
|
||||
goto skipped_data_phase;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* See flow chart on pg 15 of the Bulk Only Transport spec for
|
||||
@@ -1164,6 +1189,7 @@ int usb_stor_Bulk_transport(struct scsi_cmnd *srb, struct us_data *us)
|
||||
if (result != USB_STOR_XFER_GOOD)
|
||||
return USB_STOR_TRANSPORT_ERROR;
|
||||
|
||||
skipped_data_phase:
|
||||
/* check bulk status */
|
||||
residue = le32_to_cpu(bcs->Residue);
|
||||
usb_stor_dbg(us, "Bulk Status S 0x%x T 0x%x R %u Stat 0x%x\n",
|
||||
|
@@ -54,6 +54,20 @@ UNUSUAL_DEV(0x0bc2, 0x3312, 0x0000, 0x9999,
|
||||
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||
US_FL_NO_ATA_1X),
|
||||
|
||||
/* Reported-by: Hans de Goede <hdegoede@redhat.com> */
|
||||
UNUSUAL_DEV(0x0bc2, 0x3320, 0x0000, 0x9999,
|
||||
"Seagate",
|
||||
"Expansion Desk",
|
||||
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||
US_FL_NO_ATA_1X),
|
||||
|
||||
/* Reported-by: Bogdan Mihalcea <bogdan.mihalcea@infim.ro> */
|
||||
UNUSUAL_DEV(0x0bc2, 0xa003, 0x0000, 0x9999,
|
||||
"Seagate",
|
||||
"Backup Plus",
|
||||
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||
US_FL_NO_ATA_1X),
|
||||
|
||||
/* https://bbs.archlinux.org/viewtopic.php?id=183190 */
|
||||
UNUSUAL_DEV(0x0bc2, 0xab20, 0x0000, 0x9999,
|
||||
"Seagate",
|
||||
@@ -61,6 +75,13 @@ UNUSUAL_DEV(0x0bc2, 0xab20, 0x0000, 0x9999,
|
||||
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||
US_FL_NO_ATA_1X),
|
||||
|
||||
/* https://bbs.archlinux.org/viewtopic.php?id=183190 */
|
||||
UNUSUAL_DEV(0x0bc2, 0xab21, 0x0000, 0x9999,
|
||||
"Seagate",
|
||||
"Backup+ BK",
|
||||
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||
US_FL_NO_ATA_1X),
|
||||
|
||||
/* Reported-by: Claudio Bizzarri <claudio.bizzarri@gmail.com> */
|
||||
UNUSUAL_DEV(0x152d, 0x0567, 0x0000, 0x9999,
|
||||
"JMicron",
|
||||
@@ -75,3 +96,10 @@ UNUSUAL_DEV(0x174c, 0x5106, 0x0000, 0x9999,
|
||||
"ASM1051",
|
||||
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||
US_FL_IGNORE_UAS),
|
||||
|
||||
/* Reported-by: Hans de Goede <hdegoede@redhat.com> */
|
||||
UNUSUAL_DEV(0x2109, 0x0711, 0x0000, 0x9999,
|
||||
"VIA",
|
||||
"VL711",
|
||||
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||
US_FL_NO_ATA_1X),
|
||||
|
Reference in New Issue
Block a user