powerpc/qe&cpm2: Avoid redefinitions in CPM2 and QE headers
authorAnton Vorontsov <avorontsov@ru.mvista.com>
Mon, 12 Oct 2009 16:49:16 +0000 (20:49 +0400)
committerKumar Gala <galak@kernel.crashing.org>
Thu, 12 Nov 2009 03:43:18 +0000 (21:43 -0600)
struct mcc defined in both immap_qe.h and immap_cpm2.h, so they will
conflic when included in a single file. The mcc struct is easy to deal
with, since it isn't used in any driver (yet), so let's just rename QE
version to qe_mcc.

The ucb_ctlr is a bit trickier, since it is used by fsl_qe_udc driver,
and the driver supports both CPM and QE UDCs, plus the QE version is
used to form a bigger immap struct.

I don't want to touch too much of USB code in this series, so for now
let's just copy most generic version into the common cpm.h header,
later we'll create cpm_usb.h where we'll place common USB structs that
are used by QE/CPM UDC and QE Host drivers (FHCI).

And as for the structs in qe.h and cpm2.h, just prefix them with qe_
and cpm_.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
arch/powerpc/include/asm/cpm.h
arch/powerpc/include/asm/immap_cpm2.h
arch/powerpc/include/asm/immap_qe.h

index 24d79e3abd8e9499decfe8bb0b5bd50c94d9c0be..b5f15340dc22ab5082861e543911265a8c464934 100644 (file)
@@ -5,6 +5,28 @@
 #include <linux/types.h>
 #include <linux/of.h>
 
+/*
+ * USB Controller pram common to QE and CPM.
+ */
+struct usb_ctlr {
+       u8      usb_usmod;
+       u8      usb_usadr;
+       u8      usb_uscom;
+       u8      res1[1];
+       __be16  usb_usep[4];
+       u8      res2[4];
+       __be16  usb_usber;
+       u8      res3[2];
+       __be16  usb_usbmr;
+       u8      res4[1];
+       u8      usb_usbs;
+       /* Fields down below are QE-only */
+       __be16  usb_ussft;
+       u8      res5[2];
+       __be16  usb_usfrn;
+       u8      res6[0x22];
+} __attribute__ ((packed));
+
 /* Opcodes common to CPM1 and CPM2
 */
 #define CPM_CR_INIT_TRX                ((ushort)0x0000)
index d4f069bf0e5753f4f223c42931681e375856de2d..7c64fda5357b641b203a78f65e035c2337f19992 100644 (file)
@@ -549,7 +549,7 @@ typedef struct comm_proc {
 
 /* USB Controller.
 */
-typedef struct usb_ctlr {
+typedef struct cpm_usb_ctlr {
        u8      usb_usmod;
        u8      usb_usadr;
        u8      usb_uscom;
index c346d0bcd23044611e747be56b3b291361af8f3f..4e10f508570ac38bb63b6f6fc6c9cc39861c9da7 100644 (file)
@@ -210,7 +210,7 @@ struct sir {
 } __attribute__ ((packed));
 
 /* USB Controller */
-struct usb_ctlr {
+struct qe_usb_ctlr {
        u8      usb_usmod;
        u8      usb_usadr;
        u8      usb_uscom;
@@ -229,7 +229,7 @@ struct usb_ctlr {
 } __attribute__ ((packed));
 
 /* MCC */
-struct mcc {
+struct qe_mcc {
        __be32  mcce;           /* MCC event register */
        __be32  mccm;           /* MCC mask register */
        __be32  mccf;           /* MCC configuration register */
@@ -431,9 +431,9 @@ struct qe_immap {
        struct qe_mux           qmx;            /* QE Multiplexer */
        struct qe_timers        qet;            /* QE Timers */
        struct spi              spi[0x2];       /* spi */
-       struct mcc              mcc;            /* mcc */
+       struct qe_mcc           mcc;            /* mcc */
        struct qe_brg           brg;            /* brg */
-       struct usb_ctlr         usb;            /* USB */
+       struct qe_usb_ctlr      usb;            /* USB */
        struct si1              si1;            /* SI */
        u8                      res11[0x800];
        struct sir              sir;            /* SI Routing Tables */