Merge branch 'master' of git://source.denx.de/u-boot-usb

- Fix assorted issues found by Smatch
This commit is contained in:
Tom Rini
2025-10-28 19:43:19 -06:00
9 changed files with 52 additions and 35 deletions
+1 -1
View File
@@ -99,7 +99,7 @@ static int fsl_fdt_fixup_usb_erratum(void *blob, const char *prop_erratum,
else
node_name = node_type;
if (strcmp(node_name, controller_type))
return err;
return -EINVAL;
err = fdt_setprop(blob, node_offset, prop_erratum, NULL, 0);
if (err < 0) {
+1 -2
View File
@@ -47,8 +47,7 @@ static int ehci_usb_of_to_plat(struct udevice *dev)
{
struct exynos_ehci_plat *plat = dev_get_plat(dev);
const void *blob = gd->fdt_blob;
unsigned int node;
int depth;
int node, depth;
/*
* Get the base address for XHCI controller from the device node
+4 -2
View File
@@ -1040,9 +1040,11 @@ static void dl_transfer_length(td_t *td)
static void check_status(td_t *td_list)
{
urb_priv_t *lurb_priv = td_list->ed->purb;
int urb_len = lurb_priv->length;
__u32 *phwHeadP = &td_list->ed->hwHeadP;
int cc;
int cc, urb_len;
if (lurb_priv)
urb_len = lurb_priv->length;
cc = TD_CC_GET(m32_swap(td_list->hwINFO));
if (cc) {
+1 -2
View File
@@ -56,8 +56,7 @@ static int xhci_usb_of_to_plat(struct udevice *dev)
{
struct exynos_xhci_plat *plat = dev_get_plat(dev);
const void *blob = gd->fdt_blob;
unsigned int node;
int depth;
int node, depth;
/*
* Get the base address for XHCI controller from the device node
+2 -2
View File
@@ -402,7 +402,7 @@ static int am35x_musb_init(struct musb *musb)
#endif
/* Reset the musb */
if (data->reset)
if (data && data->reset)
data->reset(data->dev);
/* Reset the controller */
@@ -417,7 +417,7 @@ static int am35x_musb_init(struct musb *musb)
musb->isr = am35x_musb_interrupt;
/* clear level interrupt */
if (data->clear_irq)
if (data && data->clear_irq)
data->clear_irq(data->dev);
return 0;
+4 -1
View File
@@ -96,6 +96,9 @@ static int service_tx_status_request(
if (!epnum) {
result[0] = 0;
break;
} else if (epnum >= MUSB_C_NUM_EPS) {
handled = -EINVAL;
break;
}
is_in = epnum & USB_DIR_IN;
@@ -107,7 +110,7 @@ static int service_tx_status_request(
}
regs = musb->endpoints[epnum].regs;
if (epnum >= MUSB_C_NUM_EPS || !ep->desc) {
if (!ep->desc) {
handled = -EINVAL;
break;
}
+21 -13
View File
@@ -142,41 +142,49 @@ static int omap2430_musb_of_to_plat(struct udevice *dev)
struct omap2430_musb_plat *plat = dev_get_plat(dev);
const void *fdt = gd->fdt_blob;
int node = dev_of_offset(dev);
int ret;
plat->base = (void *)dev_read_addr_ptr(dev);
plat->musb_config.multipoint = fdtdec_get_int(fdt, node, "multipoint",
-1);
if (plat->musb_config.multipoint < 0) {
ret = fdtdec_get_int(fdt, node, "multipoint", -1);
if (ret < 0) {
pr_err("MUSB multipoint DT entry missing\n");
return -ENOENT;
} else {
plat->musb_config.multipoint = ret;
}
plat->musb_config.dyn_fifo = 1;
plat->musb_config.num_eps = fdtdec_get_int(fdt, node, "num-eps", -1);
if (plat->musb_config.num_eps < 0) {
ret = fdtdec_get_int(fdt, node, "num-eps", -1);
if (ret < 0) {
pr_err("MUSB num-eps DT entry missing\n");
return -ENOENT;
} else {
plat->musb_config.num_eps = ret;
}
plat->musb_config.ram_bits = fdtdec_get_int(fdt, node, "ram-bits", -1);
if (plat->musb_config.ram_bits < 0) {
ret = fdtdec_get_int(fdt, node, "ram-bits", -1);
if (ret < 0) {
pr_err("MUSB ram-bits DT entry missing\n");
return -ENOENT;
} else {
plat->musb_config.ram_bits = ret;
}
plat->plat.power = fdtdec_get_int(fdt, node, "power", -1);
if (plat->plat.power < 0) {
ret = fdtdec_get_int(fdt, node, "power", -1);
if (ret < 0) {
pr_err("MUSB power DT entry missing\n");
return -ENOENT;
} else {
plat->plat.power = ret;
}
plat->otg_board_data.interface_type = fdtdec_get_int(fdt, node,
"interface-type",
-1);
if (plat->otg_board_data.interface_type < 0) {
ret = fdtdec_get_int(fdt, node, "interface-type", -1);
if (ret < 0) {
pr_err("MUSB interface-type DT entry missing\n");
return -ENOENT;
} else {
plat->otg_board_data.interface_type = ret;
}
#if 0 /* In a perfect world, mode would be set to OTG, mode 3 from DT */
+17 -11
View File
@@ -86,6 +86,7 @@ static int ti_musb_of_to_plat(struct udevice *dev)
int phys;
int ctrl_mod;
int usb_index;
int ret;
struct musb_hdrc_config *musb_config;
plat->base = devfdt_get_addr_index_ptr(dev, 1);
@@ -108,35 +109,40 @@ static int ti_musb_of_to_plat(struct udevice *dev)
musb_config = malloc(sizeof(struct musb_hdrc_config));
memset(musb_config, 0, sizeof(struct musb_hdrc_config));
musb_config->multipoint = fdtdec_get_int(fdt, node,
"mentor,multipoint", -1);
if (musb_config->multipoint < 0) {
ret = fdtdec_get_int(fdt, node, "mentor,multipoint", -1);
if (ret < 0) {
pr_err("MUSB multipoint DT entry missing\n");
return -ENOENT;
} else {
musb_config->multipoint = ret;
}
musb_config->dyn_fifo = 1;
musb_config->num_eps = fdtdec_get_int(fdt, node, "mentor,num-eps",
-1);
if (musb_config->num_eps < 0) {
ret = fdtdec_get_int(fdt, node, "mentor,num-eps", -1);
if (ret < 0) {
pr_err("MUSB num-eps DT entry missing\n");
return -ENOENT;
} else {
musb_config->num_eps = ret;
}
musb_config->ram_bits = fdtdec_get_int(fdt, node, "mentor,ram-bits",
-1);
if (musb_config->ram_bits < 0) {
ret = fdtdec_get_int(fdt, node, "mentor,ram-bits", -1);
if (ret < 0) {
pr_err("MUSB ram-bits DT entry missing\n");
return -ENOENT;
} else {
musb_config->ram_bits = ret;
}
plat->plat.config = musb_config;
plat->plat.power = fdtdec_get_int(fdt, node, "mentor,power", -1);
if (plat->plat.power < 0) {
ret = fdtdec_get_int(fdt, node, "mentor,power", -1);
if (ret < 0) {
pr_err("MUSB mentor,power DT entry missing\n");
return -ENOENT;
} else {
plat->plat.power = ret;
}
plat->plat.platform_ops = &musb_dsps_ops;
+1 -1
View File
@@ -127,7 +127,7 @@ int ulpi_set_vbus_indicator(struct ulpi_viewport *ulpi_vp, int external,
if (val == ULPI_ERROR)
return val;
val = val & ~(ULPI_IFACE_PASSTHRU & ULPI_IFACE_EXTVBUS_COMPLEMENT);
val = val & ~(ULPI_IFACE_PASSTHRU | ULPI_IFACE_EXTVBUS_COMPLEMENT);
val |= flags;
val = ulpi_write(ulpi_vp, &ulpi->iface_ctrl, val);
if (val)