- Improve the runtime pm

- Cover one cover case during suspend/resume
 - Some SPDX License changes
 
 The code changes are at my ci-for-usb-next many days,
 no issue is reported.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEDaZUZmFxRG/wNThrSFkpgVDWcbsFAl5wwB8ACgkQSFkpgVDW
 cbslugf+JWZDVDKqZlEmmY+mPCFSw2afWtrX1scbGOdsj2LcOIzzMn4H7+7W0DiY
 TUelYThTHf6HlgfMPdsdpqZn9u5lK770Krw99/nDdux49CMdkoLhTH1gYoqhkw7P
 6ORtA41cWcBzxQXk4qYIFuAVh4z7cT58PhUuqnrCnjJh6pThEiPTfhIr728nB3De
 qaRGun0srWsN4WLmBGvhnY673nSbPLBP9Om5wfV2v33yR+vTeza8mgvzI0w2R1w6
 TUa3TfbS3+d7NC0GbEhUG16ZEcc3geohMwiLu1/8iYF0CBV4U5tPKNNbieIIVzCo
 YgT9Nn5/bPWrk33cMoQ6NSCkTPtkfA==
 =QcDe
 -----END PGP SIGNATURE-----

Merge tag 'usb-ci-v5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb into usb-next

Peter writes:

- Improve the runtime pm
- Cover one cover case during suspend/resume
- Some SPDX License changes

The code changes are at my ci-for-usb-next many days,
no issue is reported.

* tag 'usb-ci-v5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb:
  USB: chipidea: Use the correct style for SPDX License Identifier
  usb: chipidea: otg: handling vbus disconnect event occurred during system suspend
  usb: chipidea: udc: using structure ci_hdrc device for runtime PM
This commit is contained in:
Greg Kroah-Hartman 2020-03-17 19:53:33 +01:00
commit b80e3e813b
8 changed files with 18 additions and 14 deletions

View File

@ -1,4 +1,4 @@
// SPDX-License-Identifier: GPL-2.0
/* SPDX-License-Identifier: GPL-2.0 */
/*
* bits.h - register bits of the ChipIdea USB IP core
*

View File

@ -1,4 +1,4 @@
// SPDX-License-Identifier: GPL-2.0
/* SPDX-License-Identifier: GPL-2.0 */
/*
* ci.h - common structures, functions, and macros of the ChipIdea driver
*

View File

@ -1,4 +1,4 @@
// SPDX-License-Identifier: GPL-2.0+
/* SPDX-License-Identifier: GPL-2.0+ */
/*
* Copyright 2012 Freescale Semiconductor, Inc.
*/

View File

@ -170,6 +170,13 @@ static void ci_handle_id_switch(struct ci_hdrc *ci)
dev_dbg(ci->dev, "switching from %s to %s\n",
ci_role(ci)->name, ci->roles[role]->name);
if (ci->vbus_active && ci->role == CI_ROLE_GADGET)
/*
* vbus disconnect event is lost due to role
* switch occurs during system suspend.
*/
usb_gadget_vbus_disconnect(&ci->gadget);
ci_role_stop(ci);
if (role == CI_ROLE_GADGET &&

View File

@ -1,4 +1,4 @@
// SPDX-License-Identifier: GPL-2.0
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (C) 2013-2014 Freescale Semiconductor, Inc.
*

View File

@ -1,4 +1,4 @@
// SPDX-License-Identifier: GPL-2.0
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (C) 2014 Freescale Semiconductor, Inc.
*

View File

@ -1533,7 +1533,7 @@ static void ci_hdrc_gadget_connect(struct usb_gadget *_gadget, int is_active)
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) {
@ -1551,7 +1551,7 @@ static void ci_hdrc_gadget_connect(struct usb_gadget *_gadget, int is_active)
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);
}
}
@ -1636,12 +1636,12 @@ static int ci_udc_pullup(struct usb_gadget *_gadget, int is_on)
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;
}
@ -1839,7 +1839,7 @@ static int ci_udc_stop(struct usb_gadget *gadget)
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);
@ -1970,9 +1970,6 @@ static int udc_start(struct ci_hdrc *ci)
if (retval)
goto destroy_eps;
pm_runtime_no_callbacks(&ci->gadget.dev);
pm_runtime_enable(&ci->gadget.dev);
return retval;
destroy_eps:

View File

@ -1,4 +1,4 @@
// SPDX-License-Identifier: GPL-2.0
/* SPDX-License-Identifier: GPL-2.0 */
/*
* udc.h - ChipIdea UDC structures
*