diff options
| author | Marcel Moolenaar <marcel@FreeBSD.org> | 2006-07-26 17:21:59 +0000 |
|---|---|---|
| committer | Marcel Moolenaar <marcel@FreeBSD.org> | 2006-07-26 17:21:59 +0000 |
| commit | afd396ac93e88fb073f0f73a3f16765c6296228d (patch) | |
| tree | 49cdb27c117e4eb51468791865ad8438829865e1 /sys/dev/uart | |
| parent | e997db5d3addfb2fe0642508504d7264eca35bfe (diff) | |
Notes
Diffstat (limited to 'sys/dev/uart')
| -rw-r--r-- | sys/dev/uart/uart_dev_z8530.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/dev/uart/uart_dev_z8530.c b/sys/dev/uart/uart_dev_z8530.c index bcde32f10287..49b152b326f4 100644 --- a/sys/dev/uart/uart_dev_z8530.c +++ b/sys/dev/uart/uart_dev_z8530.c @@ -383,7 +383,7 @@ z8530_bus_ioctl(struct uart_softc *sc, int request, intptr_t data) { struct z8530_softc *z8530 = (struct z8530_softc*)sc; struct uart_bas *bas; - int error; + int baudrate, divisor, error; bas = &sc->sc_bas; error = 0; @@ -397,6 +397,12 @@ z8530_bus_ioctl(struct uart_softc *sc, int request, intptr_t data) uart_setmreg(bas, WR_TPC, z8530->tpc); uart_barrier(bas); break; + case UART_IOCTL_BAUD: + divisor = uart_getmreg(bas, RR_TCH); + divisor = (divisor << 8) | uart_getmreg(bas, RR_TCL); + baudrate = bas->rclk / 2 / (divisor + 2); + *(int*)data = baudrate; + break; default: error = EINVAL; break; |
