* [PATCH] PM: OMAP: Fix build with CONFIG_OMAP_PM_NONE set
@ 2009-04-07 8:57 Roger Quadros
2009-04-07 11:18 ` Roger Quadros
0 siblings, 1 reply; 4+ messages in thread
From: Roger Quadros @ 2009-04-07 8:57 UTC (permalink / raw)
To: Kevin Hilman; +Cc: linux-omap
From: Roger Quadros <ext-roger.quadros@nokia.com>
Date: Tue, 7 Apr 2009 11:10:29 +0300
Subject: [PATCH] PM: OMAP: Fix build with CONFIG_OMAP_PM_NONE set
Removes undefined symbol link errors. Required symbols are defined in
common.c and omap-pm.h
Signed-off-by: Roger Quadros <ext-roger.quadros@nokia.com>
---
arch/arm/plat-omap/common.c | 6 ++++++
arch/arm/plat-omap/include/mach/omap-pm.h | 15 +++++++++++++++
2 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c
index 2866612..634ca39 100644
--- a/arch/arm/plat-omap/common.c
+++ b/arch/arm/plat-omap/common.c
@@ -46,6 +46,12 @@ int omap_bootloader_tag_len;
struct omap_board_config_kernel *omap_board_config;
int omap_board_config_size;
+#ifdef CONFIG_OMAP_PM_NONE
+struct omap_opp *mpu_opps;
+struct omap_opp *dsp_opps;
+struct omap_opp *l3_opps;
+#endif
+
#ifdef CONFIG_OMAP_BOOT_TAG
static int __init parse_tag_omap(const struct tag *tag)
diff --git a/arch/arm/plat-omap/include/mach/omap-pm.h
b/arch/arm/plat-omap/include/mach/omap-pm.h
index f0bbd36..6a8499a 100644
--- a/arch/arm/plat-omap/include/mach/omap-pm.h
+++ b/arch/arm/plat-omap/include/mach/omap-pm.h
@@ -58,9 +58,20 @@ extern struct omap_opp *l3_opps;
* framework starts. The "_if_" is to avoid name collisions with the
* PM idle-loop code.
*/
+#ifdef CONFIG_OMAP_PM_NONE
+static inline int __init omap_pm_if_early_init(struct omap_opp *mpu_opp_table,
+ struct omap_opp *dsp_opp_table,
+ struct omap_opp *l3_opp_table) {
+ mpu_opps = 0;
+ dsp_opps = 0;
+ l3_opps = 0;
+ return 0;
+}
+#else
int __init omap_pm_if_early_init(struct omap_opp *mpu_opp_table,
struct omap_opp *dsp_opp_table,
struct omap_opp *l3_opp_table);
+#endif
/**
* omap_pm_if_init - OMAP PM init code called after clock fw init
@@ -68,7 +79,11 @@ int __init omap_pm_if_early_init(struct omap_opp *mpu_opp_table,
* The main initialization code. OPP tables are passed in here. The
* "_if_" is to avoid name collisions with the PM idle-loop code.
*/
+#ifdef CONFIG_OMAP_PM_NONE
+static inline int __init omap_pm_if_init(void) { return 0; }
+#else
int __init omap_pm_if_init(void);
+#endif
/**
* omap_pm_if_exit - OMAP PM exit code
--
1.5.6.3
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] PM: OMAP: Fix build with CONFIG_OMAP_PM_NONE set
2009-04-07 8:57 [PATCH] PM: OMAP: Fix build with CONFIG_OMAP_PM_NONE set Roger Quadros
@ 2009-04-07 11:18 ` Roger Quadros
2009-04-07 15:01 ` Premi, Sanjeev
0 siblings, 1 reply; 4+ messages in thread
From: Roger Quadros @ 2009-04-07 11:18 UTC (permalink / raw)
To: ext Roger Quadros; +Cc: Kevin Hilman, linux-omap
The patch fixes the following link errors
arch/arm/mach-omap2/built-in.o: In function `omap3_round_to_table_rate':
/home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock34xx.c:956:
undefined reference to `mpu_opps'
/home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock34xx.c:956:
undefined reference to `dsp_opps'
/home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock34xx.c:956:
undefined reference to `l3_opps'
arch/arm/mach-omap2/built-in.o: In function `omap2_clk_init_cpufreq_table':
/home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock34xx.c:719:
undefined reference to `mpu_opps'
arch/arm/mach-omap2/built-in.o: In function `omap3_select_table_rate':
/home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock34xx.c:1020:
undefined reference to `mpu_opps'
/home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock34xx.c:1020:
undefined reference to `dsp_opps'
/home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock34xx.c:1020:
undefined reference to `l3_opps'
arch/arm/mach-omap2/built-in.o: In function `omap2_init_common_hw':
/home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/io.c:241: undefined
reference to `omap_pm_if_early_init'
/home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/io.c:246: undefined
reference to `omap_pm_if_init'
arch/arm/mach-omap2/built-in.o: In function `omap2_clk_init':
/home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock34xx.c:887:
undefined reference to `mpu_opps'
/home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock34xx.c:887:
undefined reference to `l3_opps'
make: *** [.tmp_vmlinux1] Error 1
ext Roger Quadros wrote:
> From: Roger Quadros <ext-roger.quadros@nokia.com>
> Date: Tue, 7 Apr 2009 11:10:29 +0300
> Subject: [PATCH] PM: OMAP: Fix build with CONFIG_OMAP_PM_NONE set
>
> Removes undefined symbol link errors. Required symbols are defined in
> common.c and omap-pm.h
>
> Signed-off-by: Roger Quadros <ext-roger.quadros@nokia.com>
> ---
> arch/arm/plat-omap/common.c | 6 ++++++
> arch/arm/plat-omap/include/mach/omap-pm.h | 15 +++++++++++++++
> 2 files changed, 21 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c
> index 2866612..634ca39 100644
> --- a/arch/arm/plat-omap/common.c
> +++ b/arch/arm/plat-omap/common.c
> @@ -46,6 +46,12 @@ int omap_bootloader_tag_len;
> struct omap_board_config_kernel *omap_board_config;
> int omap_board_config_size;
>
> +#ifdef CONFIG_OMAP_PM_NONE
> +struct omap_opp *mpu_opps;
> +struct omap_opp *dsp_opps;
> +struct omap_opp *l3_opps;
> +#endif
> +
> #ifdef CONFIG_OMAP_BOOT_TAG
>
> static int __init parse_tag_omap(const struct tag *tag)
> diff --git a/arch/arm/plat-omap/include/mach/omap-pm.h
> b/arch/arm/plat-omap/include/mach/omap-pm.h
> index f0bbd36..6a8499a 100644
> --- a/arch/arm/plat-omap/include/mach/omap-pm.h
> +++ b/arch/arm/plat-omap/include/mach/omap-pm.h
> @@ -58,9 +58,20 @@ extern struct omap_opp *l3_opps;
> * framework starts. The "_if_" is to avoid name collisions with the
> * PM idle-loop code.
> */
> +#ifdef CONFIG_OMAP_PM_NONE
> +static inline int __init omap_pm_if_early_init(struct omap_opp
> *mpu_opp_table,
> + struct omap_opp *dsp_opp_table,
> + struct omap_opp *l3_opp_table) {
> + mpu_opps = 0;
> + dsp_opps = 0;
> + l3_opps = 0;
> + return 0;
> +}
> +#else
> int __init omap_pm_if_early_init(struct omap_opp *mpu_opp_table,
> struct omap_opp *dsp_opp_table,
> struct omap_opp *l3_opp_table);
> +#endif
>
> /**
> * omap_pm_if_init - OMAP PM init code called after clock fw init
> @@ -68,7 +79,11 @@ int __init omap_pm_if_early_init(struct omap_opp
> *mpu_opp_table,
> * The main initialization code. OPP tables are passed in here. The
> * "_if_" is to avoid name collisions with the PM idle-loop code.
> */
> +#ifdef CONFIG_OMAP_PM_NONE
> +static inline int __init omap_pm_if_init(void) { return 0; }
> +#else
> int __init omap_pm_if_init(void);
> +#endif
>
> /**
> * omap_pm_if_exit - OMAP PM exit code
^ permalink raw reply [flat|nested] 4+ messages in thread* RE: [PATCH] PM: OMAP: Fix build with CONFIG_OMAP_PM_NONE set
2009-04-07 11:18 ` Roger Quadros
@ 2009-04-07 15:01 ` Premi, Sanjeev
2009-04-08 6:57 ` Roger Quadros
0 siblings, 1 reply; 4+ messages in thread
From: Premi, Sanjeev @ 2009-04-07 15:01 UTC (permalink / raw)
To: Roger Quadros; +Cc: Kevin Hilman, linux-omap@vger.kernel.org
> -----Original Message-----
> From: linux-omap-owner@vger.kernel.org
> [mailto:linux-omap-owner@vger.kernel.org] On Behalf Of Roger Quadros
> Sent: Tuesday, April 07, 2009 4:49 PM
> To: ext Roger Quadros
> Cc: Kevin Hilman; linux-omap@vger.kernel.org
> Subject: Re: [PATCH] PM: OMAP: Fix build with CONFIG_OMAP_PM_NONE set
>
> The patch fixes the following link errors
>
> arch/arm/mach-omap2/built-in.o: In function
> `omap3_round_to_table_rate':
> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock
> 34xx.c:956:
> undefined reference to `mpu_opps'
> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock
> 34xx.c:956:
> undefined reference to `dsp_opps'
> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock
> 34xx.c:956:
> undefined reference to `l3_opps'
> arch/arm/mach-omap2/built-in.o: In function
> `omap2_clk_init_cpufreq_table':
> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock
> 34xx.c:719:
> undefined reference to `mpu_opps'
> arch/arm/mach-omap2/built-in.o: In function `omap3_select_table_rate':
> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock
> 34xx.c:1020:
> undefined reference to `mpu_opps'
> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock
> 34xx.c:1020:
> undefined reference to `dsp_opps'
> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock
> 34xx.c:1020:
> undefined reference to `l3_opps'
> arch/arm/mach-omap2/built-in.o: In function `omap2_init_common_hw':
> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/io.c:
> 241: undefined
> reference to `omap_pm_if_early_init'
> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/io.c:
> 246: undefined
> reference to `omap_pm_if_init'
> arch/arm/mach-omap2/built-in.o: In function `omap2_clk_init':
> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock
> 34xx.c:887:
> undefined reference to `mpu_opps'
> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock
> 34xx.c:887:
> undefined reference to `l3_opps'
> make: *** [.tmp_vmlinux1] Error 1
>
>
> ext Roger Quadros wrote:
> > From: Roger Quadros <ext-roger.quadros@nokia.com>
> > Date: Tue, 7 Apr 2009 11:10:29 +0300
> > Subject: [PATCH] PM: OMAP: Fix build with CONFIG_OMAP_PM_NONE set
> >
> > Removes undefined symbol link errors. Required symbols are
> defined in
> > common.c and omap-pm.h
> >
> > Signed-off-by: Roger Quadros <ext-roger.quadros@nokia.com>
> > ---
> > arch/arm/plat-omap/common.c | 6 ++++++
> > arch/arm/plat-omap/include/mach/omap-pm.h | 15 +++++++++++++++
> > 2 files changed, 21 insertions(+), 0 deletions(-)
> >
> > diff --git a/arch/arm/plat-omap/common.c
> b/arch/arm/plat-omap/common.c
> > index 2866612..634ca39 100644
> > --- a/arch/arm/plat-omap/common.c
> > +++ b/arch/arm/plat-omap/common.c
> > @@ -46,6 +46,12 @@ int omap_bootloader_tag_len;
> > struct omap_board_config_kernel *omap_board_config;
> > int omap_board_config_size;
> >
> > +#ifdef CONFIG_OMAP_PM_NONE
> > +struct omap_opp *mpu_opps;
> > +struct omap_opp *dsp_opps;
> > +struct omap_opp *l3_opps;
> > +#endif
> > +
> > #ifdef CONFIG_OMAP_BOOT_TAG
> >
> > static int __init parse_tag_omap(const struct tag *tag)
> > diff --git a/arch/arm/plat-omap/include/mach/omap-pm.h
> > b/arch/arm/plat-omap/include/mach/omap-pm.h
> > index f0bbd36..6a8499a 100644
> > --- a/arch/arm/plat-omap/include/mach/omap-pm.h
> > +++ b/arch/arm/plat-omap/include/mach/omap-pm.h
> > @@ -58,9 +58,20 @@ extern struct omap_opp *l3_opps;
> > * framework starts. The "_if_" is to avoid name
> collisions with the
> > * PM idle-loop code.
> > */
> > +#ifdef CONFIG_OMAP_PM_NONE
> > +static inline int __init omap_pm_if_early_init(struct omap_opp
> > *mpu_opp_table,
> > + struct omap_opp *dsp_opp_table,
> > + struct omap_opp *l3_opp_table) {
> > + mpu_opps = 0;
> > + dsp_opps = 0;
> > + l3_opps = 0;
> > + return 0;
> > +}
> > +#else
> > int __init omap_pm_if_early_init(struct omap_opp *mpu_opp_table,
> > struct omap_opp *dsp_opp_table,
> > struct omap_opp *l3_opp_table);
> > +#endif
> >
[sp] Instead of creating 'dummy' variables ans initializing them to
0; wouldn't it be better to redefine omap_pm_if_early_init()
with no arguments under CONFIG_OMAP_PM_NONE.
I have not checked in detail; but not sure impact of
"return -EINVAL" in resulting from the initializations above.
We may just need a clean-up to get all functions where *_opp
variables are used.
Also, I have not checked if the updated clock infra has any
impact to the functions causing compile errors.
Best regards,
Sanjeev
> > /**
> > * omap_pm_if_init - OMAP PM init code called after clock fw init
> > @@ -68,7 +79,11 @@ int __init omap_pm_if_early_init(struct omap_opp
> > *mpu_opp_table,
> > * The main initialization code. OPP tables are passed in
> here. The
> > * "_if_" is to avoid name collisions with the PM idle-loop code.
> > */
> > +#ifdef CONFIG_OMAP_PM_NONE
> > +static inline int __init omap_pm_if_init(void) { return 0; }
> > +#else
> > int __init omap_pm_if_init(void);
> > +#endif
> >
> > /**
> > * omap_pm_if_exit - OMAP PM exit code
>
> --
> To unsubscribe from this list: send the line "unsubscribe
> linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] PM: OMAP: Fix build with CONFIG_OMAP_PM_NONE set
2009-04-07 15:01 ` Premi, Sanjeev
@ 2009-04-08 6:57 ` Roger Quadros
0 siblings, 0 replies; 4+ messages in thread
From: Roger Quadros @ 2009-04-08 6:57 UTC (permalink / raw)
To: ext Premi, Sanjeev; +Cc: Kevin Hilman, linux-omap@vger.kernel.org
ext Premi, Sanjeev wrote:
>> -----Original Message-----
>> From: linux-omap-owner@vger.kernel.org
>> [mailto:linux-omap-owner@vger.kernel.org] On Behalf Of Roger Quadros
>> Sent: Tuesday, April 07, 2009 4:49 PM
>> To: ext Roger Quadros
>> Cc: Kevin Hilman; linux-omap@vger.kernel.org
>> Subject: Re: [PATCH] PM: OMAP: Fix build with CONFIG_OMAP_PM_NONE set
>>
>> The patch fixes the following link errors
>>
>> arch/arm/mach-omap2/built-in.o: In function
>> `omap3_round_to_table_rate':
>> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock
>> 34xx.c:956:
>> undefined reference to `mpu_opps'
>> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock
>> 34xx.c:956:
>> undefined reference to `dsp_opps'
>> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock
>> 34xx.c:956:
>> undefined reference to `l3_opps'
>> arch/arm/mach-omap2/built-in.o: In function
>> `omap2_clk_init_cpufreq_table':
>> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock
>> 34xx.c:719:
>> undefined reference to `mpu_opps'
>> arch/arm/mach-omap2/built-in.o: In function `omap3_select_table_rate':
>> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock
>> 34xx.c:1020:
>> undefined reference to `mpu_opps'
>> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock
>> 34xx.c:1020:
>> undefined reference to `dsp_opps'
>> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock
>> 34xx.c:1020:
>> undefined reference to `l3_opps'
>> arch/arm/mach-omap2/built-in.o: In function `omap2_init_common_hw':
>> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/io.c:
>> 241: undefined
>> reference to `omap_pm_if_early_init'
>> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/io.c:
>> 246: undefined
>> reference to `omap_pm_if_init'
>> arch/arm/mach-omap2/built-in.o: In function `omap2_clk_init':
>> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock
>> 34xx.c:887:
>> undefined reference to `mpu_opps'
>> /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock
>> 34xx.c:887:
>> undefined reference to `l3_opps'
>> make: *** [.tmp_vmlinux1] Error 1
>>
>>
>> ext Roger Quadros wrote:
>>> From: Roger Quadros <ext-roger.quadros@nokia.com>
>>> Date: Tue, 7 Apr 2009 11:10:29 +0300
>>> Subject: [PATCH] PM: OMAP: Fix build with CONFIG_OMAP_PM_NONE set
>>>
>>> Removes undefined symbol link errors. Required symbols are
>> defined in
>>> common.c and omap-pm.h
>>>
>>> Signed-off-by: Roger Quadros <ext-roger.quadros@nokia.com>
>>> ---
>>> arch/arm/plat-omap/common.c | 6 ++++++
>>> arch/arm/plat-omap/include/mach/omap-pm.h | 15 +++++++++++++++
>>> 2 files changed, 21 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/arch/arm/plat-omap/common.c
>> b/arch/arm/plat-omap/common.c
>>> index 2866612..634ca39 100644
>>> --- a/arch/arm/plat-omap/common.c
>>> +++ b/arch/arm/plat-omap/common.c
>>> @@ -46,6 +46,12 @@ int omap_bootloader_tag_len;
>>> struct omap_board_config_kernel *omap_board_config;
>>> int omap_board_config_size;
>>>
>>> +#ifdef CONFIG_OMAP_PM_NONE
>>> +struct omap_opp *mpu_opps;
>>> +struct omap_opp *dsp_opps;
>>> +struct omap_opp *l3_opps;
>>> +#endif
>>> +
>>> #ifdef CONFIG_OMAP_BOOT_TAG
>>>
>>> static int __init parse_tag_omap(const struct tag *tag)
>>> diff --git a/arch/arm/plat-omap/include/mach/omap-pm.h
>>> b/arch/arm/plat-omap/include/mach/omap-pm.h
>>> index f0bbd36..6a8499a 100644
>>> --- a/arch/arm/plat-omap/include/mach/omap-pm.h
>>> +++ b/arch/arm/plat-omap/include/mach/omap-pm.h
>>> @@ -58,9 +58,20 @@ extern struct omap_opp *l3_opps;
>>> * framework starts. The "_if_" is to avoid name
>> collisions with the
>>> * PM idle-loop code.
>>> */
>>> +#ifdef CONFIG_OMAP_PM_NONE
>>> +static inline int __init omap_pm_if_early_init(struct omap_opp
>>> *mpu_opp_table,
>>> + struct omap_opp *dsp_opp_table,
>>> + struct omap_opp *l3_opp_table) {
>>> + mpu_opps = 0;
>>> + dsp_opps = 0;
>>> + l3_opps = 0;
>>> + return 0;
>>> +}
>>> +#else
>>> int __init omap_pm_if_early_init(struct omap_opp *mpu_opp_table,
>>> struct omap_opp *dsp_opp_table,
>>> struct omap_opp *l3_opp_table);
>>> +#endif
>>>
>
> [sp] Instead of creating 'dummy' variables ans initializing them to
> 0; wouldn't it be better to redefine omap_pm_if_early_init()
> with no arguments under CONFIG_OMAP_PM_NONE.
>
> I have not checked in detail; but not sure impact of
> "return -EINVAL" in resulting from the initializations above.
>
> We may just need a clean-up to get all functions where *_opp
> variables are used.
>
> Also, I have not checked if the updated clock infra has any
> impact to the functions causing compile errors.
>
> Best regards,
> Sanjeev
>
I get your point. The reason why i used dummy variables for opps was that they
are used at quite some places and are always checked for != 0 before use.
If dummy opp variables are not defined then we'll have to check for
CONFIG_OMAP_PM_NONE at all those places, which i too am ok with.
Which one is a better approach?
-roger.
>>> /**
>>> * omap_pm_if_init - OMAP PM init code called after clock fw init
>>> @@ -68,7 +79,11 @@ int __init omap_pm_if_early_init(struct omap_opp
>>> *mpu_opp_table,
>>> * The main initialization code. OPP tables are passed in
>> here. The
>>> * "_if_" is to avoid name collisions with the PM idle-loop code.
>>> */
>>> +#ifdef CONFIG_OMAP_PM_NONE
>>> +static inline int __init omap_pm_if_init(void) { return 0; }
>>> +#else
>>> int __init omap_pm_if_init(void);
>>> +#endif
>>>
>>> /**
>>> * omap_pm_if_exit - OMAP PM exit code
>> --
>> To unsubscribe from this list: send the line "unsubscribe
>> linux-omap" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>
>>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-04-08 6:58 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-07 8:57 [PATCH] PM: OMAP: Fix build with CONFIG_OMAP_PM_NONE set Roger Quadros
2009-04-07 11:18 ` Roger Quadros
2009-04-07 15:01 ` Premi, Sanjeev
2009-04-08 6:57 ` Roger Quadros
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox