Merge tag 'usb-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB updates from Greg KH: "Here's the big USB patchset for 4.2-rc1. As is normal these days, the majority of changes are in the gadget drivers, with a bunch of other small driver changes. All of these have been in linux-next with no reported issues" * tag 'usb-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (175 commits) usb: dwc3: Use ASCII space in Kconfig usb: chipidea: add work-around for Marvell HSIC PHY startup usb: chipidea: allow multiple instances to use default ci_default_pdata dt-bindings: Consolidate ChipIdea USB ci13xxx bindings phy: add Marvell HSIC 28nm PHY phy: Add Marvell USB 2.0 OTG 28nm PHY dt-bindings: Add Marvell PXA1928 USB and HSIC PHY bindings USB: ssb: use devm_kzalloc USB: ssb: fix error handling in ssb_hcd_create_pdev() usb: isp1760: check for null return from kzalloc cdc-acm: Add support of ATOL FPrint fiscal printers usb: chipidea: usbmisc_imx: Remove unneeded semicolon USB: usbtmc: add device quirk for Rigol DS6104 USB: serial: mos7840: Use setup_timer phy: twl4030-usb: add ABI documentation phy: twl4030-usb: remove incorrect pm_runtime_get_sync() in probe function. phy: twl4030-usb: remove pointless 'suspended' test in 'suspend' callback. phy: twl4030-usb: make runtime pm more reliable. drivers:usb:fsl: Fix compilation error for fsl ehci drv usb: renesas_usbhs: Don't disable the pipe if Control write status stage ...
This commit is contained in:
@@ -456,17 +456,13 @@ static int write_info(struct Scsi_Host *host, char *buffer, int length)
|
||||
return length;
|
||||
}
|
||||
|
||||
/* we use this macro to help us write into the buffer */
|
||||
#undef SPRINTF
|
||||
#define SPRINTF(args...) seq_printf(m, ## args)
|
||||
|
||||
static int show_info (struct seq_file *m, struct Scsi_Host *host)
|
||||
{
|
||||
struct us_data *us = host_to_us(host);
|
||||
const char *string;
|
||||
|
||||
/* print the controller name */
|
||||
SPRINTF(" Host scsi%d: usb-storage\n", host->host_no);
|
||||
seq_printf(m, " Host scsi%d: usb-storage\n", host->host_no);
|
||||
|
||||
/* print product, vendor, and serial number strings */
|
||||
if (us->pusb_dev->manufacturer)
|
||||
@@ -475,26 +471,26 @@ static int show_info (struct seq_file *m, struct Scsi_Host *host)
|
||||
string = us->unusual_dev->vendorName;
|
||||
else
|
||||
string = "Unknown";
|
||||
SPRINTF(" Vendor: %s\n", string);
|
||||
seq_printf(m, " Vendor: %s\n", string);
|
||||
if (us->pusb_dev->product)
|
||||
string = us->pusb_dev->product;
|
||||
else if (us->unusual_dev->productName)
|
||||
string = us->unusual_dev->productName;
|
||||
else
|
||||
string = "Unknown";
|
||||
SPRINTF(" Product: %s\n", string);
|
||||
seq_printf(m, " Product: %s\n", string);
|
||||
if (us->pusb_dev->serial)
|
||||
string = us->pusb_dev->serial;
|
||||
else
|
||||
string = "None";
|
||||
SPRINTF("Serial Number: %s\n", string);
|
||||
seq_printf(m, "Serial Number: %s\n", string);
|
||||
|
||||
/* show the protocol and transport */
|
||||
SPRINTF(" Protocol: %s\n", us->protocol_name);
|
||||
SPRINTF(" Transport: %s\n", us->transport_name);
|
||||
seq_printf(m, " Protocol: %s\n", us->protocol_name);
|
||||
seq_printf(m, " Transport: %s\n", us->transport_name);
|
||||
|
||||
/* show the device flags */
|
||||
SPRINTF(" Quirks:");
|
||||
seq_printf(m, " Quirks:");
|
||||
|
||||
#define US_FLAG(name, value) \
|
||||
if (us->fflags & value) seq_printf(m, " " #name);
|
||||
@@ -540,7 +536,7 @@ static struct device_attribute *sysfs_device_attr_list[] = {
|
||||
* this defines our host template, with which we'll allocate hosts
|
||||
*/
|
||||
|
||||
struct scsi_host_template usb_stor_host_template = {
|
||||
static const struct scsi_host_template usb_stor_host_template = {
|
||||
/* basic userland interface stuff */
|
||||
.name = "usb-storage",
|
||||
.proc_name = "usb-storage",
|
||||
@@ -591,6 +587,16 @@ struct scsi_host_template usb_stor_host_template = {
|
||||
.module = THIS_MODULE
|
||||
};
|
||||
|
||||
void usb_stor_host_template_init(struct scsi_host_template *sht,
|
||||
const char *name, struct module *owner)
|
||||
{
|
||||
*sht = usb_stor_host_template;
|
||||
sht->name = name;
|
||||
sht->proc_name = name;
|
||||
sht->module = owner;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(usb_stor_host_template_init);
|
||||
|
||||
/* To Report "Illegal Request: Invalid Field in CDB */
|
||||
unsigned char usb_stor_sense_invalidCDB[18] = {
|
||||
[0] = 0x70, /* current error */
|
||||
|
Reference in New Issue
Block a user