From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2] usb: phy: tegra: don't call into tegra-ehci directly
Date: Tue, 23 Apr 2013 21:05:40 +0200 [thread overview]
Message-ID: <201304232105.40254.arnd@arndb.de> (raw)
In-Reply-To: <20130423171701.GA31397@kroah.com>
Both phy-tegra-usb.c and ehci-tegra.c export symbols used by the other one,
which does not work if one of them or both are loadable modules, resulting
in an error like:
drivers/built-in.o: In function `utmi_phy_clk_disable':
drivers/usb/phy/phy-tegra-usb.c:302: undefined reference to `tegra_ehci_set_phcd'
drivers/built-in.o: In function `utmi_phy_clk_enable':
drivers/usb/phy/phy-tegra-usb.c:324: undefined reference to `tegra_ehci_set_phcd'
drivers/built-in.o: In function `utmi_phy_power_on':
drivers/usb/phy/phy-tegra-usb.c:447: undefined reference to `tegra_ehci_set_pts'
This turns the interface into a one-way dependency by letting the tegra ehci
driver pass two function pointers for callbacks that need to be called by
the phy driver.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Venu Byravarasu <vbyravarasu@nvidia.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Felipe Balbi <balbi@ti.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Stephen Warren <swarren@nvidia.com>
Cc: linux-usb at vger.kernel.org
---
On Tuesday 23 April 2013, Greg Kroah-Hartman wrote:
> > drivers/usb/host/ehci-tegra.c | 10 +++++-----
> > drivers/usb/phy/tegra_usb_phy.c | 13 +++++++++----
> > include/linux/usb/tegra_usb_phy.h | 10 +++++-----
> > 3 files changed, 19 insertions(+), 14 deletions(-)
>
> Not all of these files are in my usb-next tree, so I can't take this
> patch, sorry.
Right. I created the patch again linux-next but then rebased the series
to 3.9-rc8 for submission. I had not realized that the files got renamed
between the trees.
Arnd
drivers/usb/host/ehci-tegra.c | 10 +++++-----
drivers/usb/phy/phy-tegra-usb.c | 13 +++++++++----
include/linux/usb/tegra_usb_phy.h | 10 +++++-----
3 files changed, 19 insertions(+), 14 deletions(-)
diff --git a/drivers/usb/host/ehci-tegra.c b/drivers/usb/host/ehci-tegra.c
index ed201ae..e3eddc3 100644
--- a/drivers/usb/host/ehci-tegra.c
+++ b/drivers/usb/host/ehci-tegra.c
@@ -611,7 +611,7 @@ static const struct dev_pm_ops tegra_ehci_pm_ops = {
/* Bits of PORTSC1, which will get cleared by writing 1 into them */
#define TEGRA_PORTSC1_RWC_BITS (PORT_CSC | PORT_PEC | PORT_OCC)
-void tegra_ehci_set_pts(struct usb_phy *x, u8 pts_val)
+static void tegra_ehci_set_pts(struct usb_phy *x, u8 pts_val)
{
unsigned long val;
struct usb_hcd *hcd = bus_to_hcd(x->otg->host);
@@ -622,9 +622,8 @@ void tegra_ehci_set_pts(struct usb_phy *x, u8 pts_val)
val |= TEGRA_USB_PORTSC1_PTS(pts_val & 3);
writel(val, base + TEGRA_USB_PORTSC1);
}
-EXPORT_SYMBOL_GPL(tegra_ehci_set_pts);
-void tegra_ehci_set_phcd(struct usb_phy *x, bool enable)
+static void tegra_ehci_set_phcd(struct usb_phy *x, bool enable)
{
unsigned long val;
struct usb_hcd *hcd = bus_to_hcd(x->otg->host);
@@ -637,7 +636,6 @@ void tegra_ehci_set_phcd(struct usb_phy *x, bool enable)
val &= ~TEGRA_USB_PORTSC1_PHCD;
writel(val, base + TEGRA_USB_PORTSC1);
}
-EXPORT_SYMBOL_GPL(tegra_ehci_set_phcd);
static u64 tegra_ehci_dma_mask = DMA_BIT_MASK(32);
@@ -738,7 +736,9 @@ static int tegra_ehci_probe(struct platform_device *pdev)
tegra->phy = tegra_usb_phy_open(&pdev->dev, instance, hcd->regs,
pdata->phy_config,
- TEGRA_USB_PHY_MODE_HOST);
+ TEGRA_USB_PHY_MODE_HOST,
+ tegra_ehci_set_pts,
+ tegra_ehci_set_phcd);
if (IS_ERR(tegra->phy)) {
dev_err(&pdev->dev, "Failed to open USB phy\n");
err = -ENXIO;
diff --git a/drivers/usb/phy/phy-tegra-usb.c b/drivers/usb/phy/phy-tegra-usb.c
index 5487d38..17d8112 100644
--- a/drivers/usb/phy/phy-tegra-usb.c
+++ b/drivers/usb/phy/phy-tegra-usb.c
@@ -299,7 +299,7 @@ static void utmi_phy_clk_disable(struct tegra_usb_phy *phy)
val &= ~USB_SUSP_SET;
writel(val, base + USB_SUSP_CTRL);
} else
- tegra_ehci_set_phcd(&phy->u_phy, true);
+ phy->set_phcd(&phy->u_phy, true);
if (utmi_wait_register(base + USB_SUSP_CTRL, USB_PHY_CLK_VALID, 0) < 0)
pr_err("%s: timeout waiting for phy to stabilize\n", __func__);
@@ -321,7 +321,7 @@ static void utmi_phy_clk_enable(struct tegra_usb_phy *phy)
val &= ~USB_SUSP_CLR;
writel(val, base + USB_SUSP_CTRL);
} else
- tegra_ehci_set_phcd(&phy->u_phy, false);
+ phy->set_phcd(&phy->u_phy, false);
if (utmi_wait_register(base + USB_SUSP_CTRL, USB_PHY_CLK_VALID,
USB_PHY_CLK_VALID))
@@ -444,7 +444,7 @@ static int utmi_phy_power_on(struct tegra_usb_phy *phy)
utmi_phy_clk_enable(phy);
if (!phy->is_legacy_phy)
- tegra_ehci_set_pts(&phy->u_phy, 0);
+ phy->set_pts(&phy->u_phy, 0);
return 0;
}
@@ -688,7 +688,10 @@ static int tegra_usb_phy_suspend(struct usb_phy *x, int suspend)
}
struct tegra_usb_phy *tegra_usb_phy_open(struct device *dev, int instance,
- void __iomem *regs, void *config, enum tegra_usb_phy_mode phy_mode)
+ void __iomem *regs, void *config, enum tegra_usb_phy_mode phy_mode,
+ void (*set_pts)(struct usb_phy *x, u8 pts_val),
+ void (*set_phcd)(struct usb_phy *x, bool enable))
+
{
struct tegra_usb_phy *phy;
unsigned long parent_rate;
@@ -707,6 +710,8 @@ struct tegra_usb_phy *tegra_usb_phy_open(struct device *dev, int instance,
phy->dev = dev;
phy->is_legacy_phy =
of_property_read_bool(np, "nvidia,has-legacy-mode");
+ phy->set_pts = set_pts;
+ phy->set_phcd = set_phcd;
err = of_property_match_string(np, "phy_type", "ulpi");
if (err < 0)
phy->is_ulpi_phy = false;
diff --git a/include/linux/usb/tegra_usb_phy.h b/include/linux/usb/tegra_usb_phy.h
index 9ebebe9..1b7519a 100644
--- a/include/linux/usb/tegra_usb_phy.h
+++ b/include/linux/usb/tegra_usb_phy.h
@@ -61,10 +61,14 @@ struct tegra_usb_phy {
struct device *dev;
bool is_legacy_phy;
bool is_ulpi_phy;
+ void (*set_pts)(struct usb_phy *x, u8 pts_val);
+ void (*set_phcd)(struct usb_phy *x, bool enable);
};
struct tegra_usb_phy *tegra_usb_phy_open(struct device *dev, int instance,
- void __iomem *regs, void *config, enum tegra_usb_phy_mode phy_mode);
+ void __iomem *regs, void *config, enum tegra_usb_phy_mode phy_mode,
+ void (*set_pts)(struct usb_phy *x, u8 pts_val),
+ void (*set_phcd)(struct usb_phy *x, bool enable));
void tegra_usb_phy_preresume(struct usb_phy *phy);
@@ -75,8 +79,4 @@ void tegra_ehci_phy_restore_start(struct usb_phy *phy,
void tegra_ehci_phy_restore_end(struct usb_phy *phy);
-void tegra_ehci_set_pts(struct usb_phy *x, u8 pts_val);
-
-void tegra_ehci_set_phcd(struct usb_phy *x, bool enable);
-
#endif /* __TEGRA_USB_PHY_H */
WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de>
To: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
Cc: linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org,
Venu Byravarasu <vbyravarasu@nvidia.com>,
Alan Stern <stern@rowland.harvard.edu>,
Felipe Balbi <balbi@ti.com>, Stephen Warren <swarren@nvidia.com>,
linux-usb@vger.kernel.org
Subject: [PATCH v2] usb: phy: tegra: don't call into tegra-ehci directly
Date: Tue, 23 Apr 2013 21:05:40 +0200 [thread overview]
Message-ID: <201304232105.40254.arnd@arndb.de> (raw)
In-Reply-To: <20130423171701.GA31397@kroah.com>
Both phy-tegra-usb.c and ehci-tegra.c export symbols used by the other one,
which does not work if one of them or both are loadable modules, resulting
in an error like:
drivers/built-in.o: In function `utmi_phy_clk_disable':
drivers/usb/phy/phy-tegra-usb.c:302: undefined reference to `tegra_ehci_set_phcd'
drivers/built-in.o: In function `utmi_phy_clk_enable':
drivers/usb/phy/phy-tegra-usb.c:324: undefined reference to `tegra_ehci_set_phcd'
drivers/built-in.o: In function `utmi_phy_power_on':
drivers/usb/phy/phy-tegra-usb.c:447: undefined reference to `tegra_ehci_set_pts'
This turns the interface into a one-way dependency by letting the tegra ehci
driver pass two function pointers for callbacks that need to be called by
the phy driver.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Venu Byravarasu <vbyravarasu@nvidia.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Felipe Balbi <balbi@ti.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Stephen Warren <swarren@nvidia.com>
Cc: linux-usb@vger.kernel.org
---
On Tuesday 23 April 2013, Greg Kroah-Hartman wrote:
> > drivers/usb/host/ehci-tegra.c | 10 +++++-----
> > drivers/usb/phy/tegra_usb_phy.c | 13 +++++++++----
> > include/linux/usb/tegra_usb_phy.h | 10 +++++-----
> > 3 files changed, 19 insertions(+), 14 deletions(-)
>
> Not all of these files are in my usb-next tree, so I can't take this
> patch, sorry.
Right. I created the patch again linux-next but then rebased the series
to 3.9-rc8 for submission. I had not realized that the files got renamed
between the trees.
Arnd
drivers/usb/host/ehci-tegra.c | 10 +++++-----
drivers/usb/phy/phy-tegra-usb.c | 13 +++++++++----
include/linux/usb/tegra_usb_phy.h | 10 +++++-----
3 files changed, 19 insertions(+), 14 deletions(-)
diff --git a/drivers/usb/host/ehci-tegra.c b/drivers/usb/host/ehci-tegra.c
index ed201ae..e3eddc3 100644
--- a/drivers/usb/host/ehci-tegra.c
+++ b/drivers/usb/host/ehci-tegra.c
@@ -611,7 +611,7 @@ static const struct dev_pm_ops tegra_ehci_pm_ops = {
/* Bits of PORTSC1, which will get cleared by writing 1 into them */
#define TEGRA_PORTSC1_RWC_BITS (PORT_CSC | PORT_PEC | PORT_OCC)
-void tegra_ehci_set_pts(struct usb_phy *x, u8 pts_val)
+static void tegra_ehci_set_pts(struct usb_phy *x, u8 pts_val)
{
unsigned long val;
struct usb_hcd *hcd = bus_to_hcd(x->otg->host);
@@ -622,9 +622,8 @@ void tegra_ehci_set_pts(struct usb_phy *x, u8 pts_val)
val |= TEGRA_USB_PORTSC1_PTS(pts_val & 3);
writel(val, base + TEGRA_USB_PORTSC1);
}
-EXPORT_SYMBOL_GPL(tegra_ehci_set_pts);
-void tegra_ehci_set_phcd(struct usb_phy *x, bool enable)
+static void tegra_ehci_set_phcd(struct usb_phy *x, bool enable)
{
unsigned long val;
struct usb_hcd *hcd = bus_to_hcd(x->otg->host);
@@ -637,7 +636,6 @@ void tegra_ehci_set_phcd(struct usb_phy *x, bool enable)
val &= ~TEGRA_USB_PORTSC1_PHCD;
writel(val, base + TEGRA_USB_PORTSC1);
}
-EXPORT_SYMBOL_GPL(tegra_ehci_set_phcd);
static u64 tegra_ehci_dma_mask = DMA_BIT_MASK(32);
@@ -738,7 +736,9 @@ static int tegra_ehci_probe(struct platform_device *pdev)
tegra->phy = tegra_usb_phy_open(&pdev->dev, instance, hcd->regs,
pdata->phy_config,
- TEGRA_USB_PHY_MODE_HOST);
+ TEGRA_USB_PHY_MODE_HOST,
+ tegra_ehci_set_pts,
+ tegra_ehci_set_phcd);
if (IS_ERR(tegra->phy)) {
dev_err(&pdev->dev, "Failed to open USB phy\n");
err = -ENXIO;
diff --git a/drivers/usb/phy/phy-tegra-usb.c b/drivers/usb/phy/phy-tegra-usb.c
index 5487d38..17d8112 100644
--- a/drivers/usb/phy/phy-tegra-usb.c
+++ b/drivers/usb/phy/phy-tegra-usb.c
@@ -299,7 +299,7 @@ static void utmi_phy_clk_disable(struct tegra_usb_phy *phy)
val &= ~USB_SUSP_SET;
writel(val, base + USB_SUSP_CTRL);
} else
- tegra_ehci_set_phcd(&phy->u_phy, true);
+ phy->set_phcd(&phy->u_phy, true);
if (utmi_wait_register(base + USB_SUSP_CTRL, USB_PHY_CLK_VALID, 0) < 0)
pr_err("%s: timeout waiting for phy to stabilize\n", __func__);
@@ -321,7 +321,7 @@ static void utmi_phy_clk_enable(struct tegra_usb_phy *phy)
val &= ~USB_SUSP_CLR;
writel(val, base + USB_SUSP_CTRL);
} else
- tegra_ehci_set_phcd(&phy->u_phy, false);
+ phy->set_phcd(&phy->u_phy, false);
if (utmi_wait_register(base + USB_SUSP_CTRL, USB_PHY_CLK_VALID,
USB_PHY_CLK_VALID))
@@ -444,7 +444,7 @@ static int utmi_phy_power_on(struct tegra_usb_phy *phy)
utmi_phy_clk_enable(phy);
if (!phy->is_legacy_phy)
- tegra_ehci_set_pts(&phy->u_phy, 0);
+ phy->set_pts(&phy->u_phy, 0);
return 0;
}
@@ -688,7 +688,10 @@ static int tegra_usb_phy_suspend(struct usb_phy *x, int suspend)
}
struct tegra_usb_phy *tegra_usb_phy_open(struct device *dev, int instance,
- void __iomem *regs, void *config, enum tegra_usb_phy_mode phy_mode)
+ void __iomem *regs, void *config, enum tegra_usb_phy_mode phy_mode,
+ void (*set_pts)(struct usb_phy *x, u8 pts_val),
+ void (*set_phcd)(struct usb_phy *x, bool enable))
+
{
struct tegra_usb_phy *phy;
unsigned long parent_rate;
@@ -707,6 +710,8 @@ struct tegra_usb_phy *tegra_usb_phy_open(struct device *dev, int instance,
phy->dev = dev;
phy->is_legacy_phy =
of_property_read_bool(np, "nvidia,has-legacy-mode");
+ phy->set_pts = set_pts;
+ phy->set_phcd = set_phcd;
err = of_property_match_string(np, "phy_type", "ulpi");
if (err < 0)
phy->is_ulpi_phy = false;
diff --git a/include/linux/usb/tegra_usb_phy.h b/include/linux/usb/tegra_usb_phy.h
index 9ebebe9..1b7519a 100644
--- a/include/linux/usb/tegra_usb_phy.h
+++ b/include/linux/usb/tegra_usb_phy.h
@@ -61,10 +61,14 @@ struct tegra_usb_phy {
struct device *dev;
bool is_legacy_phy;
bool is_ulpi_phy;
+ void (*set_pts)(struct usb_phy *x, u8 pts_val);
+ void (*set_phcd)(struct usb_phy *x, bool enable);
};
struct tegra_usb_phy *tegra_usb_phy_open(struct device *dev, int instance,
- void __iomem *regs, void *config, enum tegra_usb_phy_mode phy_mode);
+ void __iomem *regs, void *config, enum tegra_usb_phy_mode phy_mode,
+ void (*set_pts)(struct usb_phy *x, u8 pts_val),
+ void (*set_phcd)(struct usb_phy *x, bool enable));
void tegra_usb_phy_preresume(struct usb_phy *phy);
@@ -75,8 +79,4 @@ void tegra_ehci_phy_restore_start(struct usb_phy *phy,
void tegra_ehci_phy_restore_end(struct usb_phy *phy);
-void tegra_ehci_set_pts(struct usb_phy *x, u8 pts_val);
-
-void tegra_ehci_set_phcd(struct usb_phy *x, bool enable);
-
#endif /* __TEGRA_USB_PHY_H */
next prev parent reply other threads:[~2013-04-23 19:05 UTC|newest]
Thread overview: 123+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-23 16:30 [PATCH 00/21] ARM build fixes for 3.10 Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 16:30 ` [PATCH 01/21] Turn off -Wmaybe-uninitialized when building with -Os Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 16:30 ` [PATCH 02/21] ARM: compressed/head.S: work around new binutils warning Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 16:30 ` [PATCH 03/21] ARM: use optimized do_div only for EABI Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 16:30 ` [PATCH 04/21] ARM: kvm: define KVM_ARM_MAX_VCPUS unconditionally Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 17:29 ` Christoffer Dall
2013-04-23 17:29 ` Christoffer Dall
2013-04-23 17:32 ` Christoffer Dall
2013-04-23 17:32 ` Christoffer Dall
2013-04-23 16:30 ` [PATCH 05/21] ARM: OMAP2+: add dependencies on ARCH_MULTI_V6/V7 Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 18:01 ` Tony Lindgren
2013-04-23 18:01 ` Tony Lindgren
2013-04-23 19:31 ` Arnd Bergmann
2013-04-23 19:31 ` Arnd Bergmann
2013-04-23 16:30 ` [PATCH 06/21] ARM: tegra: call cpu_do_idle from C code Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-24 2:55 ` Joseph Lo
2013-04-24 2:55 ` Joseph Lo
2013-04-23 16:30 ` [PATCH 07/21] ARM: tegra: unify tegra_idle_device definitions Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 16:56 ` Daniel Lezcano
2013-04-23 16:56 ` Daniel Lezcano
2013-04-23 18:57 ` Arnd Bergmann
2013-04-23 18:57 ` Arnd Bergmann
2013-04-23 22:04 ` Daniel Lezcano
2013-04-23 22:04 ` Daniel Lezcano
2013-04-24 2:56 ` Joseph Lo
2013-04-24 2:56 ` Joseph Lo
2013-04-23 16:30 ` [PATCH 08/21] ASoC: ux500: forward declare msp_i2s_platform_data Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 18:25 ` Mark Brown
2013-04-23 18:25 ` Mark Brown
[not found] ` <1366734653-488286-1-git-send-email-arnd-r2nGTMty4D4@public.gmane.org>
2013-04-23 16:30 ` [PATCH 09/21] spi/sirf: fix MODULE_DEVICE_TABLE Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 18:27 ` Mark Brown
2013-04-23 18:27 ` Mark Brown
2013-04-23 16:30 ` [PATCH 10/21] ssb: fix alignment of struct bcma_device_id Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 16:30 ` [PATCH 11/21] drm/tilcdc: use only a single module device table Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-25 17:39 ` Rob Clark
2013-04-25 17:39 ` Rob Clark
2013-04-23 16:30 ` [PATCH 12/21] mmc: sdhci-tegra: fix MODULE_DEVICE_TABLE Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 16:46 ` Chris Ball
2013-04-23 16:46 ` Chris Ball
2013-04-23 18:55 ` Arnd Bergmann
2013-04-23 18:55 ` Arnd Bergmann
2013-04-23 19:07 ` Chris Ball
2013-04-23 19:07 ` Chris Ball
2013-04-23 16:30 ` [PATCH 13/21] misc: mark spear13xx-pcie-gadget as broken Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-24 3:20 ` Viresh Kumar
2013-04-24 3:20 ` Viresh Kumar
2013-04-23 16:30 ` [PATCH 14/21] staging: nvec: allow modular build Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 19:21 ` Marc Dietrich
2013-04-23 19:21 ` Marc Dietrich
2013-04-23 19:41 ` Arnd Bergmann
2013-04-23 19:41 ` Arnd Bergmann
2013-04-23 19:55 ` Marc Dietrich
2013-04-23 19:55 ` Marc Dietrich
2013-04-23 20:05 ` Greg Kroah-Hartman
2013-04-23 20:05 ` Greg Kroah-Hartman
2013-04-23 20:14 ` Arnd Bergmann
2013-04-23 20:14 ` Arnd Bergmann
2013-04-23 20:21 ` Marc Dietrich
2013-04-23 20:21 ` Marc Dietrich
2013-04-23 16:30 ` [PATCH 15/21] staging: comedi/dawboard2000: use mdelay for large delays Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 16:46 ` H Hartley Sweeten
2013-04-23 16:46 ` H Hartley Sweeten
2013-04-23 16:30 ` [PATCH 16/21] staging/zsmalloc: don't use pgtable-mapping from modules Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 16:30 ` [PATCH 17/21] tty/serial/sirf: fix MODULE_DEVICE_TABLE Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 16:30 ` [PATCH 18/21] usb: phy: tegra: don't call into tegra-ehci directly Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 16:42 ` Alan Stern
2013-04-23 16:42 ` Alan Stern
2013-04-23 19:02 ` Arnd Bergmann
2013-04-23 19:02 ` Arnd Bergmann
2013-04-23 17:17 ` Greg Kroah-Hartman
2013-04-23 17:17 ` Greg Kroah-Hartman
2013-04-23 19:05 ` Arnd Bergmann [this message]
2013-04-23 19:05 ` [PATCH v2] " Arnd Bergmann
2013-04-23 16:30 ` [PATCH 19/21] usb: phy: don't mark usb_bind_phy as __init Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 17:17 ` Greg Kroah-Hartman
2013-04-23 17:17 ` Greg Kroah-Hartman
2013-04-23 19:07 ` [PATCH v2] " Arnd Bergmann
2013-04-23 19:07 ` Arnd Bergmann
2013-04-23 19:30 ` Felipe Balbi
2013-04-23 19:30 ` Felipe Balbi
2013-04-23 19:46 ` Arnd Bergmann
2013-04-23 19:46 ` Arnd Bergmann
2013-04-23 16:30 ` [PATCH 20/21] MFD: ab8500: export ab8500_gpadc_sw_hw_convert properly Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-26 8:13 ` Linus Walleij
2013-04-26 8:13 ` Linus Walleij
2013-04-26 9:23 ` Samuel Ortiz
2013-04-26 9:23 ` Samuel Ortiz
2013-04-23 16:30 ` [PATCH 21/21] mtd: omap2: allow bulding as a module Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 16:30 ` Arnd Bergmann
2013-04-23 18:03 ` Tony Lindgren
2013-04-23 18:03 ` Tony Lindgren
2013-04-23 18:03 ` Tony Lindgren
2013-04-24 5:34 ` Gupta, Pekon
2013-04-24 5:34 ` Gupta, Pekon
2013-04-29 13:34 ` Arnd Bergmann
2013-04-29 13:34 ` Arnd Bergmann
2013-04-29 13:34 ` Arnd Bergmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201304232105.40254.arnd@arndb.de \
--to=arnd@arndb.de \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.