Merge branch 'master' of git://source.denx.de/u-boot-usb
- Fix assorted issues found by Smatch
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user