All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Fix __res data type (PPC 85xx)
@ 2004-12-13 22:03 tglx
       [not found] ` <2A28D57A-4E27-11D9-B992-000393DBC2E8@freescale.com>
  0 siblings, 1 reply; 2+ messages in thread
From: tglx @ 2004-12-13 22:03 UTC (permalink / raw)
  To: kumar.gala; +Cc: linux-kernel

Defining the residual board data as char [sizeof(bd_t] and
typecasting it for each access makes not really sense. Use 
the real data type instead.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

---
 arch/ppc/platforms/85xx/mpc8540_ads.c        |    6 +++---
 arch/ppc/platforms/85xx/mpc8560_ads.c        |    4 ++--
 arch/ppc/platforms/85xx/mpc85xx_ads_common.c |    8 +++-----
 arch/ppc/platforms/85xx/mpc85xx_cds_common.c |   13 ++++++-------
 arch/ppc/platforms/85xx/sbc8560.c            |    4 ++--
 arch/ppc/platforms/85xx/sbc85xx.c            |    8 +++-----
 include/asm-ppc/mpc85xx.h                    |    2 +-
 7 files changed, 20 insertions(+), 25 deletions(-)
---
Index: include/asm-ppc/mpc85xx.h
===================================================================
--- include/asm-ppc/mpc85xx.h	(revision 8)
+++ include/asm-ppc/mpc85xx.h	(working copy)
@@ -47,7 +47,7 @@
  * The "residual" board information structure the boot loader passes
  * into the kernel.
  */
-extern unsigned char __res[];
+extern bd_t __res;
 
 /* Internal IRQs on MPC85xx OpenPIC */
 /* Not all of these exist on all MPC85xx implementations */
Index: arch/ppc/platforms/85xx/sbc85xx.c
===================================================================
--- arch/ppc/platforms/85xx/sbc85xx.c	(revision 42)
+++ arch/ppc/platforms/85xx/sbc85xx.c	(working copy)
@@ -48,7 +48,7 @@
 
 #include <platforms/85xx/sbc85xx.h>
 
-unsigned char __res[sizeof (bd_t)];
+bd_t __res;
 
 #ifndef CONFIG_PCI
 unsigned long isa_io_base = 0;
@@ -120,11 +120,10 @@
 {
 	uint pvid, svid, phid1;
 	uint memsize = total_memory;
-	bd_t *binfo = (bd_t *) __res;
 	unsigned int freq;
 
 	/* get the core frequency */
-	freq = binfo->bi_intfreq;
+	freq = __res.bi_intfreq;
 
 	pvid = mfspr(PVR);
 	svid = mfspr(SVR);
@@ -159,10 +158,9 @@
 void __init
 sbc8560_init_IRQ(void)
 {
-	bd_t *binfo = (bd_t *) __res;
 	/* Determine the Physical Address of the OpenPIC regs */
 	phys_addr_t OpenPIC_PAddr =
-	    binfo->bi_immr_base + MPC85xx_OPENPIC_OFFSET;
+	    __res.bi_immr_base + MPC85xx_OPENPIC_OFFSET;
 	OpenPIC_Addr = ioremap(OpenPIC_PAddr, MPC85xx_OPENPIC_SIZE);
 	OpenPIC_InitSenses = sbc8560_openpic_initsenses;
 	OpenPIC_NumInitSenses = sizeof (sbc8560_openpic_initsenses);
Index: arch/ppc/platforms/85xx/mpc85xx_ads_common.c
===================================================================
--- arch/ppc/platforms/85xx/mpc85xx_ads_common.c	(revision 42)
+++ arch/ppc/platforms/85xx/mpc85xx_ads_common.c	(working copy)
@@ -56,7 +56,7 @@
 
 extern unsigned long total_memory;	/* in mm/init */
 
-unsigned char __res[sizeof (bd_t)];
+bd_t __res;
 
 /* Internal interrupts are all Level Sensitive, and Positive Polarity */
 
@@ -120,11 +120,10 @@
 {
 	uint pvid, svid, phid1;
 	uint memsize = total_memory;
-	bd_t *binfo = (bd_t *) __res;
 	unsigned int freq;
 
 	/* get the core frequency */
-	freq = binfo->bi_intfreq;
+	freq = __res.bi_intfreq;
 
 	pvid = mfspr(PVR);
 	svid = mfspr(SVR);
@@ -159,10 +158,9 @@
 void __init
 mpc85xx_ads_init_IRQ(void)
 {
-	bd_t *binfo = (bd_t *) __res;
 	/* Determine the Physical Address of the OpenPIC regs */
 	phys_addr_t OpenPIC_PAddr =
-	    binfo->bi_immr_base + MPC85xx_OPENPIC_OFFSET;
+	    __res.bi_immr_base + MPC85xx_OPENPIC_OFFSET;
 	OpenPIC_Addr = ioremap(OpenPIC_PAddr, MPC85xx_OPENPIC_SIZE);
 	OpenPIC_InitSenses = mpc85xx_ads_openpic_initsenses;
 	OpenPIC_NumInitSenses = sizeof (mpc85xx_ads_openpic_initsenses);
Index: arch/ppc/platforms/85xx/mpc85xx_cds_common.c
===================================================================
--- arch/ppc/platforms/85xx/mpc85xx_cds_common.c	(revision 42)
+++ arch/ppc/platforms/85xx/mpc85xx_cds_common.c	(working copy)
@@ -64,7 +64,7 @@
 
 extern unsigned long total_memory;      /* in mm/init */
 
-unsigned char __res[sizeof (bd_t)];
+bd_t __res;
 
 static int cds_pci_slot = 2;
 static volatile u8 * cadmus;
@@ -161,11 +161,10 @@
 {
         uint pvid, svid, phid1;
         uint memsize = total_memory;
-        bd_t *binfo = (bd_t *) __res;
         unsigned int freq;
 
         /* get the core frequency */
-        freq = binfo->bi_intfreq;
+        freq = __res.bi_intfreq;
 
         pvid = mfspr(PVR);
         svid = mfspr(SVR);
@@ -204,7 +203,7 @@
 void __init
 mpc85xx_cds_init_IRQ(void)
 {
-	bd_t *binfo = (bd_t *) __res;
+	bd_t *binfo = &__res;
 #ifdef CONFIG_CPM2
 	volatile cpm2_map_t *immap = cpm2_immr;
 	int i;
@@ -337,7 +336,7 @@
 {
         struct ocp_def *def;
         struct ocp_gfar_data *einfo;
-        bd_t *binfo = (bd_t *) __res;
+        bd_t *binfo = &__res;
         unsigned int freq;
 
         /* get the core frequency */
@@ -411,13 +410,13 @@
          * residual data area.
          */
         if (r3) {
-                memcpy((void *) __res, (void *) (r3 + KERNELBASE),
+                memcpy((void *) &__res, (void *) (r3 + KERNELBASE),
                        sizeof (bd_t));
 
         }
 #ifdef CONFIG_SERIAL_TEXT_DEBUG
 	{
-		bd_t *binfo = (bd_t *) __res;
+		bd_t *binfo = &__res;
 
 		/* Use the last TLB entry to map CCSRBAR to allow access to DUART regs */
 		settlbcam(NUM_TLBCAMS - 1, binfo->bi_immr_base,
Index: arch/ppc/platforms/85xx/mpc8540_ads.c
===================================================================
--- arch/ppc/platforms/85xx/mpc8540_ads.c	(revision 42)
+++ arch/ppc/platforms/85xx/mpc8540_ads.c	(working copy)
@@ -102,7 +102,7 @@
 {
 	struct ocp_def *def;
 	struct ocp_gfar_data *einfo;
-	bd_t *binfo = (bd_t *) __res;
+	bd_t *binfo = &__res;
 	unsigned int freq;
 
 	/* get the core frequency */
@@ -175,12 +175,12 @@
 	 * residual data area.
 	 */
 	if (r3) {
-		memcpy((void *) __res, (void *) (r3 + KERNELBASE),
+		memcpy((void *) &__res, (void *) (r3 + KERNELBASE),
 		       sizeof (bd_t));
 	}
 #ifdef CONFIG_SERIAL_TEXT_DEBUG
 	{
-		bd_t *binfo = (bd_t *) __res;
+		bd_t *binfo = &__res;
 
 		/* Use the last TLB entry to map CCSRBAR to allow access to DUART regs */
 		settlbcam(NUM_TLBCAMS - 1, binfo->bi_immr_base,
Index: arch/ppc/platforms/85xx/mpc8560_ads.c
===================================================================
--- arch/ppc/platforms/85xx/mpc8560_ads.c	(revision 42)
+++ arch/ppc/platforms/85xx/mpc8560_ads.c	(working copy)
@@ -97,7 +97,7 @@
 {
 	struct ocp_def *def;
 	struct ocp_gfar_data *einfo;
-	bd_t *binfo = (bd_t *) __res;
+	bd_t *binfo = &__res;
 	unsigned int freq;
 
 	cpm2_reset();
@@ -200,7 +200,7 @@
 	 * residual data area.
 	 */
 	if (r3) {
-		memcpy((void *) __res, (void *) (r3 + KERNELBASE),
+		memcpy((void *) &__res, (void *) (r3 + KERNELBASE),
 		       sizeof (bd_t));
 
 	}
Index: arch/ppc/platforms/85xx/sbc8560.c
===================================================================
--- arch/ppc/platforms/85xx/sbc8560.c	(revision 42)
+++ arch/ppc/platforms/85xx/sbc8560.c	(working copy)
@@ -127,7 +127,7 @@
 {
 	struct ocp_def *def;
 	struct ocp_gfar_data *einfo;
-	bd_t *binfo = (bd_t *) __res;
+	bd_t *binfo = &__res;
 	unsigned int freq;
 
 	/* get the core frequency */
@@ -193,7 +193,7 @@
 	 * residual data area.
 	 */
 	if (r3) {
-		memcpy((void *) __res, (void *) (r3 + KERNELBASE),
+		memcpy((void *) &__res, (void *) (r3 + KERNELBASE),
 		       sizeof (bd_t));
 	}
 

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

end of thread, other threads:[~2004-12-15  0:56 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-12-13 22:03 [PATCH] Fix __res data type (PPC 85xx) tglx
     [not found] ` <2A28D57A-4E27-11D9-B992-000393DBC2E8@freescale.com>
2004-12-15  0:37   ` [PATCH] Fix __res data type (PPC 85xx) 2nd version Thomas Gleixner

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.