summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/sparc/shared
diff options
context:
space:
mode:
authorDaniel Hellstrom <daniel@gaisler.com>2015-02-11 09:18:53 +0100
committerDaniel Hellstrom <daniel@gaisler.com>2015-04-17 01:10:23 +0200
commite21a5b01537c0a8a80ab06a3a6489a8bed55d639 (patch)
tree2417b23dcfcf54b9bc5e1707e3a111074d293d25 /c/src/lib/libbsp/sparc/shared
parentLEON: GRPCI2 driver warning fixes (diff)
downloadrtems-e21a5b01537c0a8a80ab06a3a6489a8bed55d639.tar.bz2
GRTC: fix build warnings
Diffstat (limited to 'c/src/lib/libbsp/sparc/shared')
-rw-r--r--c/src/lib/libbsp/sparc/shared/include/grtc.h3
-rw-r--r--c/src/lib/libbsp/sparc/shared/tmtc/grtc.c29
2 files changed, 16 insertions, 16 deletions
diff --git a/c/src/lib/libbsp/sparc/shared/include/grtc.h b/c/src/lib/libbsp/sparc/shared/include/grtc.h
index ee1c806128..932f970c2e 100644
--- a/c/src/lib/libbsp/sparc/shared/include/grtc.h
+++ b/c/src/lib/libbsp/sparc/shared/include/grtc.h
@@ -145,6 +145,9 @@ struct grtc_ioc_stats {
/* Register GRTC driver at driver manager */
void grtc_register_drv(void);
+/* Register GRTC RMAP driver at driver manager */
+void grtc_rmap_register_drv (void);
+
#ifdef __cplusplus
}
#endif
diff --git a/c/src/lib/libbsp/sparc/shared/tmtc/grtc.c b/c/src/lib/libbsp/sparc/shared/tmtc/grtc.c
index 3794e95d24..600c40ac7d 100644
--- a/c/src/lib/libbsp/sparc/shared/tmtc/grtc.c
+++ b/c/src/lib/libbsp/sparc/shared/tmtc/grtc.c
@@ -268,7 +268,7 @@ struct grtc_priv {
/* Frame read data (Frame mode only) */
int frame_state;
int filler;
- unsigned char hdr[5] __attribute__((aligned(2)));
+ unsigned int hdr[2]; /* 5 byte header */
struct grtc_frame *frm; /* Frame currently beeing copied */
int frmlen;
@@ -700,18 +700,17 @@ static int grtc_start(struct grtc_priv *pDev)
static void grtc_stop(struct grtc_priv *pDev)
{
struct grtc_regs *regs = pDev->regs;
- unsigned int tmp;
-
+
/* Disable the receiver */
regs->cor = GRTC_SEB;
-
+
/* disable all interrupts and clear them */
regs->imr = 0;
- tmp = READ_REG(&regs->pir);
+ READ_REG(&regs->pir);
regs->picr = GRTC_INT_ALL;
-
+
DBG("GRTC: STOPPED\n");
-
+
/* Flush semaphores in case a thread is stuck waiting for CLTUs (RX data) */
rtems_semaphore_flush(pDev->sem_rx);
}
@@ -1151,7 +1150,6 @@ static int grtc_hw_check_ending(struct grtc_priv *pDev, int max)
unsigned int rp, wp, asr, bufmax, rrp, rwp;
unsigned int upper, lower;
unsigned int count, cnt, left;
- int tot;
FUNCDBG();
@@ -1183,7 +1181,6 @@ static int grtc_hw_check_ending(struct grtc_priv *pDev, int max)
/* Count bytes will be read */
count = max;
left = count;
- tot = 0;
/* Read from upper part of data buffer */
if ( upper > 0 ){
@@ -1358,7 +1355,7 @@ static int process_dma(struct grtc_priv *pDev)
DBG2("FRAME_STATE_HDR\n");
/* Wait for all of header to be in place by setting partial to 0 */
- ret = grtc_hw_copy(pDev,pDev->hdr,5,0);
+ ret = grtc_hw_copy(pDev, (unsigned char *)pDev->hdr, 5, 0);
if ( ret < 0 ) {
/* Error copying header, restart scanning for new frame */
DEBUG_ERR_LOG(pDev,1);
@@ -1374,7 +1371,7 @@ static int process_dma(struct grtc_priv *pDev)
}
/* The complete header has been copied, parse it */
- pDev->frmlen = ((*(unsigned short *)&pDev->hdr[2]) & 0x3ff)+1;
+ pDev->frmlen = (((unsigned short *)pDev->hdr)[1] & 0x3ff)+1;
if ( pDev->frmlen < 5 ) {
/* Error: frame length is not correct */
pDev->stats.err++;
@@ -1421,11 +1418,11 @@ static int process_dma(struct grtc_priv *pDev)
frm->len = 5; /* Only header currenlty in frame */
/* Copy Frame Header into frame structure */
- *((unsigned char *)&frm->hdr + 0) = pDev->hdr[0];
- *((unsigned char *)&frm->hdr + 1) = pDev->hdr[1];
- *((unsigned char *)&frm->hdr + 2) = pDev->hdr[2];
- *((unsigned char *)&frm->hdr + 3) = pDev->hdr[3];
- *((unsigned char *)&frm->hdr + 4) = pDev->hdr[4];
+ ((unsigned char*)&frm->hdr)[0] = ((unsigned char*)pDev->hdr)[0];
+ ((unsigned char*)&frm->hdr)[1] = ((unsigned char*)pDev->hdr)[1];
+ ((unsigned char*)&frm->hdr)[2] = ((unsigned char*)pDev->hdr)[2];
+ ((unsigned char*)&frm->hdr)[3] = ((unsigned char*)pDev->hdr)[3];
+ ((unsigned char*)&frm->hdr)[4] = ((unsigned char*)pDev->hdr)[4];
/* Calc Total and Filler byte count in frame */
total_len = pDev->frmlen / 7;