Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cbde09a9 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge tag 'usb-ci-v4.18-rc4' of...

Merge tag 'usb-ci-v4.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb into usb-linus

Peter writes:

One regression fix causes imx51 board hang when using ULPI PHY
parents 9d3cce1e a930d8bd
Loading
Loading
Loading
Loading
+1 −8
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ config USB_CHIPIDEA
	depends on ((USB_EHCI_HCD && USB_GADGET) || (USB_EHCI_HCD && !USB_GADGET) || (!USB_EHCI_HCD && USB_GADGET)) && HAS_DMA
	select EXTCON
	select RESET_CONTROLLER
	select USB_ULPI_BUS
	help
	  Say Y here if your system has a dual role high speed USB
	  controller based on ChipIdea silicon IP. It supports:
@@ -38,12 +39,4 @@ config USB_CHIPIDEA_HOST
	help
	  Say Y here to enable host controller functionality of the
	  ChipIdea driver.

config USB_CHIPIDEA_ULPI
	bool "ChipIdea ULPI PHY support"
	depends on USB_ULPI_BUS=y || USB_ULPI_BUS=USB_CHIPIDEA
	help
	  Say Y here if you have a ULPI PHY attached to your ChipIdea
	  controller.

endif
+1 −2
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
obj-$(CONFIG_USB_CHIPIDEA)		+= ci_hdrc.o

ci_hdrc-y				:= core.o otg.o debug.o
ci_hdrc-y				:= core.o otg.o debug.o ulpi.o
ci_hdrc-$(CONFIG_USB_CHIPIDEA_UDC)	+= udc.o
ci_hdrc-$(CONFIG_USB_CHIPIDEA_HOST)	+= host.o
ci_hdrc-$(CONFIG_USB_OTG_FSM)		+= otg_fsm.o
ci_hdrc-$(CONFIG_USB_CHIPIDEA_ULPI)	+= ulpi.o

# Glue/Bridge layers go here

+0 −8
Original line number Diff line number Diff line
@@ -240,10 +240,8 @@ struct ci_hdrc {

	struct ci_hdrc_platform_data	*platdata;
	int				vbus_active;
#ifdef CONFIG_USB_CHIPIDEA_ULPI
	struct ulpi			*ulpi;
	struct ulpi_ops 		ulpi_ops;
#endif
	struct phy			*phy;
	/* old usb_phy interface */
	struct usb_phy			*usb_phy;
@@ -426,15 +424,9 @@ static inline bool ci_otg_is_fsm_mode(struct ci_hdrc *ci)
#endif
}

#if IS_ENABLED(CONFIG_USB_CHIPIDEA_ULPI)
int ci_ulpi_init(struct ci_hdrc *ci);
void ci_ulpi_exit(struct ci_hdrc *ci);
int ci_ulpi_resume(struct ci_hdrc *ci);
#else
static inline int ci_ulpi_init(struct ci_hdrc *ci) { return 0; }
static inline void ci_ulpi_exit(struct ci_hdrc *ci) { }
static inline int ci_ulpi_resume(struct ci_hdrc *ci) { return 0; }
#endif

u32 hw_read_intr_enable(struct ci_hdrc *ci);

+3 −0
Original line number Diff line number Diff line
@@ -95,6 +95,9 @@ int ci_ulpi_resume(struct ci_hdrc *ci)
{
	int cnt = 100000;

	if (ci->platdata->phy_mode != USBPHY_INTERFACE_MODE_ULPI)
		return 0;

	while (cnt-- > 0) {
		if (hw_read(ci, OP_ULPI_VIEWPORT, ULPI_SYNC_STATE))
			return 0;