Date: Tue, 6 Jan 2009 11:01:10 GMT From: Weongyo Jeong <weongyo@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 155706 for review Message-ID: <200901061101.n06B1AOH035261@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=155706 Change 155706 by weongyo@weongyo_ws on 2009/01/06 11:00:49 define magic macros due to the lack of documents; no functional changes Affected files ... .. //depot/projects/vap/sys/dev/usb/if_urtw.c#8 edit .. //depot/projects/vap/sys/dev/usb/if_urtwreg.h#3 edit Differences ... ==== //depot/projects/vap/sys/dev/usb/if_urtw.c#8 (text+ko) ==== @@ -849,9 +849,9 @@ urtw_read16_m(sc, URTW_RF_PINS_OUTPUT, &o1); urtw_read16_m(sc, URTW_RF_PINS_ENABLE, &o2); urtw_read16_m(sc, URTW_RF_PINS_SELECT, &o3); - urtw_write16_m(sc, URTW_RF_PINS_ENABLE, o2 | 0xf); - urtw_write16_m(sc, URTW_RF_PINS_SELECT, o3 | 0xf); - o1 &= ~0xf; + urtw_write16_m(sc, URTW_RF_PINS_ENABLE, o2 | URTW_RF_PINS_MAGIC4); + urtw_write16_m(sc, URTW_RF_PINS_SELECT, o3 | URTW_RF_PINS_MAGIC4); + o1 &= ~URTW_RF_PINS_MAGIC4; urtw_write16_m(sc, URTW_RF_PINS_OUTPUT, o1 | URTW_BB_HOST_BANG_EN); DELAY(5); urtw_write16_m(sc, URTW_RF_PINS_OUTPUT, o1); @@ -917,7 +917,7 @@ urtw_write16_m(sc, URTW_RF_PINS_ENABLE, o2); urtw_write16_m(sc, URTW_RF_PINS_SELECT, o3); - urtw_write16_m(sc, URTW_RF_PINS_OUTPUT, 0x3a0); + urtw_write16_m(sc, URTW_RF_PINS_OUTPUT, URTW_RF_PINS_OUTPUT_MAGIC1); if (data != NULL) *data = value; @@ -932,12 +932,12 @@ usbd_status error; urtw_read16_m(sc, URTW_RF_PINS_OUTPUT, &d80); - d80 &= 0xfff3; + d80 &= URTW_RF_PINS_MAGIC1; urtw_read16_m(sc, URTW_RF_PINS_ENABLE, &d82); urtw_read16_m(sc, URTW_RF_PINS_SELECT, &d84); - d84 &= 0xfff0; - urtw_write16_m(sc, URTW_RF_PINS_ENABLE, d82 | 0x0007); - urtw_write16_m(sc, URTW_RF_PINS_SELECT, d84 | 0x0007); + d84 &= URTW_RF_PINS_MAGIC2; + urtw_write16_m(sc, URTW_RF_PINS_ENABLE, d82 | URTW_RF_PINS_MAGIC3); + urtw_write16_m(sc, URTW_RF_PINS_SELECT, d84 | URTW_RF_PINS_MAGIC3); DELAY(10); urtw_write16_m(sc, URTW_RF_PINS_OUTPUT, d80 | URTW_BB_HOST_BANG_EN); @@ -966,27 +966,29 @@ *ret = 1; - urtw_write16_m(sc, URTW_RF_PINS_OUTPUT, 0x0080); - urtw_write16_m(sc, URTW_RF_PINS_SELECT, 0x0080); - urtw_write16_m(sc, URTW_RF_PINS_ENABLE, 0x0080); + urtw_write16_m(sc, URTW_RF_PINS_OUTPUT, URTW_RF_PINS_MAGIC5); + urtw_write16_m(sc, URTW_RF_PINS_SELECT, URTW_RF_PINS_MAGIC5); + urtw_write16_m(sc, URTW_RF_PINS_ENABLE, URTW_RF_PINS_MAGIC5); usbd_delay_ms(sc->sc_udev, 1100); - urtw_8225_write(sc, 0x0, 0x1b7); + urtw_8225_write(sc, URTW_8225_ADDR_0_MAGIC, + URTW_8225_ADDR_0_DATA_MAGIC1); - error = urtw_8225_read(sc, 0x8, &data); + error = urtw_8225_read(sc, URTW_8225_ADDR_8_MAGIC, &data); if (error != 0) goto fail; - if (data != 0x588) + if (data != URTW_8225_ADDR_8_DATA_MAGIC1) *ret = 0; else { - error = urtw_8225_read(sc, 0x9, &data); + error = urtw_8225_read(sc, URTW_8225_ADDR_9_MAGIC, &data); if (error != 0) goto fail; - if (data != 0x700) + if (data != URTW_8225_ADDR_9_DATA_MAGIC1) *ret = 0; } - urtw_8225_write(sc, 0x0, 0xb7); + urtw_8225_write(sc, URTW_8225_ADDR_0_MAGIC, + URTW_8225_ADDR_0_DATA_MAGIC2); fail: return (error); } @@ -1546,7 +1548,7 @@ usbd_delay_ms(sc->sc_udev, 200); urtw_read8_m(sc, URTW_CMD, &data); - data = (data & 2) | URTW_CMD_RST; + data = (data & 0x2) | URTW_CMD_RST; urtw_write8_m(sc, URTW_CMD, data); usbd_delay_ms(sc->sc_udev, 200); @@ -1605,8 +1607,9 @@ if (type == URTW_LED_GPIO) { switch (sc->sc_gpio_ledpin) { case URTW_LED_PIN_GPIO0: - urtw_write8_m(sc, URTW_GPIO, 0x01); - urtw_write8_m(sc, URTW_GP_ENABLE, 0x01); + urtw_write8_m(sc, URTW_GPIO, URTW_GPIO_DATA_MAGIC1); + urtw_write8_m(sc, + URTW_GP_ENABLE, URTW_GP_ENABLE_DATA_MAGIC1); break; default: panic("unsupported LED PIN type 0x%x", @@ -1901,11 +1904,11 @@ if (error) goto fail; - urtw_write8_m(sc, 0x85, 0); + urtw_write8_m(sc, URTW_ADDR_MAGIC1, 0); urtw_write8_m(sc, URTW_GPIO, 0); /* for led */ - urtw_write8_m(sc, 0x85, 4); + urtw_write8_m(sc, URTW_ADDR_MAGIC1, 4); error = urtw_led_ctl(sc, URTW_LED_CTL_POWER_ON); if (error != 0) goto fail; @@ -1937,12 +1940,14 @@ if (sc->sc_rf_set_sens != NULL) sc->sc_rf_set_sens(sc, sc->sc_sens); - urtw_write16_m(sc, 0x5e, 1); - urtw_write16_m(sc, 0xfe, 0x10); + /* XXX correct? to call write16 */ + urtw_write16_m(sc, URTW_PSR, 1); + urtw_write16_m(sc, URTW_ADDR_MAGIC2, 0x10); urtw_write8_m(sc, URTW_TALLY_SEL, 0x80); - urtw_write8_m(sc, 0xff, 0x60); - urtw_write16_m(sc, 0x5e, 0); - urtw_write8_m(sc, 0x85, 4); + urtw_write8_m(sc, URTW_ADDR_MAGIC3, 0x60); + /* XXX correct? to call write16 */ + urtw_write16_m(sc, URTW_PSR, 0); + urtw_write8_m(sc, URTW_ADDR_MAGIC1, 4); error = urtw_intr_enable(sc); if (error != 0) @@ -2555,10 +2560,10 @@ usbd_status error; phyw = ((data << 8) | (addr | 0x80)); - urtw_write8_m(sc, 0x7f, ((phyw & 0xff000000) >> 24)); - urtw_write8_m(sc, 0x7e, ((phyw & 0x00ff0000) >> 16)); - urtw_write8_m(sc, 0x7d, ((phyw & 0x0000ff00) >> 8)); - urtw_write8_m(sc, 0x7c, ((phyw & 0x000000ff))); + urtw_write8_m(sc, URTW_PHY_MAGIC4, ((phyw & 0xff000000) >> 24)); + urtw_write8_m(sc, URTW_PHY_MAGIC3, ((phyw & 0x00ff0000) >> 16)); + urtw_write8_m(sc, URTW_PHY_MAGIC2, ((phyw & 0x0000ff00) >> 8)); + urtw_write8_m(sc, URTW_PHY_MAGIC1, ((phyw & 0x000000ff))); usbd_delay_ms(sc->sc_udev, 1); fail: return (error); @@ -2697,19 +2702,24 @@ usbd_delay_ms(sc->sc_udev, 1); } usbd_delay_ms(sc->sc_udev, 100); - urtw_8225_write(sc, 0x2, 0xc4d); + urtw_8225_write(sc, + URTW_8225_ADDR_2_MAGIC, URTW_8225_ADDR_2_DATA_MAGIC1); usbd_delay_ms(sc->sc_udev, 200); - urtw_8225_write(sc, 0x2, 0x44d); + urtw_8225_write(sc, + URTW_8225_ADDR_2_MAGIC, URTW_8225_ADDR_2_DATA_MAGIC2); usbd_delay_ms(sc->sc_udev, 200); - urtw_8225_write(sc, 0x0, 0x127); + urtw_8225_write(sc, + URTW_8225_ADDR_0_MAGIC, URTW_8225_ADDR_0_DATA_MAGIC3); for (i = 0; i < 95; i++) { - urtw_8225_write(sc, 0x1, (uint8_t)(i + 1)); - urtw_8225_write(sc, 0x2, urtw_8225_rxgain[i]); + urtw_8225_write(sc, URTW_8225_ADDR_1_MAGIC, (uint8_t)(i + 1)); + urtw_8225_write(sc, URTW_8225_ADDR_2_MAGIC, urtw_8225_rxgain[i]); } - urtw_8225_write(sc, 0x0, 0x27); - urtw_8225_write(sc, 0x0, 0x22f); + urtw_8225_write(sc, + URTW_8225_ADDR_0_MAGIC, URTW_8225_ADDR_0_DATA_MAGIC4); + urtw_8225_write(sc, + URTW_8225_ADDR_0_MAGIC, URTW_8225_ADDR_0_DATA_MAGIC5); for (i = 0; i < 128; i++) { urtw_8187_write_phy_ofdm(sc, 0xb, urtw_8225_agc[i]); @@ -2734,7 +2744,7 @@ usbd_delay_ms(sc->sc_udev, 1); } - urtw_write8_m(sc, 0x5b, 0x0d); + urtw_write8_m(sc, URTW_ADDR_MAGIC4, 0x0d); error = urtw_8225_set_txpwrlvl(sc, 1); if (error) @@ -2749,7 +2759,7 @@ error = urtw_8185_tx_antenna(sc, 0x3); if (error) goto fail; - urtw_write32_m(sc, 0x94, 0x3dc00002); + urtw_write32_m(sc, URTW_ADDR_MAGIC5, 0x3dc00002); error = urtw_8225_rf_set_chan(sc, 1); fail: @@ -2768,7 +2778,7 @@ error = urtw_8225_set_txpwrlvl(sc, chan); if (error) goto fail; - urtw_8225_write(sc, 0x7, urtw_8225_channel[chan]); + urtw_8225_write(sc, URTW_8225_ADDR_7_MAGIC, urtw_8225_channel[chan]); usbd_delay_ms(sc->sc_udev, 10); urtw_write8_m(sc, URTW_SIFS, 0x22); @@ -2804,9 +2814,11 @@ return -1; if (sens > 4) - urtw_8225_write(sc, 0x0c, 0x850); + urtw_8225_write(sc, + URTW_8225_ADDR_C_MAGIC, URTW_8225_ADDR_C_DATA_MAGIC1); else - urtw_8225_write(sc, 0x0c, 0x50); + urtw_8225_write(sc, + URTW_8225_ADDR_C_MAGIC, URTW_8225_ADDR_C_DATA_MAGIC2); sens = 6 - sens; error = urtw_8225_setgain(sc, sens); @@ -3006,9 +3018,9 @@ cck_pwrtable = (chan == 14) ? urtw_8225v2_txpwr_cck_ch14 : urtw_8225v2_txpwr_cck; - for (i = 0; i < 8; i++) { + for (i = 0; i < 8; i++) urtw_8187_write_phy_cck(sc, 0x44 + i, cck_pwrtable[i]); - } + urtw_write8_m(sc, URTW_TX_GAIN_CCK, urtw_8225v2_tx_gain_cck_ofdm[cck_pwrlvl]); usbd_delay_ms(sc->sc_udev, 1); @@ -3079,45 +3091,55 @@ } usbd_delay_ms(sc->sc_udev, 100); - urtw_8225_write(sc, 0x0, 0x1b7); + urtw_8225_write(sc, + URTW_8225_ADDR_0_MAGIC, URTW_8225_ADDR_0_DATA_MAGIC1); for (i = 0; i < 95; i++) { - urtw_8225_write(sc, 0x1, (uint8_t)(i + 1)); + urtw_8225_write(sc, URTW_8225_ADDR_1_MAGIC, (uint8_t)(i + 1)); usbd_delay_ms(sc->sc_udev, 1); - urtw_8225_write(sc, 0x2, urtw_8225v2_rxgain[i]); + urtw_8225_write(sc, URTW_8225_ADDR_2_MAGIC, + urtw_8225v2_rxgain[i]); usbd_delay_ms(sc->sc_udev, 1); } - urtw_8225_write(sc, 0x3, 0x2); + urtw_8225_write(sc, + URTW_8225_ADDR_3_MAGIC, URTW_8225_ADDR_3_DATA_MAGIC1); usbd_delay_ms(sc->sc_udev, 1); - urtw_8225_write(sc, 0x5, 0x4); + urtw_8225_write(sc, + URTW_8225_ADDR_5_MAGIC, URTW_8225_ADDR_5_DATA_MAGIC1); usbd_delay_ms(sc->sc_udev, 1); - urtw_8225_write(sc, 0x0, 0xb7); + urtw_8225_write(sc, + URTW_8225_ADDR_0_MAGIC, URTW_8225_ADDR_0_DATA_MAGIC2); usbd_delay_ms(sc->sc_udev, 1); - urtw_8225_write(sc, 0x2, 0xc4d); + urtw_8225_write(sc, + URTW_8225_ADDR_2_MAGIC, URTW_8225_ADDR_2_DATA_MAGIC1); usbd_delay_ms(sc->sc_udev, 200); - urtw_8225_write(sc, 0x2, 0x44d); + urtw_8225_write(sc, + URTW_8225_ADDR_2_MAGIC, URTW_8225_ADDR_2_DATA_MAGIC2); usbd_delay_ms(sc->sc_udev, 200); - error = urtw_8225_read(sc, 0x6, &data32); + error = urtw_8225_read(sc, URTW_8225_ADDR_6_MAGIC, &data32); if (error != 0) goto fail; - if (data32 != 0xe6) + if (data32 != URTW_8225_ADDR_6_DATA_MAGIC1) device_printf(sc->sc_dev, "expect 0xe6!! (0x%x)\n", data32); - if (!(data32 & 0x80)) { - urtw_8225_write(sc, 0x02, 0x0c4d); + if (!(data32 & URTW_8225_ADDR_6_DATA_MAGIC2)) { + urtw_8225_write(sc, + URTW_8225_ADDR_2_MAGIC, URTW_8225_ADDR_2_DATA_MAGIC1); usbd_delay_ms(sc->sc_udev, 200); - urtw_8225_write(sc, 0x02, 0x044d); + urtw_8225_write(sc, + URTW_8225_ADDR_2_MAGIC, URTW_8225_ADDR_2_DATA_MAGIC2); usbd_delay_ms(sc->sc_udev, 100); - error = urtw_8225_read(sc, 0x6, &data32); + error = urtw_8225_read(sc, URTW_8225_ADDR_6_MAGIC, &data32); if (error != 0) goto fail; - if (!(data32 & 0x80)) + if (!(data32 & URTW_8225_ADDR_6_DATA_MAGIC2)) device_printf(sc->sc_dev, "RF calibration failed\n"); } usbd_delay_ms(sc->sc_udev, 200); - urtw_8225_write(sc, 0x0, 0x2bf); + urtw_8225_write(sc, + URTW_8225_ADDR_0_MAGIC, URTW_8225_ADDR_0_DATA_MAGIC6); for (i = 0; i < 128; i++) { urtw_8187_write_phy_ofdm(sc, 0xb, urtw_8225_agc[i]); usbd_delay_ms(sc->sc_udev, 1); @@ -3142,7 +3164,7 @@ usbd_delay_ms(sc->sc_udev, 1); } - urtw_write8_m(sc, 0x5b, 0x0d); + urtw_write8_m(sc, URTW_ADDR_MAGIC4, 0x0d); error = urtw_8225v2_set_txpwrlvl(sc, 1); if (error) @@ -3157,7 +3179,7 @@ error = urtw_8185_tx_antenna(sc, 0x3); if (error) goto fail; - urtw_write32_m(sc, 0x94, 0x3dc00002); + urtw_write32_m(sc, URTW_ADDR_MAGIC5, 0x3dc00002); error = urtw_8225_rf_set_chan(sc, 1); fail: @@ -3177,7 +3199,7 @@ if (error) goto fail; - urtw_8225_write(sc, 0x7, urtw_8225_channel[chan]); + urtw_8225_write(sc, URTW_8225_ADDR_7_MAGIC, urtw_8225_channel[chan]); usbd_delay_ms(sc->sc_udev, 10); urtw_write8_m(sc, URTW_SIFS, 0x22); ==== //depot/projects/vap/sys/dev/usb/if_urtwreg.h#3 (text+ko) ==== @@ -120,6 +120,7 @@ #define URTW_CONFIG3 0x0059 /* 1 byte */ #define URTW_CONFIG3_ANAPARAM_WRITE (0x40) #define URTW_CONFIG3_ANAPARAM_W_SHIFT (6) +#define URTW_ADDR_MAGIC4 0x005b /* 1 byte */ #define URTW_PSR 0x005e /* 1 byte */ #define URTW_ANAPARAM2 0x0060 /* 4 byte */ #define URTW_8225_ANAPARAM2_ON (0x860c7312) @@ -127,17 +128,31 @@ #define URTW_ATIM_WND 0x0072 /* 2 byte */ #define URTW_BEACON_INTERVAL_TIME 0x0074 /* 2 byte */ #define URTW_ATIM_TR_ITV 0x0076 /* 2 byte */ +#define URTW_PHY_MAGIC1 0x007c /* 1 byte */ +#define URTW_PHY_MAGIC2 0x007d /* 1 byte */ +#define URTW_PHY_MAGIC3 0x007e /* 1 byte */ +#define URTW_PHY_MAGIC4 0x007f /* 1 byte */ #define URTW_RF_PINS_OUTPUT 0x0080 /* 2 byte */ +#define URTW_RF_PINS_OUTPUT_MAGIC1 (0x3a0) #define URTW_BB_HOST_BANG_CLK (1 << 1) #define URTW_BB_HOST_BANG_EN (1 << 2) #define URTW_BB_HOST_BANG_RW (1 << 3) #define URTW_RF_PINS_ENABLE 0x0082 /* 2 byte */ #define URTW_RF_PINS_SELECT 0x0084 /* 2 byte */ +#define URTW_ADDR_MAGIC1 0x0085 /* broken? */ #define URTW_RF_PINS_INPUT 0x0086 /* 2 byte */ +#define URTW_RF_PINS_MAGIC1 (0xfff3) +#define URTW_RF_PINS_MAGIC2 (0xfff0) +#define URTW_RF_PINS_MAGIC3 (0x0007) +#define URTW_RF_PINS_MAGIC4 (0xf) +#define URTW_RF_PINS_MAGIC5 (0x0080) #define URTW_RF_PARA 0x0088 /* 4 byte */ #define URTW_RF_TIMING 0x008c /* 4 byte */ #define URTW_GP_ENABLE 0x0090 /* 1 byte */ +#define URTW_GP_ENABLE_DATA_MAGIC1 (0x1) #define URTW_GPIO 0x0091 /* 1 byte */ +#define URTW_GPIO_DATA_MAGIC1 (0x1) +#define URTW_ADDR_MAGIC5 0x0094 /* 4 byte */ #define URTW_TX_AGC_CTL 0x009c /* 1 byte */ #define URTW_TX_AGC_CTL_PERPACKET_GAIN (0x1) #define URTW_TX_AGC_CTL_PERPACKET_ANTSEL (0x2) @@ -155,6 +170,36 @@ #define URTW_CW_VAL 0x00bd /* 1 byte */ #define URTW_RATE_FALLBACK 0x00be /* 1 byte */ #define URTW_TALLY_SEL 0x00fc /* 1 byte */ +#define URTW_ADDR_MAGIC2 0x00fe /* 2 byte */ +#define URTW_ADDR_MAGIC3 0x00ff /* 1 byte */ + +/* for 8225 */ +#define URTW_8225_ADDR_0_MAGIC 0x0 +#define URTW_8225_ADDR_0_DATA_MAGIC1 (0x1b7) +#define URTW_8225_ADDR_0_DATA_MAGIC2 (0x0b7) +#define URTW_8225_ADDR_0_DATA_MAGIC3 (0x127) +#define URTW_8225_ADDR_0_DATA_MAGIC4 (0x027) +#define URTW_8225_ADDR_0_DATA_MAGIC5 (0x22f) +#define URTW_8225_ADDR_0_DATA_MAGIC6 (0x2bf) +#define URTW_8225_ADDR_1_MAGIC 0x1 +#define URTW_8225_ADDR_2_MAGIC 0x2 +#define URTW_8225_ADDR_2_DATA_MAGIC1 (0xc4d) +#define URTW_8225_ADDR_2_DATA_MAGIC2 (0x44d) +#define URTW_8225_ADDR_3_MAGIC 0x3 +#define URTW_8225_ADDR_3_DATA_MAGIC1 (0x2) +#define URTW_8225_ADDR_5_MAGIC 0x5 +#define URTW_8225_ADDR_5_DATA_MAGIC1 (0x4) +#define URTW_8225_ADDR_6_MAGIC 0x6 +#define URTW_8225_ADDR_6_DATA_MAGIC1 (0xe6) +#define URTW_8225_ADDR_6_DATA_MAGIC2 (0x80) +#define URTW_8225_ADDR_7_MAGIC 0x7 +#define URTW_8225_ADDR_8_MAGIC 0x8 +#define URTW_8225_ADDR_8_DATA_MAGIC1 (0x588) +#define URTW_8225_ADDR_9_MAGIC 0x9 +#define URTW_8225_ADDR_9_DATA_MAGIC1 (0x700) +#define URTW_8225_ADDR_C_MAGIC 0xc +#define URTW_8225_ADDR_C_DATA_MAGIC1 (0x850) +#define URTW_8225_ADDR_C_DATA_MAGIC2 (0x050) /* for EEPROM */ #define URTW_EPROM_TXPW_BASE 0x05
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200901061101.n06B1AOH035261>