* [PATCH v3] arm64: dts: juno: Add idle-states to device tree
@ 2015-12-09 9:40 Jon Medhurst (Tixy)
2015-12-09 15:19 ` Lorenzo Pieralisi
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Jon Medhurst (Tixy) @ 2015-12-09 9:40 UTC (permalink / raw)
To: linux-arm-kernel
This patch adds idle-states bindings data collected through a set of
benchmarking experiments (latency and energy consumption) on Juno
boards. Latencies data represents the worst case scenarios as required
by the DT idle-states bindings.
Signed-off-by: Jon Medhurst <tixy@linaro.org>
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
---
I don't know if this needs any other Ack or can finally go in (through
arm soc tree?)
Changes since v2:
- Updated commit message to Lorenzo's suggested text.
Changes since v1:
- Updated latency times to those provided by Lorenzo
- Included Juno r1 dt
arch/arm64/boot/dts/arm/juno-r1.dts | 28 ++++++++++++++++++++++++++++
arch/arm64/boot/dts/arm/juno.dts | 28 ++++++++++++++++++++++++++++
2 files changed, 56 insertions(+)
diff --git a/arch/arm64/boot/dts/arm/juno-r1.dts b/arch/arm64/boot/dts/arm/juno-r1.dts
index 93bc3d7..8826f83 100644
--- a/arch/arm64/boot/dts/arm/juno-r1.dts
+++ b/arch/arm64/boot/dts/arm/juno-r1.dts
@@ -60,6 +60,28 @@
};
};
+ idle-states {
+ entry-method = "arm,psci";
+
+ CPU_SLEEP_0: cpu-sleep-0 {
+ compatible = "arm,idle-state";
+ arm,psci-suspend-param = <0x0010000>;
+ local-timer-stop;
+ entry-latency-us = <300>;
+ exit-latency-us = <1200>;
+ min-residency-us = <2000>;
+ };
+
+ CLUSTER_SLEEP_0: cluster-sleep-0 {
+ compatible = "arm,idle-state";
+ arm,psci-suspend-param = <0x1010000>;
+ local-timer-stop;
+ entry-latency-us = <300>;
+ exit-latency-us = <1200>;
+ min-residency-us = <2500>;
+ };
+ };
+
A57_0: cpu at 0 {
compatible = "arm,cortex-a57","arm,armv8";
reg = <0x0 0x0>;
@@ -67,6 +89,7 @@
enable-method = "psci";
next-level-cache = <&A57_L2>;
clocks = <&scpi_dvfs 0>;
+ cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
};
A57_1: cpu at 1 {
@@ -76,6 +99,7 @@
enable-method = "psci";
next-level-cache = <&A57_L2>;
clocks = <&scpi_dvfs 0>;
+ cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
};
A53_0: cpu at 100 {
@@ -85,6 +109,7 @@
enable-method = "psci";
next-level-cache = <&A53_L2>;
clocks = <&scpi_dvfs 1>;
+ cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
};
A53_1: cpu at 101 {
@@ -94,6 +119,7 @@
enable-method = "psci";
next-level-cache = <&A53_L2>;
clocks = <&scpi_dvfs 1>;
+ cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
};
A53_2: cpu at 102 {
@@ -103,6 +129,7 @@
enable-method = "psci";
next-level-cache = <&A53_L2>;
clocks = <&scpi_dvfs 1>;
+ cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
};
A53_3: cpu at 103 {
@@ -112,6 +139,7 @@
enable-method = "psci";
next-level-cache = <&A53_L2>;
clocks = <&scpi_dvfs 1>;
+ cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
};
A57_L2: l2-cache0 {
diff --git a/arch/arm64/boot/dts/arm/juno.dts b/arch/arm64/boot/dts/arm/juno.dts
index 53442b5..dcfcf15 100644
--- a/arch/arm64/boot/dts/arm/juno.dts
+++ b/arch/arm64/boot/dts/arm/juno.dts
@@ -60,6 +60,28 @@
};
};
+ idle-states {
+ entry-method = "arm,psci";
+
+ CPU_SLEEP_0: cpu-sleep-0 {
+ compatible = "arm,idle-state";
+ arm,psci-suspend-param = <0x0010000>;
+ local-timer-stop;
+ entry-latency-us = <300>;
+ exit-latency-us = <1200>;
+ min-residency-us = <2000>;
+ };
+
+ CLUSTER_SLEEP_0: cluster-sleep-0 {
+ compatible = "arm,idle-state";
+ arm,psci-suspend-param = <0x1010000>;
+ local-timer-stop;
+ entry-latency-us = <300>;
+ exit-latency-us = <1200>;
+ min-residency-us = <2500>;
+ };
+ };
+
A57_0: cpu at 0 {
compatible = "arm,cortex-a57","arm,armv8";
reg = <0x0 0x0>;
@@ -67,6 +89,7 @@
enable-method = "psci";
next-level-cache = <&A57_L2>;
clocks = <&scpi_dvfs 0>;
+ cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
};
A57_1: cpu at 1 {
@@ -76,6 +99,7 @@
enable-method = "psci";
next-level-cache = <&A57_L2>;
clocks = <&scpi_dvfs 0>;
+ cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
};
A53_0: cpu at 100 {
@@ -85,6 +109,7 @@
enable-method = "psci";
next-level-cache = <&A53_L2>;
clocks = <&scpi_dvfs 1>;
+ cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
};
A53_1: cpu at 101 {
@@ -94,6 +119,7 @@
enable-method = "psci";
next-level-cache = <&A53_L2>;
clocks = <&scpi_dvfs 1>;
+ cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
};
A53_2: cpu at 102 {
@@ -103,6 +129,7 @@
enable-method = "psci";
next-level-cache = <&A53_L2>;
clocks = <&scpi_dvfs 1>;
+ cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
};
A53_3: cpu at 103 {
@@ -112,6 +139,7 @@
enable-method = "psci";
next-level-cache = <&A53_L2>;
clocks = <&scpi_dvfs 1>;
+ cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
};
A57_L2: l2-cache0 {
--
2.1.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v3] arm64: dts: juno: Add idle-states to device tree
2015-12-09 9:40 [PATCH v3] arm64: dts: juno: Add idle-states to device tree Jon Medhurst (Tixy)
@ 2015-12-09 15:19 ` Lorenzo Pieralisi
2015-12-16 10:33 ` Lorenzo Pieralisi
2015-12-22 19:23 ` Olof Johansson
2 siblings, 0 replies; 4+ messages in thread
From: Lorenzo Pieralisi @ 2015-12-09 15:19 UTC (permalink / raw)
To: linux-arm-kernel
[CC'ed Arnd, Olof and Kevin]
On Wed, Dec 09, 2015 at 09:40:53AM +0000, Jon Medhurst (Tixy) wrote:
> This patch adds idle-states bindings data collected through a set of
> benchmarking experiments (latency and energy consumption) on Juno
> boards. Latencies data represents the worst case scenarios as required
> by the DT idle-states bindings.
>
> Signed-off-by: Jon Medhurst <tixy@linaro.org>
> Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> ---
>
> I don't know if this needs any other Ack or can finally go in (through
> arm soc tree?)
I think it can be pulled as-is as far as I am concerned.
Thanks,
Lorenzo
> Changes since v2:
> - Updated commit message to Lorenzo's suggested text.
>
> Changes since v1:
> - Updated latency times to those provided by Lorenzo
> - Included Juno r1 dt
>
> arch/arm64/boot/dts/arm/juno-r1.dts | 28 ++++++++++++++++++++++++++++
> arch/arm64/boot/dts/arm/juno.dts | 28 ++++++++++++++++++++++++++++
> 2 files changed, 56 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/arm/juno-r1.dts b/arch/arm64/boot/dts/arm/juno-r1.dts
> index 93bc3d7..8826f83 100644
> --- a/arch/arm64/boot/dts/arm/juno-r1.dts
> +++ b/arch/arm64/boot/dts/arm/juno-r1.dts
> @@ -60,6 +60,28 @@
> };
> };
>
> + idle-states {
> + entry-method = "arm,psci";
> +
> + CPU_SLEEP_0: cpu-sleep-0 {
> + compatible = "arm,idle-state";
> + arm,psci-suspend-param = <0x0010000>;
> + local-timer-stop;
> + entry-latency-us = <300>;
> + exit-latency-us = <1200>;
> + min-residency-us = <2000>;
> + };
> +
> + CLUSTER_SLEEP_0: cluster-sleep-0 {
> + compatible = "arm,idle-state";
> + arm,psci-suspend-param = <0x1010000>;
> + local-timer-stop;
> + entry-latency-us = <300>;
> + exit-latency-us = <1200>;
> + min-residency-us = <2500>;
> + };
> + };
> +
> A57_0: cpu at 0 {
> compatible = "arm,cortex-a57","arm,armv8";
> reg = <0x0 0x0>;
> @@ -67,6 +89,7 @@
> enable-method = "psci";
> next-level-cache = <&A57_L2>;
> clocks = <&scpi_dvfs 0>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A57_1: cpu at 1 {
> @@ -76,6 +99,7 @@
> enable-method = "psci";
> next-level-cache = <&A57_L2>;
> clocks = <&scpi_dvfs 0>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A53_0: cpu at 100 {
> @@ -85,6 +109,7 @@
> enable-method = "psci";
> next-level-cache = <&A53_L2>;
> clocks = <&scpi_dvfs 1>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A53_1: cpu at 101 {
> @@ -94,6 +119,7 @@
> enable-method = "psci";
> next-level-cache = <&A53_L2>;
> clocks = <&scpi_dvfs 1>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A53_2: cpu at 102 {
> @@ -103,6 +129,7 @@
> enable-method = "psci";
> next-level-cache = <&A53_L2>;
> clocks = <&scpi_dvfs 1>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A53_3: cpu at 103 {
> @@ -112,6 +139,7 @@
> enable-method = "psci";
> next-level-cache = <&A53_L2>;
> clocks = <&scpi_dvfs 1>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A57_L2: l2-cache0 {
> diff --git a/arch/arm64/boot/dts/arm/juno.dts b/arch/arm64/boot/dts/arm/juno.dts
> index 53442b5..dcfcf15 100644
> --- a/arch/arm64/boot/dts/arm/juno.dts
> +++ b/arch/arm64/boot/dts/arm/juno.dts
> @@ -60,6 +60,28 @@
> };
> };
>
> + idle-states {
> + entry-method = "arm,psci";
> +
> + CPU_SLEEP_0: cpu-sleep-0 {
> + compatible = "arm,idle-state";
> + arm,psci-suspend-param = <0x0010000>;
> + local-timer-stop;
> + entry-latency-us = <300>;
> + exit-latency-us = <1200>;
> + min-residency-us = <2000>;
> + };
> +
> + CLUSTER_SLEEP_0: cluster-sleep-0 {
> + compatible = "arm,idle-state";
> + arm,psci-suspend-param = <0x1010000>;
> + local-timer-stop;
> + entry-latency-us = <300>;
> + exit-latency-us = <1200>;
> + min-residency-us = <2500>;
> + };
> + };
> +
> A57_0: cpu at 0 {
> compatible = "arm,cortex-a57","arm,armv8";
> reg = <0x0 0x0>;
> @@ -67,6 +89,7 @@
> enable-method = "psci";
> next-level-cache = <&A57_L2>;
> clocks = <&scpi_dvfs 0>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A57_1: cpu at 1 {
> @@ -76,6 +99,7 @@
> enable-method = "psci";
> next-level-cache = <&A57_L2>;
> clocks = <&scpi_dvfs 0>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A53_0: cpu at 100 {
> @@ -85,6 +109,7 @@
> enable-method = "psci";
> next-level-cache = <&A53_L2>;
> clocks = <&scpi_dvfs 1>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A53_1: cpu at 101 {
> @@ -94,6 +119,7 @@
> enable-method = "psci";
> next-level-cache = <&A53_L2>;
> clocks = <&scpi_dvfs 1>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A53_2: cpu at 102 {
> @@ -103,6 +129,7 @@
> enable-method = "psci";
> next-level-cache = <&A53_L2>;
> clocks = <&scpi_dvfs 1>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A53_3: cpu at 103 {
> @@ -112,6 +139,7 @@
> enable-method = "psci";
> next-level-cache = <&A53_L2>;
> clocks = <&scpi_dvfs 1>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A57_L2: l2-cache0 {
> --
> 2.1.4
>
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v3] arm64: dts: juno: Add idle-states to device tree
2015-12-09 9:40 [PATCH v3] arm64: dts: juno: Add idle-states to device tree Jon Medhurst (Tixy)
2015-12-09 15:19 ` Lorenzo Pieralisi
@ 2015-12-16 10:33 ` Lorenzo Pieralisi
2015-12-22 19:23 ` Olof Johansson
2 siblings, 0 replies; 4+ messages in thread
From: Lorenzo Pieralisi @ 2015-12-16 10:33 UTC (permalink / raw)
To: linux-arm-kernel
Hi Arnd, Olof, Kevin,
May you consider pulling this patch please or you prefer us sending
a pull request ?
Thanks a lot,
Lorenzo
On Wed, Dec 09, 2015 at 09:40:53AM +0000, Jon Medhurst (Tixy) wrote:
> This patch adds idle-states bindings data collected through a set of
> benchmarking experiments (latency and energy consumption) on Juno
> boards. Latencies data represents the worst case scenarios as required
> by the DT idle-states bindings.
>
> Signed-off-by: Jon Medhurst <tixy@linaro.org>
> Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> ---
>
> I don't know if this needs any other Ack or can finally go in (through
> arm soc tree?)
>
> Changes since v2:
> - Updated commit message to Lorenzo's suggested text.
>
> Changes since v1:
> - Updated latency times to those provided by Lorenzo
> - Included Juno r1 dt
>
> arch/arm64/boot/dts/arm/juno-r1.dts | 28 ++++++++++++++++++++++++++++
> arch/arm64/boot/dts/arm/juno.dts | 28 ++++++++++++++++++++++++++++
> 2 files changed, 56 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/arm/juno-r1.dts b/arch/arm64/boot/dts/arm/juno-r1.dts
> index 93bc3d7..8826f83 100644
> --- a/arch/arm64/boot/dts/arm/juno-r1.dts
> +++ b/arch/arm64/boot/dts/arm/juno-r1.dts
> @@ -60,6 +60,28 @@
> };
> };
>
> + idle-states {
> + entry-method = "arm,psci";
> +
> + CPU_SLEEP_0: cpu-sleep-0 {
> + compatible = "arm,idle-state";
> + arm,psci-suspend-param = <0x0010000>;
> + local-timer-stop;
> + entry-latency-us = <300>;
> + exit-latency-us = <1200>;
> + min-residency-us = <2000>;
> + };
> +
> + CLUSTER_SLEEP_0: cluster-sleep-0 {
> + compatible = "arm,idle-state";
> + arm,psci-suspend-param = <0x1010000>;
> + local-timer-stop;
> + entry-latency-us = <300>;
> + exit-latency-us = <1200>;
> + min-residency-us = <2500>;
> + };
> + };
> +
> A57_0: cpu at 0 {
> compatible = "arm,cortex-a57","arm,armv8";
> reg = <0x0 0x0>;
> @@ -67,6 +89,7 @@
> enable-method = "psci";
> next-level-cache = <&A57_L2>;
> clocks = <&scpi_dvfs 0>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A57_1: cpu at 1 {
> @@ -76,6 +99,7 @@
> enable-method = "psci";
> next-level-cache = <&A57_L2>;
> clocks = <&scpi_dvfs 0>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A53_0: cpu at 100 {
> @@ -85,6 +109,7 @@
> enable-method = "psci";
> next-level-cache = <&A53_L2>;
> clocks = <&scpi_dvfs 1>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A53_1: cpu at 101 {
> @@ -94,6 +119,7 @@
> enable-method = "psci";
> next-level-cache = <&A53_L2>;
> clocks = <&scpi_dvfs 1>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A53_2: cpu at 102 {
> @@ -103,6 +129,7 @@
> enable-method = "psci";
> next-level-cache = <&A53_L2>;
> clocks = <&scpi_dvfs 1>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A53_3: cpu at 103 {
> @@ -112,6 +139,7 @@
> enable-method = "psci";
> next-level-cache = <&A53_L2>;
> clocks = <&scpi_dvfs 1>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A57_L2: l2-cache0 {
> diff --git a/arch/arm64/boot/dts/arm/juno.dts b/arch/arm64/boot/dts/arm/juno.dts
> index 53442b5..dcfcf15 100644
> --- a/arch/arm64/boot/dts/arm/juno.dts
> +++ b/arch/arm64/boot/dts/arm/juno.dts
> @@ -60,6 +60,28 @@
> };
> };
>
> + idle-states {
> + entry-method = "arm,psci";
> +
> + CPU_SLEEP_0: cpu-sleep-0 {
> + compatible = "arm,idle-state";
> + arm,psci-suspend-param = <0x0010000>;
> + local-timer-stop;
> + entry-latency-us = <300>;
> + exit-latency-us = <1200>;
> + min-residency-us = <2000>;
> + };
> +
> + CLUSTER_SLEEP_0: cluster-sleep-0 {
> + compatible = "arm,idle-state";
> + arm,psci-suspend-param = <0x1010000>;
> + local-timer-stop;
> + entry-latency-us = <300>;
> + exit-latency-us = <1200>;
> + min-residency-us = <2500>;
> + };
> + };
> +
> A57_0: cpu at 0 {
> compatible = "arm,cortex-a57","arm,armv8";
> reg = <0x0 0x0>;
> @@ -67,6 +89,7 @@
> enable-method = "psci";
> next-level-cache = <&A57_L2>;
> clocks = <&scpi_dvfs 0>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A57_1: cpu at 1 {
> @@ -76,6 +99,7 @@
> enable-method = "psci";
> next-level-cache = <&A57_L2>;
> clocks = <&scpi_dvfs 0>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A53_0: cpu at 100 {
> @@ -85,6 +109,7 @@
> enable-method = "psci";
> next-level-cache = <&A53_L2>;
> clocks = <&scpi_dvfs 1>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A53_1: cpu at 101 {
> @@ -94,6 +119,7 @@
> enable-method = "psci";
> next-level-cache = <&A53_L2>;
> clocks = <&scpi_dvfs 1>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A53_2: cpu at 102 {
> @@ -103,6 +129,7 @@
> enable-method = "psci";
> next-level-cache = <&A53_L2>;
> clocks = <&scpi_dvfs 1>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A53_3: cpu at 103 {
> @@ -112,6 +139,7 @@
> enable-method = "psci";
> next-level-cache = <&A53_L2>;
> clocks = <&scpi_dvfs 1>;
> + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
> };
>
> A57_L2: l2-cache0 {
> --
> 2.1.4
>
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v3] arm64: dts: juno: Add idle-states to device tree
2015-12-09 9:40 [PATCH v3] arm64: dts: juno: Add idle-states to device tree Jon Medhurst (Tixy)
2015-12-09 15:19 ` Lorenzo Pieralisi
2015-12-16 10:33 ` Lorenzo Pieralisi
@ 2015-12-22 19:23 ` Olof Johansson
2 siblings, 0 replies; 4+ messages in thread
From: Olof Johansson @ 2015-12-22 19:23 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, Dec 09, 2015 at 09:40:53AM +0000, Jon Medhurst (Tixy) wrote:
> This patch adds idle-states bindings data collected through a set of
> benchmarking experiments (latency and energy consumption) on Juno
> boards. Latencies data represents the worst case scenarios as required
> by the DT idle-states bindings.
>
> Signed-off-by: Jon Medhurst <tixy@linaro.org>
> Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> ---
Applied, thanks.
-Olof
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-12-22 19:23 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-09 9:40 [PATCH v3] arm64: dts: juno: Add idle-states to device tree Jon Medhurst (Tixy)
2015-12-09 15:19 ` Lorenzo Pieralisi
2015-12-16 10:33 ` Lorenzo Pieralisi
2015-12-22 19:23 ` Olof Johansson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).