Re: linux-next: build failure after merge of the usb tree

Thierry Reding
2020-03-16T11:30:19Z

[-- Attachment #1: Type: text/plain, Size: 2685 bytes --]

On Mon, Mar 16, 2020 at 02:10:04PM +1100, Stephen Rothwell wrote:
> Hi all,
>
> After merging the usb tree, today's linux-next build (arm
> multi_v7_defconfig) failed like this:
>
> drivers/phy/tegra/xusb.c: In function 'tegra_xusb_setup_usb_role_switch':
> drivers/phy/tegra/xusb.c:641:10: error: initialization of 'int (*)(struct usb_role_switch *, enum usb_role)' from incompatible pointer type 'int (*)(struct device *, enum usb_role)' [-Werror=incompatible-pointer-types]
> 641 | .set = tegra_xusb_role_sw_set,
> | ^~~~~~~~~~~~~~~~~~~~~~
> drivers/phy/tegra/xusb.c:641:10: note: (near initialization for 'role_sx_desc.set')
>
> Caused by commit
>
> bce3052f0c16 ("usb: roles: Provide the switch drivers handle to the switch in the API")
>
> interacting with commit
>
> 5a00c7c7604f ("phy: tegra: xusb: Add usb-role-switch support")
>
> from the tegra tree.
>
> I have added this merge fix patch (which may need more work):
>
> From: Stephen Rothwell <sfr@canb.auug.org.au>
> Date: Mon, 16 Mar 2020 14:04:20 +1100
> Subject: [PATCH] phy: tegra: fix up for set_role API change
>
> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
> ---
> drivers/phy/tegra/xusb.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/phy/tegra/xusb.c b/drivers/phy/tegra/xusb.c
> index d907f03bf282..25223c350e66 100644
> --- a/drivers/phy/tegra/xusb.c
> +++ b/drivers/phy/tegra/xusb.c
> @@ -596,11 +596,12 @@ static void tegra_xusb_usb_phy_work(struct work_struct *work)
> atomic_notifier_call_chain(&port->usb_phy.notifier, 0, &port->usb_phy);
> }
>
> -static int tegra_xusb_role_sw_set(struct device *dev, enum usb_role role)
> +static int tegra_xusb_role_sw_set(struct usb_role_switch *sw,
> + enum usb_role role)
> {
> - struct tegra_xusb_port *port = dev_get_drvdata(dev);
> + struct tegra_xusb_port *port = usb_role_switch_get_drvdata(sw);
>
> - dev_dbg(dev, "%s(): role %s\n", __func__, usb_roles[role]);
> + dev_dbg(&port->dev, "%s(): role %s\n", __func__, usb_roles[role]);
>
> schedule_work(&port->usb_phy_work);
>
> --
> 2.25.0

I can rebase the branch that contains this commit on top of Greg's USB
tree. These are a dependency for the UDC and host driver changes that I
have sent as a pull request to Greg, so this should all work out nicely.

Greg, I recall that you've said in the past that you don't rebase your
trees. Is that still the case for the USB tree? Do you have a preference
what to base my branch on? The earliest of your USB tree that contains
all patches needed to make this compile? Or the latest?

Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]