From 649f8fd1bdd0eb3830ecc32a8e6905e6925952a1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Oct 2020 09:59:49 +0000 Subject: [PATCH] dwc_otg: Minimise header and fix build warnings Delete a large amount of unused declaration from "usb.h", some of which were causing build warnings, and get the module building cleanly. Signed-off-by: Phil Elwell --- drivers/usb/host/dwc_common_port/usb.h | 664 ------------------- drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c | 10 +- drivers/usb/host/dwc_otg/dwc_otg_hcd.c | 23 +- drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c | 3 +- drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 8 +- drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 4 +- drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c | 2 +- 7 files changed, 30 insertions(+), 684 deletions(-) --- a/drivers/usb/host/dwc_common_port/usb.h +++ b/drivers/usb/host/dwc_common_port/usb.h @@ -55,12 +55,6 @@ typedef u_int8_t uByte; typedef u_int8_t uWord[2]; typedef u_int8_t uDWord[4]; -#define USETW2(w,h,l) ((w)[0] = (u_int8_t)(l), (w)[1] = (u_int8_t)(h)) -#define UCONSTW(x) { (x) & 0xff, ((x) >> 8) & 0xff } -#define UCONSTDW(x) { (x) & 0xff, ((x) >> 8) & 0xff, \ - ((x) >> 16) & 0xff, ((x) >> 24) & 0xff } - -#if 1 #define UGETW(w) ((w)[0] | ((w)[1] << 8)) #define USETW(w,v) ((w)[0] = (u_int8_t)(v), (w)[1] = (u_int8_t)((v) >> 8)) #define UGETDW(w) ((w)[0] | ((w)[1] << 8) | ((w)[2] << 16) | ((w)[3] << 24)) @@ -68,31 +62,6 @@ typedef u_int8_t uDWord[4]; (w)[1] = (u_int8_t)((v) >> 8), \ (w)[2] = (u_int8_t)((v) >> 16), \ (w)[3] = (u_int8_t)((v) >> 24)) -#else -/* - * On little-endian machines that can handle unanliged accesses - * (e.g. i386) these macros can be replaced by the following. - */ -#define UGETW(w) (*(u_int16_t *)(w)) -#define USETW(w,v) (*(u_int16_t *)(w) = (v)) -#define UGETDW(w) (*(u_int32_t *)(w)) -#define USETDW(w,v) (*(u_int32_t *)(w) = (v)) -#endif - -/* - * Macros for accessing UAS IU fields, which are big-endian - */ -#define IUSETW2(w,h,l) ((w)[0] = (u_int8_t)(h), (w)[1] = (u_int8_t)(l)) -#define IUCONSTW(x) { ((x) >> 8) & 0xff, (x) & 0xff } -#define IUCONSTDW(x) { ((x) >> 24) & 0xff, ((x) >> 16) & 0xff, \ - ((x) >> 8) & 0xff, (x) & 0xff } -#define IUGETW(w) (((w)[0] << 8) | (w)[1]) -#define IUSETW(w,v) ((w)[0] = (u_int8_t)((v) >> 8), (w)[1] = (u_int8_t)(v)) -#define IUGETDW(w) (((w)[0] << 24) | ((w)[1] << 16) | ((w)[2] << 8) | (w)[3]) -#define IUSETDW(w,v) ((w)[0] = (u_int8_t)((v) >> 24), \ - (w)[1] = (u_int8_t)((v) >> 16), \ - (w)[2] = (u_int8_t)((v) >> 8), \ - (w)[3] = (u_int8_t)(v)) #define UPACKED __attribute__((__packed__)) @@ -119,29 +88,6 @@ typedef struct { #define UT_ENDPOINT 0x02 #define UT_OTHER 0x03 -#define UT_READ_DEVICE (UT_READ | UT_STANDARD | UT_DEVICE) -#define UT_READ_INTERFACE (UT_READ | UT_STANDARD | UT_INTERFACE) -#define UT_READ_ENDPOINT (UT_READ | UT_STANDARD | UT_ENDPOINT) -#define UT_WRITE_DEVICE (UT_WRITE | UT_STANDARD | UT_DEVICE) -#define UT_WRITE_INTERFACE (UT_WRITE | UT_STANDARD | UT_INTERFACE) -#define UT_WRITE_ENDPOINT (UT_WRITE | UT_STANDARD | UT_ENDPOINT) -#define UT_READ_CLASS_DEVICE (UT_READ | UT_CLASS | UT_DEVICE) -#define UT_READ_CLASS_INTERFACE (UT_READ | UT_CLASS | UT_INTERFACE) -#define UT_READ_CLASS_OTHER (UT_READ | UT_CLASS | UT_OTHER) -#define UT_READ_CLASS_ENDPOINT (UT_READ | UT_CLASS | UT_ENDPOINT) -#define UT_WRITE_CLASS_DEVICE (UT_WRITE | UT_CLASS | UT_DEVICE) -#define UT_WRITE_CLASS_INTERFACE (UT_WRITE | UT_CLASS | UT_INTERFACE) -#define UT_WRITE_CLASS_OTHER (UT_WRITE | UT_CLASS | UT_OTHER) -#define UT_WRITE_CLASS_ENDPOINT (UT_WRITE | UT_CLASS | UT_ENDPOINT) -#define UT_READ_VENDOR_DEVICE (UT_READ | UT_VENDOR | UT_DEVICE) -#define UT_READ_VENDOR_INTERFACE (UT_READ | UT_VENDOR | UT_INTERFACE) -#define UT_READ_VENDOR_OTHER (UT_READ | UT_VENDOR | UT_OTHER) -#define UT_READ_VENDOR_ENDPOINT (UT_READ | UT_VENDOR | UT_ENDPOINT) -#define UT_WRITE_VENDOR_DEVICE (UT_WRITE | UT_VENDOR | UT_DEVICE) -#define UT_WRITE_VENDOR_INTERFACE (UT_WRITE | UT_VENDOR | UT_INTERFACE) -#define UT_WRITE_VENDOR_OTHER (UT_WRITE | UT_VENDOR | UT_OTHER) -#define UT_WRITE_VENDOR_ENDPOINT (UT_WRITE | UT_VENDOR | UT_ENDPOINT) - /* Requests */ #define UR_GET_STATUS 0x00 #define USTAT_STANDARD_STATUS 0x00 @@ -243,71 +189,6 @@ typedef struct { typedef struct { uByte bLength; uByte bDescriptorType; - uByte bDescriptorSubtype; -} UPACKED usb_descriptor_t; - -typedef struct { - uByte bLength; - uByte bDescriptorType; -} UPACKED usb_descriptor_header_t; - -typedef struct { - uByte bLength; - uByte bDescriptorType; - uWord bcdUSB; -#define UD_USB_2_0 0x0200 -#define UD_IS_USB2(d) (UGETW((d)->bcdUSB) >= UD_USB_2_0) - uByte bDeviceClass; - uByte bDeviceSubClass; - uByte bDeviceProtocol; - uByte bMaxPacketSize; - /* The fields below are not part of the initial descriptor. */ - uWord idVendor; - uWord idProduct; - uWord bcdDevice; - uByte iManufacturer; - uByte iProduct; - uByte iSerialNumber; - uByte bNumConfigurations; -} UPACKED usb_device_descriptor_t; -#define USB_DEVICE_DESCRIPTOR_SIZE 18 - -typedef struct { - uByte bLength; - uByte bDescriptorType; - uWord wTotalLength; - uByte bNumInterface; - uByte bConfigurationValue; - uByte iConfiguration; -#define UC_ATT_ONE (1 << 7) /* must be set */ -#define UC_ATT_SELFPOWER (1 << 6) /* self powered */ -#define UC_ATT_WAKEUP (1 << 5) /* can wakeup */ -#define UC_ATT_BATTERY (1 << 4) /* battery powered */ - uByte bmAttributes; -#define UC_BUS_POWERED 0x80 -#define UC_SELF_POWERED 0x40 -#define UC_REMOTE_WAKEUP 0x20 - uByte bMaxPower; /* max current in 2 mA units */ -#define UC_POWER_FACTOR 2 -} UPACKED usb_config_descriptor_t; -#define USB_CONFIG_DESCRIPTOR_SIZE 9 - -typedef struct { - uByte bLength; - uByte bDescriptorType; - uByte bInterfaceNumber; - uByte bAlternateSetting; - uByte bNumEndpoints; - uByte bInterfaceClass; - uByte bInterfaceSubClass; - uByte bInterfaceProtocol; - uByte iInterface; -} UPACKED usb_interface_descriptor_t; -#define USB_INTERFACE_DESCRIPTOR_SIZE 9 - -typedef struct { - uByte bLength; - uByte bDescriptorType; uByte bEndpointAddress; #define UE_GET_DIR(a) ((a) & 0x80) #define UE_SET_DIR(a,d) ((a) | (((d)&1) << 7)) @@ -332,27 +213,6 @@ typedef struct { } UPACKED usb_endpoint_descriptor_t; #define USB_ENDPOINT_DESCRIPTOR_SIZE 7 -typedef struct ss_endpoint_companion_descriptor { - uByte bLength; - uByte bDescriptorType; - uByte bMaxBurst; -#define USSE_GET_MAX_STREAMS(a) ((a) & 0x1f) -#define USSE_SET_MAX_STREAMS(a, b) ((a) | ((b) & 0x1f)) -#define USSE_GET_MAX_PACKET_NUM(a) ((a) & 0x03) -#define USSE_SET_MAX_PACKET_NUM(a, b) ((a) | ((b) & 0x03)) - uByte bmAttributes; - uWord wBytesPerInterval; -} UPACKED ss_endpoint_companion_descriptor_t; -#define USB_SS_ENDPOINT_COMPANION_DESCRIPTOR_SIZE 6 - -typedef struct { - uByte bLength; - uByte bDescriptorType; - uWord bString[127]; -} UPACKED usb_string_descriptor_t; -#define USB_MAX_STRING_LEN 128 -#define USB_LANGUAGE_TABLE 0 /* # of the string language id table */ - /* Hub specific request */ #define UR_GET_BUS_STATE 0x02 #define UR_CLEAR_TT_BUFFER 0x08 @@ -411,530 +271,6 @@ typedef struct { } UPACKED usb_hub_descriptor_t; #define USB_HUB_DESCRIPTOR_SIZE 9 /* includes deprecated PortPowerCtrlMask */ -typedef struct { - uByte bLength; - uByte bDescriptorType; - uWord bcdUSB; - uByte bDeviceClass; - uByte bDeviceSubClass; - uByte bDeviceProtocol; - uByte bMaxPacketSize0; - uByte bNumConfigurations; - uByte bReserved; -} UPACKED usb_device_qualifier_t; -#define USB_DEVICE_QUALIFIER_SIZE 10 - -typedef struct { - uByte bLength; - uByte bDescriptorType; - uByte bmAttributes; -#define UOTG_SRP 0x01 -#define UOTG_HNP 0x02 -} UPACKED usb_otg_descriptor_t; - -/* OTG feature selectors */ -#define UOTG_B_HNP_ENABLE 3 -#define UOTG_A_HNP_SUPPORT 4 -#define UOTG_A_ALT_HNP_SUPPORT 5 - -typedef struct { - uWord wStatus; -/* Device status flags */ -#define UDS_SELF_POWERED 0x0001 -#define UDS_REMOTE_WAKEUP 0x0002 -/* Endpoint status flags */ -#define UES_HALT 0x0001 -} UPACKED usb_status_t; - -typedef struct { - uWord wHubStatus; -#define UHS_LOCAL_POWER 0x0001 -#define UHS_OVER_CURRENT 0x0002 - uWord wHubChange; -} UPACKED usb_hub_status_t; - -typedef struct { - uWord wPortStatus; -#define UPS_CURRENT_CONNECT_STATUS 0x0001 -#define UPS_PORT_ENABLED 0x0002 -#define UPS_SUSPEND 0x0004 -#define UPS_OVERCURRENT_INDICATOR 0x0008 -#define UPS_RESET 0x0010 -#define UPS_PORT_POWER 0x0100 -#define UPS_LOW_SPEED 0x0200 -#define UPS_HIGH_SPEED 0x0400 -#define UPS_PORT_TEST 0x0800 -#define UPS_PORT_INDICATOR 0x1000 - uWord wPortChange; -#define UPS_C_CONNECT_STATUS 0x0001 -#define UPS_C_PORT_ENABLED 0x0002 -#define UPS_C_SUSPEND 0x0004 -#define UPS_C_OVERCURRENT_INDICATOR 0x0008 -#define UPS_C_PORT_RESET 0x0010 -} UPACKED usb_port_status_t; - -#ifdef _MSC_VER -#include -#endif - -/* Device class codes */ -#define UDCLASS_IN_INTERFACE 0x00 -#define UDCLASS_COMM 0x02 -#define UDCLASS_HUB 0x09 -#define UDSUBCLASS_HUB 0x00 -#define UDPROTO_FSHUB 0x00 -#define UDPROTO_HSHUBSTT 0x01 -#define UDPROTO_HSHUBMTT 0x02 -#define UDCLASS_DIAGNOSTIC 0xdc -#define UDCLASS_WIRELESS 0xe0 -#define UDSUBCLASS_RF 0x01 -#define UDPROTO_BLUETOOTH 0x01 -#define UDCLASS_VENDOR 0xff - -/* Interface class codes */ -#define UICLASS_UNSPEC 0x00 - -#define UICLASS_AUDIO 0x01 -#define UISUBCLASS_AUDIOCONTROL 1 -#define UISUBCLASS_AUDIOSTREAM 2 -#define UISUBCLASS_MIDISTREAM 3 - -#define UICLASS_CDC 0x02 /* communication */ -#define UISUBCLASS_DIRECT_LINE_CONTROL_MODEL 1 -#define UISUBCLASS_ABSTRACT_CONTROL_MODEL 2 -#define UISUBCLASS_TELEPHONE_CONTROL_MODEL 3 -#define UISUBCLASS_MULTICHANNEL_CONTROL_MODEL 4 -#define UISUBCLASS_CAPI_CONTROLMODEL 5 -#define UISUBCLASS_ETHERNET_NETWORKING_CONTROL_MODEL 6 -#define UISUBCLASS_ATM_NETWORKING_CONTROL_MODEL 7 -#define UIPROTO_CDC_AT 1 - -#define UICLASS_HID 0x03 -#define UISUBCLASS_BOOT 1 -#define UIPROTO_BOOT_KEYBOARD 1 - -#define UICLASS_PHYSICAL 0x05 - -#define UICLASS_IMAGE 0x06 - -#define UICLASS_PRINTER 0x07 -#define UISUBCLASS_PRINTER 1 -#define UIPROTO_PRINTER_UNI 1 -#define UIPROTO_PRINTER_BI 2 -#define UIPROTO_PRINTER_1284 3 - -#define UICLASS_MASS 0x08 -#define UISUBCLASS_RBC 1 -#define UISUBCLASS_SFF8020I 2 -#define UISUBCLASS_QIC157 3 -#define UISUBCLASS_UFI 4 -#define UISUBCLASS_SFF8070I 5 -#define UISUBCLASS_SCSI 6 -#define UIPROTO_MASS_CBI_I 0 -#define UIPROTO_MASS_CBI 1 -#define UIPROTO_MASS_BBB_OLD 2 /* Not in the spec anymore */ -#define UIPROTO_MASS_BBB 80 /* 'P' for the Iomega Zip drive */ - -#define UICLASS_HUB 0x09 -#define UISUBCLASS_HUB 0 -#define UIPROTO_FSHUB 0 -#define UIPROTO_HSHUBSTT 0 /* Yes, same as previous */ -#define UIPROTO_HSHUBMTT 1 - -#define UICLASS_CDC_DATA 0x0a -#define UISUBCLASS_DATA 0 -#define UIPROTO_DATA_ISDNBRI 0x30 /* Physical iface */ -#define UIPROTO_DATA_HDLC 0x31 /* HDLC */ -#define UIPROTO_DATA_TRANSPARENT 0x32 /* Transparent */ -#define UIPROTO_DATA_Q921M 0x50 /* Management for Q921 */ -#define UIPROTO_DATA_Q921 0x51 /* Data for Q921 */ -#define UIPROTO_DATA_Q921TM 0x52 /* TEI multiplexer for Q921 */ -#define UIPROTO_DATA_V42BIS 0x90 /* Data compression */ -#define UIPROTO_DATA_Q931 0x91 /* Euro-ISDN */ -#define UIPROTO_DATA_V120 0x92 /* V.24 rate adaption */ -#define UIPROTO_DATA_CAPI 0x93 /* CAPI 2.0 commands */ -#define UIPROTO_DATA_HOST_BASED 0xfd /* Host based driver */ -#define UIPROTO_DATA_PUF 0xfe /* see Prot. Unit Func. Desc.*/ -#define UIPROTO_DATA_VENDOR 0xff /* Vendor specific */ - -#define UICLASS_SMARTCARD 0x0b - -/*#define UICLASS_FIRM_UPD 0x0c*/ - -#define UICLASS_SECURITY 0x0d - -#define UICLASS_DIAGNOSTIC 0xdc - -#define UICLASS_WIRELESS 0xe0 -#define UISUBCLASS_RF 0x01 -#define UIPROTO_BLUETOOTH 0x01 - -#define UICLASS_APPL_SPEC 0xfe -#define UISUBCLASS_FIRMWARE_DOWNLOAD 1 -#define UISUBCLASS_IRDA 2 -#define UIPROTO_IRDA 0 - -#define UICLASS_VENDOR 0xff - -#define USB_HUB_MAX_DEPTH 5 - -/* - * Minimum time a device needs to be powered down to go through - * a power cycle. XXX Are these time in the spec? - */ -#define USB_POWER_DOWN_TIME 200 /* ms */ -#define USB_PORT_POWER_DOWN_TIME 100 /* ms */ - -#if 0 -/* These are the values from the spec. */ -#define USB_PORT_RESET_DELAY 10 /* ms */ -#define USB_PORT_ROOT_RESET_DELAY 50 /* ms */ -#define USB_PORT_RESET_RECOVERY 10 /* ms */ -#define USB_PORT_POWERUP_DELAY 100 /* ms */ -#define USB_SET_ADDRESS_SETTLE 2 /* ms */ -#define USB_RESUME_DELAY (20*5) /* ms */ -#define USB_RESUME_WAIT 10 /* ms */ -#define USB_RESUME_RECOVERY 10 /* ms */ -#define USB_EXTRA_POWER_UP_TIME 0 /* ms */ -#else -/* Allow for marginal (i.e. non-conforming) devices. */ -#define USB_PORT_RESET_DELAY 50 /* ms */ -#define USB_PORT_ROOT_RESET_DELAY 250 /* ms */ -#define USB_PORT_RESET_RECOVERY 250 /* ms */ -#define USB_PORT_POWERUP_DELAY 300 /* ms */ -#define USB_SET_ADDRESS_SETTLE 10 /* ms */ -#define USB_RESUME_DELAY (50*5) /* ms */ -#define USB_RESUME_WAIT 50 /* ms */ -#define USB_RESUME_RECOVERY 50 /* ms */ -#define USB_EXTRA_POWER_UP_TIME 20 /* ms */ -#endif - -#define USB_MIN_POWER 100 /* mA */ -#define USB_MAX_POWER 500 /* mA */ - -#define USB_BUS_RESET_DELAY 100 /* ms XXX?*/ - -#define USB_UNCONFIG_NO 0 -#define USB_UNCONFIG_INDEX (-1) - -/*** ioctl() related stuff ***/ - -struct usb_ctl_request { - int ucr_addr; - usb_device_request_t ucr_request; - void *ucr_data; - int ucr_flags; -#define USBD_SHORT_XFER_OK 0x04 /* allow short reads */ - int ucr_actlen; /* actual length transferred */ -}; - -struct usb_alt_interface { - int uai_config_index; - int uai_interface_index; - int uai_alt_no; -}; - -#define USB_CURRENT_CONFIG_INDEX (-1) -#define USB_CURRENT_ALT_INDEX (-1) - -struct usb_config_desc { - int ucd_config_index; - usb_config_descriptor_t ucd_desc; -}; - -struct usb_interface_desc { - int uid_config_index; - int uid_interface_index; - int uid_alt_index; - usb_interface_descriptor_t uid_desc; -}; - -struct usb_endpoint_desc { - int ued_config_index; - int ued_interface_index; - int ued_alt_index; - int ued_endpoint_index; - usb_endpoint_descriptor_t ued_desc; -}; - -struct usb_full_desc { - int ufd_config_index; - u_int ufd_size; - u_char *ufd_data; -}; - -struct usb_string_desc { - int usd_string_index; - int usd_language_id; - usb_string_descriptor_t usd_desc; -}; - -struct usb_ctl_report_desc { - int ucrd_size; - u_char ucrd_data[1024]; /* filled data size will vary */ -}; - -typedef struct { u_int32_t cookie; } usb_event_cookie_t; - -#define USB_MAX_DEVNAMES 4 -#define USB_MAX_DEVNAMELEN 16 -struct usb_device_info { - u_int8_t udi_bus; - u_int8_t udi_addr; /* device address */ - usb_event_cookie_t udi_cookie; - char udi_product[USB_MAX_STRING_LEN]; - char udi_vendor[USB_MAX_STRING_LEN]; - char udi_release[8]; - u_int16_t udi_productNo; - u_int16_t udi_vendorNo; - u_int16_t udi_releaseNo; - u_int8_t udi_class; - u_int8_t udi_subclass; - u_int8_t udi_protocol; - u_int8_t udi_config; - u_int8_t udi_speed; -#define USB_SPEED_UNKNOWN 0 -#define USB_SPEED_LOW 1 -#define USB_SPEED_FULL 2 -#define USB_SPEED_HIGH 3 -#define USB_SPEED_VARIABLE 4 -#define USB_SPEED_SUPER 5 - int udi_power; /* power consumption in mA, 0 if selfpowered */ - int udi_nports; - char udi_devnames[USB_MAX_DEVNAMES][USB_MAX_DEVNAMELEN]; - u_int8_t udi_ports[16];/* hub only: addresses of devices on ports */ -#define USB_PORT_ENABLED 0xff -#define USB_PORT_SUSPENDED 0xfe -#define USB_PORT_POWERED 0xfd -#define USB_PORT_DISABLED 0xfc -}; - -struct usb_ctl_report { - int ucr_report; - u_char ucr_data[1024]; /* filled data size will vary */ -}; - -struct usb_device_stats { - u_long uds_requests[4]; /* indexed by transfer type UE_* */ -}; - -#define WUSB_MIN_IE 0x80 -#define WUSB_WCTA_IE 0x80 -#define WUSB_WCONNECTACK_IE 0x81 -#define WUSB_WHOSTINFO_IE 0x82 -#define WUHI_GET_CA(_bmAttributes_) ((_bmAttributes_) & 0x3) -#define WUHI_CA_RECONN 0x00 -#define WUHI_CA_LIMITED 0x01 -#define WUHI_CA_ALL 0x03 -#define WUHI_GET_MLSI(_bmAttributes_) (((_bmAttributes_) & 0x38) >> 3) -#define WUSB_WCHCHANGEANNOUNCE_IE 0x83 -#define WUSB_WDEV_DISCONNECT_IE 0x84 -#define WUSB_WHOST_DISCONNECT_IE 0x85 -#define WUSB_WRELEASE_CHANNEL_IE 0x86 -#define WUSB_WWORK_IE 0x87 -#define WUSB_WCHANNEL_STOP_IE 0x88 -#define WUSB_WDEV_KEEPALIVE_IE 0x89 -#define WUSB_WISOCH_DISCARD_IE 0x8A -#define WUSB_WRESETDEVICE_IE 0x8B -#define WUSB_WXMIT_PACKET_ADJUST_IE 0x8C -#define WUSB_MAX_IE 0x8C - -/* Device Notification Types */ - -#define WUSB_DN_MIN 0x01 -#define WUSB_DN_CONNECT 0x01 -# define WUSB_DA_OLDCONN 0x00 -# define WUSB_DA_NEWCONN 0x01 -# define WUSB_DA_SELF_BEACON 0x02 -# define WUSB_DA_DIR_BEACON 0x04 -# define WUSB_DA_NO_BEACON 0x06 -#define WUSB_DN_DISCONNECT 0x02 -#define WUSB_DN_EPRDY 0x03 -#define WUSB_DN_MASAVAILCHANGED 0x04 -#define WUSB_DN_REMOTEWAKEUP 0x05 -#define WUSB_DN_SLEEP 0x06 -#define WUSB_DN_ALIVE 0x07 -#define WUSB_DN_MAX 0x07 - -#ifdef _MSC_VER -#include -#endif - -/* WUSB Handshake Data. Used during the SET/GET HANDSHAKE requests */ -typedef struct wusb_hndshk_data { - uByte bMessageNumber; - uByte bStatus; - uByte tTKID[3]; - uByte bReserved; - uByte CDID[16]; - uByte Nonce[16]; - uByte MIC[8]; -} UPACKED wusb_hndshk_data_t; -#define WUSB_HANDSHAKE_LEN_FOR_MIC 38 - -/* WUSB Connection Context */ -typedef struct wusb_conn_context { - uByte CHID [16]; - uByte CDID [16]; - uByte CK [16]; -} UPACKED wusb_conn_context_t; - -/* WUSB Security Descriptor */ -typedef struct wusb_security_desc { - uByte bLength; - uByte bDescriptorType; - uWord wTotalLength; - uByte bNumEncryptionTypes; -} UPACKED wusb_security_desc_t; - -/* WUSB Encryption Type Descriptor */ -typedef struct wusb_encrypt_type_desc { - uByte bLength; - uByte bDescriptorType; - - uByte bEncryptionType; -#define WUETD_UNSECURE 0 -#define WUETD_WIRED 1 -#define WUETD_CCM_1 2 -#define WUETD_RSA_1 3 - - uByte bEncryptionValue; - uByte bAuthKeyIndex; -} UPACKED wusb_encrypt_type_desc_t; - -/* WUSB Key Descriptor */ -typedef struct wusb_key_desc { - uByte bLength; - uByte bDescriptorType; - uByte tTKID[3]; - uByte bReserved; - uByte KeyData[1]; /* variable length */ -} UPACKED wusb_key_desc_t; - -/* WUSB BOS Descriptor (Binary device Object Store) */ -typedef struct wusb_bos_desc { - uByte bLength; - uByte bDescriptorType; - uWord wTotalLength; - uByte bNumDeviceCaps; -} UPACKED wusb_bos_desc_t; - -#define USB_DEVICE_CAPABILITY_20_EXTENSION 0x02 -typedef struct usb_dev_cap_20_ext_desc { - uByte bLength; - uByte bDescriptorType; - uByte bDevCapabilityType; -#define USB_20_EXT_LPM 0x02 - uDWord bmAttributes; -} UPACKED usb_dev_cap_20_ext_desc_t; - -#define USB_DEVICE_CAPABILITY_SS_USB 0x03 -typedef struct usb_dev_cap_ss_usb { - uByte bLength; - uByte bDescriptorType; - uByte bDevCapabilityType; -#define USB_DC_SS_USB_LTM_CAPABLE 0x02 - uByte bmAttributes; -#define USB_DC_SS_USB_SPEED_SUPPORT_LOW 0x01 -#define USB_DC_SS_USB_SPEED_SUPPORT_FULL 0x02 -#define USB_DC_SS_USB_SPEED_SUPPORT_HIGH 0x04 -#define USB_DC_SS_USB_SPEED_SUPPORT_SS 0x08 - uWord wSpeedsSupported; - uByte bFunctionalitySupport; - uByte bU1DevExitLat; - uWord wU2DevExitLat; -} UPACKED usb_dev_cap_ss_usb_t; - -#define USB_DEVICE_CAPABILITY_CONTAINER_ID 0x04 -typedef struct usb_dev_cap_container_id { - uByte bLength; - uByte bDescriptorType; - uByte bDevCapabilityType; - uByte bReserved; - uByte containerID[16]; -} UPACKED usb_dev_cap_container_id_t; - -/* Device Capability Type Codes */ -#define WUSB_DEVICE_CAPABILITY_WIRELESS_USB 0x01 - -/* Device Capability Descriptor */ -typedef struct wusb_dev_cap_desc { - uByte bLength; - uByte bDescriptorType; - uByte bDevCapabilityType; - uByte caps[1]; /* Variable length */ -} UPACKED wusb_dev_cap_desc_t; - -/* Device Capability Descriptor */ -typedef struct wusb_dev_cap_uwb_desc { - uByte bLength; - uByte bDescriptorType; - uByte bDevCapabilityType; - uByte bmAttributes; - uWord wPHYRates; /* Bitmap */ - uByte bmTFITXPowerInfo; - uByte bmFFITXPowerInfo; - uWord bmBandGroup; - uByte bReserved; -} UPACKED wusb_dev_cap_uwb_desc_t; - -/* Wireless USB Endpoint Companion Descriptor */ -typedef struct wusb_endpoint_companion_desc { - uByte bLength; - uByte bDescriptorType; - uByte bMaxBurst; - uByte bMaxSequence; - uWord wMaxStreamDelay; - uWord wOverTheAirPacketSize; - uByte bOverTheAirInterval; - uByte bmCompAttributes; -} UPACKED wusb_endpoint_companion_desc_t; - -/* Wireless USB Numeric Association M1 Data Structure */ -typedef struct wusb_m1_data { - uByte version; - uWord langId; - uByte deviceFriendlyNameLength; - uByte sha_256_m3[32]; - uByte deviceFriendlyName[256]; -} UPACKED wusb_m1_data_t; - -typedef struct wusb_m2_data { - uByte version; - uWord langId; - uByte hostFriendlyNameLength; - uByte pkh[384]; - uByte hostFriendlyName[256]; -} UPACKED wusb_m2_data_t; - -typedef struct wusb_m3_data { - uByte pkd[384]; - uByte nd; -} UPACKED wusb_m3_data_t; - -typedef struct wusb_m4_data { - uDWord _attributeTypeIdAndLength_1; - uWord associationTypeId; - - uDWord _attributeTypeIdAndLength_2; - uWord associationSubTypeId; - - uDWord _attributeTypeIdAndLength_3; - uDWord length; - - uDWord _attributeTypeIdAndLength_4; - uDWord associationStatus; - - uDWord _attributeTypeIdAndLength_5; - uByte chid[16]; - - uDWord _attributeTypeIdAndLength_6; - uByte cdid[16]; - - uDWord _attributeTypeIdAndLength_7; - uByte bandGroups[2]; -} UPACKED wusb_m4_data_t; - #ifdef _MSC_VER #include #endif --- a/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c +++ b/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c @@ -240,7 +240,8 @@ static int notrace fiq_increment_dma_buf hcdma_data_t hcdma; int i = st->channel[n].dma_info.index; int len; - struct fiq_dma_blob *blob = (struct fiq_dma_blob *) st->dma_base; + struct fiq_dma_blob *blob = + (struct fiq_dma_blob *)(uintptr_t)st->dma_base; len = fiq_get_xfer_len(st, n); fiq_print(FIQDBG_INT, st, "LEN: %03d", len); @@ -249,7 +250,7 @@ static int notrace fiq_increment_dma_buf if (i > 6) BUG(); - hcdma.d32 = (dma_addr_t) &blob->channel[n].index[i].buf[0]; + hcdma.d32 = (u32)(uintptr_t)&blob->channel[n].index[i].buf[0]; FIQ_WRITE(st->dwc_regs_base + HC_START + (HC_OFFSET * n) + HC_DMA, hcdma.d32); st->channel[n].dma_info.index = i; return 0; @@ -289,7 +290,8 @@ static int notrace fiq_iso_out_advance(s hcsplt_data_t hcsplt; hctsiz_data_t hctsiz; hcdma_data_t hcdma; - struct fiq_dma_blob *blob = (struct fiq_dma_blob *) st->dma_base; + struct fiq_dma_blob *blob = + (struct fiq_dma_blob *)(uintptr_t)st->dma_base; int last = 0; int i = st->channel[n].dma_info.index; @@ -301,7 +303,7 @@ static int notrace fiq_iso_out_advance(s last = 1; /* New DMA address - address of bounce buffer referred to in index */ - hcdma.d32 = (dma_addr_t) blob->channel[n].index[i].buf; + hcdma.d32 = (u32)(uintptr_t)blob->channel[n].index[i].buf; //hcdma.d32 = FIQ_READ(st->dwc_regs_base + HC_START + (HC_OFFSET * n) + HC_DMA); //hcdma.d32 += st->channel[n].dma_info.slot_len[i]; fiq_print(FIQDBG_INT, st, "LAST: %01d ", last); --- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c +++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c @@ -1270,7 +1270,8 @@ static void assign_and_init_hc(dwc_otg_h hc->multi_count = 1; if (hcd->core_if->dma_enable) { - hc->xfer_buff = (uint8_t *) urb->dma + urb->actual_length; + hc->xfer_buff = + (uint8_t *)(uintptr_t)urb->dma + urb->actual_length; /* For non-dword aligned case */ if (((unsigned long)hc->xfer_buff & 0x3) @@ -1314,7 +1315,8 @@ static void assign_and_init_hc(dwc_otg_h hc->ep_is_in = 0; hc->data_pid_start = DWC_OTG_HC_PID_SETUP; if (hcd->core_if->dma_enable) { - hc->xfer_buff = (uint8_t *) urb->setup_dma; + hc->xfer_buff = + (uint8_t *)(uintptr_t)urb->setup_dma; } else { hc->xfer_buff = (uint8_t *) urb->setup_packet; } @@ -1362,7 +1364,8 @@ static void assign_and_init_hc(dwc_otg_h hc->xfer_len = 0; if (hcd->core_if->dma_enable) { - hc->xfer_buff = (uint8_t *) hcd->status_buf_dma; + hc->xfer_buff = (uint8_t *) + (uintptr_t)hcd->status_buf_dma; } else { hc->xfer_buff = (uint8_t *) hcd->status_buf; } @@ -1390,7 +1393,7 @@ static void assign_and_init_hc(dwc_otg_h frame_desc->status = 0; if (hcd->core_if->dma_enable) { - hc->xfer_buff = (uint8_t *) urb->dma; + hc->xfer_buff = (uint8_t *)(uintptr_t)urb->dma; } else { hc->xfer_buff = (uint8_t *) urb->buf; } @@ -1571,8 +1574,10 @@ int fiq_fsm_setup_periodic_dma(dwc_otg_h * Pointer arithmetic on hcd->fiq_state->dma_base (a dma_addr_t) * to point it to the correct offset in the allocated buffers. */ - blob = (struct fiq_dma_blob *) hcd->fiq_state->dma_base; - st->hcdma_copy.d32 = (dma_addr_t) blob->channel[hc->hc_num].index[0].buf; + blob = (struct fiq_dma_blob *) + (uintptr_t)hcd->fiq_state->dma_base; + st->hcdma_copy.d32 =(u32)(uintptr_t) + blob->channel[hc->hc_num].index[0].buf; /* Calculate the max number of CSPLITS such that the FIQ can time out * a transaction if it fails. @@ -1627,8 +1632,10 @@ int fiq_fsm_setup_periodic_dma(dwc_otg_h * dma_addr_t) to point it to the correct offset in the * allocated buffers. */ - blob = (struct fiq_dma_blob *) hcd->fiq_state->dma_base; - st->hcdma_copy.d32 = (dma_addr_t) blob->channel[hc->hc_num].index[0].buf; + blob = (struct fiq_dma_blob *) + (uintptr_t)hcd->fiq_state->dma_base; + st->hcdma_copy.d32 = (u32)(uintptr_t) + blob->channel[hc->hc_num].index[0].buf; /* fixup xfersize to the actual packet size */ st->hctsiz_copy.b.pid = 0; --- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c +++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c @@ -620,7 +620,8 @@ static void init_non_isoc_dma_desc(dwc_o if (n_desc) { /* SG request - more than 1 QTDs */ - hc->xfer_buff = (uint8_t *)qtd->urb->dma + qtd->urb->actual_length; + hc->xfer_buff = (uint8_t *)(uintptr_t)qtd->urb->dma + + qtd->urb->actual_length; hc->xfer_len = qtd->urb->length - qtd->urb->actual_length; } --- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c +++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c @@ -1857,10 +1857,10 @@ static int32_t handle_hc_ahberr_intr(dwc DWC_ERROR(" Max packet size: %d\n", dwc_otg_hcd_get_mps(&urb->pipe_info)); DWC_ERROR(" Data buffer length: %d\n", urb->length); - DWC_ERROR(" Transfer buffer: %p, Transfer DMA: %p\n", - urb->buf, (void *)urb->dma); - DWC_ERROR(" Setup buffer: %p, Setup DMA: %p\n", - urb->setup_packet, (void *)urb->setup_dma); + DWC_ERROR(" Transfer buffer: %p, Transfer DMA: %pad\n", + urb->buf, &urb->dma); + DWC_ERROR(" Setup buffer: %p, Setup DMA: %pad\n", + urb->setup_packet, &urb->setup_dma); DWC_ERROR(" Interval: %d\n", urb->interval); /* Core haltes the channel for Descriptor DMA mode */ --- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c +++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c @@ -482,8 +482,8 @@ static void hcd_init_fiq(void *cookie) otg_dev->os_dep.mphi_base + 0x1f0; dwc_otg_hcd->fiq_state->mphi_regs.swirq_clr = otg_dev->os_dep.mphi_base + 0x1f4; - DWC_WARN("Fake MPHI regs_base at 0x%08x", - (int)dwc_otg_hcd->fiq_state->mphi_regs.base); + DWC_WARN("Fake MPHI regs_base at %px", + dwc_otg_hcd->fiq_state->mphi_regs.base); } else { dwc_otg_hcd->fiq_state->mphi_regs.ctrl = otg_dev->os_dep.mphi_base + 0x4c; --- a/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c +++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c @@ -3377,7 +3377,7 @@ void predict_nextep_seq( dwc_otg_core_if dtknq1_data_t dtknqr1; uint32_t in_tkn_epnums[4]; uint8_t seqnum[MAX_EPS_CHANNELS]; - uint8_t intkn_seq[TOKEN_Q_DEPTH]; + uint8_t intkn_seq[1 << 5]; grstctl_t resetctl = {.d32 = 0 }; uint8_t temp; int ndx = 0;