[PATCH] usb: phy: mv_u3d: Remove usb phy driver for mv_u3d
The usb phy driver for mv_u3d got added in v3.7 through commit a67e76ac904c ("usb: phy: mv_u3d: Add usb phy driver for mv_u3d"). It then depended on USB_MV_U3D. And that symbol depended on CPU_MMP3 at that time. But CPU_MMP3 has never been part of the tree. This means that this drive was unbuildable when it was added. In commit 60630c2eabd4 ("usb: gadget: mv_u3d: drop ARCH dependency") MV_U3D_PHY was made depended directly on CPU_MMP3. That kept it unbuildable, of course. Remove this driver. It can be re-added once its dependencies are part of the tree. Signed-off-by: Paul Bolle --- Tested with git grep. This was triggered by Richard's "[PATCH 01/28] Remove CPU_MMP3" of two months ago, which I acked to eagerly. See https://lkml.org/lkml/2014/2/11/714 for the details. drivers/usb/phy/Kconfig | 8 - drivers/usb/phy/Makefile | 1 - drivers/usb/phy/phy-mv-u3d-usb.c | 338 --- drivers/usb/phy/phy-mv-u3d-usb.h | 105 4 files changed, 452 deletions(-) delete mode 100644 drivers/usb/phy/phy-mv-u3d-usb.c delete mode 100644 drivers/usb/phy/phy-mv-u3d-usb.h diff --git a/drivers/usb/phy/Kconfig b/drivers/usb/phy/Kconfig index 416e0c8cf6ff..33dd6a6c320a 100644 --- a/drivers/usb/phy/Kconfig +++ b/drivers/usb/phy/Kconfig @@ -59,14 +59,6 @@ config KEYSTONE_USB_PHY interface to interact with USB 2.0 and USB 3.0 PHY that is part of the Keystone SOC. -config MV_U3D_PHY - bool "Marvell USB 3.0 PHY controller Driver" - depends on CPU_MMP3 - select USB_PHY - help - Enable this to support Marvell USB 3.0 phy controller for Marvell - SoC. - config NOP_USB_XCEIV tristate "NOP USB Transceiver Driver" select USB_PHY diff --git a/drivers/usb/phy/Makefile b/drivers/usb/phy/Makefile index f8fa719a31b9..a2d05690d925 100644 --- a/drivers/usb/phy/Makefile +++ b/drivers/usb/phy/Makefile @@ -10,7 +10,6 @@ obj-$(CONFIG_USB_OTG_FSM) += phy-fsm-usb.o obj-$(CONFIG_AB8500_USB) += phy-ab8500-usb.o obj-$(CONFIG_FSL_USB2_OTG) += phy-fsl-usb.o obj-$(CONFIG_ISP1301_OMAP) += phy-isp1301-omap.o -obj-$(CONFIG_MV_U3D_PHY) += phy-mv-u3d-usb.o obj-$(CONFIG_NOP_USB_XCEIV)+= phy-generic.o obj-$(CONFIG_TAHVO_USB)+= phy-tahvo.o obj-$(CONFIG_AM335X_CONTROL_USB) += phy-am335x-control.o diff --git a/drivers/usb/phy/phy-mv-u3d-usb.c b/drivers/usb/phy/phy-mv-u3d-usb.c deleted file mode 100644 index d317903022bf.. --- a/drivers/usb/phy/phy-mv-u3d-usb.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - * Copyright (C) 2011 Marvell International Ltd. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2, as published by the Free Software Foundation. - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "phy-mv-u3d-usb.h" - -/* - * struct mv_u3d_phy - transceiver driver state - * @phy: transceiver structure - * @dev: The parent device supplied to the probe function - * @clk: usb phy clock - * @base: usb phy register memory base - */ -struct mv_u3d_phy { - struct usb_phy phy; - struct mv_usb_platform_data *plat; - struct device *dev; - struct clk *clk; - void __iomem*base; -}; - -static u32 mv_u3d_phy_read(void __iomem *base, u32 reg) -{ - void __iomem *addr, *data; - - addr = base; - data = base + 0x4; - - writel_relaxed(reg, addr); - return readl_relaxed(data); -} - -static void mv_u3d_phy_set(void __iomem *base, u32 reg, u32 value) -{ - void __iomem *addr, *data; - u32 tmp; - - addr = base; - data = base + 0x4; - - writel_relaxed(reg, addr); - tmp = readl_relaxed(data); - tmp |= value; - writel_relaxed(tmp, data); -} - -static void mv_u3d_phy_clear(void __iomem *base, u32 reg, u32 value) -{ - void __iomem *addr, *data; - u32 tmp; - - addr = base; - data = base + 0x4; - - writel_relaxed(reg, addr); - tmp = readl_relaxed(data); - tmp &= ~value; - writel_relaxed(tmp, data); -} - -static void mv_u3d_phy_write(void __iomem *base, u32 reg, u32 value) -{ - void __iomem *addr, *data; - - addr = base; - data = base + 0x4; - - writel_relaxed(reg, addr); - writel_relaxed(value, data); -} - -static void mv_u3d_phy_shutdown(struct usb_phy *phy) -{ - struct mv_u3d_phy *mv_u3d_phy; - void __iomem *base; - u32 val; - - mv_u3d_phy = container_of(phy, struct mv_u3d_phy, phy); - base = mv_u3d_phy->base; - - /* Power down Reference Analog current, bit 15 -* Power down PLL, bit 14 -* Power down Receiver, bit 13 -* Power down Transmitter, bit 12 -* of USB3_POWER_PLL_CONTROL registe
Re: [PATCH] usb: phy: mv_u3d: Remove usb phy driver for mv_u3d
On Tue, Apr 15, 2014 at 01:36:23PM +0200, Paul Bolle wrote: > The usb phy driver for mv_u3d got added in v3.7 through commit > a67e76ac904c ("usb: phy: mv_u3d: Add usb phy driver for mv_u3d"). It > then depended on USB_MV_U3D. And that symbol depended > on CPU_MMP3 at that time. But CPU_MMP3 has never been part of the tree. > This means that this drive was unbuildable when it was added. > > In commit 60630c2eabd4 ("usb: gadget: mv_u3d: drop ARCH dependency") > MV_U3D_PHY was made depended directly on CPU_MMP3. That kept it > unbuildable, of course. > > Remove this driver. It can be re-added once its dependencies are part of > the tree. > > Signed-off-by: Paul Bolle > --- > Tested with git grep. > > This was triggered by Richard's "[PATCH 01/28] Remove CPU_MMP3" of two > months ago, which I acked to eagerly. See > https://lkml.org/lkml/2014/2/11/714 for the details. so this means that drivers/usb/gadget/mv_u3d_core.c isn't used either ? Instead of deleting this and introducing a new driver, why don't you just help fix what's already in-tree ? -- balbi signature.asc Description: Digital signature
Re: [PATCH] usb: phy: mv_u3d: Remove usb phy driver for mv_u3d
On Tue, 2014-04-15 at 12:23 -0500, Felipe Balbi wrote: > so this means that drivers/usb/gadget/mv_u3d_core.c isn't used either ? Why should it? There's no dependency on CPU_MMP3 for USB_MV_U3D anymore, is there? > Instead of deleting this and introducing a new driver, why don't you > just help fix what's already in-tree ? Were any of the reasons I gave for removing this driver incorrect? Has it actually ever been possible to build it? Paul Bolle -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] usb: phy: mv_u3d: Remove usb phy driver for mv_u3d
On Tue, Apr 15, 2014 at 08:08:32PM +0200, Paul Bolle wrote: > On Tue, 2014-04-15 at 12:23 -0500, Felipe Balbi wrote: > > so this means that drivers/usb/gadget/mv_u3d_core.c isn't used either ? > > Why should it? There's no dependency on CPU_MMP3 for USB_MV_U3D anymore, > is there? no, but the UDC needs its PHY driver. > > Instead of deleting this and introducing a new driver, why don't you > > just help fix what's already in-tree ? > > Were any of the reasons I gave for removing this driver incorrect? Has > it actually ever been possible to build it? I don't know, let me check: $ make drivers/usb/phy/phy-mv-u3d-usb.o CHK include/config/kernel.release CHK include/generated/uapi/linux/version.h CHK include/generated/utsrelease.h make[1]: `include/generated/mach-types.h' is up to date. CALLscripts/checksyscalls.sh CC drivers/usb/phy/phy-mv-u3d-usb.o yup, builds just fine. Even if the ARCH support isn't in place, this driver is *not* breaking anything, it's not preventing anyone from getting work done and it might be helping Marvell decrease the amount of changes they keep out of tree. I don't see any problems this driver in tree as long as there are people working on it and I see the latest commit was 10 days ago, it wouldn't be fair to Marvell to delete their driver if they're still finding ways to make it useful one way or another. cheers -- balbi signature.asc Description: Digital signature
Re: [PATCH] usb: phy: mv_u3d: Remove usb phy driver for mv_u3d
On Tue, 2014-04-15 at 23:34 -0500, Felipe Balbi wrote: > $ make drivers/usb/phy/phy-mv-u3d-usb.o > CHK include/config/kernel.release > CHK include/generated/uapi/linux/version.h > CHK include/generated/utsrelease.h > make[1]: `include/generated/mach-types.h' is up to date. > CALLscripts/checksyscalls.sh > CC drivers/usb/phy/phy-mv-u3d-usb.o (On x86_64 this manual make command triggers the error Greg reported in https://lkml.org/lkml/2014/2/11/693 .) > yup, builds just fine. Even if the ARCH support isn't in place, this > driver is *not* breaking anything, it's not preventing anyone from > getting work done and it might be helping Marvell decrease the amount of > changes they keep out of tree. > > I don't see any problems this driver in tree as long as there are people > working on it and I see the latest commit was 10 days ago, it wouldn't > be fair to Marvell to delete their driver if they're still finding ways > to make it useful one way or another. Wouldn't it then be better if this driver is at least hooked into the build system? Like, say, this: config MV_U3D_PHY bool "Marvell USB 3.0 PHY controller Driver" # XXX should depend on CPU_MMP3 when support for MMP3 lands depends on ARM && COMPILE_TEST select USB_PHY help Enable this to support Marvell USB 3.0 phy controller for Marvell SoC. (Or perhaps only ARCH_MMP && COMPILE_TEST.) That should give it build coverage by the automated tests people appear to run, while work is done on adding MMP3 support. Thanks, Paul Bolle -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] usb: phy: mv_u3d: Remove usb phy driver for mv_u3d
On Thu, Apr 17, 2014 at 09:50:28AM +0200, Paul Bolle wrote: > On Tue, 2014-04-15 at 23:34 -0500, Felipe Balbi wrote: > > $ make drivers/usb/phy/phy-mv-u3d-usb.o > > CHK include/config/kernel.release > > CHK include/generated/uapi/linux/version.h > > CHK include/generated/utsrelease.h > > make[1]: `include/generated/mach-types.h' is up to date. > > CALLscripts/checksyscalls.sh > > CC drivers/usb/phy/phy-mv-u3d-usb.o > > (On x86_64 this manual make command triggers the error Greg reported in > https://lkml.org/lkml/2014/2/11/693 .) > > > yup, builds just fine. Even if the ARCH support isn't in place, this > > driver is *not* breaking anything, it's not preventing anyone from > > getting work done and it might be helping Marvell decrease the amount of > > changes they keep out of tree. > > > > I don't see any problems this driver in tree as long as there are people > > working on it and I see the latest commit was 10 days ago, it wouldn't > > be fair to Marvell to delete their driver if they're still finding ways > > to make it useful one way or another. > > Wouldn't it then be better if this driver is at least hooked into the > build system? Like, say, this: > config MV_U3D_PHY > bool "Marvell USB 3.0 PHY controller Driver" > # XXX should depend on CPU_MMP3 when support for MMP3 lands > depends on ARM && COMPILE_TEST > select USB_PHY > help > Enable this to support Marvell USB 3.0 phy controller for > Marvell > SoC. > > (Or perhaps only ARCH_MMP && COMPILE_TEST.) That should give it build > coverage by the automated tests people appear to run, while work is done > on adding MMP3 support. I guess we should make it depend on BROKEN instead, or we just apply the patch below: 8<- From 60e524d7db4ed04624850fcb84a844c609a960e3 Mon Sep 17 00:00:00 2001 From: Felipe Balbi Date: Thu, 17 Apr 2014 11:24:27 -0500 Subject: [PATCH] usb: phy: mv-u3d: switch over to writel/readl by removing the _relaxed suffix, we can build this driver in other architectures. Signed-off-by: Felipe Balbi --- drivers/usb/phy/phy-mv-u3d-usb.c | 20 ++-- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/usb/phy/phy-mv-u3d-usb.c b/drivers/usb/phy/phy-mv-u3d-usb.c index d317903..d342175 100644 --- a/drivers/usb/phy/phy-mv-u3d-usb.c +++ b/drivers/usb/phy/phy-mv-u3d-usb.c @@ -39,8 +39,8 @@ static u32 mv_u3d_phy_read(void __iomem *base, u32 reg) addr = base; data = base + 0x4; - writel_relaxed(reg, addr); - return readl_relaxed(data); + writel(reg, addr); + return readl(data); } static void mv_u3d_phy_set(void __iomem *base, u32 reg, u32 value) @@ -51,10 +51,10 @@ static void mv_u3d_phy_set(void __iomem *base, u32 reg, u32 value) addr = base; data = base + 0x4; - writel_relaxed(reg, addr); - tmp = readl_relaxed(data); + writel(reg, addr); + tmp = readl(data); tmp |= value; - writel_relaxed(tmp, data); + writel(tmp, data); } static void mv_u3d_phy_clear(void __iomem *base, u32 reg, u32 value) @@ -65,10 +65,10 @@ static void mv_u3d_phy_clear(void __iomem *base, u32 reg, u32 value) addr = base; data = base + 0x4; - writel_relaxed(reg, addr); - tmp = readl_relaxed(data); + writel(reg, addr); + tmp = readl(data); tmp &= ~value; - writel_relaxed(tmp, data); + writel(tmp, data); } static void mv_u3d_phy_write(void __iomem *base, u32 reg, u32 value) @@ -78,8 +78,8 @@ static void mv_u3d_phy_write(void __iomem *base, u32 reg, u32 value) addr = base; data = base + 0x4; - writel_relaxed(reg, addr); - writel_relaxed(value, data); + writel(reg, addr); + writel(value, data); } static void mv_u3d_phy_shutdown(struct usb_phy *phy) -- 1.9.2.459.g68773ac -- balbi signature.asc Description: Digital signature