On 05/18/2017 04:08 AM, Yuyang Du wrote: > From: Yuyang Du <yuyang.du@xxxxxxxxx> > > Each vhci has 2*VHCI_HC_PORTS ports, in which VHCI_HC_PORTS > ports are HighSpeed (or below), and VHCI_HC_PORTS are SuperSpeed. > This new macro VHCI_PORTS reflects this configuration. > > Signed-off-by: Yuyang Du <yuyang.du@xxxxxxxxx> Acked-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx> thanks, -- Shuah > --- > drivers/usb/usbip/vhci.h | 5 ++++- > drivers/usb/usbip/vhci_sysfs.c | 10 +++++----- > 2 files changed, 9 insertions(+), 6 deletions(-) > > diff --git a/drivers/usb/usbip/vhci.h b/drivers/usb/usbip/vhci.h > index db28eb5..5cfb59e 100644 > --- a/drivers/usb/usbip/vhci.h > +++ b/drivers/usb/usbip/vhci.h > @@ -84,6 +84,9 @@ enum hub_speed { > #define VHCI_HC_PORTS 8 > #endif > > +/* Each VHCI has 2 hubs (USB2 and USB3), each has VHCI_HC_PORTS ports */ > +#define VHCI_PORTS (VHCI_HC_PORTS*2) > + > #ifdef CONFIG_USBIP_VHCI_NR_HCS > #define VHCI_NR_HCS CONFIG_USBIP_VHCI_NR_HCS > #else > @@ -145,7 +148,7 @@ static inline __u32 port_to_rhport(__u32 port) > > static inline int port_to_pdev_nr(__u32 port) > { > - return port / (VHCI_HC_PORTS * 2); > + return port / VHCI_PORTS; > } > > static inline struct vhci_hcd *hcd_to_vhci_hcd(struct usb_hcd *hcd) > diff --git a/drivers/usb/usbip/vhci_sysfs.c b/drivers/usb/usbip/vhci_sysfs.c > index 3ad68ff..5778b64 100644 > --- a/drivers/usb/usbip/vhci_sysfs.c > +++ b/drivers/usb/usbip/vhci_sysfs.c > @@ -92,7 +92,7 @@ static ssize_t status_show_vhci(int pdev_nr, char *out) > > spin_lock(&vdev->ud.lock); > port_show_vhci(&out, HUB_SPEED_HIGH, > - pdev_nr * VHCI_HC_PORTS * 2 + i, vdev); > + pdev_nr * VHCI_PORTS + i, vdeshuahkh@xxxxxxxxxxxxxxxx); > spin_unlock(&vdev->ud.lock); > } > > @@ -101,7 +101,7 @@ static ssize_t status_show_vhci(int pdev_nr, char *out) > > spin_lock(&vdev->ud.lock); > port_show_vhci(&out, HUB_SPEED_SUPER, > - pdev_nr * VHCI_HC_PORTS * 2 + VHCI_HC_PORTS + i, vdev); > + pdev_nr * VHCI_PORTS + VHCI_HC_PORTS + i, vdev); > spin_unlock(&vdev->ud.lock); > } > > @@ -117,7 +117,7 @@ static ssize_t status_show_not_ready(int pdev_nr, char *out) > > for (i = 0; i < VHCI_HC_PORTS; i++) { > out += sprintf(out, "hs %04u %03u ", > - (pdev_nr * VHCI_HC_PORTS * 2) + i, > + (pdev_nr * VHCI_PORTS) + i, > VDEV_ST_NOTASSIGNED); > out += sprintf(out, "000 00000000 0000000000000000 0-0"); > out += sprintf(out, "\n"); > @@ -125,7 +125,7 @@ static ssize_t status_show_not_ready(int pdev_nr, char *out) > > for (i = 0; i < VHCI_HC_PORTS; i++) { > out += sprintf(out, "ss %04u %03u ", > - (pdev_nr * VHCI_HC_PORTS * 2) + VHCI_HC_PORTS + i, > + (pdev_nr * VHCI_PORTS) + VHCI_HC_PORTS + i, > VDEV_ST_NOTASSIGNED); > out += sprintf(out, "000 00000000 0000000000000000 0-0"); > out += sprintf(out, "\n"); > @@ -176,7 +176,7 @@ static ssize_t nports_show(struct device *dev, struct device_attribute *attr, > /* > * Half the ports are for SPEED_HIGH and half for SPEED_SUPER, thus the * 2. > */ > - out += sprintf(out, "%d\n", VHCI_HC_PORTS * vhci_num_controllers * 2); > + out += sprintf(out, "%d\n", VHCI_PORTS * vhci_num_controllers); > return out - s; > } > static DEVICE_ATTR_RO(nports); > -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html