public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH 0/5] ARM: tegra: enable wlan for t20 and t30
@ 2012-07-04  9:34 Wei Ni
  2012-07-04  9:34 ` [PATCH 1/5] ARM: tegra: set up wlan clocks for tegra dt Wei Ni
                   ` (4 more replies)
  0 siblings, 5 replies; 17+ messages in thread
From: Wei Ni @ 2012-07-04  9:34 UTC (permalink / raw)
  To: linux-arm-kernel

Set up clocks, pinmux, gpios and configs to enable wlan for
following tegra boards:
Tegra30: Cardhu.
Tegra20: Seaboard, Ventana.

Wei Ni (5):
  ARM: tegra: set up wlan clocks for tegra dt
  ARM: dt: t20 seaboard: add pinmux, gpio for wlan
  ARM: dt: t20 ventana: add pinmux, gpio for wlan
  ARM: dt: t30 cardhu: add pinmux, gpio for wlan
  ARM: tegra: enable wireless in defconfig

 arch/arm/boot/dts/tegra20-seaboard.dts |    5 +++++
 arch/arm/boot/dts/tegra20-ventana.dts  |   20 ++++++++++++++++++--
 arch/arm/boot/dts/tegra30-cardhu.dts   |   30 ++++++++++++++++++++++++++++++
 arch/arm/configs/tegra_defconfig       |    6 ++++--
 arch/arm/mach-tegra/board-dt-tegra20.c |    1 +
 arch/arm/mach-tegra/board-dt-tegra30.c |    1 +
 6 files changed, 59 insertions(+), 4 deletions(-)

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 1/5] ARM: tegra: set up wlan clocks for tegra dt
  2012-07-04  9:34 [PATCH 0/5] ARM: tegra: enable wlan for t20 and t30 Wei Ni
@ 2012-07-04  9:34 ` Wei Ni
  2012-07-04 10:43   ` Marc Dietrich
  2012-07-04  9:34 ` [PATCH 2/5] ARM: dt: t20 seaboard: add pinmux, gpio for wlan Wei Ni
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 17+ messages in thread
From: Wei Ni @ 2012-07-04  9:34 UTC (permalink / raw)
  To: linux-arm-kernel

Set up the wlan clock tree for Tegra20 and Tegra30.

Signed-off-by: Wei Ni <wni@nvidia.com>
---
 arch/arm/mach-tegra/board-dt-tegra20.c |    1 +
 arch/arm/mach-tegra/board-dt-tegra30.c |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-tegra/board-dt-tegra20.c b/arch/arm/mach-tegra/board-dt-tegra20.c
index 70a19a9..fbcc7d9 100644
--- a/arch/arm/mach-tegra/board-dt-tegra20.c
+++ b/arch/arm/mach-tegra/board-dt-tegra20.c
@@ -78,6 +78,7 @@ static __initdata struct tegra_clk_init_table tegra_dt_clk_init_table[] = {
 	{ "pll_a",      "pll_p_out1",   56448000,       true },
 	{ "pll_a_out0", "pll_a",        11289600,       true },
 	{ "cdev1",      NULL,           0,              true },
+	{ "blink",      "clk_32k",      32768,          true },
 	{ "i2s1",       "pll_a_out0",   11289600,       false},
 	{ "i2s2",       "pll_a_out0",   11289600,       false},
 	{ NULL,		NULL,		0,		0},
diff --git a/arch/arm/mach-tegra/board-dt-tegra30.c b/arch/arm/mach-tegra/board-dt-tegra30.c
index 53bf60f..2d73c61 100644
--- a/arch/arm/mach-tegra/board-dt-tegra30.c
+++ b/arch/arm/mach-tegra/board-dt-tegra30.c
@@ -61,6 +61,7 @@ static __initdata struct tegra_clk_init_table tegra_dt_clk_init_table[] = {
 	{ "pll_a_out0",	"pll_a",	11289600,	true },
 	{ "extern1",	"pll_a_out0",	0,		true },
 	{ "clk_out_1",	"extern1",	0,		true },
+	{ "blink",	"clk_32k",	32768,		true },
 	{ "i2s0",	"pll_a_out0",	11289600,	false},
 	{ "i2s1",	"pll_a_out0",	11289600,	false},
 	{ "i2s2",	"pll_a_out0",	11289600,	false},
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 2/5] ARM: dt: t20 seaboard: add pinmux, gpio for wlan
  2012-07-04  9:34 [PATCH 0/5] ARM: tegra: enable wlan for t20 and t30 Wei Ni
  2012-07-04  9:34 ` [PATCH 1/5] ARM: tegra: set up wlan clocks for tegra dt Wei Ni
@ 2012-07-04  9:34 ` Wei Ni
  2012-07-04  9:34 ` [PATCH 3/5] ARM: dt: t20 ventana: " Wei Ni
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 17+ messages in thread
From: Wei Ni @ 2012-07-04  9:34 UTC (permalink / raw)
  To: linux-arm-kernel

This adds wlan pinmux and gpio settings to the Tegra20 Seaboard device tree.

Signed-off-by: Wei Ni <wni@nvidia.com>
---
 arch/arm/boot/dts/tegra20-seaboard.dts |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/arch/arm/boot/dts/tegra20-seaboard.dts b/arch/arm/boot/dts/tegra20-seaboard.dts
index 85e621a..f377a61 100644
--- a/arch/arm/boot/dts/tegra20-seaboard.dts
+++ b/arch/arm/boot/dts/tegra20-seaboard.dts
@@ -440,6 +440,11 @@
 		status = "okay";
 	};
 
+	sdhci at c8000000 {
+		status = "okay";
+		power-gpios = <&gpio 86 0>; /* gpio PK6 */
+	};
+
 	sdhci at c8000400 {
 		status = "okay";
 		cd-gpios = <&gpio 69 0>; /* gpio PI5 */
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 3/5] ARM: dt: t20 ventana: add pinmux, gpio for wlan
  2012-07-04  9:34 [PATCH 0/5] ARM: tegra: enable wlan for t20 and t30 Wei Ni
  2012-07-04  9:34 ` [PATCH 1/5] ARM: tegra: set up wlan clocks for tegra dt Wei Ni
  2012-07-04  9:34 ` [PATCH 2/5] ARM: dt: t20 seaboard: add pinmux, gpio for wlan Wei Ni
@ 2012-07-04  9:34 ` Wei Ni
  2012-07-04  9:34 ` [PATCH 4/5] ARM: dt: t30 cardhu: " Wei Ni
  2012-07-04  9:34 ` [PATCH 5/5] ARM: tegra: enable wireless in defconfig Wei Ni
  4 siblings, 0 replies; 17+ messages in thread
From: Wei Ni @ 2012-07-04  9:34 UTC (permalink / raw)
  To: linux-arm-kernel

This adds wlan pinmux and gpio settings to the Tegra20 Ventana device tree.

Signed-off-by: Wei Ni <wni@nvidia.com>
---
 arch/arm/boot/dts/tegra20-ventana.dts |   20 ++++++++++++++++++--
 1 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/tegra20-ventana.dts b/arch/arm/boot/dts/tegra20-ventana.dts
index be90544..42dbacc 100644
--- a/arch/arm/boot/dts/tegra20-ventana.dts
+++ b/arch/arm/boot/dts/tegra20-ventana.dts
@@ -198,7 +198,8 @@
 				nvidia,tristate = <1>;
 			};
 			conf_dta {
-				nvidia,pins = "dta", "dtb", "dtc", "dtd";
+				nvidia,pins = "dta", "dtb", "dtc", "dtd",
+					"kbcb";
 				nvidia,pull = <1>;
 				nvidia,tristate = <0>;
 			};
@@ -213,7 +214,7 @@
 				nvidia,tristate = <1>;
 			};
 			conf_kbca {
-				nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd",
+				nvidia,pins = "kbca", "kbcc", "kbcd",
 					"kbce", "kbcf", "sdio1", "uaa", "uab";
 				nvidia,pull = <2>;
 				nvidia,tristate = <0>;
@@ -237,6 +238,16 @@
 					"ld23_22";
 				nvidia,pull = <1>;
 			};
+			drive_sdio1 {
+				nvidia,pins = "drive_sdio1";
+				nvidia,high-speed-mode = <0>;
+				nvidia,schmitt = <1>;
+				nvidia,low-power-mode = <3>;
+				nvidia,pull-down-strength = <31>;
+				nvidia,pull-up-strength = <31>;
+				nvidia,slew-rate-rising = <3>;
+				nvidia,slew-rate-falling = <3>;
+			};
 		};
 	};
 
@@ -304,6 +315,11 @@
 		status = "okay";
 	};
 
+	sdhci at c8000000 {
+		status = "okay";
+		power-gpios = <&gpio 86 0>; /* gpio PK6 */
+	};
+
 	sdhci at c8000400 {
 		status = "okay";
 		cd-gpios = <&gpio 69 0>; /* gpio PI5 */
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 4/5] ARM: dt: t30 cardhu: add pinmux, gpio for wlan
  2012-07-04  9:34 [PATCH 0/5] ARM: tegra: enable wlan for t20 and t30 Wei Ni
                   ` (2 preceding siblings ...)
  2012-07-04  9:34 ` [PATCH 3/5] ARM: dt: t20 ventana: " Wei Ni
@ 2012-07-04  9:34 ` Wei Ni
  2012-07-04  9:34 ` [PATCH 5/5] ARM: tegra: enable wireless in defconfig Wei Ni
  4 siblings, 0 replies; 17+ messages in thread
From: Wei Ni @ 2012-07-04  9:34 UTC (permalink / raw)
  To: linux-arm-kernel

This adds wlan pinmux and gpio settings to the Tegra30 Cardhu device tree.

Signed-off-by: Wei Ni <wni@nvidia.com>
---
 arch/arm/boot/dts/tegra30-cardhu.dts |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/arch/arm/boot/dts/tegra30-cardhu.dts b/arch/arm/boot/dts/tegra30-cardhu.dts
index c169bce..08749cc 100644
--- a/arch/arm/boot/dts/tegra30-cardhu.dts
+++ b/arch/arm/boot/dts/tegra30-cardhu.dts
@@ -31,6 +31,22 @@
 				nvidia,pull = <2>;
 				nvidia,tristate = <0>;
 			};
+			sdmmc3_clk_pa6 {
+				nvidia,pins = "sdmmc3_clk_pa6";
+				nvidia,function = "sdmmc3";
+				nvidia,pull = <0>;
+				nvidia,tristate = <0>;
+			};
+			sdmmc3_cmd_pa7 {
+				nvidia,pins =	"sdmmc3_cmd_pa7",
+						"sdmmc3_dat0_pb7",
+						"sdmmc3_dat1_pb6",
+						"sdmmc3_dat2_pb5",
+						"sdmmc3_dat3_pb4";
+				nvidia,function = "sdmmc3";
+				nvidia,pull = <2>;
+				nvidia,tristate = <0>;
+			};
 			sdmmc4_clk_pcc4 {
 				nvidia,pins =	"sdmmc4_clk_pcc4",
 						"sdmmc4_rst_n_pcc3";
@@ -60,6 +76,15 @@
 				nvidia,pull = <0>;
 				nvidia,tristate = <0>;
 			};
+			sdio3 {
+				nvidia,pins = "drive_sdio3";
+				nvidia,high-speed-mode = <0>;
+				nvidia,schmitt = <0>;
+				nvidia,pull-down-strength = <46>;
+				nvidia,pull-up-strength = <42>;
+				nvidia,slew-rate-rising = <1>;
+				nvidia,slew-rate-falling = <1>;
+			};
 		};
 	};
 
@@ -142,6 +167,11 @@
 		bus-width = <4>;
 	};
 
+	sdhci at 78000400 {
+		status = "okay";
+		power-gpios = <&gpio 28 0>; /* gpio PD4 */
+	};
+
 	sdhci at 78000600 {
 		status = "okay";
 		bus-width = <8>;
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 5/5] ARM: tegra: enable wireless in defconfig
  2012-07-04  9:34 [PATCH 0/5] ARM: tegra: enable wlan for t20 and t30 Wei Ni
                   ` (3 preceding siblings ...)
  2012-07-04  9:34 ` [PATCH 4/5] ARM: dt: t30 cardhu: " Wei Ni
@ 2012-07-04  9:34 ` Wei Ni
  2012-07-05 19:59   ` Stephen Warren
  4 siblings, 1 reply; 17+ messages in thread
From: Wei Ni @ 2012-07-04  9:34 UTC (permalink / raw)
  To: linux-arm-kernel

New options enabled:
* WIRELESS: (dependency)
* CFG80211: (dependency)
* WLAN: (dependency)
* BRCMFMAC: wlan driver, enable as module.

Signed-off-by: Wei Ni <wni@nvidia.com>
---
 arch/arm/configs/tegra_defconfig |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/arm/configs/tegra_defconfig b/arch/arm/configs/tegra_defconfig
index 4be9c1e..c0aa6d9 100644
--- a/arch/arm/configs/tegra_defconfig
+++ b/arch/arm/configs/tegra_defconfig
@@ -67,7 +67,8 @@ CONFIG_INET6_IPCOMP=y
 CONFIG_IPV6_MIP6=y
 CONFIG_IPV6_TUNNEL=y
 CONFIG_IPV6_MULTIPLE_TABLES=y
-# CONFIG_WIRELESS is not set
+CONFIG_WIRELESS=y
+CONFIG_CFG80211=y
 # CONFIG_FIRMWARE_IN_KERNEL is not set
 CONFIG_PROC_DEVICETREE=y
 CONFIG_BLK_DEV_LOOP=y
@@ -87,7 +88,8 @@ CONFIG_USB_PEGASUS=y
 CONFIG_USB_USBNET=y
 CONFIG_USB_NET_SMSC75XX=y
 CONFIG_USB_NET_SMSC95XX=y
-# CONFIG_WLAN is not set
+CONFIG_WLAN=y
+CONFIG_BRCMFMAC=m
 CONFIG_INPUT_EVDEV=y
 CONFIG_INPUT_MISC=y
 CONFIG_INPUT_MPU3050=y
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 1/5] ARM: tegra: set up wlan clocks for tegra dt
  2012-07-04  9:34 ` [PATCH 1/5] ARM: tegra: set up wlan clocks for tegra dt Wei Ni
@ 2012-07-04 10:43   ` Marc Dietrich
  2012-07-04 11:23     ` Wei Ni
  0 siblings, 1 reply; 17+ messages in thread
From: Marc Dietrich @ 2012-07-04 10:43 UTC (permalink / raw)
  To: linux-arm-kernel

Am Mittwoch, 4. Juli 2012, 17:34:44 schrieb Wei Ni:
> Set up the wlan clock tree for Tegra20 and Tegra30.
> 
> Signed-off-by: Wei Ni <wni@nvidia.com>
> ---
>  arch/arm/mach-tegra/board-dt-tegra20.c |    1 +
>  arch/arm/mach-tegra/board-dt-tegra30.c |    1 +
>  2 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/mach-tegra/board-dt-tegra20.c
> b/arch/arm/mach-tegra/board-dt-tegra20.c index 70a19a9..fbcc7d9 100644
> --- a/arch/arm/mach-tegra/board-dt-tegra20.c
> +++ b/arch/arm/mach-tegra/board-dt-tegra20.c
> @@ -78,6 +78,7 @@ static __initdata struct tegra_clk_init_table
> tegra_dt_clk_init_table[] = { { "pll_a",      "pll_p_out1",   56448000,    
>   true },
>  	{ "pll_a_out0", "pll_a",        11289600,       true },
>  	{ "cdev1",      NULL,           0,              true },
> +	{ "blink",      "clk_32k",      32768,          true },

what's the reason to enable this on all boards? Would it make sense to set 
this to "false" instead?

Marc


>  	{ "i2s1",       "pll_a_out0",   11289600,       false},
>  	{ "i2s2",       "pll_a_out0",   11289600,       false},
>  	{ NULL,		NULL,		0,		0},
> diff --git a/arch/arm/mach-tegra/board-dt-tegra30.c
> b/arch/arm/mach-tegra/board-dt-tegra30.c index 53bf60f..2d73c61 100644
> --- a/arch/arm/mach-tegra/board-dt-tegra30.c
> +++ b/arch/arm/mach-tegra/board-dt-tegra30.c
> @@ -61,6 +61,7 @@ static __initdata struct tegra_clk_init_table
> tegra_dt_clk_init_table[] = { { "pll_a_out0",	"pll_a",	11289600,	true },
>  	{ "extern1",	"pll_a_out0",	0,		true },
>  	{ "clk_out_1",	"extern1",	0,		true },
> +	{ "blink",	"clk_32k",	32768,		true },
>  	{ "i2s0",	"pll_a_out0",	11289600,	false},
>  	{ "i2s1",	"pll_a_out0",	11289600,	false},
>  	{ "i2s2",	"pll_a_out0",	11289600,	false},

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 1/5] ARM: tegra: set up wlan clocks for tegra dt
  2012-07-04 10:43   ` Marc Dietrich
@ 2012-07-04 11:23     ` Wei Ni
  2012-07-04 11:51       ` Marc Dietrich
  0 siblings, 1 reply; 17+ messages in thread
From: Wei Ni @ 2012-07-04 11:23 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, 2012-07-04 at 18:43 +0800, Marc Dietrich wrote:
> Am Mittwoch, 4. Juli 2012, 17:34:44 schrieb Wei Ni:
> > Set up the wlan clock tree for Tegra20 and Tegra30.
> > 
> > Signed-off-by: Wei Ni <wni@nvidia.com>
> > ---
> >  arch/arm/mach-tegra/board-dt-tegra20.c |    1 +
> >  arch/arm/mach-tegra/board-dt-tegra30.c |    1 +
> >  2 files changed, 2 insertions(+), 0 deletions(-)
> > 
> > diff --git a/arch/arm/mach-tegra/board-dt-tegra20.c
> > b/arch/arm/mach-tegra/board-dt-tegra20.c index 70a19a9..fbcc7d9 100644
> > --- a/arch/arm/mach-tegra/board-dt-tegra20.c
> > +++ b/arch/arm/mach-tegra/board-dt-tegra20.c
> > @@ -78,6 +78,7 @@ static __initdata struct tegra_clk_init_table
> > tegra_dt_clk_init_table[] = { { "pll_a",      "pll_p_out1",   56448000,    
> >   true },
> >  	{ "pll_a_out0", "pll_a",        11289600,       true },
> >  	{ "cdev1",      NULL,           0,              true },
> > +	{ "blink",      "clk_32k",      32768,          true },
> 
> what's the reason to enable this on all boards? Would it make sense to set 
> this to "false" instead?

This clock is used for the wlan device, it need to be enabled, so that
the wlan device can be powered on, and then the mmc driver can enumerate
it.

> 
> Marc
> 
> 
> >  	{ "i2s1",       "pll_a_out0",   11289600,       false},
> >  	{ "i2s2",       "pll_a_out0",   11289600,       false},
> >  	{ NULL,		NULL,		0,		0},
> > diff --git a/arch/arm/mach-tegra/board-dt-tegra30.c
> > b/arch/arm/mach-tegra/board-dt-tegra30.c index 53bf60f..2d73c61 100644
> > --- a/arch/arm/mach-tegra/board-dt-tegra30.c
> > +++ b/arch/arm/mach-tegra/board-dt-tegra30.c
> > @@ -61,6 +61,7 @@ static __initdata struct tegra_clk_init_table
> > tegra_dt_clk_init_table[] = { { "pll_a_out0",	"pll_a",	11289600,	true },
> >  	{ "extern1",	"pll_a_out0",	0,		true },
> >  	{ "clk_out_1",	"extern1",	0,		true },
> > +	{ "blink",	"clk_32k",	32768,		true },
> >  	{ "i2s0",	"pll_a_out0",	11289600,	false},
> >  	{ "i2s1",	"pll_a_out0",	11289600,	false},
> >  	{ "i2s2",	"pll_a_out0",	11289600,	false},

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 1/5] ARM: tegra: set up wlan clocks for tegra dt
  2012-07-04 11:23     ` Wei Ni
@ 2012-07-04 11:51       ` Marc Dietrich
  2012-07-05  3:18         ` Wei Ni
  0 siblings, 1 reply; 17+ messages in thread
From: Marc Dietrich @ 2012-07-04 11:51 UTC (permalink / raw)
  To: linux-arm-kernel

Am Mittwoch, 4. Juli 2012, 19:23:33 schrieb Wei Ni:
> On Wed, 2012-07-04 at 18:43 +0800, Marc Dietrich wrote:
> > Am Mittwoch, 4. Juli 2012, 17:34:44 schrieb Wei Ni:
> > > Set up the wlan clock tree for Tegra20 and Tegra30.
> > > 
> > > Signed-off-by: Wei Ni <wni@nvidia.com>
> > > ---
> > > 
> > >  arch/arm/mach-tegra/board-dt-tegra20.c |    1 +
> > >  arch/arm/mach-tegra/board-dt-tegra30.c |    1 +
> > >  2 files changed, 2 insertions(+), 0 deletions(-)
> > > 
> > > diff --git a/arch/arm/mach-tegra/board-dt-tegra20.c
> > > b/arch/arm/mach-tegra/board-dt-tegra20.c index 70a19a9..fbcc7d9 100644
> > > --- a/arch/arm/mach-tegra/board-dt-tegra20.c
> > > +++ b/arch/arm/mach-tegra/board-dt-tegra20.c
> > > @@ -78,6 +78,7 @@ static __initdata struct tegra_clk_init_table
> > > tegra_dt_clk_init_table[] = { { "pll_a",      "pll_p_out1",   56448000,
> > > 
> > >   true },
> > >   
> > >  	{ "pll_a_out0", "pll_a",        11289600,       true },
> > >  	{ "cdev1",      NULL,           0,              true },
> > > 
> > > +	{ "blink",      "clk_32k",      32768,          true },
> > 
> > what's the reason to enable this on all boards? Would it make sense to set
> > this to "false" instead?
> 
> This clock is used for the wlan device, it need to be enabled, so that
> the wlan device can be powered on, and then the mmc driver can enumerate
> it.

My question was more why you enable it for *all* boards, even those without 
wlan cards connected to the sdhci. Defining it, but set it to "false", would 
give the driver the chance to enable it only on request. On the other hand, 
the impact on additional power consumption may be too low to measure.

Marc

> > 
> > >  	{ "i2s1",       "pll_a_out0",   11289600,       false},
> > >  	{ "i2s2",       "pll_a_out0",   11289600,       false},
> > >  	{ NULL,		NULL,		0,		0},
> > > 
> > > diff --git a/arch/arm/mach-tegra/board-dt-tegra30.c
> > > b/arch/arm/mach-tegra/board-dt-tegra30.c index 53bf60f..2d73c61 100644
> > > --- a/arch/arm/mach-tegra/board-dt-tegra30.c
> > > +++ b/arch/arm/mach-tegra/board-dt-tegra30.c
> > > @@ -61,6 +61,7 @@ static __initdata struct tegra_clk_init_table
> > > tegra_dt_clk_init_table[] = { { "pll_a_out0",	"pll_a",	11289600,	true },
> > > 
> > >  	{ "extern1",	"pll_a_out0",	0,		true },
> > >  	{ "clk_out_1",	"extern1",	0,		true },
> > > 
> > > +	{ "blink",	"clk_32k",	32768,		true },
> > > 
> > >  	{ "i2s0",	"pll_a_out0",	11289600,	false},
> > >  	{ "i2s1",	"pll_a_out0",	11289600,	false},
> > >  	{ "i2s2",	"pll_a_out0",	11289600,	false},
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 1/5] ARM: tegra: set up wlan clocks for tegra dt
  2012-07-04 11:51       ` Marc Dietrich
@ 2012-07-05  3:18         ` Wei Ni
  2012-07-05  8:39           ` Marc Dietrich
  0 siblings, 1 reply; 17+ messages in thread
From: Wei Ni @ 2012-07-05  3:18 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, 2012-07-04 at 19:51 +0800, Marc Dietrich wrote:
> Am Mittwoch, 4. Juli 2012, 19:23:33 schrieb Wei Ni:
> > On Wed, 2012-07-04 at 18:43 +0800, Marc Dietrich wrote:
> > > Am Mittwoch, 4. Juli 2012, 17:34:44 schrieb Wei Ni:
> > > > Set up the wlan clock tree for Tegra20 and Tegra30.
> > > > 
> > > > Signed-off-by: Wei Ni <wni@nvidia.com>
> > > > ---
> > > > 
> > > >  arch/arm/mach-tegra/board-dt-tegra20.c |    1 +
> > > >  arch/arm/mach-tegra/board-dt-tegra30.c |    1 +
> > > >  2 files changed, 2 insertions(+), 0 deletions(-)
> > > > 
> > > > diff --git a/arch/arm/mach-tegra/board-dt-tegra20.c
> > > > b/arch/arm/mach-tegra/board-dt-tegra20.c index 70a19a9..fbcc7d9 100644
> > > > --- a/arch/arm/mach-tegra/board-dt-tegra20.c
> > > > +++ b/arch/arm/mach-tegra/board-dt-tegra20.c
> > > > @@ -78,6 +78,7 @@ static __initdata struct tegra_clk_init_table
> > > > tegra_dt_clk_init_table[] = { { "pll_a",      "pll_p_out1",   56448000,
> > > > 
> > > >   true },
> > > >   
> > > >  	{ "pll_a_out0", "pll_a",        11289600,       true },
> > > >  	{ "cdev1",      NULL,           0,              true },
> > > > 
> > > > +	{ "blink",      "clk_32k",      32768,          true },
> > > 
> > > what's the reason to enable this on all boards? Would it make sense to set
> > > this to "false" instead?
> > 
> > This clock is used for the wlan device, it need to be enabled, so that
> > the wlan device can be powered on, and then the mmc driver can enumerate
> > it.
> 
> My question was more why you enable it for *all* boards, even those without 
> wlan cards connected to the sdhci. Defining it, but set it to "false", would 
> give the driver the chance to enable it only on request. On the other hand, 
> the impact on additional power consumption may be too low to measure.

Yes we have thought about this issue.
In here we need to enable this clock before loading wifi driver, so that
the mmc driver can enumerate it.
This likes another thing that the SD controller should be taught how to
provide to clients, such as trigger the power/reset gpios. We had talked
about it in the:
http://www.spinics.net/lists/linux-wireless/msg92093.html

And we are trying to provide the tegra clk framework support, so at that
time we could set this clock for different boards.

So I suppose we can just dump it into the clk init tables for now.

> 
> Marc
> 
> > > 
> > > >  	{ "i2s1",       "pll_a_out0",   11289600,       false},
> > > >  	{ "i2s2",       "pll_a_out0",   11289600,       false},
> > > >  	{ NULL,		NULL,		0,		0},
> > > > 
> > > > diff --git a/arch/arm/mach-tegra/board-dt-tegra30.c
> > > > b/arch/arm/mach-tegra/board-dt-tegra30.c index 53bf60f..2d73c61 100644
> > > > --- a/arch/arm/mach-tegra/board-dt-tegra30.c
> > > > +++ b/arch/arm/mach-tegra/board-dt-tegra30.c
> > > > @@ -61,6 +61,7 @@ static __initdata struct tegra_clk_init_table
> > > > tegra_dt_clk_init_table[] = { { "pll_a_out0",	"pll_a",	11289600,	true },
> > > > 
> > > >  	{ "extern1",	"pll_a_out0",	0,		true },
> > > >  	{ "clk_out_1",	"extern1",	0,		true },
> > > > 
> > > > +	{ "blink",	"clk_32k",	32768,		true },
> > > > 
> > > >  	{ "i2s0",	"pll_a_out0",	11289600,	false},
> > > >  	{ "i2s1",	"pll_a_out0",	11289600,	false},
> > > >  	{ "i2s2",	"pll_a_out0",	11289600,	false},
> > 
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
> > the body of a message to majordomo at vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 1/5] ARM: tegra: set up wlan clocks for tegra dt
  2012-07-05  3:18         ` Wei Ni
@ 2012-07-05  8:39           ` Marc Dietrich
  0 siblings, 0 replies; 17+ messages in thread
From: Marc Dietrich @ 2012-07-05  8:39 UTC (permalink / raw)
  To: linux-arm-kernel

Am Donnerstag, 5. Juli 2012, 11:18:14 schrieb Wei Ni:
> On Wed, 2012-07-04 at 19:51 +0800, Marc Dietrich wrote:
> > Am Mittwoch, 4. Juli 2012, 19:23:33 schrieb Wei Ni:
> > > On Wed, 2012-07-04 at 18:43 +0800, Marc Dietrich wrote:
> > > > Am Mittwoch, 4. Juli 2012, 17:34:44 schrieb Wei Ni:
> > > > > Set up the wlan clock tree for Tegra20 and Tegra30.
> > > > > 
> > > > > Signed-off-by: Wei Ni <wni@nvidia.com>
> > > > > ---
> > > > > 
> > > > >  arch/arm/mach-tegra/board-dt-tegra20.c |    1 +
> > > > >  arch/arm/mach-tegra/board-dt-tegra30.c |    1 +
> > > > >  2 files changed, 2 insertions(+), 0 deletions(-)
> > > > > 
> > > > > diff --git a/arch/arm/mach-tegra/board-dt-tegra20.c
> > > > > b/arch/arm/mach-tegra/board-dt-tegra20.c index 70a19a9..fbcc7d9
> > > > > 100644
> > > > > --- a/arch/arm/mach-tegra/board-dt-tegra20.c
> > > > > +++ b/arch/arm/mach-tegra/board-dt-tegra20.c
> > > > > @@ -78,6 +78,7 @@ static __initdata struct tegra_clk_init_table
> > > > > tegra_dt_clk_init_table[] = { { "pll_a",      "pll_p_out1",  
> > > > > 56448000,
> > > > > 
> > > > >   true },
> > > > >   
> > > > >  	{ "pll_a_out0", "pll_a",        11289600,       true },
> > > > >  	{ "cdev1",      NULL,           0,              true },
> > > > > 
> > > > > +	{ "blink",      "clk_32k",      32768,          true },
> > > > 
> > > > what's the reason to enable this on all boards? Would it make sense to
> > > > set
> > > > this to "false" instead?
> > > 
> > > This clock is used for the wlan device, it need to be enabled, so that
> > > the wlan device can be powered on, and then the mmc driver can enumerate
> > > it.
> > ...
> Yes we have thought about this issue.
> In here we need to enable this clock before loading wifi driver, so that
> the mmc driver can enumerate it.
> This likes another thing that the SD controller should be taught how to
> provide to clients, such as trigger the power/reset gpios. We had talked
> about it in the:
> http://www.spinics.net/lists/linux-wireless/msg92093.html

ah, sorry, I didn't followed this discussion.

> And we are trying to provide the tegra clk framework support, so at that
> time we could set this clock for different boards.
> 
> So I suppose we can just dump it into the clk init tables for now.

ok, thanks for explanation. Let's hope there will be a better solution in the 
future.

Thanks!

Marc

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 5/5] ARM: tegra: enable wireless in defconfig
  2012-07-04  9:34 ` [PATCH 5/5] ARM: tegra: enable wireless in defconfig Wei Ni
@ 2012-07-05 19:59   ` Stephen Warren
  2012-07-05 20:35     ` Marc Dietrich
  2012-07-06  3:08     ` Wei Ni
  0 siblings, 2 replies; 17+ messages in thread
From: Stephen Warren @ 2012-07-05 19:59 UTC (permalink / raw)
  To: linux-arm-kernel

On 07/04/2012 03:34 AM, Wei Ni wrote:
> New options enabled:
> * WIRELESS: (dependency)
> * CFG80211: (dependency)
> * WLAN: (dependency)
> * BRCMFMAC: wlan driver, enable as module.

> diff --git a/arch/arm/configs/tegra_defconfig b/arch/arm/configs/tegra_defconfig

> +CONFIG_BRCMFMAC=m

Why does this need to be a module? Everything else in tegra_defconfig is
built-in, and it'd be nice to be consistent here. Built-in makes
net-booting new kernels from U-Boot much easier, since there aren't any
modules to copy.

When I built a kernel with this series, I observed the following:

CONFIG_BRCMFMAC=m

* Neither Cardhu nor Ventana auto-load the module. When the module is
manually modprobe'd, I still see no wireless device being created.

CONFIG_BRCMFMAC=y

* Cardhu: No wireless device created. I do see some kernel spew such as
"mmc1: queuing unknown CIS tuple 0x80" which I believe is the SDIO
device being probed, but I don't see any Linux device being created.

* Ventana: There's a 60s hang during boot, I believe related to the BRCM
driver, since the hang doesn't occur without the series.

In summary, this series doesn't work at all for me. Can you please
explain what you tested and how? Are there any differences between the
various Cardhu and Ventana board revisions and/or the 2 different
wireless cards possible on Cardhu that'd explain this?

Thanks.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 5/5] ARM: tegra: enable wireless in defconfig
  2012-07-05 19:59   ` Stephen Warren
@ 2012-07-05 20:35     ` Marc Dietrich
  2012-07-05 20:42       ` Stephen Warren
  2012-07-06  3:08     ` Wei Ni
  1 sibling, 1 reply; 17+ messages in thread
From: Marc Dietrich @ 2012-07-05 20:35 UTC (permalink / raw)
  To: linux-arm-kernel

On Thursday 05 July 2012 13:59:11 Stephen Warren wrote:
> On 07/04/2012 03:34 AM, Wei Ni wrote:
> > New options enabled:
> > * WIRELESS: (dependency)
> > * CFG80211: (dependency)
> > * WLAN: (dependency)
> > * BRCMFMAC: wlan driver, enable as module.
> > 
> > diff --git a/arch/arm/configs/tegra_defconfig
> > b/arch/arm/configs/tegra_defconfig
> > 
> > +CONFIG_BRCMFMAC=m
> 
> Why does this need to be a module? Everything else in tegra_defconfig is
> built-in, and it'd be nice to be consistent here. Built-in makes
> net-booting new kernels from U-Boot much easier, since there aren't any
> modules to copy.

network drivers (especially wifi) are often modules because they need firmwares. 
I'm not sure if the kernel can compile them in every case. Our RT2x00 is an 
example (which also needs a defconfig entry btw) but brcmfmac also needs it as 
modinfo shows. Beside that, I don't think you want to netboot using wifi and u-
boot because this needs a huge wireless framework which u-boot doesn't have.

Marc

> When I built a kernel with this series, I observed the following:
> 
> CONFIG_BRCMFMAC=m
> 
> * Neither Cardhu nor Ventana auto-load the module. When the module is
> manually modprobe'd, I still see no wireless device being created.
> 
> CONFIG_BRCMFMAC=y
> 
> * Cardhu: No wireless device created. I do see some kernel spew such as
> "mmc1: queuing unknown CIS tuple 0x80" which I believe is the SDIO
> device being probed, but I don't see any Linux device being created.
> 
> * Ventana: There's a 60s hang during boot, I believe related to the BRCM
> driver, since the hang doesn't occur without the series.
> 
> In summary, this series doesn't work at all for me. Can you please
> explain what you tested and how? Are there any differences between the
> various Cardhu and Ventana board revisions and/or the 2 different
> wireless cards possible on Cardhu that'd explain this?
> 
> Thanks.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 5/5] ARM: tegra: enable wireless in defconfig
  2012-07-05 20:35     ` Marc Dietrich
@ 2012-07-05 20:42       ` Stephen Warren
  2012-07-06  3:19         ` Wei Ni
  0 siblings, 1 reply; 17+ messages in thread
From: Stephen Warren @ 2012-07-05 20:42 UTC (permalink / raw)
  To: linux-arm-kernel

On 07/05/2012 02:35 PM, Marc Dietrich wrote:
> On Thursday 05 July 2012 13:59:11 Stephen Warren wrote:
>> On 07/04/2012 03:34 AM, Wei Ni wrote:
>>> New options enabled:
>>> * WIRELESS: (dependency)
>>> * CFG80211: (dependency)
>>> * WLAN: (dependency)
>>> * BRCMFMAC: wlan driver, enable as module.
>>>
>>> diff --git a/arch/arm/configs/tegra_defconfig
>>> b/arch/arm/configs/tegra_defconfig
>>>
>>> +CONFIG_BRCMFMAC=m
>>
>> Why does this need to be a module? Everything else in tegra_defconfig is
>> built-in, and it'd be nice to be consistent here. Built-in makes
>> net-booting new kernels from U-Boot much easier, since there aren't any
>> modules to copy.
> 
> network drivers (especially wifi) are often modules because they need firmwares. 

So I certainly see that WiFi modules may need firmware.

But I don't see why that should imply they must be modules; they should
be able to defer their firmware loading until the firmware is available.

> I'm not sure if the kernel can compile them in every case. Our RT2x00 is an 
> example (which also needs a defconfig entry btw) but brcmfmac also needs it as 
> modinfo shows. Beside that, I don't think you want to netboot using wifi and u-
> boot because this needs a huge wireless framework which u-boot doesn't have.

I net-boot using a USB wired Ethernet adapter. The issue isn't that I
want to use wireless from U-Boot, but rather than it's easy to download
the zImage and .dtb using U-Boot since they're just copied to RAM, but
getting a bunch of modules into a filesystem on the target before
booting the kernel is more painful.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 5/5] ARM: tegra: enable wireless in defconfig
  2012-07-05 19:59   ` Stephen Warren
  2012-07-05 20:35     ` Marc Dietrich
@ 2012-07-06  3:08     ` Wei Ni
  2012-07-06 15:42       ` Stephen Warren
  1 sibling, 1 reply; 17+ messages in thread
From: Wei Ni @ 2012-07-06  3:08 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, 2012-07-06 at 03:59 +0800, Stephen Warren wrote:
> On 07/04/2012 03:34 AM, Wei Ni wrote:
> > New options enabled:
> > * WIRELESS: (dependency)
> > * CFG80211: (dependency)
> > * WLAN: (dependency)
> > * BRCMFMAC: wlan driver, enable as module.
> 
> > diff --git a/arch/arm/configs/tegra_defconfig b/arch/arm/configs/tegra_defconfig
> 
> > +CONFIG_BRCMFMAC=m
> 
> Why does this need to be a module? Everything else in tegra_defconfig is
> built-in, and it'd be nice to be consistent here. Built-in makes
> net-booting new kernels from U-Boot much easier, since there aren't any
> modules to copy.
> 
> When I built a kernel with this series, I observed the following:
> 
> CONFIG_BRCMFMAC=m
> 
> * Neither Cardhu nor Ventana auto-load the module. When the module is
> manually modprobe'd, I still see no wireless device being created.
> 
> CONFIG_BRCMFMAC=y
> 
> * Cardhu: No wireless device created. I do see some kernel spew such as
> "mmc1: queuing unknown CIS tuple 0x80" which I believe is the SDIO
> device being probed, but I don't see any Linux device being created.
> 
> * Ventana: There's a 60s hang during boot, I believe related to the BRCM
> driver, since the hang doesn't occur without the series.
> 
> In summary, this series doesn't work at all for me. Can you please
> explain what you tested and how? Are there any differences between the
> various Cardhu and Ventana board revisions and/or the 2 different
> wireless cards possible on Cardhu that'd explain this?

I have verified this patch, it can work on these boards.
The t30/t20 version on my Cardhu and Ventana is A02, the wireless chip
is bcm4329. I didn't test on other boards, and I'm not sure if the
bcm4330 can work.
When you test, you need to copy the latest brcmfmac firmware to the
filesystem.
Please get it from:
http://linuxwireless.org/en/users/Drivers/brcm80211#Firmware_installation-1

You can run "ifconfig -a" to show the "wlan0" device.

> 
> Thanks.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 5/5] ARM: tegra: enable wireless in defconfig
  2012-07-05 20:42       ` Stephen Warren
@ 2012-07-06  3:19         ` Wei Ni
  0 siblings, 0 replies; 17+ messages in thread
From: Wei Ni @ 2012-07-06  3:19 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, 2012-07-06 at 04:42 +0800, Stephen Warren wrote:
> On 07/05/2012 02:35 PM, Marc Dietrich wrote:
> > On Thursday 05 July 2012 13:59:11 Stephen Warren wrote:
> >> On 07/04/2012 03:34 AM, Wei Ni wrote:
> >>> New options enabled:
> >>> * WIRELESS: (dependency)
> >>> * CFG80211: (dependency)
> >>> * WLAN: (dependency)
> >>> * BRCMFMAC: wlan driver, enable as module.
> >>>
> >>> diff --git a/arch/arm/configs/tegra_defconfig
> >>> b/arch/arm/configs/tegra_defconfig
> >>>
> >>> +CONFIG_BRCMFMAC=m
> >>
> >> Why does this need to be a module? Everything else in tegra_defconfig is
> >> built-in, and it'd be nice to be consistent here. Built-in makes
> >> net-booting new kernels from U-Boot much easier, since there aren't any
> >> modules to copy.
> > 
> > network drivers (especially wifi) are often modules because they need firmwares. 
> 
> So I certainly see that WiFi modules may need firmware.
> 
> But I don't see why that should imply they must be modules; they should
> be able to defer their firmware loading until the firmware is available.

The wifi driver will try to load the firmware form the filesystem in its
initialization. In some board, the filesystem is on the SD/MMC card, and
if the wifi card is initialized before that SD/MMC card, it can't read
the filesystem and can't get the firmware, since the SD/MMC card doesn't
be initialized yet. then the wifi driver's initialization will be
failed.
So the wifi driver are often built as modules.

> 
> > I'm not sure if the kernel can compile them in every case. Our RT2x00 is an 
> > example (which also needs a defconfig entry btw) but brcmfmac also needs it as 
> > modinfo shows. Beside that, I don't think you want to netboot using wifi and u-
> > boot because this needs a huge wireless framework which u-boot doesn't have.
> 
> I net-boot using a USB wired Ethernet adapter. The issue isn't that I
> want to use wireless from U-Boot, but rather than it's easy to download
> the zImage and .dtb using U-Boot since they're just copied to RAM, but
> getting a bunch of modules into a filesystem on the target before
> booting the kernel is more painful.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 5/5] ARM: tegra: enable wireless in defconfig
  2012-07-06  3:08     ` Wei Ni
@ 2012-07-06 15:42       ` Stephen Warren
  0 siblings, 0 replies; 17+ messages in thread
From: Stephen Warren @ 2012-07-06 15:42 UTC (permalink / raw)
  To: linux-arm-kernel

On 07/05/2012 09:08 PM, Wei Ni wrote:
> On Fri, 2012-07-06 at 03:59 +0800, Stephen Warren wrote:
>> On 07/04/2012 03:34 AM, Wei Ni wrote:
>>> New options enabled:
>>> * WIRELESS: (dependency)
>>> * CFG80211: (dependency)
>>> * WLAN: (dependency)
>>> * BRCMFMAC: wlan driver, enable as module.
>>
>>> diff --git a/arch/arm/configs/tegra_defconfig b/arch/arm/configs/tegra_defconfig
>>
>>> +CONFIG_BRCMFMAC=m
>>
>> Why does this need to be a module? Everything else in tegra_defconfig is
>> built-in, and it'd be nice to be consistent here. Built-in makes
>> net-booting new kernels from U-Boot much easier, since there aren't any
>> modules to copy.
>>
>> When I built a kernel with this series, I observed the following:
>>
>> CONFIG_BRCMFMAC=m
>>
>> * Neither Cardhu nor Ventana auto-load the module. When the module is
>> manually modprobe'd, I still see no wireless device being created.
>>
>> CONFIG_BRCMFMAC=y
>>
>> * Cardhu: No wireless device created. I do see some kernel spew such as
>> "mmc1: queuing unknown CIS tuple 0x80" which I believe is the SDIO
>> device being probed, but I don't see any Linux device being created.
>>
>> * Ventana: There's a 60s hang during boot, I believe related to the BRCM
>> driver, since the hang doesn't occur without the series.
>>
>> In summary, this series doesn't work at all for me. Can you please
>> explain what you tested and how? Are there any differences between the
>> various Cardhu and Ventana board revisions and/or the 2 different
>> wireless cards possible on Cardhu that'd explain this?
> 
> I have verified this patch, it can work on these boards.
> The t30/t20 version on my Cardhu and Ventana is A02, the wireless chip
> is bcm4329. I didn't test on other boards, and I'm not sure if the
> bcm4330 can work.
> When you test, you need to copy the latest brcmfmac firmware to the
> filesystem.
> Please get it from:
> http://linuxwireless.org/en/users/Drivers/brcm80211#Firmware_installation-1
> 
> You can run "ifconfig -a" to show the "wlan0" device.

Yes, I realized this after Marc mentioned the firmware loading.

I did copy the firmware from our Linux4Tegra releases, but that made no
difference. I'll try again with the different firmware version you
emailed me downstream (although I'm not sure why there are multiple
versions of the firmware...)

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2012-07-06 15:42 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-04  9:34 [PATCH 0/5] ARM: tegra: enable wlan for t20 and t30 Wei Ni
2012-07-04  9:34 ` [PATCH 1/5] ARM: tegra: set up wlan clocks for tegra dt Wei Ni
2012-07-04 10:43   ` Marc Dietrich
2012-07-04 11:23     ` Wei Ni
2012-07-04 11:51       ` Marc Dietrich
2012-07-05  3:18         ` Wei Ni
2012-07-05  8:39           ` Marc Dietrich
2012-07-04  9:34 ` [PATCH 2/5] ARM: dt: t20 seaboard: add pinmux, gpio for wlan Wei Ni
2012-07-04  9:34 ` [PATCH 3/5] ARM: dt: t20 ventana: " Wei Ni
2012-07-04  9:34 ` [PATCH 4/5] ARM: dt: t30 cardhu: " Wei Ni
2012-07-04  9:34 ` [PATCH 5/5] ARM: tegra: enable wireless in defconfig Wei Ni
2012-07-05 19:59   ` Stephen Warren
2012-07-05 20:35     ` Marc Dietrich
2012-07-05 20:42       ` Stephen Warren
2012-07-06  3:19         ` Wei Ni
2012-07-06  3:08     ` Wei Ni
2012-07-06 15:42       ` Stephen Warren

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox