On Tue, May 05, 2015 at 04:14:39PM +0200, Mian Yousaf Kaukab wrote: > transceiver is either NULL or a valid pointer. It is never > left containing -ve error value. Simplify error checks based on this. > > Moreover, its OK to call phy APIs with NULL phy pointer. > > Cc: Peter Chen <peter.chen@xxxxxxxxxxxxx> > Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@xxxxxxxxx> > --- > drivers/usb/gadget/udc/fsl_udc_core.c | 26 +++++++++++--------------- > 1 file changed, 11 insertions(+), 15 deletions(-) > > diff --git a/drivers/usb/gadget/udc/fsl_udc_core.c b/drivers/usb/gadget/udc/fsl_udc_core.c > index 55fcb93..c08b977 100644 > --- a/drivers/usb/gadget/udc/fsl_udc_core.c > +++ b/drivers/usb/gadget/udc/fsl_udc_core.c > @@ -1206,9 +1206,8 @@ static int fsl_vbus_draw(struct usb_gadget *gadget, unsigned mA) > struct fsl_udc *udc; > > udc = container_of(gadget, struct fsl_udc, gadget); > - if (!IS_ERR_OR_NULL(udc->transceiver)) > - return usb_phy_set_power(udc->transceiver, mA); > - return -ENOTSUPP; > + > + return usb_phy_set_power(udc->transceiver, mA); > } > > /* Change Data+ pullup status > @@ -1950,21 +1949,18 @@ static int fsl_udc_start(struct usb_gadget *g, > spin_unlock_irqrestore(&udc_controller->lock, flags); > g->is_selfpowered = 1; > > - if (!IS_ERR_OR_NULL(udc_controller->transceiver)) { > + if (udc_controller->transceiver) { > /* Suspend the controller until OTG enable it */ > udc_controller->stopped = 1; > printk(KERN_INFO "Suspend udc for OTG auto detect\n"); > > /* connect to bus through transceiver */ > - if (!IS_ERR_OR_NULL(udc_controller->transceiver)) { > - retval = otg_set_peripheral( > - udc_controller->transceiver->otg, > + retval = otg_set_peripheral(udc_controller->transceiver->otg, > &udc_controller->gadget); > - if (retval < 0) { > - ERR("can't bind to transceiver\n"); > - udc_controller->driver = NULL; > - return retval; > - } > + if (retval < 0) { > + ERR("can't bind to transceiver\n"); > + udc_controller->driver = NULL; > + return retval; > } > } else { > /* Enable DR IRQ reg and set USBCMD reg Run bit */ > @@ -1983,7 +1979,7 @@ static int fsl_udc_stop(struct usb_gadget *g) > struct fsl_ep *loop_ep; > unsigned long flags; > > - if (!IS_ERR_OR_NULL(udc_controller->transceiver)) > + if (udc_controller->transceiver) > otg_set_peripheral(udc_controller->transceiver->otg, NULL); > > /* stop DR, disable intr */ > @@ -2438,7 +2434,7 @@ static int fsl_udc_probe(struct platform_device *pdev) > goto err_free_irq; > } > > - if (IS_ERR_OR_NULL(udc_controller->transceiver)) { > + if (udc_controller->transceiver) { > /* initialize usb hw reg except for regs for EP, > * leave usbintr reg untouched */ > dr_controller_setup(udc_controller); > @@ -2460,7 +2456,7 @@ static int fsl_udc_probe(struct platform_device *pdev) > dev_set_name(&udc_controller->gadget.dev, "gadget"); > udc_controller->gadget.dev.of_node = pdev->dev.of_node; > > - if (!IS_ERR_OR_NULL(udc_controller->transceiver)) > + if (udc_controller->transceiver) > udc_controller->gadget.is_otg = 1; > > /* setup QH and epctrl for ep0 */ > -- > 2.3.3 > Reviewed-by: Peter Chen <peter.chen@xxxxxxxxxxxxx> -- Best Regards, Peter Chen -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html