usb: otg: Remove one unnecessary I2C read request.
authorHema HK <hemahk@ti.com>
Thu, 17 Feb 2011 06:36:05 +0000 (12:06 +0530)
committerFelipe Balbi <balbi@ti.com>
Thu, 17 Feb 2011 19:11:46 +0000 (21:11 +0200)
To get the ID status there was an I2C read transfer. Removed this I2C
read transfer as this info can be used from existing variable(linkstat).

Signed-off-by: Hema HK <hemahk@ti.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/otg/twl6030-usb.c

index eca459126db72f511eba848e350dde971ce1192e..88989e61430ca2bc26dea2f58a7fcb7bd37ff328 100644 (file)
@@ -149,7 +149,6 @@ static int twl6030_set_phy_clk(struct otg_transceiver *x, int on)
 
 static int twl6030_phy_init(struct otg_transceiver *x)
 {
-       u8 hw_state;
        struct twl6030_usb *twl;
        struct device *dev;
        struct twl4030_usb_data *pdata;
@@ -158,9 +157,7 @@ static int twl6030_phy_init(struct otg_transceiver *x)
        dev  = twl->dev;
        pdata = dev->platform_data;
 
-       hw_state = twl6030_readb(twl, TWL6030_MODULE_ID0, STS_HW_CONDITIONS);
-
-       if (hw_state & STS_USB_ID)
+       if (twl->linkstat == USB_EVENT_ID)
                pdata->phy_power(twl->dev, 1, 1);
        else
                pdata->phy_power(twl->dev, 0, 1);
@@ -290,6 +287,7 @@ static irqreturn_t twl6030_usbotg_irq(int irq, void *_twl)
                status = USB_EVENT_ID;
                twl->otg.default_a = true;
                twl->otg.state = OTG_STATE_A_IDLE;
+               twl->linkstat = status;
                blocking_notifier_call_chain(&twl->otg.notifier, status,
                                                        twl->otg.gadget);
        } else  {
@@ -299,7 +297,6 @@ static irqreturn_t twl6030_usbotg_irq(int irq, void *_twl)
                                                                0x1);
        }
        twl6030_writeb(twl, TWL_MODULE_USB, USB_ID_INT_LATCH_CLR, status);
-       twl->linkstat = status;
 
        return IRQ_HANDLED;
 }