xhci_hcdRegular
4.4: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
int event_ring_max;
int addr_64;
int page_size;
int page_shift;
int msix_count;
struct msix_entry *msix_entries;
struct clk *clk;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct timer_list cmd_timer;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct completion addr_dev;
int slot_id;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
int error_bitmask;
unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_bus_state bus_state[2];
u8 *port_array;
__le32 **usb3_ports;
unsigned int num_usb3_ports;
__le32 **usb2_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int num_usb2_ports;
unsigned int sw_lpm_support;
unsigned int hw_lpm_support;
u32 *ext_caps;
unsigned int num_ext_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
};
4.8: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
int event_ring_max;
int addr_64;
int page_size;
int page_shift;
int msix_count;
struct msix_entry *msix_entries;
struct clk *clk;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct timer_list cmd_timer;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct completion addr_dev;
int slot_id;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
int error_bitmask;
unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_bus_state bus_state[2];
u8 *port_array;
__le32 **usb3_ports;
unsigned int num_usb3_ports;
__le32 **usb2_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int num_usb2_ports;
unsigned int sw_lpm_support;
unsigned int hw_lpm_support;
u32 *ext_caps;
unsigned int num_ext_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
long unsigned int priv[0];
};
4.10: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
int event_ring_max;
int addr_64;
int page_size;
int page_shift;
int msix_count;
struct msix_entry *msix_entries;
struct clk *clk;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_bus_state bus_state[2];
u8 *port_array;
__le32 **usb3_ports;
unsigned int num_usb3_ports;
__le32 **usb2_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int num_usb2_ports;
unsigned int sw_lpm_support;
unsigned int hw_lpm_support;
u32 *ext_caps;
unsigned int num_ext_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
long unsigned int priv[0];
};
4.13: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_bus_state bus_state[2];
u8 *port_array;
__le32 **usb3_ports;
unsigned int num_usb3_ports;
__le32 **usb2_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int num_usb2_ports;
unsigned int sw_lpm_support;
unsigned int hw_lpm_support;
u32 *ext_caps;
unsigned int num_ext_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
long unsigned int priv[0];
};
4.15: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_bus_state bus_state[2];
u8 *port_array;
__le32 **usb3_ports;
unsigned int num_usb3_ports;
__le32 **usb2_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int num_usb2_ports;
unsigned int sw_lpm_support;
unsigned int hw_lpm_support;
u32 *ext_caps;
unsigned int num_ext_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
4.18: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct clk *reg_clk;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
long long unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_bus_state bus_state[2];
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int sw_lpm_support;
unsigned int hw_lpm_support;
u32 *ext_caps;
unsigned int num_ext_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
5.0: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct clk *reg_clk;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
long long unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int hw_lpm_support;
unsigned int broken_suspend;
u32 *ext_caps;
unsigned int num_ext_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
5.3: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct clk *reg_clk;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
long long unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int hw_lpm_support;
unsigned int broken_suspend;
u32 *ext_caps;
unsigned int num_ext_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
5.4: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct clk *reg_clk;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
long long unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int hw_lpm_support;
unsigned int broken_suspend;
u32 *ext_caps;
unsigned int num_ext_caps;
struct xhci_port_cap *port_caps;
unsigned int num_port_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
5.8: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct clk *reg_clk;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
long long unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int hw_lpm_support;
unsigned int broken_suspend;
u32 *ext_caps;
unsigned int num_ext_caps;
struct xhci_port_cap *port_caps;
unsigned int num_port_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
5.11: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct clk *reg_clk;
struct reset_control *reset;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
long long unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int hw_lpm_support;
unsigned int broken_suspend;
u32 *ext_caps;
unsigned int num_ext_caps;
struct xhci_port_cap *port_caps;
unsigned int num_port_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
5.13: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct clk *reg_clk;
struct reset_control *reset;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
long long unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int hw_lpm_support;
unsigned int broken_suspend;
u32 *ext_caps;
unsigned int num_ext_caps;
struct xhci_port_cap *port_caps;
unsigned int num_port_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
5.15: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
u32 isoc_bei_interval;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct clk *reg_clk;
struct reset_control *reset;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
long long unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int hw_lpm_support;
unsigned int broken_suspend;
u32 *ext_caps;
unsigned int num_ext_caps;
struct xhci_port_cap *port_caps;
unsigned int num_port_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
5.19: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
u32 isoc_bei_interval;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct clk *reg_clk;
struct reset_control *reset;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
long long unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int hw_lpm_support;
unsigned int broken_suspend;
unsigned int allow_single_roothub;
u32 *ext_caps;
unsigned int num_ext_caps;
struct xhci_port_cap *port_caps;
unsigned int num_port_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
6.2: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
u32 isoc_bei_interval;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct clk *reg_clk;
struct reset_control *reset;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct mutex mutex;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
long unsigned int run_graceperiod;
struct s3_save s3;
long long unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int hw_lpm_support;
unsigned int broken_suspend;
unsigned int allow_single_roothub;
u32 *ext_caps;
unsigned int num_ext_caps;
struct xhci_port_cap *port_caps;
unsigned int num_port_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
6.5: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u16 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
u32 isoc_bei_interval;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct clk *reg_clk;
struct reset_control *reset;
struct xhci_device_context_array *dcbaa;
struct xhci_interrupter *interrupter;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_scratchpad *scratchpad;
struct mutex mutex;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
long unsigned int run_graceperiod;
struct s3_save s3;
long long unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int hw_lpm_support;
unsigned int broken_suspend;
unsigned int allow_single_roothub;
u32 *ext_caps;
unsigned int num_ext_caps;
struct xhci_port_cap *port_caps;
unsigned int num_port_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
6.8: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u16 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
u32 isoc_bei_interval;
int event_ring_max;
int page_size;
int page_shift;
int nvecs;
struct clk *clk;
struct clk *reg_clk;
struct reset_control *reset;
struct xhci_device_context_array *dcbaa;
struct xhci_interrupter **interrupters;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_scratchpad *scratchpad;
struct mutex mutex;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
long unsigned int run_graceperiod;
struct s3_save s3;
long long unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int hw_lpm_support;
unsigned int broken_suspend;
unsigned int allow_single_roothub;
u32 *ext_caps;
unsigned int num_ext_caps;
struct xhci_port_cap *port_caps;
unsigned int num_port_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
arm64: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct clk *reg_clk;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
long long unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int hw_lpm_support;
unsigned int broken_suspend;
u32 *ext_caps;
unsigned int num_ext_caps;
struct xhci_port_cap *port_caps;
unsigned int num_port_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
armhf: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct clk *reg_clk;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
long long unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int hw_lpm_support;
unsigned int broken_suspend;
u32 *ext_caps;
unsigned int num_ext_caps;
struct xhci_port_cap *port_caps;
unsigned int num_port_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
ppc64el: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct clk *reg_clk;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
long long unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int hw_lpm_support;
unsigned int broken_suspend;
u32 *ext_caps;
unsigned int num_ext_caps;
struct xhci_port_cap *port_caps;
unsigned int num_port_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
riscv64: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct clk *reg_clk;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
long long unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int hw_lpm_support;
unsigned int broken_suspend;
u32 *ext_caps;
unsigned int num_ext_caps;
struct xhci_port_cap *port_caps;
unsigned int num_port_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
aws: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct clk *reg_clk;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
long long unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int hw_lpm_support;
unsigned int broken_suspend;
u32 *ext_caps;
unsigned int num_ext_caps;
struct xhci_port_cap *port_caps;
unsigned int num_port_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
azure: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct clk *reg_clk;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
long long unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int hw_lpm_support;
unsigned int broken_suspend;
u32 *ext_caps;
unsigned int num_ext_caps;
struct xhci_port_cap *port_caps;
unsigned int num_port_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
gcp: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct clk *reg_clk;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
long long unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int hw_lpm_support;
unsigned int broken_suspend;
u32 *ext_caps;
unsigned int num_ext_caps;
struct xhci_port_cap *port_caps;
unsigned int num_port_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
lowlatency: ✅struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
struct xhci_intr_reg *ir_set;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u8 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
int event_ring_max;
int page_size;
int page_shift;
int msix_count;
struct clk *clk;
struct clk *reg_clk;
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_scratchpad *scratchpad;
struct list_head lpm_failed_devs;
struct mutex mutex;
struct xhci_command *lpm_command;
struct xhci_virt_device * devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
u32 command;
struct s3_save s3;
long long unsigned int quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int hw_lpm_support;
unsigned int broken_suspend;
u32 *ext_caps;
unsigned int num_ext_caps;
struct xhci_port_cap *port_caps;
unsigned int num_port_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
long unsigned int priv[0];
};
Regular
4.4 and 4.8 ⚠️long unsigned int priv[0]
4.8 and 4.10 ⚠️struct completion cmd_ring_stop_completion
struct completion addr_dev
int slot_id
int error_bitmask
struct timer_list cmd_timer ➡️ struct delayed_work cmd_timer
4.10 and 4.13 ⚠️u16 test_mode
int addr_64
struct msix_entry *msix_entries
4.13 and 4.15 ⚠️struct dentry *debugfs_root
struct dentry *debugfs_slots
struct list_head regset_list
void *dbc
4.15 and 4.18 ⚠️u32 imod_interval
struct clk *reg_clk
struct xhci_port *hw_ports
u8 *port_array
__le32 **usb3_ports
unsigned int num_usb3_ports
__le32 **usb2_ports
unsigned int num_usb2_ports
unsigned int quirks ➡️ long long unsigned int quirks
4.18 and 5.0 ⚠️unsigned int broken_suspend
struct xhci_bus_state bus_state[2]
unsigned int sw_lpm_support
5.0 and 5.3 ✅
5.3 and 5.4 ⚠️struct xhci_port_cap *port_caps
unsigned int num_port_caps
5.4 and 5.8 ✅
5.8 and 5.11 ⚠️struct reset_control *reset
5.11 and 5.13 ✅
5.13 and 5.15 ⚠️u32 isoc_bei_interval
5.15 and 5.19 ⚠️unsigned int allow_single_roothub
struct xhci_command *lpm_command
5.19 and 6.2 ⚠️long unsigned int run_graceperiod
struct list_head lpm_failed_devs
u32 command
6.2 and 6.5 ⚠️struct xhci_interrupter *interrupter
struct xhci_intr_reg *ir_set
struct xhci_ring *event_ring
struct xhci_erst erst
u8 max_interrupters ➡️ u16 max_interrupters
6.5 and 6.8 ⚠️int nvecs
struct xhci_interrupter **interrupters
int msix_count
struct xhci_interrupter *interrupter
amd64 and arm64 ✅
amd64 and armhf ✅
amd64 and ppc64el ⚠️struct clk *clk ➡️ struct clk *clk
struct clk *reg_clk ➡️ struct clk *reg_clk
amd64 and riscv64 ✅
generic and aws ✅
generic and azure ✅
generic and gcp ✅
generic and lowlatency ✅