unsigned long flags;
 
        if (is_active) {
-               pm_runtime_get_sync(&_gadget->dev);
+               pm_runtime_get_sync(ci->dev);
                hw_device_reset(ci);
                spin_lock_irqsave(&ci->lock, flags);
                if (ci->driver) {
                        ci->platdata->notify_event(ci,
                        CI_HDRC_CONTROLLER_STOPPED_EVENT);
                _gadget_stop_activity(&ci->gadget);
-               pm_runtime_put_sync(&_gadget->dev);
+               pm_runtime_put_sync(ci->dev);
                usb_gadget_set_state(_gadget, USB_STATE_NOTATTACHED);
        }
 }
        if (ci_otg_is_fsm_mode(ci) || ci->role == CI_ROLE_HOST)
                return 0;
 
-       pm_runtime_get_sync(&ci->gadget.dev);
+       pm_runtime_get_sync(ci->dev);
        if (is_on)
                hw_write(ci, OP_USBCMD, USBCMD_RS, USBCMD_RS);
        else
                hw_write(ci, OP_USBCMD, USBCMD_RS, 0);
-       pm_runtime_put_sync(&ci->gadget.dev);
+       pm_runtime_put_sync(ci->dev);
 
        return 0;
 }
                        CI_HDRC_CONTROLLER_STOPPED_EVENT);
                _gadget_stop_activity(&ci->gadget);
                spin_lock_irqsave(&ci->lock, flags);
-               pm_runtime_put(&ci->gadget.dev);
+               pm_runtime_put(ci->dev);
        }
 
        spin_unlock_irqrestore(&ci->lock, flags);
        if (retval)
                goto destroy_eps;
 
-       pm_runtime_no_callbacks(&ci->gadget.dev);
-       pm_runtime_enable(&ci->gadget.dev);
-
        return retval;
 
 destroy_eps: