usb: xhci: Get rid of CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS
xHC reports supported maximum number of ports in the HCSPARAMS1 register, so it's unnecessary to use a hardcoded config option CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Stefan Roese <sr@denx.de> Tested-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
1bdcd9019d
commit
7274671e04
@ -668,12 +668,14 @@ static int xhci_submit_root(struct usb_device *udev, unsigned long pipe,
|
||||
uint32_t reg;
|
||||
volatile uint32_t *status_reg;
|
||||
struct xhci_ctrl *ctrl = xhci_get_ctrl(udev);
|
||||
struct xhci_hccr *hccr = ctrl->hccr;
|
||||
struct xhci_hcor *hcor = ctrl->hcor;
|
||||
int max_ports = HCS_MAX_PORTS(xhci_readl(&hccr->cr_hcsparams1));
|
||||
|
||||
if ((req->requesttype & USB_RT_PORT) &&
|
||||
le16_to_cpu(req->index) > CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS) {
|
||||
printf("The request port(%d) is not configured\n",
|
||||
le16_to_cpu(req->index) - 1);
|
||||
le16_to_cpu(req->index) > max_ports) {
|
||||
printf("The request port(%d) exceeds maximum port number\n",
|
||||
le16_to_cpu(req->index) - 1);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
@ -172,9 +172,7 @@ struct xhci_hcor {
|
||||
volatile uint64_t or_dcbaap;
|
||||
volatile uint32_t or_config;
|
||||
volatile uint32_t reserved_2[241];
|
||||
struct xhci_hcor_port_regs portregs[CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS];
|
||||
|
||||
uint32_t reserved_4[CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS * 254];
|
||||
struct xhci_hcor_port_regs portregs[MAX_HC_PORTS];
|
||||
};
|
||||
|
||||
/* USBCMD - USB command - command bitmasks */
|
||||
|
Loading…
Reference in New Issue
Block a user