Module Name: src Committed By: dyoung Date: Mon Mar 15 23:21:08 UTC 2010
Modified Files: src/sys/dev/ic: rtw.c rtwreg.h rtwvar.h Log Message: Make this compile on sparc64: 1 s/next_tick/next_tint/ because next_tick shadows a global on sparc64. 2 Fix the bus-barrier helper routines, which had the tag & handle swapped (!!). Move the helpers from rtwreg.h to rtwvar.h, and change RTW_BARRIER() into an inline subroutine called rtw_barrier(). To generate a diff of this commit: cvs rdiff -u -r1.114 -r1.115 src/sys/dev/ic/rtw.c cvs rdiff -u -r1.27 -r1.28 src/sys/dev/ic/rtwreg.h cvs rdiff -u -r1.42 -r1.43 src/sys/dev/ic/rtwvar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/ic/rtw.c diff -u src/sys/dev/ic/rtw.c:1.114 src/sys/dev/ic/rtw.c:1.115 --- src/sys/dev/ic/rtw.c:1.114 Wed Feb 24 22:37:58 2010 +++ src/sys/dev/ic/rtw.c Mon Mar 15 23:21:08 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: rtw.c,v 1.114 2010/02/24 22:37:58 dyoung Exp $ */ +/* $NetBSD: rtw.c,v 1.115 2010/03/15 23:21:08 dyoung Exp $ */ /*- * Copyright (c) 2004, 2005, 2006, 2007 David Young. All rights * reserved. @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rtw.c,v 1.114 2010/02/24 22:37:58 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rtw.c,v 1.115 2010/03/15 23:21:08 dyoung Exp $"); #include <sys/param.h> @@ -2095,19 +2095,19 @@ static inline void rtw_resume_ticks(struct rtw_softc *sc) { - uint32_t tsftrl0, tsftrl1, next_tick; + uint32_t tsftrl0, tsftrl1, next_tint; tsftrl0 = RTW_READ(&sc->sc_regs, RTW_TSFTRL); tsftrl1 = RTW_READ(&sc->sc_regs, RTW_TSFTRL); - next_tick = tsftrl1 + 1000000; - RTW_WRITE(&sc->sc_regs, RTW_TINT, next_tick); + next_tint = tsftrl1 + 1000000; + RTW_WRITE(&sc->sc_regs, RTW_TINT, next_tint); sc->sc_do_tick = 1; RTW_DPRINTF(RTW_DEBUG_TIMEOUT, ("%s: resume ticks delta %#08x now %#08x next %#08x\n", - device_xname(sc->sc_dev), tsftrl1 - tsftrl0, tsftrl1, next_tick)); + device_xname(sc->sc_dev), tsftrl1 - tsftrl0, tsftrl1, next_tint)); } static void Index: src/sys/dev/ic/rtwreg.h diff -u src/sys/dev/ic/rtwreg.h:1.27 src/sys/dev/ic/rtwreg.h:1.28 --- src/sys/dev/ic/rtwreg.h:1.27 Mon Oct 19 23:19:39 2009 +++ src/sys/dev/ic/rtwreg.h Mon Mar 15 23:21:08 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: rtwreg.h,v 1.27 2009/10/19 23:19:39 rmind Exp $ */ +/* $NetBSD: rtwreg.h,v 1.28 2010/03/15 23:21:08 dyoung Exp $ */ /*- * Copyright (c) 2004, 2005 David Young. All rights reserved. * @@ -1013,45 +1013,6 @@ #endif /* - * Bus barrier - * - * Complete outstanding read and/or write ops on [reg0, reg1] - * ([reg1, reg0]) before starting new ops on the same region. See - * acceptable bus_space_barrier(9) for the flag definitions. - */ -#define RTW_BARRIER(regs, reg0, reg1, flags) \ - bus_space_barrier((regs)->r_bh, (regs)->r_bt, \ - MIN(reg0, reg1), MAX(reg0, reg1) - MIN(reg0, reg1) + 4, flags) - -/* - * Barrier convenience macros. - */ -/* sync */ -#define RTW_SYNC(regs, reg0, reg1) \ - RTW_BARRIER(regs, reg0, reg1, BUS_SPACE_BARRIER_SYNC) - -/* write-before-write */ -#define RTW_WBW(regs, reg0, reg1) \ - RTW_BARRIER(regs, reg0, reg1, BUS_SPACE_BARRIER_WRITE_BEFORE_WRITE) - -/* write-before-read */ -#define RTW_WBR(regs, reg0, reg1) \ - RTW_BARRIER(regs, reg0, reg1, BUS_SPACE_BARRIER_WRITE_BEFORE_READ) - -/* read-before-read */ -#define RTW_RBR(regs, reg0, reg1) \ - RTW_BARRIER(regs, reg0, reg1, BUS_SPACE_BARRIER_READ_BEFORE_READ) - -/* read-before-write */ -#define RTW_RBW(regs, reg0, reg1) \ - RTW_BARRIER(regs, reg0, reg1, BUS_SPACE_BARRIER_READ_BEFORE_WRITE) - -#define RTW_WBRW(regs, reg0, reg1) \ - RTW_BARRIER(regs, reg0, reg1, \ - BUS_SPACE_BARRIER_WRITE_BEFORE_READ | \ - BUS_SPACE_BARRIER_WRITE_BEFORE_WRITE) - -/* * Registers for RTL8180L's built-in baseband modem. */ #define RTW_BBP_SYS1 0x00 Index: src/sys/dev/ic/rtwvar.h diff -u src/sys/dev/ic/rtwvar.h:1.42 src/sys/dev/ic/rtwvar.h:1.43 --- src/sys/dev/ic/rtwvar.h:1.42 Wed Feb 24 22:37:58 2010 +++ src/sys/dev/ic/rtwvar.h Mon Mar 15 23:21:08 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: rtwvar.h,v 1.42 2010/02/24 22:37:58 dyoung Exp $ */ +/* $NetBSD: rtwvar.h,v 1.43 2010/03/15 23:21:08 dyoung Exp $ */ /*- * Copyright (c) 2004, 2005 David Young. All rights reserved. * @@ -112,6 +112,48 @@ enum rtw_access r_access; }; +/* + * Bus barrier + * + * Complete outstanding read and/or write ops on [reg0, reg1] + * ([reg1, reg0]) before starting new ops on the same region. See + * acceptable bus_space_barrier(9) for the flag definitions. + */ +static inline void +rtw_barrier(const struct rtw_regs *r, int reg0, int reg1, int flags) +{ + bus_space_barrier(r->r_bt, r->r_bh, MIN(reg0, reg1), + MAX(reg0, reg1) - MIN(reg0, reg1) + 4, flags); +} + +/* + * Barrier convenience macros. + */ +/* sync */ +#define RTW_SYNC(regs, reg0, reg1) \ + rtw_barrier(regs, reg0, reg1, BUS_SPACE_BARRIER_SYNC) + +/* write-before-write */ +#define RTW_WBW(regs, reg0, reg1) \ + rtw_barrier(regs, reg0, reg1, BUS_SPACE_BARRIER_WRITE_BEFORE_WRITE) + +/* write-before-read */ +#define RTW_WBR(regs, reg0, reg1) \ + rtw_barrier(regs, reg0, reg1, BUS_SPACE_BARRIER_WRITE_BEFORE_READ) + +/* read-before-read */ +#define RTW_RBR(regs, reg0, reg1) \ + rtw_barrier(regs, reg0, reg1, BUS_SPACE_BARRIER_READ_BEFORE_READ) + +/* read-before-write */ +#define RTW_RBW(regs, reg0, reg1) \ + rtw_barrier(regs, reg0, reg1, BUS_SPACE_BARRIER_READ_BEFORE_WRITE) + +#define RTW_WBRW(regs, reg0, reg1) \ + rtw_barrier(regs, reg0, reg1, \ + BUS_SPACE_BARRIER_WRITE_BEFORE_READ | \ + BUS_SPACE_BARRIER_WRITE_BEFORE_WRITE) + #define RTW_SR_GET(sr, ofs) \ (((sr)->sr_content[(ofs)/2] >> (((ofs) % 2 == 0) ? 0 : 8)) & 0xff)