diff mbox

xen: arm: platforms: Remove determining reset specific values from dts for XGENE.

Message ID 1391493932-31268-1-git-send-email-pranavkumar@linaro.org
State Accepted
Commit aa9332e9410b728c7b1ebf9b40e51622728703f6
Headers show

Commit Message

PranavkumarSawargaonkar Feb. 4, 2014, 6:05 a.m. UTC
This patch removes reading reset specific values (address, size and mask) from dts
and uses values defined in the code now.
This is because currently xgene reset driver (submitted in linux) is going through
a change (which is not yet accepted), this new driver has a new type of dts bindings
for reset.
Hence till linux driver comes to some conclusion, we will use hardcoded values instead
of reading from dts so that xen code will not break due to the linux transition.

Ref:
http://lists.xen.org/archives/html/xen-devel/2014-01/msg02256.html
http://www.gossamer-threads.com/lists/linux/kernel/1845585

Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
Signed-off-by: Anup Patel <anup.patel@linaro.org>
---
 xen/arch/arm/platforms/xgene-storm.c |   43 +++++++++-------------------------
 1 file changed, 11 insertions(+), 32 deletions(-)

Comments

Ian Campbell Feb. 4, 2014, 9:43 a.m. UTC | #1
On Tue, 2014-02-04 at 11:35 +0530, Pranavkumar Sawargaonkar wrote:
> This patch removes reading reset specific values (address, size and mask) from dts
> and uses values defined in the code now.
> This is because currently xgene reset driver (submitted in linux) is going through
> a change (which is not yet accepted), this new driver has a new type of dts bindings
> for reset.
> Hence till linux driver comes to some conclusion, we will use hardcoded values instead
> of reading from dts so that xen code will not break due to the linux transition.
> 
> Ref:
> http://lists.xen.org/archives/html/xen-devel/2014-01/msg02256.html
> http://www.gossamer-threads.com/lists/linux/kernel/1845585
> 
> Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
> Signed-off-by: Anup Patel <anup.patel@linaro.org>

Acked-by: Ian Campbell <ian.campbell@citrix.com>

George -- I'd like to take this into 4.4 to avoid shipping a Xen which
relies on an unagreed DTS binding (which is an ABI of sorts).

Ian.

> ---
>  xen/arch/arm/platforms/xgene-storm.c |   43 +++++++++-------------------------
>  1 file changed, 11 insertions(+), 32 deletions(-)
> 
> diff --git a/xen/arch/arm/platforms/xgene-storm.c b/xen/arch/arm/platforms/xgene-storm.c
> index 4fc185b..1da9b36 100644
> --- a/xen/arch/arm/platforms/xgene-storm.c
> +++ b/xen/arch/arm/platforms/xgene-storm.c
> @@ -25,6 +25,11 @@
>  #include <asm/io.h>
>  #include <asm/gic.h>
>  
> +/* XGENE RESET Specific defines */
> +#define XGENE_RESET_ADDR        0x17000014UL
> +#define XGENE_RESET_SIZE        0x100
> +#define XGENE_RESET_MASK        0x1
> +
>  /* Variables to save reset address of soc during platform initialization. */
>  static u64 reset_addr, reset_size;
>  static u32 reset_mask;
> @@ -141,38 +146,12 @@ static void xgene_storm_reset(void)
>  
>  static int xgene_storm_init(void)
>  {
> -    static const struct dt_device_match reset_ids[] __initconst =
> -    {
> -        DT_MATCH_COMPATIBLE("apm,xgene-reboot"),
> -        {},
> -    };
> -    struct dt_device_node *dev;
> -    int res;
> -
> -    dev = dt_find_matching_node(NULL, reset_ids);
> -    if ( !dev )
> -    {
> -        printk("XGENE: Unable to find a compatible reset node in the device tree");
> -        return 0;
> -    }
> -
> -    dt_device_set_used_by(dev, DOMID_XEN);
> -
> -    /* Retrieve base address and size */
> -    res = dt_device_get_address(dev, 0, &reset_addr, &reset_size);
> -    if ( res )
> -    {
> -        printk("XGENE: Unable to retrieve the base address for reset\n");
> -        return 0;
> -    }
> -
> -    /* Get reset mask */
> -    res = dt_property_read_u32(dev, "mask", &reset_mask);
> -    if ( !res )
> -    {
> -        printk("XGENE: Unable to retrieve the reset mask\n");
> -        return 0;
> -    }
> +    /* TBD: Once Linux side device tree bindings are finalized retrieve
> +     * these values from dts.
> +     */
> +    reset_addr = XGENE_RESET_ADDR;
> +    reset_size = XGENE_RESET_SIZE;
> +    reset_mask = XGENE_RESET_MASK;
>  
>      reset_vals_valid = true;
>      return 0;
Ian Campbell Feb. 5, 2014, 3:01 p.m. UTC | #2
On Wed, 2014-02-05 at 14:57 +0000, George Dunlap wrote:
> On 02/04/2014 09:43 AM, Ian Campbell wrote:
> > On Tue, 2014-02-04 at 11:35 +0530, Pranavkumar Sawargaonkar wrote:
> >> This patch removes reading reset specific values (address, size and mask) from dts
> >> and uses values defined in the code now.
> >> This is because currently xgene reset driver (submitted in linux) is going through
> >> a change (which is not yet accepted), this new driver has a new type of dts bindings
> >> for reset.
> >> Hence till linux driver comes to some conclusion, we will use hardcoded values instead
> >> of reading from dts so that xen code will not break due to the linux transition.
> >>
> >> Ref:
> >> http://lists.xen.org/archives/html/xen-devel/2014-01/msg02256.html
> >> http://www.gossamer-threads.com/lists/linux/kernel/1845585
> >>
> >> Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
> >> Signed-off-by: Anup Patel <anup.patel@linaro.org>
> > Acked-by: Ian Campbell <ian.campbell@citrix.com>
> >
> > George -- I'd like to take this into 4.4 to avoid shipping a Xen which
> > relies on an unagreed DTS binding (which is an ABI of sorts).
> 
> Is this the reboot binging one with 3 options, #2 of which was hard-code 
> the values rather than using DT?

Yes.

> Assuming so:
> 
> Release-acked-by: George Dunlap <george.dunlap@eu.citrix.com>

Thanks.
Ian Campbell Feb. 6, 2014, 12:40 p.m. UTC | #3
On Wed, 2014-02-05 at 14:57 +0000, George Dunlap wrote:
> On 02/04/2014 09:43 AM, Ian Campbell wrote:
> > On Tue, 2014-02-04 at 11:35 +0530, Pranavkumar Sawargaonkar wrote:
> >> This patch removes reading reset specific values (address, size and mask) from dts
> >> and uses values defined in the code now.
> >> This is because currently xgene reset driver (submitted in linux) is going through
> >> a change (which is not yet accepted), this new driver has a new type of dts bindings
> >> for reset.
> >> Hence till linux driver comes to some conclusion, we will use hardcoded values instead
> >> of reading from dts so that xen code will not break due to the linux transition.
> >>
> >> Ref:
> >> http://lists.xen.org/archives/html/xen-devel/2014-01/msg02256.html
> >> http://www.gossamer-threads.com/lists/linux/kernel/1845585
> >>
> >> Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
> >> Signed-off-by: Anup Patel <anup.patel@linaro.org>
> > Acked-by: Ian Campbell <ian.campbell@citrix.com>
> >
> > George -- I'd like to take this into 4.4 to avoid shipping a Xen which
> > relies on an unagreed DTS binding (which is an ABI of sorts).
> 
> Is this the reboot binging one with 3 options, #2 of which was hard-code 
> the values rather than using DT?
> 
> Assuming so:
> 
> Release-acked-by: George Dunlap <george.dunlap@eu.citrix.com>

Applied, thanks all.

I reflowed the commit message to make it fit in 80 columns.
diff mbox

Patch

diff --git a/xen/arch/arm/platforms/xgene-storm.c b/xen/arch/arm/platforms/xgene-storm.c
index 4fc185b..1da9b36 100644
--- a/xen/arch/arm/platforms/xgene-storm.c
+++ b/xen/arch/arm/platforms/xgene-storm.c
@@ -25,6 +25,11 @@ 
 #include <asm/io.h>
 #include <asm/gic.h>
 
+/* XGENE RESET Specific defines */
+#define XGENE_RESET_ADDR        0x17000014UL
+#define XGENE_RESET_SIZE        0x100
+#define XGENE_RESET_MASK        0x1
+
 /* Variables to save reset address of soc during platform initialization. */
 static u64 reset_addr, reset_size;
 static u32 reset_mask;
@@ -141,38 +146,12 @@  static void xgene_storm_reset(void)
 
 static int xgene_storm_init(void)
 {
-    static const struct dt_device_match reset_ids[] __initconst =
-    {
-        DT_MATCH_COMPATIBLE("apm,xgene-reboot"),
-        {},
-    };
-    struct dt_device_node *dev;
-    int res;
-
-    dev = dt_find_matching_node(NULL, reset_ids);
-    if ( !dev )
-    {
-        printk("XGENE: Unable to find a compatible reset node in the device tree");
-        return 0;
-    }
-
-    dt_device_set_used_by(dev, DOMID_XEN);
-
-    /* Retrieve base address and size */
-    res = dt_device_get_address(dev, 0, &reset_addr, &reset_size);
-    if ( res )
-    {
-        printk("XGENE: Unable to retrieve the base address for reset\n");
-        return 0;
-    }
-
-    /* Get reset mask */
-    res = dt_property_read_u32(dev, "mask", &reset_mask);
-    if ( !res )
-    {
-        printk("XGENE: Unable to retrieve the reset mask\n");
-        return 0;
-    }
+    /* TBD: Once Linux side device tree bindings are finalized retrieve
+     * these values from dts.
+     */
+    reset_addr = XGENE_RESET_ADDR;
+    reset_size = XGENE_RESET_SIZE;
+    reset_mask = XGENE_RESET_MASK;
 
     reset_vals_valid = true;
     return 0;