diff options
author | Daniel Hellstrom <daniel@gaisler.com> | 2013-01-18 13:16:05 +0100 |
---|---|---|
committer | Daniel Hellstrom <daniel@gaisler.com> | 2015-04-17 01:10:18 +0200 |
commit | 5dd83de94435affd9fcbdb84c2c7428fb23adf40 (patch) | |
tree | c471f7b6e34530fb4ed2ae78f210601d78f8477f /c/src | |
parent | GPTIMER: support separate & shared irq by clearing pending bit after ISR (diff) | |
download | rtems-5dd83de94435affd9fcbdb84c2c7428fb23adf40.tar.bz2 |
GRSPW: fixed SET_RMAPEN and SET_RMAPBUFDIS
Both ioctl commands destroyed the control register by writing the
content of the status register into it.
Diffstat (limited to 'c/src')
-rw-r--r-- | c/src/lib/libbsp/sparc/shared/spw/grspw.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/sparc/shared/spw/grspw.c b/c/src/lib/libbsp/sparc/shared/spw/grspw.c index b6ee255d36..5cedcb9812 100644 --- a/c/src/lib/libbsp/sparc/shared/spw/grspw.c +++ b/c/src/lib/libbsp/sparc/shared/spw/grspw.c @@ -1138,7 +1138,7 @@ static rtems_device_driver grspw_control( if ((unsigned int)ioarg->buffer > 1) { return RTEMS_INVALID_NAME; } - SPW_CTRL_WRITE(pDev, (SPW_STATUS_READ(pDev) & 0xFFFEFFFF) | ((unsigned int)ioarg->buffer << 16)); + SPW_CTRL_WRITE(pDev, (SPW_CTRL_READ(pDev) & 0xFFFEFFFF) | ((unsigned int)ioarg->buffer << 16)); if (((SPW_CTRL_READ(pDev) >> 16) & 1) != (unsigned int)ioarg->buffer) { return RTEMS_IO_ERROR; } @@ -1149,7 +1149,7 @@ static rtems_device_driver grspw_control( if ((unsigned int)ioarg->buffer > 1) { return RTEMS_INVALID_NAME; } - SPW_CTRL_WRITE(pDev, (SPW_STATUS_READ(pDev) & 0xFFFDFFFF) | ((unsigned int)ioarg->buffer << 17)); + SPW_CTRL_WRITE(pDev, (SPW_CTRL_READ(pDev) & 0xFFFDFFFF) | ((unsigned int)ioarg->buffer << 17)); if (((SPW_CTRL_READ(pDev) >> 17) & 1) != (unsigned int)ioarg->buffer) { return RTEMS_IO_ERROR; } |