drop arm-tegra-remove-direct-vbus-regulator-control.patch
This commit is contained in:
		
							parent
							
								
									a63b06c936
								
							
						
					
					
						commit
						dbb082fab7
					
				| @ -1,137 +0,0 @@ | |||||||
| diff --git a/drivers/usb/host/ehci-tegra.c b/drivers/usb/host/ehci-tegra.c
 |  | ||||||
| index 6ee7ef7..14c1f35 100644
 |  | ||||||
| --- a/drivers/usb/host/ehci-tegra.c
 |  | ||||||
| +++ b/drivers/usb/host/ehci-tegra.c
 |  | ||||||
| @@ -322,33 +322,6 @@ static void tegra_ehci_unmap_urb_for_dma(struct usb_hcd *hcd, struct urb *urb)
 |  | ||||||
|  	free_dma_aligned_buffer(urb); |  | ||||||
|  } |  | ||||||
|   |  | ||||||
| -static int setup_vbus_gpio(struct platform_device *pdev,
 |  | ||||||
| -			   struct tegra_ehci_platform_data *pdata)
 |  | ||||||
| -{
 |  | ||||||
| -	int err = 0;
 |  | ||||||
| -	int gpio;
 |  | ||||||
| -
 |  | ||||||
| -	gpio = pdata->vbus_gpio;
 |  | ||||||
| -	if (!gpio_is_valid(gpio))
 |  | ||||||
| -		gpio = of_get_named_gpio(pdev->dev.of_node,
 |  | ||||||
| -					 "nvidia,vbus-gpio", 0);
 |  | ||||||
| -	if (!gpio_is_valid(gpio))
 |  | ||||||
| -		return 0;
 |  | ||||||
| -
 |  | ||||||
| -	err = gpio_request(gpio, "vbus_gpio");
 |  | ||||||
| -	if (err) {
 |  | ||||||
| -		dev_err(&pdev->dev, "can't request vbus gpio %d", gpio);
 |  | ||||||
| -		return err;
 |  | ||||||
| -	}
 |  | ||||||
| -	err = gpio_direction_output(gpio, 1);
 |  | ||||||
| -	if (err) {
 |  | ||||||
| -		dev_err(&pdev->dev, "can't enable vbus\n");
 |  | ||||||
| -		return err;
 |  | ||||||
| -	}
 |  | ||||||
| -
 |  | ||||||
| -	return err;
 |  | ||||||
| -}
 |  | ||||||
| -
 |  | ||||||
|  static int tegra_ehci_probe(struct platform_device *pdev) |  | ||||||
|  { |  | ||||||
|  	struct resource *res; |  | ||||||
| @@ -376,14 +349,11 @@ static int tegra_ehci_probe(struct platform_device *pdev)
 |  | ||||||
|  	if (!pdev->dev.coherent_dma_mask) |  | ||||||
|  		pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); |  | ||||||
|   |  | ||||||
| -	setup_vbus_gpio(pdev, pdata);
 |  | ||||||
| -
 |  | ||||||
|  	hcd = usb_create_hcd(&tegra_ehci_hc_driver, &pdev->dev, |  | ||||||
|  					dev_name(&pdev->dev)); |  | ||||||
|  	if (!hcd) { |  | ||||||
|  		dev_err(&pdev->dev, "Unable to create HCD\n"); |  | ||||||
| -		err = -ENOMEM;
 |  | ||||||
| -		goto cleanup_vbus_gpio;
 |  | ||||||
| +		return -ENOMEM;
 |  | ||||||
|  	} |  | ||||||
|  	platform_set_drvdata(pdev, hcd); |  | ||||||
|  	ehci = hcd_to_ehci(hcd); |  | ||||||
| @@ -494,8 +464,6 @@ cleanup_clk_get:
 |  | ||||||
|  	clk_put(tegra->clk); |  | ||||||
|  cleanup_hcd_create: |  | ||||||
|  	usb_put_hcd(hcd); |  | ||||||
| -cleanup_vbus_gpio:
 |  | ||||||
| -	/* FIXME: Undo setup_vbus_gpio() here */
 |  | ||||||
|  	return err; |  | ||||||
|  } |  | ||||||
|   |  | ||||||
| diff --git a/drivers/usb/phy/phy-tegra-usb.c b/drivers/usb/phy/phy-tegra-usb.c
 |  | ||||||
| index cec0855..b3b4809 100644
 |  | ||||||
| --- a/drivers/usb/phy/phy-tegra-usb.c
 |  | ||||||
| +++ b/drivers/usb/phy/phy-tegra-usb.c
 |  | ||||||
| @@ -34,6 +34,7 @@
 |  | ||||||
|  #include <asm/mach-types.h> |  | ||||||
|  #include <linux/usb/ehci_def.h> |  | ||||||
|  #include <linux/usb/tegra_usb_phy.h> |  | ||||||
| +#include <linux/regulator/consumer.h>
 |  | ||||||
|   |  | ||||||
|  #define ULPI_VIEWPORT		0x170 |  | ||||||
|   |  | ||||||
| @@ -237,12 +238,24 @@ static int utmip_pad_open(struct tegra_usb_phy *phy)
 |  | ||||||
|  		return PTR_ERR(phy->pad_clk); |  | ||||||
|  	} |  | ||||||
|   |  | ||||||
| +	phy->vbus = devm_regulator_get(phy->dev, "vbus");
 |  | ||||||
| +	/* On some boards, the VBUS regulator doesn't need to be controlled */
 |  | ||||||
| +	if (IS_ERR(phy->vbus)) {
 |  | ||||||
| +		if (PTR_ERR(phy->vbus) == -ENODEV) {
 |  | ||||||
| +			dev_notice(phy->dev, "no vbus regulator");
 |  | ||||||
| +			phy->vbus = NULL;
 |  | ||||||
| +		} else {
 |  | ||||||
| +			return PTR_ERR(phy->vbus);
 |  | ||||||
| +		}
 |  | ||||||
| +	}
 |  | ||||||
| +
 |  | ||||||
|  	return 0; |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  static void utmip_pad_power_on(struct tegra_usb_phy *phy) |  | ||||||
|  { |  | ||||||
|  	unsigned long val, flags; |  | ||||||
| +	int err;
 |  | ||||||
|  	void __iomem *base = phy->pad_regs; |  | ||||||
|   |  | ||||||
|  	clk_prepare_enable(phy->pad_clk); |  | ||||||
| @@ -258,6 +271,14 @@ static void utmip_pad_power_on(struct tegra_usb_phy *phy)
 |  | ||||||
|  	spin_unlock_irqrestore(&utmip_pad_lock, flags); |  | ||||||
|   |  | ||||||
|  	clk_disable_unprepare(phy->pad_clk); |  | ||||||
| +
 |  | ||||||
| +	if (phy->vbus) {
 |  | ||||||
| +		err = regulator_enable(phy->vbus);
 |  | ||||||
| +		if (err)
 |  | ||||||
| +			dev_err(phy->dev,
 |  | ||||||
| +				"failed to enable usb vbus regulator: %d\n",
 |  | ||||||
| +				err);
 |  | ||||||
| +	}
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  static int utmip_pad_power_off(struct tegra_usb_phy *phy) |  | ||||||
| @@ -284,6 +305,9 @@ static int utmip_pad_power_off(struct tegra_usb_phy *phy)
 |  | ||||||
|   |  | ||||||
|  	clk_disable_unprepare(phy->pad_clk); |  | ||||||
|   |  | ||||||
| +	if (phy->vbus)
 |  | ||||||
| +		regulator_disable(phy->vbus);
 |  | ||||||
| +
 |  | ||||||
|  	return 0; |  | ||||||
|  } |  | ||||||
|   |  | ||||||
| diff --git a/include/linux/usb/tegra_usb_phy.h b/include/linux/usb/tegra_usb_phy.h
 |  | ||||||
| index d2ca919..2b5fa94 100644
 |  | ||||||
| --- a/include/linux/usb/tegra_usb_phy.h
 |  | ||||||
| +++ b/include/linux/usb/tegra_usb_phy.h
 |  | ||||||
| @@ -55,6 +55,7 @@ struct tegra_usb_phy {
 |  | ||||||
|  	struct clk *clk; |  | ||||||
|  	struct clk *pll_u; |  | ||||||
|  	struct clk *pad_clk; |  | ||||||
| +	struct regulator *vbus;
 |  | ||||||
|  	enum tegra_usb_phy_mode mode; |  | ||||||
|  	void *config; |  | ||||||
|  	struct usb_phy *ulpi; |  | ||||||
| @ -702,7 +702,6 @@ Patch21010: arm-omap-load-tfp410.patch | |||||||
| 
 | 
 | ||||||
| # ARM tegra | # ARM tegra | ||||||
| Patch21020: arm-tegra-usb-no-reset-linux33.patch | Patch21020: arm-tegra-usb-no-reset-linux33.patch | ||||||
| Patch21021: arm-tegra-remove-direct-vbus-regulator-control.patch |  | ||||||
| 
 | 
 | ||||||
| # ARM wandboard | # ARM wandboard | ||||||
| Patch21030: arm-wandboard-quad.patch | Patch21030: arm-wandboard-quad.patch | ||||||
| @ -1308,7 +1307,6 @@ ApplyPatch arm-sound-soc-samsung-dma-avoid-another-64bit-division.patch | |||||||
| ApplyPatch arm-exynos-mp.patch | ApplyPatch arm-exynos-mp.patch | ||||||
| ApplyPatch arm-omap-load-tfp410.patch | ApplyPatch arm-omap-load-tfp410.patch | ||||||
| ApplyPatch arm-tegra-usb-no-reset-linux33.patch | ApplyPatch arm-tegra-usb-no-reset-linux33.patch | ||||||
| ApplyPatch arm-tegra-remove-direct-vbus-regulator-control.patch |  | ||||||
| ApplyPatch arm-wandboard-quad.patch | ApplyPatch arm-wandboard-quad.patch | ||||||
| #ApplyPatch arm-omap-bbb-dts.patch | #ApplyPatch arm-omap-bbb-dts.patch | ||||||
| # | # | ||||||
| @ -2249,6 +2247,10 @@ fi | |||||||
| #                 ||----w | | #                 ||----w | | ||||||
| #                 ||     || | #                 ||     || | ||||||
| %changelog | %changelog | ||||||
|  | * Thu Aug 22 2013 Kyle McMartin <kyle@redhat.com> | ||||||
|  | - Drop arm-tegra-remove-direct-vbus-regulator-control.patch, proper fix | ||||||
|  |   will be in the next rebase. | ||||||
|  | 
 | ||||||
| * Wed Aug 21 2013 Josh Boyer <jwboyer@fedoraproject.org> - 3.11.0-0.rc6.git1.2 | * Wed Aug 21 2013 Josh Boyer <jwboyer@fedoraproject.org> - 3.11.0-0.rc6.git1.2 | ||||||
| - Add patch to fix brcmsmac oops (rhbz 989269) | - Add patch to fix brcmsmac oops (rhbz 989269) | ||||||
| - CVE-2013-0343 handling of IPv6 temporary addresses (rhbz 914664 999380) | - CVE-2013-0343 handling of IPv6 temporary addresses (rhbz 914664 999380) | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user