PERFORCE change 155706 for review
Weongyo Jeong
weongyo at FreeBSD.org
Tue Jan 6 11:01:11 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=155706
Change 155706 by weongyo at 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
More information about the p4-projects
mailing list