Lines Matching +full:0 +full:x210000

173 static int debug = 0;
174 static int network_mode = 0;
175 static int channel = 0;
176 static int associate = 0;
177 static int disable = 0;
190 MODULE_PARM_DESC(mode, "network mode (0=BSS,1=IBSS,2=Monitor)");
193 MODULE_PARM_DESC(disable, "manually disable the radio (default 0 [radio on])");
204 } while (0)
206 #define IPW_DEBUG(level, message...) do {} while (0)
330 IPW_DEBUG_IO("r: 0x%08X => 0x%08X\n", reg, *val); in read_register()
338 IPW_DEBUG_IO("w: 0x%08X <= 0x%08X\n", reg, val); in write_register()
347 IPW_DEBUG_IO("r: 0x%08X => %04X\n", reg, *val); in read_register_word()
355 IPW_DEBUG_IO("r: 0x%08X => %02X\n", reg, *val); in read_register_byte()
363 IPW_DEBUG_IO("w: 0x%08X <= %04X\n", reg, val); in write_register_word()
371 IPW_DEBUG_IO("w: 0x%08X =< %02X\n", reg, val); in write_register_byte()
425 aligned_addr = addr & (~0x3); in write_nic_memory()
442 aligned_len = len & (~0x3); in write_nic_memory()
443 for (i = 0; i < aligned_len; i += 4, buf += 4, aligned_addr += 4) in write_nic_memory()
449 for (i = 0; i < dif_len; i++, buf++) in write_nic_memory()
463 aligned_addr = addr & (~0x3); in read_nic_memory()
480 aligned_len = len & (~0x3); in read_nic_memory()
481 for (i = 0; i < aligned_len; i += 4, buf += 4, aligned_addr += 4) in read_nic_memory()
487 for (i = 0; i < dif_len; i++, buf++) in read_nic_memory()
510 if (ordinals->table1_addr == 0) { in ipw2100_get_ordinal()
533 return 0; in ipw2100_get_ordinal()
565 return 0; in ipw2100_get_ordinal()
570 return 0; in ipw2100_get_ordinal()
599 return 0; in ipw2100_set_ordinal()
617 for (l = 0, i = 0; i < 2; i++) { in snprint_line()
619 for (j = 0; j < 8 && l < len; j++, l++) in snprint_line()
627 for (l = 0, i = 0; i < 2; i++) { in snprint_line()
629 for (j = 0; j < 8 && l < len; j++, l++) { in snprint_line()
647 u32 ofs = 0; in printk_buf()
671 priv->reset_backoff = 0; in schedule_reset()
685 schedule_delayed_work(&priv->reset_work, 0); in schedule_reset()
704 int err = 0; in ipw2100_hw_send_command()
782 if (err == 0) { in ipw2100_hw_send_command()
804 return 0; in ipw2100_hw_send_command()
821 u32 val1 = 0x76543210; in ipw2100_verify()
822 u32 val2 = 0xFEDCBA98; in ipw2100_verify()
824 /* Domain 0 check - all values should be DOA_DEBUG */ in ipw2100_verify()
833 for (address = 0; address < 5; address++) { in ipw2100_verify()
835 write_register(priv->net_dev, IPW_REG_DOMAIN_1_OFFSET + 0x32, in ipw2100_verify()
837 write_register(priv->net_dev, IPW_REG_DOMAIN_1_OFFSET + 0x36, in ipw2100_verify()
839 read_register(priv->net_dev, IPW_REG_DOMAIN_1_OFFSET + 0x32, in ipw2100_verify()
841 read_register(priv->net_dev, IPW_REG_DOMAIN_1_OFFSET + 0x36, in ipw2100_verify()
844 return 0; in ipw2100_verify()
867 for (i = 0; i <= IPW_CARD_DISABLE_COMPLETE_WAIT * 1000; i += 50) { in ipw2100_wait_for_card_state()
873 return 0; in ipw2100_wait_for_card_state()
887 return 0; in ipw2100_wait_for_card_state()
913 for (i = 0; i < 1000; i++) { in sw_reset_and_clock()
931 for (i = 0; i < 10000; i++) { in sw_reset_and_clock()
948 return 0; in sw_reset_and_clock()
1016 IPW_INTERNAL_REGISTER_HALT_AND_RESET, 0x80000000); in ipw2100_download_firmware()
1019 write_register(priv->net_dev, IPW_REG_RESET_REG, 0); in ipw2100_download_firmware()
1031 IPW_INTERNAL_REGISTER_HALT_AND_RESET, 0x00000000); in ipw2100_download_firmware()
1064 write_nic_dword(priv->net_dev, address, 0); in ipw2100_download_firmware()
1067 write_nic_dword(priv->net_dev, address, 0); in ipw2100_download_firmware()
1070 write_nic_dword(priv->net_dev, address, 0); in ipw2100_download_firmware()
1073 write_nic_dword(priv->net_dev, address, 0); in ipw2100_download_firmware()
1076 write_nic_dword(priv->net_dev, address, 0); in ipw2100_download_firmware()
1078 return 0; in ipw2100_download_firmware()
1098 write_register(priv->net_dev, IPW_REG_INTA_MASK, 0x0); in ipw2100_disable_interrupts()
1116 ord->table2_size &= 0x0000FFFF; in ipw2100_initialize_ordinals()
1125 u32 reg = 0; in ipw2100_hw_set_gpio()
1140 unsigned short value = 0; in rf_kill_active()
1141 u32 reg = 0; in rf_kill_active()
1147 return 0; in rf_kill_active()
1150 for (i = 0; i < MAX_RF_KILL_CHECKS; i++) { in rf_kill_active()
1153 value = (value << 1) | ((reg & IPW_BIT_GPIO_RF_KILL) ? 0 : 1); in rf_kill_active()
1156 if (value == 0) { in rf_kill_active()
1164 return (value == 0); in rf_kill_active()
1186 * EEPROM version is the byte at offset 0xfd in firmware in ipw2100_get_hw_features()
1188 read_nic_dword(priv->net_dev, addr + 0xFC, &val); in ipw2100_get_hw_features()
1189 priv->eeprom_version = (val >> 24) & 0xFF; in ipw2100_get_hw_features()
1193 * HW RF Kill enable is bit 0 in byte at offset 0x21 in firmware in ipw2100_get_hw_features()
1196 * bit = 0 signifies HW RF kill switch is supported in ipw2100_get_hw_features()
1199 read_nic_dword(priv->net_dev, addr + 0x20, &val); in ipw2100_get_hw_features()
1200 if (!((val >> 24) & 0x01)) in ipw2100_get_hw_features()
1206 return 0; in ipw2100_get_hw_features()
1223 return 0; in ipw2100_start_adapter()
1247 write_register(priv->net_dev, IPW_REG_RESET_REG, 0); in ipw2100_start_adapter()
1312 return 0; in ipw2100_start_adapter()
1322 priv->fatal_error = 0; in ipw2100_reset_fatalerror()
1368 return 0; in ipw2100_power_cycle_adapter()
1386 .host_command_sequence = 0, in ipw2100_hw_phy_off()
1387 .host_command_length = 0, in ipw2100_hw_phy_off()
1399 for (i = 0; i < 2500; i++) { in ipw2100_hw_phy_off()
1405 return 0; in ipw2100_hw_phy_off()
1417 .host_command_sequence = 0, in ipw2100_enable_adapter()
1418 .host_command_length = 0 in ipw2100_enable_adapter()
1420 int err = 0; in ipw2100_enable_adapter()
1425 return 0; in ipw2100_enable_adapter()
1448 priv->stop_hang_check = 0; in ipw2100_enable_adapter()
1463 .host_command_sequence = 0, in ipw2100_hw_stop_adapter()
1464 .host_command_length = 0, in ipw2100_hw_stop_adapter()
1470 return 0; in ipw2100_hw_stop_adapter()
1539 for (i = 5; i > 0; i--) { in ipw2100_hw_stop_adapter()
1549 if (i == 0) in ipw2100_hw_stop_adapter()
1560 return 0; in ipw2100_hw_stop_adapter()
1567 .host_command_sequence = 0, in ipw2100_disable_adapter()
1568 .host_command_length = 0 in ipw2100_disable_adapter()
1570 int err = 0; in ipw2100_disable_adapter()
1575 return 0; in ipw2100_disable_adapter()
1612 .host_command_sequence = 0, in ipw2100_set_scan_options()
1621 cmd.host_command_parameters[0] = 0; in ipw2100_set_scan_options()
1624 cmd.host_command_parameters[0] |= IPW_SCAN_NOASSOCIATE; in ipw2100_set_scan_options()
1626 cmd.host_command_parameters[0] |= IPW_SCAN_MIXED_CELL; in ipw2100_set_scan_options()
1628 cmd.host_command_parameters[0] |= IPW_SCAN_PASSIVE; in ipw2100_set_scan_options()
1634 IPW_DEBUG_HC("SET_SCAN_OPTIONS 0x%04X\n", in ipw2100_set_scan_options()
1635 cmd.host_command_parameters[0]); in ipw2100_set_scan_options()
1644 .host_command_sequence = 0, in ipw2100_start_scan()
1651 cmd.host_command_parameters[0] = 0; in ipw2100_start_scan()
1659 return 0; in ipw2100_start_scan()
1696 int err = 0; in ipw2100_up()
1703 priv->suspend_time = 0; in ipw2100_up()
1710 return 0; in ipw2100_up()
1760 libipw_set_geo(priv->ieee, &ipw_geos[0]); in ipw2100_up()
1779 priv->stop_rf_kill = 0; in ipw2100_up()
1896 for (i = 0; i < geo->bg_channels; i++) { in ipw2100_wdev_init()
1927 return 0; in ipw2100_wdev_init()
1962 ipw2100_up(priv, 0); in ipw2100_reset_adapter()
2063 .host_command_sequence = 0, in ipw2100_set_essid()
2079 /* Bug in FW currently doesn't honor bit 0 in SET_SCAN_OPTIONS to in ipw2100_set_essid()
2084 for (i = 0; i < IW_ESSID_MAX_SIZE; i++) in ipw2100_set_essid()
2085 bogus[i] = 0x18 + i; in ipw2100_set_essid()
2094 memset(priv->essid + ssid_len, 0, IW_ESSID_MAX_SIZE - ssid_len); in ipw2100_set_essid()
2130 schedule_delayed_work(&priv->security_work, 0); in isr_indicate_association_lost()
2132 schedule_delayed_work(&priv->wx_event_work, 0); in isr_indicate_association_lost()
2145 priv->stop_rf_kill = 0; in isr_indicate_rf_kill()
2155 wrqu.data.length = 0; in ipw2100_scan_event()
2156 wrqu.data.flags = 0; in ipw2100_scan_event()
2172 priv->user_requested_scan = 0; in isr_scan_complete()
2173 mod_delayed_work(system_wq, &priv->scan_event, 0); in isr_scan_complete()
2228 for (i = 0; status_handlers[i].status != -1; i++) { in isr_status_change()
2290 return 0; in ipw2100_alloc_skb()
2293 #define SEARCH_ERROR 0xffffffff
2294 #define SEARCH_FAIL 0xfffffffe
2295 #define SEARCH_SUCCESS 0xfffffff0
2296 #define SEARCH_DISCARD 0
2299 #define SNAPSHOT_ADDR(ofs) (priv->snapshot[((ofs) >> 12) & 0xff] + ((ofs) & 0xfff))
2303 if (!priv->snapshot[0]) in ipw2100_snapshot_free()
2305 for (i = 0; i < 0x30; i++) in ipw2100_snapshot_free()
2307 priv->snapshot[0] = NULL; in ipw2100_snapshot_free()
2314 if (priv->snapshot[0]) in ipw2100_snapshot_alloc()
2316 for (i = 0; i < 0x30; i++) { in ipw2100_snapshot_alloc()
2317 priv->snapshot[i] = kmalloc(0x1000, GFP_ATOMIC); in ipw2100_snapshot_alloc()
2321 while (i > 0) in ipw2100_snapshot_alloc()
2323 priv->snapshot[0] = NULL; in ipw2100_snapshot_alloc()
2324 return 0; in ipw2100_snapshot_alloc()
2345 for (ret = SEARCH_FAIL, i = 0; i < 0x30000; i += 4) { in ipw2100_match_buf()
2351 for (j = 0; j < 4; j++) { in ipw2100_match_buf()
2373 * 0) Disconnect the SKB from the firmware (just unmap)
2397 IPW_DEBUG_INFO(": PCI latency error detected at 0x%04zX.\n", in ipw2100_corruption_detected()
2418 "offset 0x%06X, length %d:\n", in ipw2100_corruption_detected()
2557 ipw_rt->rt_hdr.it_pad = 0; /* always good to zero */ in isr_rx_monitor()
2605 return 0; in ipw2100_corruption_check()
2610 return 0; in ipw2100_corruption_check()
2689 stats.mask = 0; in __ipw2100_rx_process()
2690 if (stats.rssi != 0) in __ipw2100_rx_process()
2737 rxq->drv[i].status.info.field = 0; in __ipw2100_rx_process()
2743 /* backtrack one entry, wrapping to end if at 0 */ in __ipw2100_rx_process()
2798 u32 r, w, frag_num = 0; in __ipw2100_tx_process()
2801 return 0; in __ipw2100_tx_process()
2827 return 0; in __ipw2100_tx_process()
2866 return 0; in __ipw2100_tx_process()
2895 if (txq->drv[txq->oldest].status.info.fields.txType != 0) in __ipw2100_tx_process()
2902 for (i = 0; i < frag_num; i++) { in __ipw2100_tx_process()
2967 int i = 0; in __ipw2100_tx_complete()
3055 int i = 0; in ipw2100_tx_send_data()
3092 fragments[0]->data; in ipw2100_tx_send_data()
3107 ipw_hdr->host_command_reg1 = 0; in ipw2100_tx_send_data()
3110 ipw_hdr->needs_encryption = 0; in ipw2100_tx_send_data()
3117 ipw_hdr->fragment_size = 0; in ipw2100_tx_send_data()
3136 for (i = 0; i < packet->info.d_struct.txb->nr_frags; i++) { in ipw2100_tx_send_data()
3202 IPW_DEBUG_ISR("enter - INTA: 0x%08lX\n", in ipw2100_irq_tasklet()
3211 IPW_DEBUG_ISR("INTA: 0x%08lX\n", in ipw2100_irq_tasklet()
3221 IPW_DEBUG_INFO("%s: Fatal error value: 0x%08X\n", in ipw2100_irq_tasklet()
3225 IPW_DEBUG_INFO("%s: Fatal error address value: 0x%08X\n", in ipw2100_irq_tasklet()
3334 if (inta == 0xFFFFFFFF) { in ipw2100_interrupt()
3336 printk(KERN_WARNING DRV_NAME ": IRQ INTA == 0xFFFFFFFF\n"); in ipw2100_interrupt()
3387 IPW_DEBUG_TX("Sending fragment (%d bytes):\n", txb->fragments[0]->len); in ipw2100_tx()
3388 printk_buf(IPW_DL_TX, txb->fragments[0]->data, txb->fragments[0]->len); in ipw2100_tx()
3422 for (i = 0; i < IPW_COMMAND_POOL_SIZE; i++) { in ipw2100_msg_allocate()
3441 return 0; in ipw2100_msg_allocate()
3443 for (j = 0; j < i; j++) { in ipw2100_msg_allocate()
3463 for (i = 0; i < IPW_COMMAND_POOL_SIZE; i++) in ipw2100_msg_initialize()
3467 return 0; in ipw2100_msg_initialize()
3477 for (i = 0; i < IPW_COMMAND_POOL_SIZE; i++) { in ipw2100_msg_free()
3496 for (i = 0; i < 16; i++) { in pci_show()
3498 for (j = 0; j < 16; j += 4) { in pci_show()
3514 return sprintf(buf, "0x%08x\n", (int)p->config); in cfg_show()
3523 return sprintf(buf, "0x%08x\n", (int)p->status); in status_show()
3532 return sprintf(buf, "0x%08x\n", (int)p->capability); in capability_show()
3553 IPW2100_NIC(0x210014, 1), IPW2100_NIC(0x210000, 1),};
3700 "0 if not associated, else pointer to AP table entry"),
3730 IPW2100_ORD(POWER_MGMT_MODE, "Power mode - 0=CAM, 1=PSP"),
3779 u32 val = 0; in registers_show()
3783 for (i = 0; i < ARRAY_SIZE(hw_data); i++) { in registers_show()
3804 for (i = 0; i < ARRAY_SIZE(nic_data); i++) { in hardware_show()
3840 static unsigned long loop = 0; in memory_show()
3841 int len = 0; in memory_show()
3846 if (loop >= 0x30000) in memory_show()
3847 loop = 0; in memory_show()
3850 while (len < PAGE_SIZE - 128 && loop < 0x30000) { in memory_show()
3852 if (priv->snapshot[0]) in memory_show()
3853 for (i = 0; i < 4; i++) in memory_show()
3857 for (i = 0; i < 4; i++) in memory_show()
3866 ((u8 *) buffer)[0x0], in memory_show()
3867 ((u8 *) buffer)[0x1], in memory_show()
3868 ((u8 *) buffer)[0x2], in memory_show()
3869 ((u8 *) buffer)[0x3], in memory_show()
3870 ((u8 *) buffer)[0x4], in memory_show()
3871 ((u8 *) buffer)[0x5], in memory_show()
3872 ((u8 *) buffer)[0x6], in memory_show()
3873 ((u8 *) buffer)[0x7], in memory_show()
3874 ((u8 *) buffer)[0x8], in memory_show()
3875 ((u8 *) buffer)[0x9], in memory_show()
3876 ((u8 *) buffer)[0xa], in memory_show()
3877 ((u8 *) buffer)[0xb], in memory_show()
3878 ((u8 *) buffer)[0xc], in memory_show()
3879 ((u8 *) buffer)[0xd], in memory_show()
3880 ((u8 *) buffer)[0xe], in memory_show()
3881 ((u8 *) buffer)[0xf]); in memory_show()
3904 if (p[0] == '1' || in memory_store()
3905 (count >= 2 && tolower(p[0]) == 'o' && tolower(p[1]) == 'n')) { in memory_store()
3910 } else if (p[0] == '0' || (count >= 2 && tolower(p[0]) == 'o' && in memory_store()
3914 priv->dump_raw = 0; in memory_store()
3916 } else if (tolower(p[0]) == 'r') { in memory_store()
3921 IPW_DEBUG_INFO("%s: Usage: 0|on = HEX, 1|off = RAW, " in memory_store()
3933 u32 val = 0; in ordinals_show()
3934 int len = 0; in ordinals_show()
3936 static int loop = 0; in ordinals_show()
3939 return 0; in ordinals_show()
3942 loop = 0; in ordinals_show()
3950 len += sprintf(buf + len, "[0x%02X] = ERROR %s\n", in ordinals_show()
3954 len += sprintf(buf + len, "[0x%02X] = 0x%08X %s\n", in ordinals_show()
3978 priv->snapshot[0] ? "YES" : "NO"); in stats_show()
3991 return 0; in ipw2100_switch_mode()
4020 ipw2100_firmware.version = 0; in ipw2100_switch_mode()
4024 priv->reset_backoff = 0; in ipw2100_switch_mode()
4027 return 0; in ipw2100_switch_mode()
4034 int len = 0; in internals_show()
4090 u32 chan = 0; in bssinfo_show()
4096 return 0; in bssinfo_show()
4098 memset(essid, 0, sizeof(essid)); in bssinfo_show()
4099 memset(bssid, 0, sizeof(bssid)); in bssinfo_show()
4132 return sprintf(buf, "0x%08X\n", ipw2100_debug_level); in debug_level_show()
4141 ret = kstrtou32(buf, 0, &val); in debug_level_store()
4160 out += sprintf(out, "0x%08X\n", priv->fatal_error); in fatal_error_show()
4162 out += sprintf(out, "0\n"); in fatal_error_show()
4169 out += sprintf(out, "%d. 0x%08X\n", i, in fatal_error_show()
4207 ret = kstrtoul(buf, 0, &val); in scan_age_store()
4224 /* 0 - RF kill not enabled in rf_kill_show()
4229 int val = ((priv->status & STATUS_RF_KILL_SW) ? 0x1 : 0x0) | in rf_kill_show()
4230 (rf_kill_active(priv) ? 0x2 : 0x0); in rf_kill_show()
4236 if ((disable_radio ? 1 : 0) == in ipw_radio_kill_sw()
4237 (priv->status & STATUS_RF_KILL_SW ? 1 : 0)) in ipw_radio_kill_sw()
4238 return 0; in ipw_radio_kill_sw()
4254 priv->stop_rf_kill = 0; in ipw_radio_kill_sw()
4269 ipw_radio_kill_sw(priv, buf[0] == '1'); in rf_kill_store()
4313 return 0; in status_queue_allocate()
4336 memset(q, 0, sizeof(struct ipw2100_bd_queue)); in bd_queue_allocate()
4350 return 0; in bd_queue_allocate()
4421 for (i = 0; i < TX_PENDED_QUEUE_LENGTH; i++) { in ipw2100_tx_allocate()
4441 return 0; in ipw2100_tx_allocate()
4443 for (j = 0; j < i; j++) { in ipw2100_tx_allocate()
4476 for (i = 0; i < TX_PENDED_QUEUE_LENGTH; i++) { in ipw2100_tx_initialize()
4490 priv->tx_queue.oldest = 0; in ipw2100_tx_initialize()
4492 priv->tx_queue.next = 0; in ipw2100_tx_initialize()
4517 for (i = 0; i < TX_PENDED_QUEUE_LENGTH; i++) { in ipw2100_tx_free()
4571 for (i = 0; i < RX_QUEUE_LENGTH; i++) { in ipw2100_rx_allocate()
4583 priv->status_queue.drv[i].status_fields = 0; in ipw2100_rx_allocate()
4587 return 0; in ipw2100_rx_allocate()
4589 for (j = 0; j < i; j++) { in ipw2100_rx_allocate()
4611 priv->rx_queue.oldest = 0; in ipw2100_rx_initialize()
4643 for (i = 0; i < RX_QUEUE_LENGTH; i++) { in ipw2100_rx_free()
4675 return 0; in ipw2100_read_mac_address()
4688 .host_command_sequence = 0, in ipw2100_set_mac_address()
4715 .host_command_sequence = 0, in ipw2100_set_port_type()
4722 cmd.host_command_parameters[0] = IPW_BSS; in ipw2100_set_port_type()
4725 cmd.host_command_parameters[0] = IPW_IBSS; in ipw2100_set_port_type()
4756 .host_command_sequence = 0, in ipw2100_set_channel()
4761 cmd.host_command_parameters[0] = channel; in ipw2100_set_channel()
4767 return 0; in ipw2100_set_channel()
4769 if ((channel != 0) && in ipw2100_set_channel()
4798 return 0; in ipw2100_set_channel()
4805 .host_command_sequence = 0, in ipw2100_system_config()
4820 cmd.host_command_parameters[0] |= IPW_CFG_IBSS_AUTO_START; in ipw2100_system_config()
4822 cmd.host_command_parameters[0] |= IPW_CFG_IBSS_MASK | in ipw2100_system_config()
4826 cmd.host_command_parameters[0] |= IPW_CFG_PREAMBLE_AUTO; in ipw2100_system_config()
4838 /*cmd.host_command_parameters[0] |= DIVERSITY_ANTENNA_A; */ in ipw2100_system_config()
4848 cmd.host_command_sequence = 0; in ipw2100_system_config()
4849 cmd.host_command_length = 0; in ipw2100_system_config()
4859 return 0; in ipw2100_system_config()
4867 .host_command_sequence = 0, in ipw2100_set_tx_rates()
4872 cmd.host_command_parameters[0] = rate & TX_RATE_MASK; in ipw2100_set_tx_rates()
4899 return 0; in ipw2100_set_tx_rates()
4906 .host_command_sequence = 0, in ipw2100_set_power_mode()
4911 cmd.host_command_parameters[0] = power_level; in ipw2100_set_power_mode()
4926 cmd.host_command_parameters[0] = (u32) priv->adhoc_power; in ipw2100_set_power_mode()
4934 return 0; in ipw2100_set_power_mode()
4941 .host_command_sequence = 0, in ipw2100_set_rts_threshold()
4947 cmd.host_command_parameters[0] = MAX_RTS_THRESHOLD; in ipw2100_set_rts_threshold()
4949 cmd.host_command_parameters[0] = threshold & ~RTS_DISABLED; in ipw2100_set_rts_threshold()
4957 return 0; in ipw2100_set_rts_threshold()
4960 #if 0
4966 .host_command_sequence = 0,
4968 .host_command_parameters[0] = 0,
4978 if (threshold == 0)
4985 cmd.host_command_parameters[0] = threshold;
5005 .host_command_sequence = 0, in ipw2100_set_short_retry()
5010 cmd.host_command_parameters[0] = retry; in ipw2100_set_short_retry()
5018 return 0; in ipw2100_set_short_retry()
5025 .host_command_sequence = 0, in ipw2100_set_long_retry()
5030 cmd.host_command_parameters[0] = retry; in ipw2100_set_long_retry()
5038 return 0; in ipw2100_set_long_retry()
5046 .host_command_sequence = 0, in ipw2100_set_mandatory_bssid()
5047 .host_command_length = (bssid == NULL) ? 0 : ETH_ALEN in ipw2100_set_mandatory_bssid()
5079 .host_command_sequence = 0, in ipw2100_disassociate_bssid()
5107 .host_command_sequence = 0, in ipw2100_set_wpa_ie()
5149 .host_command_sequence = 0, in ipw2100_set_security_information()
5155 memset(security, 0, sizeof(*security)); in ipw2100_set_security_information()
5188 ("SET_SECURITY_INFORMATION: auth:%d cipher:0x%02X (level %d)\n", in ipw2100_set_security_information()
5191 security->replay_counters_number = 0; in ipw2100_set_security_information()
5211 .host_command_sequence = 0, in ipw2100_set_tx_power()
5214 int err = 0; in ipw2100_set_tx_power()
5221 cmd.host_command_parameters[0] = tmp; in ipw2100_set_tx_power()
5228 return 0; in ipw2100_set_tx_power()
5236 .host_command_sequence = 0, in ipw2100_set_ibss_beacon_interval()
5241 cmd.host_command_parameters[0] = interval; in ipw2100_set_ibss_beacon_interval()
5263 return 0; in ipw2100_set_ibss_beacon_interval()
5286 return 0; in ipw2100_queues_allocate()
5295 #define IPW_PRIVACY_CAPABLE 0x0008
5302 .host_command_sequence = 0, in ipw2100_set_wep_flags()
5307 cmd.host_command_parameters[0] = flags; in ipw2100_set_wep_flags()
5309 IPW_DEBUG_HC("WEP_FLAGS: flags = 0x%08X\n", flags); in ipw2100_set_wep_flags()
5339 #define WEP_STR_64(x) x[0],x[1],x[2],x[3],x[4]
5340 #define WEP_STR_128(x) x[0],x[1],x[2],x[3],x[4],x[5],x[6],x[7],x[8],x[9],x[10]
5352 * @returns 0 if OK, < 0 errno code on error.
5360 int keylen = len ? (len <= 5 ? 5 : 13) : 0; in ipw2100_set_key()
5363 .host_command_sequence = 0, in ipw2100_set_key()
5381 memset(wep_key->key + len, 0, keylen - len); in ipw2100_set_key()
5385 if (keylen == 0) in ipw2100_set_key()
5414 if (err == 0) in ipw2100_set_key()
5425 .host_command_sequence = 0, in ipw2100_set_key_index()
5433 if (idx < 0 || idx > 3) in ipw2100_set_key_index()
5460 return 0; in ipw2100_configure_security()
5471 SEC_LEVEL_0, 0, 1); in ipw2100_configure_security()
5485 use_group = 0; in ipw2100_configure_security()
5498 for (i = 0; i < 4; i++) { in ipw2100_configure_security()
5500 memset(priv->ieee->sec.keys[i], 0, WEP_KEY_LEN); in ipw2100_configure_security()
5501 priv->ieee->sec.key_sizes[i] = 0; in ipw2100_configure_security()
5520 enabled ? IPW_PRIVACY_CAPABLE : 0, 1); in ipw2100_configure_security()
5543 ipw2100_configure_security(priv, 0); in ipw2100_security_work()
5556 for (i = 0; i < 4; i++) { in shim__set_security()
5559 if (sec->key_sizes[i] == 0) in shim__set_security()
5602 priv->ieee->sec.flags & (1 << 8) ? '1' : '0', in shim__set_security()
5603 priv->ieee->sec.flags & (1 << 7) ? '1' : '0', in shim__set_security()
5604 priv->ieee->sec.flags & (1 << 6) ? '1' : '0', in shim__set_security()
5605 priv->ieee->sec.flags & (1 << 5) ? '1' : '0', in shim__set_security()
5606 priv->ieee->sec.flags & (1 << 4) ? '1' : '0', in shim__set_security()
5607 priv->ieee->sec.flags & (1 << 3) ? '1' : '0', in shim__set_security()
5608 priv->ieee->sec.flags & (1 << 2) ? '1' : '0', in shim__set_security()
5609 priv->ieee->sec.flags & (1 << 1) ? '1' : '0', in shim__set_security()
5610 priv->ieee->sec.flags & (1 << 0) ? '1' : '0'); in shim__set_security()
5618 ipw2100_configure_security(priv, 0); in shim__set_security()
5642 return 0; in ipw2100_adapter_setup()
5693 err = ipw2100_set_essid(priv, NULL, 0, batch_mode); in ipw2100_adapter_setup()
5723 return 0; in ipw2100_adapter_setup()
5739 int err = 0; in ipw2100_set_address()
5749 err = ipw2100_set_mac_address(priv, 0); in ipw2100_set_address()
5753 priv->reset_backoff = 0; in ipw2100_set_address()
5756 return 0; in ipw2100_set_address()
5776 return 0; in ipw2100_open()
5812 return 0; in ipw2100_close()
5839 return 0; in ipw2100_wpa_enable()
5849 int ret = 0; in ipw2100_wpa_set_auth_algs()
5853 ieee->open_wep = 0; in ipw2100_wpa_set_auth_algs()
5877 frame.fixed_ie_mask = 0; in ipw2100_wpa_assoc_frame()
5885 ipw2100_set_wpa_ie(priv, &frame, 0); in ipw2100_wpa_assoc_frame()
5907 return (priv->status & STATUS_ASSOCIATED) ? 1 : 0; in ipw2100_ethtool_get_link()
5920 u32 rtc = 0xa5a5a5a5; in ipw2100_hang_check()
5922 int restart = 0; in ipw2100_hang_check()
5926 if (priv->fatal_error != 0) { in ipw2100_hang_check()
6007 dev = alloc_libipw(sizeof(struct ipw2100_priv), 0); in ipw2100_alloc_device()
6026 dev->irq = 0; in ipw2100_alloc_device()
6036 /* memset() puts everything to 0, so we only have explicitly set in ipw2100_alloc_device()
6045 priv->ieee->wpa_enabled = 0; in ipw2100_alloc_device()
6046 priv->ieee->drop_unencrypted = 0; in ipw2100_alloc_device()
6047 priv->ieee->privacy_invoked = 0; in ipw2100_alloc_device()
6061 case 0: in ipw2100_alloc_device()
6069 if (channel != 0 && in ipw2100_alloc_device()
6131 int err = 0; in ipw2100_pci_init_one()
6132 int registered = 0; in ipw2100_pci_init_one()
6137 if (!(pci_resource_flags(pci_dev, 0) & IORESOURCE_MEM)) { in ipw2100_pci_init_one()
6143 ioaddr = pci_iomap(pci_dev, 0, 0); in ipw2100_pci_init_one()
6189 /* We disable the RETRY_TIMEOUT register (0x41) to keep in ipw2100_pci_init_one()
6191 pci_read_config_dword(pci_dev, 0x40, &val); in ipw2100_pci_init_one()
6192 if ((val & 0x0000ff00) != 0) in ipw2100_pci_init_one()
6193 pci_write_config_dword(pci_dev, 0x40, val & 0xffff00ff); in ipw2100_pci_init_one()
6314 free_libipw(dev, 0); in ipw2100_pci_init_one()
6366 free_libipw(dev, 0); in ipw2100_pci_remove_one()
6394 return 0; in ipw2100_suspend()
6405 return 0; in ipw2100_resume()
6413 * re-disable the RETRY_TIMEOUT register (0x41) to keep PCI Tx retries in ipw2100_resume()
6417 pci_read_config_dword(pci_dev, 0x40, &val); in ipw2100_resume()
6418 if ((val & 0x0000ff00) != 0) in ipw2100_resume()
6419 pci_write_config_dword(pci_dev, 0x40, val & 0xffff00ff); in ipw2100_resume()
6429 ipw2100_up(priv, 0); in ipw2100_resume()
6433 return 0; in ipw2100_resume()
6446 #define IPW2100_DEV_ID(x) { PCI_VENDOR_ID_INTEL, 0x1043, 0x8086, x }
6449 IPW2100_DEV_ID(0x2520), /* IN 2100A mPCI 3A */
6450 IPW2100_DEV_ID(0x2521), /* IN 2100A mPCI 3B */
6451 IPW2100_DEV_ID(0x2524), /* IN 2100A mPCI 3B */
6452 IPW2100_DEV_ID(0x2525), /* IN 2100A mPCI 3B */
6453 IPW2100_DEV_ID(0x2526), /* IN 2100A mPCI Gen A3 */
6454 IPW2100_DEV_ID(0x2522), /* IN 2100 mPCI 3B */
6455 IPW2100_DEV_ID(0x2523), /* IN 2100 mPCI 3A */
6456 IPW2100_DEV_ID(0x2527), /* IN 2100 mPCI 3B */
6457 IPW2100_DEV_ID(0x2528), /* IN 2100 mPCI 3B */
6458 IPW2100_DEV_ID(0x2529), /* IN 2100 mPCI 3B */
6459 IPW2100_DEV_ID(0x252B), /* IN 2100 mPCI 3A */
6460 IPW2100_DEV_ID(0x252C), /* IN 2100 mPCI 3A */
6461 IPW2100_DEV_ID(0x252D), /* IN 2100 mPCI 3A */
6463 IPW2100_DEV_ID(0x2550), /* IB 2100A mPCI 3B */
6464 IPW2100_DEV_ID(0x2551), /* IB 2100 mPCI 3B */
6465 IPW2100_DEV_ID(0x2553), /* IB 2100 mPCI 3B */
6466 IPW2100_DEV_ID(0x2554), /* IB 2100 mPCI 3B */
6467 IPW2100_DEV_ID(0x2555), /* IB 2100 mPCI 3B */
6469 IPW2100_DEV_ID(0x2560), /* DE 2100A mPCI 3A */
6470 IPW2100_DEV_ID(0x2562), /* DE 2100A mPCI 3A */
6471 IPW2100_DEV_ID(0x2563), /* DE 2100A mPCI 3A */
6472 IPW2100_DEV_ID(0x2561), /* DE 2100 mPCI 3A */
6473 IPW2100_DEV_ID(0x2565), /* DE 2100 mPCI 3A */
6474 IPW2100_DEV_ID(0x2566), /* DE 2100 mPCI 3A */
6475 IPW2100_DEV_ID(0x2567), /* DE 2100 mPCI 3A */
6477 IPW2100_DEV_ID(0x2570), /* GA 2100 mPCI 3B */
6479 IPW2100_DEV_ID(0x2580), /* TO 2100A mPCI 3B */
6480 IPW2100_DEV_ID(0x2582), /* TO 2100A mPCI 3B */
6481 IPW2100_DEV_ID(0x2583), /* TO 2100A mPCI 3B */
6482 IPW2100_DEV_ID(0x2581), /* TO 2100 mPCI 3B */
6483 IPW2100_DEV_ID(0x2585), /* TO 2100 mPCI 3B */
6484 IPW2100_DEV_ID(0x2586), /* TO 2100 mPCI 3B */
6485 IPW2100_DEV_ID(0x2587), /* TO 2100 mPCI 3B */
6487 IPW2100_DEV_ID(0x2590), /* SO 2100A mPCI 3B */
6488 IPW2100_DEV_ID(0x2592), /* SO 2100A mPCI 3B */
6489 IPW2100_DEV_ID(0x2591), /* SO 2100 mPCI 3B */
6490 IPW2100_DEV_ID(0x2593), /* SO 2100 mPCI 3B */
6491 IPW2100_DEV_ID(0x2596), /* SO 2100 mPCI 3B */
6492 IPW2100_DEV_ID(0x2598), /* SO 2100 mPCI 3B */
6494 IPW2100_DEV_ID(0x25A0), /* HP 2100 mPCI 3B */
6495 {0,},
6514 * @returns 0 if ok, < 0 errno node con error.
6575 return 0; in ipw2100_wx_get_name()
6584 int err = 0; in ipw2100_wx_set_freq()
6599 int c = 0; in ipw2100_wx_set_freq()
6606 fwrq->e = 0; in ipw2100_wx_set_freq()
6611 if (fwrq->e > 0 || fwrq->m > 1000) { in ipw2100_wx_set_freq()
6616 err = ipw2100_set_channel(priv, fwrq->m, 0); in ipw2100_wx_set_freq()
6634 wrqu->freq.e = 0; in ipw2100_wx_get_freq()
6642 wrqu->freq.m = 0; in ipw2100_wx_get_freq()
6645 return 0; in ipw2100_wx_get_freq()
6654 int err = 0; in ipw2100_wx_set_mode()
6659 return 0; in ipw2100_wx_set_mode()
6701 return 0; in ipw2100_wx_get_mode()
6737 memset(range, 0, sizeof(*range)); in ipw2100_wx_get_range()
6754 range->max_qual.level = 0; in ipw2100_wx_get_range()
6755 range->max_qual.noise = 0; in ipw2100_wx_get_range()
6761 range->avg_qual.noise = 0; in ipw2100_wx_get_range()
6766 for (i = 0; i < RATE_COUNT && i < IW_MAX_BITRATES; i++) { in ipw2100_wx_get_range()
6775 range->min_pmp = period_duration[0]; /* Minimal PM period */ in ipw2100_wx_get_range()
6778 range->max_pmt = timeout_duration[0]; /* Maximal PM timeout */ in ipw2100_wx_get_range()
6787 range->encoding_size[0] = 5; in ipw2100_wx_get_range()
6796 for (i = 0, level = (IPW_TX_POWER_MAX_DBM * 16); in ipw2100_wx_get_range()
6803 range->txpower_capa = 0; in ipw2100_wx_get_range()
6804 range->num_txpower = 0; in ipw2100_wx_get_range()
6821 val = 0; in ipw2100_wx_get_range()
6822 for (i = 0; i < FREQ_COUNT; i++) { in ipw2100_wx_get_range()
6836 range->event_capa[0] = (IW_EVENT_CAPA_K_0 | in ipw2100_wx_get_range()
6845 return 0; in ipw2100_wx_get_range()
6853 int err = 0; in ipw2100_wx_set_wap()
6870 err = ipw2100_set_mandatory_bssid(priv, NULL, 0); in ipw2100_wx_set_wap()
6877 err = ipw2100_set_mandatory_bssid(priv, wrqu->ap_addr.sa_data, 0); in ipw2100_wx_set_wap()
6905 return 0; in ipw2100_wx_get_wap()
6914 int length = 0; in ipw2100_wx_set_essid()
6915 int err = 0; in ipw2100_wx_set_essid()
6928 if (length == 0) { in ipw2100_wx_set_essid()
6931 err = ipw2100_set_essid(priv, NULL, 0, 0); in ipw2100_wx_set_essid()
6941 err = 0; in ipw2100_wx_set_essid()
6950 err = ipw2100_set_essid(priv, essid, length, 0); in ipw2100_wx_set_essid()
6977 wrqu->essid.length = 0; in ipw2100_wx_get_essid()
6978 wrqu->essid.flags = 0; /* active */ in ipw2100_wx_get_essid()
6981 return 0; in ipw2100_wx_get_essid()
6998 memset(priv->nick, 0, sizeof(priv->nick)); in ipw2100_wx_set_nick()
7003 return 0; in ipw2100_wx_set_nick()
7022 return 0; in ipw2100_wx_get_nick()
7032 int err = 0; in ipw2100_wx_set_rate()
7040 rate = 0; in ipw2100_wx_set_rate()
7054 if (rate == 0) in ipw2100_wx_set_rate()
7057 err = ipw2100_set_tx_rates(priv, rate, 0); in ipw2100_wx_set_rate()
7072 int err = 0; in ipw2100_wx_get_rate()
7077 wrqu->bitrate.value = 0; in ipw2100_wx_get_rate()
7078 return 0; in ipw2100_wx_get_rate()
7107 wrqu->bitrate.value = 0; in ipw2100_wx_get_rate()
7125 if (wrqu->rts.fixed == 0) in ipw2100_wx_set_rts()
7146 IPW_DEBUG_WX("SET RTS Threshold -> 0x%08X\n", value); in ipw2100_wx_set_rts()
7166 wrqu->rts.disabled = (priv->rts_threshold & RTS_DISABLED) ? 1 : 0; in ipw2100_wx_get_rts()
7168 IPW_DEBUG_WX("GET RTS Threshold -> 0x%08X\n", wrqu->rts.value); in ipw2100_wx_get_rts()
7170 return 0; in ipw2100_wx_get_rts()
7178 int err = 0, value; in ipw2100_wx_set_txpow()
7184 return 0; in ipw2100_wx_set_txpow()
7189 if (wrqu->txpower.fixed == 0) in ipw2100_wx_set_txpow()
7224 wrqu->txpower.disabled = (priv->status & STATUS_RF_KILL_MASK) ? 1 : 0; in ipw2100_wx_get_txpow()
7227 wrqu->txpower.fixed = 0; in ipw2100_wx_get_txpow()
7238 return 0; in ipw2100_wx_get_txpow()
7262 priv->ieee->fts = wrqu->frag.value & ~0x1; in ipw2100_wx_set_frag()
7268 return 0; in ipw2100_wx_set_frag()
7281 wrqu->frag.fixed = 0; /* no auto select */ in ipw2100_wx_get_frag()
7282 wrqu->frag.disabled = (priv->frag_threshold & FRAG_DISABLED) ? 1 : 0; in ipw2100_wx_get_frag()
7286 return 0; in ipw2100_wx_get_frag()
7294 int err = 0; in ipw2100_wx_set_retry()
7300 return 0; in ipw2100_wx_set_retry()
7343 wrqu->retry.disabled = 0; /* can't be disabled */ in ipw2100_wx_get_retry()
7362 return 0; in ipw2100_wx_get_retry()
7370 int err = 0; in ipw2100_wx_set_scan()
7437 int err = 0; in ipw2100_wx_set_power()
7469 IPW_DEBUG_WX("SET Power Management Mode -> 0x%02X\n", priv->power_mode); in ipw2100_wx_set_power()
7490 wrqu->power.disabled = 0; in ipw2100_wx_get_power()
7491 wrqu->power.flags = 0; in ipw2100_wx_get_power()
7496 return 0; in ipw2100_wx_get_power()
7531 ieee->wpa_ie_len = 0; in ipw2100_wx_set_genie()
7536 return 0; in ipw2100_wx_set_genie()
7547 if (ieee->wpa_ie_len == 0 || ieee->wpa_ie == NULL) { in ipw2100_wx_get_genie()
7548 wrqu->data.length = 0; in ipw2100_wx_get_genie()
7549 return 0; in ipw2100_wx_get_genie()
7558 return 0; in ipw2100_wx_get_genie()
7571 int ret = 0; in ipw2100_wx_set_auth()
7683 IEEE80211_CRYPTO_TKIP_COUNTERMEASURES) ? 1 : 0; in ipw2100_wx_get_auth()
7711 return 0; in ipw2100_wx_get_auth()
7752 return 0; in ipw2100_wx_set_mlme()
7767 int enable = (parms[0] > 0); in ipw2100_wx_set_promisc()
7768 int err = 0; in ipw2100_wx_set_promisc()
7778 err = ipw2100_set_channel(priv, parms[1], 0); in ipw2100_wx_set_promisc()
7799 return 0; in ipw2100_wx_reset()
7809 int err = 0, mode = *(int *)extra; in ipw2100_wx_set_powermode()
7817 if ((mode < 0) || (mode > POWER_MODES)) in ipw2100_wx_set_powermode()
7865 return 0; in ipw2100_wx_get_powermode()
7883 else if (mode == 0) in ipw2100_wx_set_preamble()
7890 err = ipw2100_system_config(priv, 0); in ipw2100_wx_set_preamble()
7910 snprintf(wrqu->name, IFNAMSIZ, "auto (0)"); in ipw2100_wx_get_preamble()
7912 return 0; in ipw2100_wx_get_preamble()
7931 else if (mode == 0) in ipw2100_wx_set_crc_check()
7937 err = 0; in ipw2100_wx_set_crc_check()
7957 snprintf(wrqu->name, IFNAMSIZ, "CRC ignored (0)"); in ipw2100_wx_get_crc_check()
7959 return 0; in ipw2100_wx_get_crc_check()
8015 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 2, 0, "monitor"},
8018 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 0, 0, "reset"},
8023 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "set_power"},
8026 0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | MAX_POWER_STRING,
8030 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "set_preamble"},
8033 0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | IFNAMSIZ, "get_preamble"},
8037 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "set_crc_check"},
8040 0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | IFNAMSIZ, "get_crc_check"},
8101 wstats->miss.beacon = 0; in ipw2100_wx_wireless_stats()
8102 wstats->discard.retries = 0; in ipw2100_wx_wireless_stats()
8103 wstats->qual.qual = 0; in ipw2100_wx_wireless_stats()
8104 wstats->qual.level = 0; in ipw2100_wx_wireless_stats()
8105 wstats->qual.noise = 0; in ipw2100_wx_wireless_stats()
8116 /* If we don't have a connection the quality and level is 0 */ in ipw2100_wx_wireless_stats()
8118 wstats->qual.qual = 0; in ipw2100_wx_wireless_stats()
8119 wstats->qual.level = 0; in ipw2100_wx_wireless_stats()
8188 wstats->qual.noise = 0; in ipw2100_wx_wireless_stats()
8260 0); in ipw2100_wx_event_work()
8262 ipw2100_set_essid(priv, NULL, 0, 0); in ipw2100_wx_event_work()
8272 #define IPW2100_FW_MINOR(x) ((x & 0xff) >> 8)
8273 #define IPW2100_FW_MAJOR(x) (x & 0xff)
8288 0 2 version
8289 2 2 mode == 0:BSS,1:IBSS,2:MONITOR
8323 return 0; in ipw2100_mod_firmware_load()
8352 if (rc < 0) { in ipw2100_get_firmware()
8363 return 0; in ipw2100_get_firmware()
8375 fw->version = 0; in ipw2100_release_firmware()
8393 for (i = 0; i < len; i++) in ipw2100_get_fwversion()
8395 buf[i] = '\0'; in ipw2100_get_fwversion()
8408 * 0 4 address to write to in ipw2100_fw_download()
8418 while (firmware_data_left > 0) { in ipw2100_fw_download()
8439 return 0; in ipw2100_fw_download()
8472 write_nic_word(dev, IPW2100_CONTROL_REG, 0x703); in ipw2100_ucode_download()
8474 write_nic_word(dev, IPW2100_CONTROL_REG, 0x707); in ipw2100_ucode_download()
8478 write_nic_byte(dev, 0x210014, 0x72); /* fifo width =16 */ in ipw2100_ucode_download()
8480 write_nic_byte(dev, 0x210014, 0x72); /* fifo width =16 */ in ipw2100_ucode_download()
8484 write_nic_byte(dev, 0x210000, 0x40); in ipw2100_ucode_download()
8486 write_nic_byte(dev, 0x210000, 0x0); in ipw2100_ucode_download()
8488 write_nic_byte(dev, 0x210000, 0x40); in ipw2100_ucode_download()
8493 while (microcode_data_left > 0) { in ipw2100_ucode_download()
8494 write_nic_byte(dev, 0x210010, *microcode_data++); in ipw2100_ucode_download()
8495 write_nic_byte(dev, 0x210010, *microcode_data++); in ipw2100_ucode_download()
8500 write_nic_byte(dev, 0x210000, 0x0); in ipw2100_ucode_download()
8503 /* Enable System (Reg 0) in ipw2100_ucode_download()
8505 write_nic_byte(dev, 0x210000, 0x0); in ipw2100_ucode_download()
8507 write_nic_byte(dev, 0x210000, 0x80); in ipw2100_ucode_download()
8511 write_nic_word(dev, IPW2100_CONTROL_REG, 0x703); in ipw2100_ucode_download()
8513 write_nic_word(dev, IPW2100_CONTROL_REG, 0x707); in ipw2100_ucode_download()
8517 write_nic_byte(dev, 0x210014, 0x72); // fifo width =16 in ipw2100_ucode_download()
8519 write_nic_byte(dev, 0x210014, 0x72); // fifo width =16 in ipw2100_ucode_download()
8522 /* Enable System (Reg 0) in ipw2100_ucode_download()
8524 write_nic_byte(dev, 0x210000, 0x00); // clear enable system in ipw2100_ucode_download()
8526 write_nic_byte(dev, 0x210000, 0x80); // set enable system in ipw2100_ucode_download()
8530 for (i = 0; i < 10; i++) { in ipw2100_ucode_download()
8534 read_nic_byte(dev, 0x210000, &data); in ipw2100_ucode_download()
8535 if (data & 0x1) in ipw2100_ucode_download()
8546 for (i = 0; i < 30; i++) { in ipw2100_ucode_download()
8548 for (j = 0; in ipw2100_ucode_download()
8550 read_nic_word(dev, 0x210004, ((u16 *) & response) + j); in ipw2100_ucode_download()
8552 if ((response.cmd_id == 1) && (response.ucode_valid == 0x1)) in ipw2100_ucode_download()
8565 return 0; in ipw2100_ucode_download()