lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <YtVuildpxcI5By4x@rowland.harvard.edu>
Date:   Mon, 18 Jul 2022 10:30:34 -0400
From:   Alan Stern <stern@...land.harvard.edu>
To:     Tomer Maimon <tmaimon77@...il.com>
Cc:     avifishman70@...il.com, tali.perry1@...il.com, joel@....id.au,
        venture@...gle.com, yuenn@...gle.com, benjaminfair@...gle.com,
        gregkh@...uxfoundation.org, tony@...mide.com,
        felipe.balbi@...ux.intel.com, jgross@...e.com,
        lukas.bulwahn@...il.com, arnd@...db.de, robh+dt@...nel.org,
        krzysztof.kozlowski+dt@...aro.org, openbmc@...ts.ozlabs.org,
        linux-usb@...r.kernel.org, linux-kernel@...r.kernel.org,
        devicetree@...r.kernel.org
Subject: Re: [PATCH v1 1/3] usb: host: npcm7xx: remove USB EHCI host reset
 sequence

On Mon, Jul 18, 2022 at 03:29:20PM +0300, Tomer Maimon wrote:
> Remove USB EHCI host controller reset sequence from NPCM7XX USB EHCI
> host probe function because it is done in the NPCM reset driver.
> 
> Due to it, NPCM7XX EHCI driver configuration is dependent on NPCM reset.
> 
> Signed-off-by: Tomer Maimon <tmaimon77@...il.com>
> ---

Regarding the changes to ehci-npcm7xx.c:

Acked-by: Alan Stern <stern@...land.harvard.edu>

But you probably should remove the "#include <linux/regmap.h>" line near 
the start of the source file.

Alan Stern

>  drivers/usb/host/Kconfig        |  2 +-
>  drivers/usb/host/ehci-npcm7xx.c | 47 ---------------------------------
>  2 files changed, 1 insertion(+), 48 deletions(-)
> 
> diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
> index 682b3d2da623..e05e2cf806f8 100644
> --- a/drivers/usb/host/Kconfig
> +++ b/drivers/usb/host/Kconfig
> @@ -206,7 +206,7 @@ config USB_EHCI_FSL
>  
>  config USB_EHCI_HCD_NPCM7XX
>  	tristate "Support for Nuvoton NPCM7XX on-chip EHCI USB controller"
> -	depends on (USB_EHCI_HCD && ARCH_NPCM7XX) || COMPILE_TEST
> +	depends on (USB_EHCI_HCD && ARCH_NPCM7XX && RESET_NPCM) || COMPILE_TEST
>  	default y if (USB_EHCI_HCD && ARCH_NPCM7XX)
>  	help
>  	  Enables support for the on-chip EHCI controller on
> diff --git a/drivers/usb/host/ehci-npcm7xx.c b/drivers/usb/host/ehci-npcm7xx.c
> index 6b5a7a873e01..955e7c8f3db8 100644
> --- a/drivers/usb/host/ehci-npcm7xx.c
> +++ b/drivers/usb/host/ehci-npcm7xx.c
> @@ -28,13 +28,6 @@
>  #define DRIVER_DESC "EHCI npcm7xx driver"
>  
>  static const char hcd_name[] = "npcm7xx-ehci";
> -
> -#define  USB2PHYCTL_OFFSET 0x144
> -
> -#define  IPSRST2_OFFSET 0x24
> -#define  IPSRST3_OFFSET 0x34
> -
> -
>  static struct hc_driver __read_mostly ehci_npcm7xx_hc_driver;
>  
>  static int __maybe_unused ehci_npcm7xx_drv_suspend(struct device *dev)
> @@ -60,52 +53,12 @@ static int npcm7xx_ehci_hcd_drv_probe(struct platform_device *pdev)
>  {
>  	struct usb_hcd *hcd;
>  	struct resource *res;
> -	struct regmap *gcr_regmap;
> -	struct regmap *rst_regmap;
>  	const struct hc_driver *driver = &ehci_npcm7xx_hc_driver;
>  	int irq;
>  	int retval;
>  
>  	dev_dbg(&pdev->dev,	"initializing npcm7xx ehci USB Controller\n");
>  
> -	gcr_regmap = syscon_regmap_lookup_by_compatible("nuvoton,npcm750-gcr");
> -	if (IS_ERR(gcr_regmap)) {
> -		dev_err(&pdev->dev, "%s: failed to find nuvoton,npcm750-gcr\n",
> -			__func__);
> -		return PTR_ERR(gcr_regmap);
> -	}
> -
> -	rst_regmap = syscon_regmap_lookup_by_compatible("nuvoton,npcm750-rst");
> -	if (IS_ERR(rst_regmap)) {
> -		dev_err(&pdev->dev, "%s: failed to find nuvoton,npcm750-rst\n",
> -			__func__);
> -		return PTR_ERR(rst_regmap);
> -	}
> -
> -	/********* phy init  ******/
> -	// reset usb host
> -	regmap_update_bits(rst_regmap, IPSRST2_OFFSET,
> -			(0x1 << 26), (0x1 << 26));
> -	regmap_update_bits(rst_regmap, IPSRST3_OFFSET,
> -			(0x1 << 25), (0x1 << 25));
> -	regmap_update_bits(gcr_regmap, USB2PHYCTL_OFFSET,
> -			(0x1 << 28), 0);
> -
> -	udelay(1);
> -
> -	// enable phy
> -	regmap_update_bits(rst_regmap, IPSRST3_OFFSET,
> -			(0x1 << 25), 0);
> -
> -	udelay(50); // enable phy
> -
> -	regmap_update_bits(gcr_regmap, USB2PHYCTL_OFFSET,
> -			(0x1 << 28), (0x1 << 28));
> -
> -	// enable host
> -	regmap_update_bits(rst_regmap, IPSRST2_OFFSET,
> -			(0x1 << 26), 0);
> -
>  	if (usb_disabled())
>  		return -ENODEV;
>  
> -- 
> 2.33.0
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ