When reviewing the dwc3 runtime PM implementation I noticed that the probe error handling and unbind code was broken. The first two patches addresses the corresponding imbalances. The probe error handling has suffered from some bit rot over years and an attempt to clean it up lead to the realisation that the code dealing with the "hibernation" feature was both broken and had never been used. Rather than try to fix up something which has never been used since it was first merged ten years ago, let's get rid of this dead code until there is a mainline user (and a complete implementation). The rest of the series clean up probe and core initialisation by using descriptive error labels and adding a few helper functions to improve readability which will hopefully help prevent similar bugs from being introduced in the future. Johan Johan Hovold (11): USB: dwc3: fix runtime pm imbalance on probe errors USB: dwc3: fix runtime pm imbalance on unbind USB: dwc3: disable autosuspend on unbind USB: dwc3: gadget: drop dead hibernation code USB: dwc3: drop dead hibernation code USB: dwc3: clean up probe error labels USB: dwc3: clean up phy init error handling USB: dwc3: clean up core init error handling USB: dwc3: refactor phy handling USB: dwc3: refactor clock lookups USB: dwc3: clean up probe declarations drivers/usb/dwc3/core.c | 426 ++++++++++++++++---------------------- drivers/usb/dwc3/core.h | 8 - drivers/usb/dwc3/gadget.c | 46 +--- 3 files changed, 182 insertions(+), 298 deletions(-) -- 2.39.2