Lines Matching +full:0 +full:x210000

176 static int debug = 0;
177 static int network_mode = 0;
178 static int channel = 0;
179 static int associate = 0;
180 static int disable = 0;
193 MODULE_PARM_DESC(mode, "network mode (0=BSS,1=IBSS,2=Monitor)");
196 MODULE_PARM_DESC(disable, "manually disable the radio (default 0 [radio on])");
207 } while (0)
209 #define IPW_DEBUG(level, message...) do {} while (0)
333 IPW_DEBUG_IO("r: 0x%08X => 0x%08X\n", reg, *val); in read_register()
341 IPW_DEBUG_IO("w: 0x%08X <= 0x%08X\n", reg, val); in write_register()
350 IPW_DEBUG_IO("r: 0x%08X => %04X\n", reg, *val); in read_register_word()
358 IPW_DEBUG_IO("r: 0x%08X => %02X\n", reg, *val); in read_register_byte()
366 IPW_DEBUG_IO("w: 0x%08X <= %04X\n", reg, val); in write_register_word()
374 IPW_DEBUG_IO("w: 0x%08X =< %02X\n", reg, val); in write_register_byte()
428 aligned_addr = addr & (~0x3); in write_nic_memory()
445 aligned_len = len & (~0x3); in write_nic_memory()
446 for (i = 0; i < aligned_len; i += 4, buf += 4, aligned_addr += 4) in write_nic_memory()
452 for (i = 0; i < dif_len; i++, buf++) in write_nic_memory()
466 aligned_addr = addr & (~0x3); in read_nic_memory()
483 aligned_len = len & (~0x3); in read_nic_memory()
484 for (i = 0; i < aligned_len; i += 4, buf += 4, aligned_addr += 4) in read_nic_memory()
490 for (i = 0; i < dif_len; i++, buf++) in read_nic_memory()
513 if (ordinals->table1_addr == 0) { in ipw2100_get_ordinal()
536 return 0; in ipw2100_get_ordinal()
568 return 0; in ipw2100_get_ordinal()
573 return 0; in ipw2100_get_ordinal()
602 return 0; in ipw2100_set_ordinal()
620 for (l = 0, i = 0; i < 2; i++) { in snprint_line()
622 for (j = 0; j < 8 && l < len; j++, l++) in snprint_line()
630 for (l = 0, i = 0; i < 2; i++) { in snprint_line()
632 for (j = 0; j < 8 && l < len; j++, l++) { in snprint_line()
650 u32 ofs = 0; in printk_buf()
674 priv->reset_backoff = 0; in schedule_reset()
688 schedule_delayed_work(&priv->reset_work, 0); in schedule_reset()
707 int err = 0; in ipw2100_hw_send_command()
785 if (err == 0) { in ipw2100_hw_send_command()
807 return 0; in ipw2100_hw_send_command()
824 u32 val1 = 0x76543210; in ipw2100_verify()
825 u32 val2 = 0xFEDCBA98; in ipw2100_verify()
827 /* Domain 0 check - all values should be DOA_DEBUG */ in ipw2100_verify()
836 for (address = 0; address < 5; address++) { in ipw2100_verify()
838 write_register(priv->net_dev, IPW_REG_DOMAIN_1_OFFSET + 0x32, in ipw2100_verify()
840 write_register(priv->net_dev, IPW_REG_DOMAIN_1_OFFSET + 0x36, in ipw2100_verify()
842 read_register(priv->net_dev, IPW_REG_DOMAIN_1_OFFSET + 0x32, in ipw2100_verify()
844 read_register(priv->net_dev, IPW_REG_DOMAIN_1_OFFSET + 0x36, in ipw2100_verify()
847 return 0; in ipw2100_verify()
870 for (i = 0; i <= IPW_CARD_DISABLE_COMPLETE_WAIT * 1000; i += 50) { in ipw2100_wait_for_card_state()
876 return 0; in ipw2100_wait_for_card_state()
890 return 0; in ipw2100_wait_for_card_state()
916 for (i = 0; i < 1000; i++) { in sw_reset_and_clock()
934 for (i = 0; i < 10000; i++) { in sw_reset_and_clock()
951 return 0; in sw_reset_and_clock()
1019 IPW_INTERNAL_REGISTER_HALT_AND_RESET, 0x80000000); in ipw2100_download_firmware()
1022 write_register(priv->net_dev, IPW_REG_RESET_REG, 0); in ipw2100_download_firmware()
1034 IPW_INTERNAL_REGISTER_HALT_AND_RESET, 0x00000000); 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()
1079 write_nic_dword(priv->net_dev, address, 0); in ipw2100_download_firmware()
1081 return 0; in ipw2100_download_firmware()
1101 write_register(priv->net_dev, IPW_REG_INTA_MASK, 0x0); in ipw2100_disable_interrupts()
1119 ord->table2_size &= 0x0000FFFF; in ipw2100_initialize_ordinals()
1128 u32 reg = 0; in ipw2100_hw_set_gpio()
1143 unsigned short value = 0; in rf_kill_active()
1144 u32 reg = 0; in rf_kill_active()
1150 return 0; in rf_kill_active()
1153 for (i = 0; i < MAX_RF_KILL_CHECKS; i++) { in rf_kill_active()
1156 value = (value << 1) | ((reg & IPW_BIT_GPIO_RF_KILL) ? 0 : 1); in rf_kill_active()
1159 if (value == 0) { in rf_kill_active()
1167 return (value == 0); in rf_kill_active()
1189 * EEPROM version is the byte at offset 0xfd in firmware in ipw2100_get_hw_features()
1191 read_nic_dword(priv->net_dev, addr + 0xFC, &val); in ipw2100_get_hw_features()
1192 priv->eeprom_version = (val >> 24) & 0xFF; in ipw2100_get_hw_features()
1196 * HW RF Kill enable is bit 0 in byte at offset 0x21 in firmware in ipw2100_get_hw_features()
1199 * bit = 0 signifies HW RF kill switch is supported in ipw2100_get_hw_features()
1202 read_nic_dword(priv->net_dev, addr + 0x20, &val); in ipw2100_get_hw_features()
1203 if (!((val >> 24) & 0x01)) in ipw2100_get_hw_features()
1209 return 0; in ipw2100_get_hw_features()
1226 return 0; in ipw2100_start_adapter()
1250 write_register(priv->net_dev, IPW_REG_RESET_REG, 0); in ipw2100_start_adapter()
1315 return 0; in ipw2100_start_adapter()
1325 priv->fatal_error = 0; in ipw2100_reset_fatalerror()
1371 return 0; in ipw2100_power_cycle_adapter()
1389 .host_command_sequence = 0, in ipw2100_hw_phy_off()
1390 .host_command_length = 0, in ipw2100_hw_phy_off()
1402 for (i = 0; i < 2500; i++) { in ipw2100_hw_phy_off()
1408 return 0; in ipw2100_hw_phy_off()
1420 .host_command_sequence = 0, in ipw2100_enable_adapter()
1421 .host_command_length = 0 in ipw2100_enable_adapter()
1423 int err = 0; in ipw2100_enable_adapter()
1428 return 0; in ipw2100_enable_adapter()
1451 priv->stop_hang_check = 0; in ipw2100_enable_adapter()
1466 .host_command_sequence = 0, in ipw2100_hw_stop_adapter()
1467 .host_command_length = 0, in ipw2100_hw_stop_adapter()
1473 return 0; in ipw2100_hw_stop_adapter()
1542 for (i = 5; i > 0; i--) { in ipw2100_hw_stop_adapter()
1552 if (i == 0) in ipw2100_hw_stop_adapter()
1563 return 0; in ipw2100_hw_stop_adapter()
1570 .host_command_sequence = 0, in ipw2100_disable_adapter()
1571 .host_command_length = 0 in ipw2100_disable_adapter()
1573 int err = 0; in ipw2100_disable_adapter()
1578 return 0; in ipw2100_disable_adapter()
1615 .host_command_sequence = 0, in ipw2100_set_scan_options()
1624 cmd.host_command_parameters[0] = 0; in ipw2100_set_scan_options()
1627 cmd.host_command_parameters[0] |= IPW_SCAN_NOASSOCIATE; in ipw2100_set_scan_options()
1629 cmd.host_command_parameters[0] |= IPW_SCAN_MIXED_CELL; in ipw2100_set_scan_options()
1631 cmd.host_command_parameters[0] |= IPW_SCAN_PASSIVE; in ipw2100_set_scan_options()
1637 IPW_DEBUG_HC("SET_SCAN_OPTIONS 0x%04X\n", in ipw2100_set_scan_options()
1638 cmd.host_command_parameters[0]); in ipw2100_set_scan_options()
1647 .host_command_sequence = 0, in ipw2100_start_scan()
1654 cmd.host_command_parameters[0] = 0; in ipw2100_start_scan()
1662 return 0; in ipw2100_start_scan()
1699 int err = 0; in ipw2100_up()
1706 priv->suspend_time = 0; in ipw2100_up()
1713 return 0; in ipw2100_up()
1763 libipw_set_geo(priv->ieee, &ipw_geos[0]); in ipw2100_up()
1782 priv->stop_rf_kill = 0; in ipw2100_up()
1899 for (i = 0; i < geo->bg_channels; i++) { in ipw2100_wdev_init()
1930 return 0; in ipw2100_wdev_init()
1965 ipw2100_up(priv, 0); in ipw2100_reset_adapter()
2066 .host_command_sequence = 0, in ipw2100_set_essid()
2082 /* Bug in FW currently doesn't honor bit 0 in SET_SCAN_OPTIONS to in ipw2100_set_essid()
2087 for (i = 0; i < IW_ESSID_MAX_SIZE; i++) in ipw2100_set_essid()
2088 bogus[i] = 0x18 + i; in ipw2100_set_essid()
2097 memset(priv->essid + ssid_len, 0, IW_ESSID_MAX_SIZE - ssid_len); in ipw2100_set_essid()
2133 schedule_delayed_work(&priv->security_work, 0); in isr_indicate_association_lost()
2135 schedule_delayed_work(&priv->wx_event_work, 0); in isr_indicate_association_lost()
2148 priv->stop_rf_kill = 0; in isr_indicate_rf_kill()
2158 wrqu.data.length = 0; in ipw2100_scan_event()
2159 wrqu.data.flags = 0; in ipw2100_scan_event()
2175 priv->user_requested_scan = 0; in isr_scan_complete()
2176 mod_delayed_work(system_wq, &priv->scan_event, 0); in isr_scan_complete()
2231 for (i = 0; status_handlers[i].status != -1; i++) { in isr_status_change()
2293 return 0; in ipw2100_alloc_skb()
2296 #define SEARCH_ERROR 0xffffffff
2297 #define SEARCH_FAIL 0xfffffffe
2298 #define SEARCH_SUCCESS 0xfffffff0
2299 #define SEARCH_DISCARD 0
2302 #define SNAPSHOT_ADDR(ofs) (priv->snapshot[((ofs) >> 12) & 0xff] + ((ofs) & 0xfff))
2306 if (!priv->snapshot[0]) in ipw2100_snapshot_free()
2308 for (i = 0; i < 0x30; i++) in ipw2100_snapshot_free()
2310 priv->snapshot[0] = NULL; in ipw2100_snapshot_free()
2317 if (priv->snapshot[0]) in ipw2100_snapshot_alloc()
2319 for (i = 0; i < 0x30; i++) { in ipw2100_snapshot_alloc()
2320 priv->snapshot[i] = kmalloc(0x1000, GFP_ATOMIC); in ipw2100_snapshot_alloc()
2324 while (i > 0) in ipw2100_snapshot_alloc()
2326 priv->snapshot[0] = NULL; in ipw2100_snapshot_alloc()
2327 return 0; in ipw2100_snapshot_alloc()
2348 for (ret = SEARCH_FAIL, i = 0; i < 0x30000; i += 4) { in ipw2100_match_buf()
2354 for (j = 0; j < 4; j++) { in ipw2100_match_buf()
2376 * 0) Disconnect the SKB from the firmware (just unmap)
2400 IPW_DEBUG_INFO(": PCI latency error detected at 0x%04zX.\n", in ipw2100_corruption_detected()
2421 "offset 0x%06X, length %d:\n", in ipw2100_corruption_detected()
2560 ipw_rt->rt_hdr.it_pad = 0; /* always good to zero */ in isr_rx_monitor()
2608 return 0; in ipw2100_corruption_check()
2613 return 0; in ipw2100_corruption_check()
2692 stats.mask = 0; in __ipw2100_rx_process()
2693 if (stats.rssi != 0) in __ipw2100_rx_process()
2740 rxq->drv[i].status.info.field = 0; in __ipw2100_rx_process()
2746 /* backtrack one entry, wrapping to end if at 0 */ in __ipw2100_rx_process()
2801 u32 r, w, frag_num = 0; in __ipw2100_tx_process()
2804 return 0; in __ipw2100_tx_process()
2830 return 0; in __ipw2100_tx_process()
2869 return 0; in __ipw2100_tx_process()
2898 if (txq->drv[txq->oldest].status.info.fields.txType != 0) in __ipw2100_tx_process()
2905 for (i = 0; i < frag_num; i++) { in __ipw2100_tx_process()
2970 int i = 0; in __ipw2100_tx_complete()
3058 int i = 0; in ipw2100_tx_send_data()
3095 fragments[0]->data; in ipw2100_tx_send_data()
3110 ipw_hdr->host_command_reg1 = 0; in ipw2100_tx_send_data()
3113 ipw_hdr->needs_encryption = 0; in ipw2100_tx_send_data()
3120 ipw_hdr->fragment_size = 0; in ipw2100_tx_send_data()
3139 for (i = 0; i < packet->info.d_struct.txb->nr_frags; i++) { in ipw2100_tx_send_data()
3205 IPW_DEBUG_ISR("enter - INTA: 0x%08lX\n", in ipw2100_irq_tasklet()
3214 IPW_DEBUG_ISR("INTA: 0x%08lX\n", in ipw2100_irq_tasklet()
3224 IPW_DEBUG_INFO("%s: Fatal error value: 0x%08X\n", in ipw2100_irq_tasklet()
3228 IPW_DEBUG_INFO("%s: Fatal error address value: 0x%08X\n", in ipw2100_irq_tasklet()
3337 if (inta == 0xFFFFFFFF) { in ipw2100_interrupt()
3339 printk(KERN_WARNING DRV_NAME ": IRQ INTA == 0xFFFFFFFF\n"); in ipw2100_interrupt()
3390 IPW_DEBUG_TX("Sending fragment (%d bytes):\n", txb->fragments[0]->len); in ipw2100_tx()
3391 printk_buf(IPW_DL_TX, txb->fragments[0]->data, txb->fragments[0]->len); in ipw2100_tx()
3425 for (i = 0; i < IPW_COMMAND_POOL_SIZE; i++) { in ipw2100_msg_allocate()
3444 return 0; in ipw2100_msg_allocate()
3446 for (j = 0; j < i; j++) { in ipw2100_msg_allocate()
3466 for (i = 0; i < IPW_COMMAND_POOL_SIZE; i++) in ipw2100_msg_initialize()
3470 return 0; in ipw2100_msg_initialize()
3480 for (i = 0; i < IPW_COMMAND_POOL_SIZE; i++) { in ipw2100_msg_free()
3499 for (i = 0; i < 16; i++) { in pci_show()
3501 for (j = 0; j < 16; j += 4) { in pci_show()
3517 return sprintf(buf, "0x%08x\n", (int)p->config); in cfg_show()
3526 return sprintf(buf, "0x%08x\n", (int)p->status); in status_show()
3535 return sprintf(buf, "0x%08x\n", (int)p->capability); in capability_show()
3556 IPW2100_NIC(0x210014, 1), IPW2100_NIC(0x210000, 1),};
3703 "0 if not associated, else pointer to AP table entry"),
3733 IPW2100_ORD(POWER_MGMT_MODE, "Power mode - 0=CAM, 1=PSP"),
3782 u32 val = 0; in registers_show()
3786 for (i = 0; i < ARRAY_SIZE(hw_data); i++) { in registers_show()
3807 for (i = 0; i < ARRAY_SIZE(nic_data); i++) { in hardware_show()
3843 static unsigned long loop = 0; in memory_show()
3844 int len = 0; in memory_show()
3849 if (loop >= 0x30000) in memory_show()
3850 loop = 0; in memory_show()
3853 while (len < PAGE_SIZE - 128 && loop < 0x30000) { in memory_show()
3855 if (priv->snapshot[0]) in memory_show()
3856 for (i = 0; i < 4; i++) in memory_show()
3860 for (i = 0; i < 4; i++) in memory_show()
3869 ((u8 *) buffer)[0x0], in memory_show()
3870 ((u8 *) buffer)[0x1], in memory_show()
3871 ((u8 *) buffer)[0x2], in memory_show()
3872 ((u8 *) buffer)[0x3], in memory_show()
3873 ((u8 *) buffer)[0x4], in memory_show()
3874 ((u8 *) buffer)[0x5], in memory_show()
3875 ((u8 *) buffer)[0x6], in memory_show()
3876 ((u8 *) buffer)[0x7], in memory_show()
3877 ((u8 *) buffer)[0x8], in memory_show()
3878 ((u8 *) buffer)[0x9], in memory_show()
3879 ((u8 *) buffer)[0xa], in memory_show()
3880 ((u8 *) buffer)[0xb], in memory_show()
3881 ((u8 *) buffer)[0xc], in memory_show()
3882 ((u8 *) buffer)[0xd], in memory_show()
3883 ((u8 *) buffer)[0xe], in memory_show()
3884 ((u8 *) buffer)[0xf]); in memory_show()
3907 if (p[0] == '1' || in memory_store()
3908 (count >= 2 && tolower(p[0]) == 'o' && tolower(p[1]) == 'n')) { in memory_store()
3913 } else if (p[0] == '0' || (count >= 2 && tolower(p[0]) == 'o' && in memory_store()
3917 priv->dump_raw = 0; in memory_store()
3919 } else if (tolower(p[0]) == 'r') { in memory_store()
3924 IPW_DEBUG_INFO("%s: Usage: 0|on = HEX, 1|off = RAW, " in memory_store()
3936 u32 val = 0; in ordinals_show()
3937 int len = 0; in ordinals_show()
3939 static int loop = 0; in ordinals_show()
3942 return 0; in ordinals_show()
3945 loop = 0; in ordinals_show()
3953 len += sprintf(buf + len, "[0x%02X] = ERROR %s\n", in ordinals_show()
3957 len += sprintf(buf + len, "[0x%02X] = 0x%08X %s\n", in ordinals_show()
3981 priv->snapshot[0] ? "YES" : "NO"); in stats_show()
3994 return 0; in ipw2100_switch_mode()
4023 ipw2100_firmware.version = 0; in ipw2100_switch_mode()
4027 priv->reset_backoff = 0; in ipw2100_switch_mode()
4030 return 0; in ipw2100_switch_mode()
4037 int len = 0; in internals_show()
4093 u32 chan = 0; in bssinfo_show()
4099 return 0; in bssinfo_show()
4101 memset(essid, 0, sizeof(essid)); in bssinfo_show()
4102 memset(bssid, 0, sizeof(bssid)); in bssinfo_show()
4135 return sprintf(buf, "0x%08X\n", ipw2100_debug_level); in debug_level_show()
4144 ret = kstrtou32(buf, 0, &val); in debug_level_store()
4163 out += sprintf(out, "0x%08X\n", priv->fatal_error); in fatal_error_show()
4165 out += sprintf(out, "0\n"); in fatal_error_show()
4172 out += sprintf(out, "%d. 0x%08X\n", i, in fatal_error_show()
4210 ret = kstrtoul(buf, 0, &val); in scan_age_store()
4227 /* 0 - RF kill not enabled in rf_kill_show()
4232 int val = ((priv->status & STATUS_RF_KILL_SW) ? 0x1 : 0x0) | in rf_kill_show()
4233 (rf_kill_active(priv) ? 0x2 : 0x0); in rf_kill_show()
4239 if ((disable_radio ? 1 : 0) == in ipw_radio_kill_sw()
4240 (priv->status & STATUS_RF_KILL_SW ? 1 : 0)) in ipw_radio_kill_sw()
4241 return 0; in ipw_radio_kill_sw()
4257 priv->stop_rf_kill = 0; in ipw_radio_kill_sw()
4272 ipw_radio_kill_sw(priv, buf[0] == '1'); in rf_kill_store()
4316 return 0; in status_queue_allocate()
4339 memset(q, 0, sizeof(struct ipw2100_bd_queue)); in bd_queue_allocate()
4353 return 0; in bd_queue_allocate()
4424 for (i = 0; i < TX_PENDED_QUEUE_LENGTH; i++) { in ipw2100_tx_allocate()
4444 return 0; in ipw2100_tx_allocate()
4446 for (j = 0; j < i; j++) { in ipw2100_tx_allocate()
4479 for (i = 0; i < TX_PENDED_QUEUE_LENGTH; i++) { in ipw2100_tx_initialize()
4493 priv->tx_queue.oldest = 0; in ipw2100_tx_initialize()
4495 priv->tx_queue.next = 0; in ipw2100_tx_initialize()
4520 for (i = 0; i < TX_PENDED_QUEUE_LENGTH; i++) { in ipw2100_tx_free()
4574 for (i = 0; i < RX_QUEUE_LENGTH; i++) { in ipw2100_rx_allocate()
4586 priv->status_queue.drv[i].status_fields = 0; in ipw2100_rx_allocate()
4590 return 0; in ipw2100_rx_allocate()
4592 for (j = 0; j < i; j++) { in ipw2100_rx_allocate()
4614 priv->rx_queue.oldest = 0; in ipw2100_rx_initialize()
4646 for (i = 0; i < RX_QUEUE_LENGTH; i++) { in ipw2100_rx_free()
4678 return 0; in ipw2100_read_mac_address()
4691 .host_command_sequence = 0, in ipw2100_set_mac_address()
4718 .host_command_sequence = 0, in ipw2100_set_port_type()
4725 cmd.host_command_parameters[0] = IPW_BSS; in ipw2100_set_port_type()
4728 cmd.host_command_parameters[0] = IPW_IBSS; in ipw2100_set_port_type()
4759 .host_command_sequence = 0, in ipw2100_set_channel()
4764 cmd.host_command_parameters[0] = channel; in ipw2100_set_channel()
4770 return 0; in ipw2100_set_channel()
4772 if ((channel != 0) && in ipw2100_set_channel()
4801 return 0; in ipw2100_set_channel()
4808 .host_command_sequence = 0, in ipw2100_system_config()
4823 cmd.host_command_parameters[0] |= IPW_CFG_IBSS_AUTO_START; in ipw2100_system_config()
4825 cmd.host_command_parameters[0] |= IPW_CFG_IBSS_MASK | in ipw2100_system_config()
4829 cmd.host_command_parameters[0] |= IPW_CFG_PREAMBLE_AUTO; in ipw2100_system_config()
4841 /*cmd.host_command_parameters[0] |= DIVERSITY_ANTENNA_A; */ in ipw2100_system_config()
4851 cmd.host_command_sequence = 0; in ipw2100_system_config()
4852 cmd.host_command_length = 0; in ipw2100_system_config()
4862 return 0; in ipw2100_system_config()
4870 .host_command_sequence = 0, in ipw2100_set_tx_rates()
4875 cmd.host_command_parameters[0] = rate & TX_RATE_MASK; in ipw2100_set_tx_rates()
4902 return 0; in ipw2100_set_tx_rates()
4909 .host_command_sequence = 0, in ipw2100_set_power_mode()
4914 cmd.host_command_parameters[0] = power_level; in ipw2100_set_power_mode()
4929 cmd.host_command_parameters[0] = (u32) priv->adhoc_power; in ipw2100_set_power_mode()
4937 return 0; in ipw2100_set_power_mode()
4944 .host_command_sequence = 0, in ipw2100_set_rts_threshold()
4950 cmd.host_command_parameters[0] = MAX_RTS_THRESHOLD; in ipw2100_set_rts_threshold()
4952 cmd.host_command_parameters[0] = threshold & ~RTS_DISABLED; in ipw2100_set_rts_threshold()
4960 return 0; in ipw2100_set_rts_threshold()
4963 #if 0
4969 .host_command_sequence = 0,
4971 .host_command_parameters[0] = 0,
4981 if (threshold == 0)
4988 cmd.host_command_parameters[0] = threshold;
5008 .host_command_sequence = 0, in ipw2100_set_short_retry()
5013 cmd.host_command_parameters[0] = retry; in ipw2100_set_short_retry()
5021 return 0; in ipw2100_set_short_retry()
5028 .host_command_sequence = 0, in ipw2100_set_long_retry()
5033 cmd.host_command_parameters[0] = retry; in ipw2100_set_long_retry()
5041 return 0; in ipw2100_set_long_retry()
5049 .host_command_sequence = 0, in ipw2100_set_mandatory_bssid()
5050 .host_command_length = (bssid == NULL) ? 0 : ETH_ALEN in ipw2100_set_mandatory_bssid()
5082 .host_command_sequence = 0, in ipw2100_disassociate_bssid()
5110 .host_command_sequence = 0, in ipw2100_set_wpa_ie()
5152 .host_command_sequence = 0, in ipw2100_set_security_information()
5158 memset(security, 0, sizeof(*security)); in ipw2100_set_security_information()
5191 ("SET_SECURITY_INFORMATION: auth:%d cipher:0x%02X (level %d)\n", in ipw2100_set_security_information()
5194 security->replay_counters_number = 0; in ipw2100_set_security_information()
5214 .host_command_sequence = 0, in ipw2100_set_tx_power()
5217 int err = 0; in ipw2100_set_tx_power()
5224 cmd.host_command_parameters[0] = tmp; in ipw2100_set_tx_power()
5231 return 0; in ipw2100_set_tx_power()
5239 .host_command_sequence = 0, in ipw2100_set_ibss_beacon_interval()
5244 cmd.host_command_parameters[0] = interval; in ipw2100_set_ibss_beacon_interval()
5266 return 0; in ipw2100_set_ibss_beacon_interval()
5289 return 0; in ipw2100_queues_allocate()
5298 #define IPW_PRIVACY_CAPABLE 0x0008
5305 .host_command_sequence = 0, in ipw2100_set_wep_flags()
5310 cmd.host_command_parameters[0] = flags; in ipw2100_set_wep_flags()
5312 IPW_DEBUG_HC("WEP_FLAGS: flags = 0x%08X\n", flags); in ipw2100_set_wep_flags()
5342 #define WEP_STR_64(x) x[0],x[1],x[2],x[3],x[4]
5343 #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]
5355 * @returns 0 if OK, < 0 errno code on error.
5363 int keylen = len ? (len <= 5 ? 5 : 13) : 0; in ipw2100_set_key()
5366 .host_command_sequence = 0, in ipw2100_set_key()
5384 memset(wep_key->key + len, 0, keylen - len); in ipw2100_set_key()
5388 if (keylen == 0) in ipw2100_set_key()
5417 if (err == 0) in ipw2100_set_key()
5428 .host_command_sequence = 0, in ipw2100_set_key_index()
5436 if (idx < 0 || idx > 3) in ipw2100_set_key_index()
5463 return 0; in ipw2100_configure_security()
5474 SEC_LEVEL_0, 0, 1); in ipw2100_configure_security()
5488 use_group = 0; in ipw2100_configure_security()
5501 for (i = 0; i < 4; i++) { in ipw2100_configure_security()
5503 memset(priv->ieee->sec.keys[i], 0, WEP_KEY_LEN); in ipw2100_configure_security()
5504 priv->ieee->sec.key_sizes[i] = 0; in ipw2100_configure_security()
5523 enabled ? IPW_PRIVACY_CAPABLE : 0, 1); in ipw2100_configure_security()
5546 ipw2100_configure_security(priv, 0); in ipw2100_security_work()
5559 for (i = 0; i < 4; i++) { in shim__set_security()
5562 if (sec->key_sizes[i] == 0) in shim__set_security()
5605 priv->ieee->sec.flags & (1 << 8) ? '1' : '0', in shim__set_security()
5606 priv->ieee->sec.flags & (1 << 7) ? '1' : '0', in shim__set_security()
5607 priv->ieee->sec.flags & (1 << 6) ? '1' : '0', in shim__set_security()
5608 priv->ieee->sec.flags & (1 << 5) ? '1' : '0', in shim__set_security()
5609 priv->ieee->sec.flags & (1 << 4) ? '1' : '0', in shim__set_security()
5610 priv->ieee->sec.flags & (1 << 3) ? '1' : '0', in shim__set_security()
5611 priv->ieee->sec.flags & (1 << 2) ? '1' : '0', in shim__set_security()
5612 priv->ieee->sec.flags & (1 << 1) ? '1' : '0', in shim__set_security()
5613 priv->ieee->sec.flags & (1 << 0) ? '1' : '0'); in shim__set_security()
5621 ipw2100_configure_security(priv, 0); in shim__set_security()
5645 return 0; in ipw2100_adapter_setup()
5696 err = ipw2100_set_essid(priv, NULL, 0, batch_mode); in ipw2100_adapter_setup()
5726 return 0; in ipw2100_adapter_setup()
5742 int err = 0; in ipw2100_set_address()
5752 err = ipw2100_set_mac_address(priv, 0); in ipw2100_set_address()
5756 priv->reset_backoff = 0; in ipw2100_set_address()
5759 return 0; in ipw2100_set_address()
5779 return 0; in ipw2100_open()
5815 return 0; in ipw2100_close()
5842 return 0; in ipw2100_wpa_enable()
5852 int ret = 0; in ipw2100_wpa_set_auth_algs()
5856 ieee->open_wep = 0; in ipw2100_wpa_set_auth_algs()
5880 frame.fixed_ie_mask = 0; in ipw2100_wpa_assoc_frame()
5888 ipw2100_set_wpa_ie(priv, &frame, 0); in ipw2100_wpa_assoc_frame()
5910 return (priv->status & STATUS_ASSOCIATED) ? 1 : 0; in ipw2100_ethtool_get_link()
5923 u32 rtc = 0xa5a5a5a5; in ipw2100_hang_check()
5925 int restart = 0; in ipw2100_hang_check()
5929 if (priv->fatal_error != 0) { in ipw2100_hang_check()
6010 dev = alloc_libipw(sizeof(struct ipw2100_priv), 0); in ipw2100_alloc_device()
6031 dev->irq = 0; in ipw2100_alloc_device()
6041 /* memset() puts everything to 0, so we only have explicitly set in ipw2100_alloc_device()
6050 priv->ieee->wpa_enabled = 0; in ipw2100_alloc_device()
6051 priv->ieee->drop_unencrypted = 0; in ipw2100_alloc_device()
6052 priv->ieee->privacy_invoked = 0; in ipw2100_alloc_device()
6066 case 0: in ipw2100_alloc_device()
6074 if (channel != 0 && in ipw2100_alloc_device()
6136 int err = 0; in ipw2100_pci_init_one()
6137 int registered = 0; in ipw2100_pci_init_one()
6142 if (!(pci_resource_flags(pci_dev, 0) & IORESOURCE_MEM)) { in ipw2100_pci_init_one()
6148 ioaddr = pci_iomap(pci_dev, 0, 0); in ipw2100_pci_init_one()
6194 /* We disable the RETRY_TIMEOUT register (0x41) to keep in ipw2100_pci_init_one()
6196 pci_read_config_dword(pci_dev, 0x40, &val); in ipw2100_pci_init_one()
6197 if ((val & 0x0000ff00) != 0) in ipw2100_pci_init_one()
6198 pci_write_config_dword(pci_dev, 0x40, val & 0xffff00ff); in ipw2100_pci_init_one()
6319 free_libipw(dev, 0); in ipw2100_pci_init_one()
6371 free_libipw(dev, 0); in ipw2100_pci_remove_one()
6399 return 0; in ipw2100_suspend()
6410 return 0; in ipw2100_resume()
6418 * re-disable the RETRY_TIMEOUT register (0x41) to keep PCI Tx retries in ipw2100_resume()
6422 pci_read_config_dword(pci_dev, 0x40, &val); in ipw2100_resume()
6423 if ((val & 0x0000ff00) != 0) in ipw2100_resume()
6424 pci_write_config_dword(pci_dev, 0x40, val & 0xffff00ff); in ipw2100_resume()
6434 ipw2100_up(priv, 0); in ipw2100_resume()
6438 return 0; in ipw2100_resume()
6451 #define IPW2100_DEV_ID(x) { PCI_VENDOR_ID_INTEL, 0x1043, 0x8086, x }
6454 IPW2100_DEV_ID(0x2520), /* IN 2100A mPCI 3A */
6455 IPW2100_DEV_ID(0x2521), /* IN 2100A mPCI 3B */
6456 IPW2100_DEV_ID(0x2524), /* IN 2100A mPCI 3B */
6457 IPW2100_DEV_ID(0x2525), /* IN 2100A mPCI 3B */
6458 IPW2100_DEV_ID(0x2526), /* IN 2100A mPCI Gen A3 */
6459 IPW2100_DEV_ID(0x2522), /* IN 2100 mPCI 3B */
6460 IPW2100_DEV_ID(0x2523), /* IN 2100 mPCI 3A */
6461 IPW2100_DEV_ID(0x2527), /* IN 2100 mPCI 3B */
6462 IPW2100_DEV_ID(0x2528), /* IN 2100 mPCI 3B */
6463 IPW2100_DEV_ID(0x2529), /* IN 2100 mPCI 3B */
6464 IPW2100_DEV_ID(0x252B), /* IN 2100 mPCI 3A */
6465 IPW2100_DEV_ID(0x252C), /* IN 2100 mPCI 3A */
6466 IPW2100_DEV_ID(0x252D), /* IN 2100 mPCI 3A */
6468 IPW2100_DEV_ID(0x2550), /* IB 2100A mPCI 3B */
6469 IPW2100_DEV_ID(0x2551), /* IB 2100 mPCI 3B */
6470 IPW2100_DEV_ID(0x2553), /* IB 2100 mPCI 3B */
6471 IPW2100_DEV_ID(0x2554), /* IB 2100 mPCI 3B */
6472 IPW2100_DEV_ID(0x2555), /* IB 2100 mPCI 3B */
6474 IPW2100_DEV_ID(0x2560), /* DE 2100A mPCI 3A */
6475 IPW2100_DEV_ID(0x2562), /* DE 2100A mPCI 3A */
6476 IPW2100_DEV_ID(0x2563), /* DE 2100A mPCI 3A */
6477 IPW2100_DEV_ID(0x2561), /* DE 2100 mPCI 3A */
6478 IPW2100_DEV_ID(0x2565), /* DE 2100 mPCI 3A */
6479 IPW2100_DEV_ID(0x2566), /* DE 2100 mPCI 3A */
6480 IPW2100_DEV_ID(0x2567), /* DE 2100 mPCI 3A */
6482 IPW2100_DEV_ID(0x2570), /* GA 2100 mPCI 3B */
6484 IPW2100_DEV_ID(0x2580), /* TO 2100A mPCI 3B */
6485 IPW2100_DEV_ID(0x2582), /* TO 2100A mPCI 3B */
6486 IPW2100_DEV_ID(0x2583), /* TO 2100A mPCI 3B */
6487 IPW2100_DEV_ID(0x2581), /* TO 2100 mPCI 3B */
6488 IPW2100_DEV_ID(0x2585), /* TO 2100 mPCI 3B */
6489 IPW2100_DEV_ID(0x2586), /* TO 2100 mPCI 3B */
6490 IPW2100_DEV_ID(0x2587), /* TO 2100 mPCI 3B */
6492 IPW2100_DEV_ID(0x2590), /* SO 2100A mPCI 3B */
6493 IPW2100_DEV_ID(0x2592), /* SO 2100A mPCI 3B */
6494 IPW2100_DEV_ID(0x2591), /* SO 2100 mPCI 3B */
6495 IPW2100_DEV_ID(0x2593), /* SO 2100 mPCI 3B */
6496 IPW2100_DEV_ID(0x2596), /* SO 2100 mPCI 3B */
6497 IPW2100_DEV_ID(0x2598), /* SO 2100 mPCI 3B */
6499 IPW2100_DEV_ID(0x25A0), /* HP 2100 mPCI 3B */
6500 {0,},
6519 * @returns 0 if ok, < 0 errno node con error.
6580 return 0; in ipw2100_wx_get_name()
6589 int err = 0; in ipw2100_wx_set_freq()
6604 int c = 0; in ipw2100_wx_set_freq()
6611 fwrq->e = 0; in ipw2100_wx_set_freq()
6616 if (fwrq->e > 0 || fwrq->m > 1000) { in ipw2100_wx_set_freq()
6621 err = ipw2100_set_channel(priv, fwrq->m, 0); in ipw2100_wx_set_freq()
6639 wrqu->freq.e = 0; in ipw2100_wx_get_freq()
6647 wrqu->freq.m = 0; in ipw2100_wx_get_freq()
6650 return 0; in ipw2100_wx_get_freq()
6659 int err = 0; in ipw2100_wx_set_mode()
6664 return 0; in ipw2100_wx_set_mode()
6706 return 0; in ipw2100_wx_get_mode()
6742 memset(range, 0, sizeof(*range)); in ipw2100_wx_get_range()
6759 range->max_qual.level = 0; in ipw2100_wx_get_range()
6760 range->max_qual.noise = 0; in ipw2100_wx_get_range()
6766 range->avg_qual.noise = 0; in ipw2100_wx_get_range()
6771 for (i = 0; i < RATE_COUNT && i < IW_MAX_BITRATES; i++) { in ipw2100_wx_get_range()
6780 range->min_pmp = period_duration[0]; /* Minimal PM period */ in ipw2100_wx_get_range()
6783 range->max_pmt = timeout_duration[0]; /* Maximal PM timeout */ in ipw2100_wx_get_range()
6792 range->encoding_size[0] = 5; in ipw2100_wx_get_range()
6801 for (i = 0, level = (IPW_TX_POWER_MAX_DBM * 16); in ipw2100_wx_get_range()
6808 range->txpower_capa = 0; in ipw2100_wx_get_range()
6809 range->num_txpower = 0; in ipw2100_wx_get_range()
6826 val = 0; in ipw2100_wx_get_range()
6827 for (i = 0; i < FREQ_COUNT; i++) { in ipw2100_wx_get_range()
6841 range->event_capa[0] = (IW_EVENT_CAPA_K_0 | in ipw2100_wx_get_range()
6850 return 0; in ipw2100_wx_get_range()
6858 int err = 0; in ipw2100_wx_set_wap()
6875 err = ipw2100_set_mandatory_bssid(priv, NULL, 0); in ipw2100_wx_set_wap()
6882 err = ipw2100_set_mandatory_bssid(priv, wrqu->ap_addr.sa_data, 0); in ipw2100_wx_set_wap()
6910 return 0; in ipw2100_wx_get_wap()
6919 int length = 0; in ipw2100_wx_set_essid()
6920 int err = 0; in ipw2100_wx_set_essid()
6933 if (length == 0) { in ipw2100_wx_set_essid()
6936 err = ipw2100_set_essid(priv, NULL, 0, 0); in ipw2100_wx_set_essid()
6946 err = 0; in ipw2100_wx_set_essid()
6955 err = ipw2100_set_essid(priv, essid, length, 0); in ipw2100_wx_set_essid()
6982 wrqu->essid.length = 0; in ipw2100_wx_get_essid()
6983 wrqu->essid.flags = 0; /* active */ in ipw2100_wx_get_essid()
6986 return 0; in ipw2100_wx_get_essid()
7003 memset(priv->nick, 0, sizeof(priv->nick)); in ipw2100_wx_set_nick()
7008 return 0; in ipw2100_wx_set_nick()
7027 return 0; in ipw2100_wx_get_nick()
7037 int err = 0; in ipw2100_wx_set_rate()
7045 rate = 0; in ipw2100_wx_set_rate()
7059 if (rate == 0) in ipw2100_wx_set_rate()
7062 err = ipw2100_set_tx_rates(priv, rate, 0); in ipw2100_wx_set_rate()
7077 int err = 0; in ipw2100_wx_get_rate()
7082 wrqu->bitrate.value = 0; in ipw2100_wx_get_rate()
7083 return 0; in ipw2100_wx_get_rate()
7112 wrqu->bitrate.value = 0; in ipw2100_wx_get_rate()
7130 if (wrqu->rts.fixed == 0) in ipw2100_wx_set_rts()
7151 IPW_DEBUG_WX("SET RTS Threshold -> 0x%08X\n", value); in ipw2100_wx_set_rts()
7171 wrqu->rts.disabled = (priv->rts_threshold & RTS_DISABLED) ? 1 : 0; in ipw2100_wx_get_rts()
7173 IPW_DEBUG_WX("GET RTS Threshold -> 0x%08X\n", wrqu->rts.value); in ipw2100_wx_get_rts()
7175 return 0; in ipw2100_wx_get_rts()
7183 int err = 0, value; in ipw2100_wx_set_txpow()
7189 return 0; in ipw2100_wx_set_txpow()
7194 if (wrqu->txpower.fixed == 0) in ipw2100_wx_set_txpow()
7229 wrqu->txpower.disabled = (priv->status & STATUS_RF_KILL_MASK) ? 1 : 0; in ipw2100_wx_get_txpow()
7232 wrqu->txpower.fixed = 0; in ipw2100_wx_get_txpow()
7243 return 0; in ipw2100_wx_get_txpow()
7267 priv->ieee->fts = wrqu->frag.value & ~0x1; in ipw2100_wx_set_frag()
7273 return 0; in ipw2100_wx_set_frag()
7286 wrqu->frag.fixed = 0; /* no auto select */ in ipw2100_wx_get_frag()
7287 wrqu->frag.disabled = (priv->frag_threshold & FRAG_DISABLED) ? 1 : 0; in ipw2100_wx_get_frag()
7291 return 0; in ipw2100_wx_get_frag()
7299 int err = 0; in ipw2100_wx_set_retry()
7305 return 0; in ipw2100_wx_set_retry()
7348 wrqu->retry.disabled = 0; /* can't be disabled */ in ipw2100_wx_get_retry()
7367 return 0; in ipw2100_wx_get_retry()
7375 int err = 0; in ipw2100_wx_set_scan()
7442 int err = 0; in ipw2100_wx_set_power()
7474 IPW_DEBUG_WX("SET Power Management Mode -> 0x%02X\n", priv->power_mode); in ipw2100_wx_set_power()
7495 wrqu->power.disabled = 0; in ipw2100_wx_get_power()
7496 wrqu->power.flags = 0; in ipw2100_wx_get_power()
7501 return 0; in ipw2100_wx_get_power()
7536 ieee->wpa_ie_len = 0; in ipw2100_wx_set_genie()
7541 return 0; in ipw2100_wx_set_genie()
7552 if (ieee->wpa_ie_len == 0 || ieee->wpa_ie == NULL) { in ipw2100_wx_get_genie()
7553 wrqu->data.length = 0; in ipw2100_wx_get_genie()
7554 return 0; in ipw2100_wx_get_genie()
7563 return 0; in ipw2100_wx_get_genie()
7576 int ret = 0; in ipw2100_wx_set_auth()
7688 IEEE80211_CRYPTO_TKIP_COUNTERMEASURES) ? 1 : 0; in ipw2100_wx_get_auth()
7716 return 0; in ipw2100_wx_get_auth()
7757 return 0; in ipw2100_wx_set_mlme()
7772 int enable = (parms[0] > 0); in ipw2100_wx_set_promisc()
7773 int err = 0; in ipw2100_wx_set_promisc()
7783 err = ipw2100_set_channel(priv, parms[1], 0); in ipw2100_wx_set_promisc()
7804 return 0; in ipw2100_wx_reset()
7814 int err = 0, mode = *(int *)extra; in ipw2100_wx_set_powermode()
7822 if ((mode < 0) || (mode > POWER_MODES)) in ipw2100_wx_set_powermode()
7870 return 0; in ipw2100_wx_get_powermode()
7888 else if (mode == 0) in ipw2100_wx_set_preamble()
7895 err = ipw2100_system_config(priv, 0); in ipw2100_wx_set_preamble()
7915 snprintf(wrqu->name, IFNAMSIZ, "auto (0)"); in ipw2100_wx_get_preamble()
7917 return 0; in ipw2100_wx_get_preamble()
7936 else if (mode == 0) in ipw2100_wx_set_crc_check()
7942 err = 0; in ipw2100_wx_set_crc_check()
7962 snprintf(wrqu->name, IFNAMSIZ, "CRC ignored (0)"); in ipw2100_wx_get_crc_check()
7964 return 0; in ipw2100_wx_get_crc_check()
8020 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 2, 0, "monitor"},
8023 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 0, 0, "reset"},
8028 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "set_power"},
8031 0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | MAX_POWER_STRING,
8035 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "set_preamble"},
8038 0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | IFNAMSIZ, "get_preamble"},
8042 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "set_crc_check"},
8045 0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | IFNAMSIZ, "get_crc_check"},
8106 wstats->miss.beacon = 0; in ipw2100_wx_wireless_stats()
8107 wstats->discard.retries = 0; in ipw2100_wx_wireless_stats()
8108 wstats->qual.qual = 0; in ipw2100_wx_wireless_stats()
8109 wstats->qual.level = 0; in ipw2100_wx_wireless_stats()
8110 wstats->qual.noise = 0; in ipw2100_wx_wireless_stats()
8121 /* If we don't have a connection the quality and level is 0 */ in ipw2100_wx_wireless_stats()
8123 wstats->qual.qual = 0; in ipw2100_wx_wireless_stats()
8124 wstats->qual.level = 0; in ipw2100_wx_wireless_stats()
8193 wstats->qual.noise = 0; in ipw2100_wx_wireless_stats()
8265 0); in ipw2100_wx_event_work()
8267 ipw2100_set_essid(priv, NULL, 0, 0); in ipw2100_wx_event_work()
8277 #define IPW2100_FW_MINOR(x) ((x & 0xff) >> 8)
8278 #define IPW2100_FW_MAJOR(x) (x & 0xff)
8293 0 2 version
8294 2 2 mode == 0:BSS,1:IBSS,2:MONITOR
8328 return 0; in ipw2100_mod_firmware_load()
8357 if (rc < 0) { in ipw2100_get_firmware()
8368 return 0; in ipw2100_get_firmware()
8380 fw->version = 0; in ipw2100_release_firmware()
8398 for (i = 0; i < len; i++) in ipw2100_get_fwversion()
8400 buf[i] = '\0'; in ipw2100_get_fwversion()
8413 * 0 4 address to write to in ipw2100_fw_download()
8423 while (firmware_data_left > 0) { in ipw2100_fw_download()
8444 return 0; in ipw2100_fw_download()
8477 write_nic_word(dev, IPW2100_CONTROL_REG, 0x703); in ipw2100_ucode_download()
8479 write_nic_word(dev, IPW2100_CONTROL_REG, 0x707); in ipw2100_ucode_download()
8483 write_nic_byte(dev, 0x210014, 0x72); /* fifo width =16 */ in ipw2100_ucode_download()
8485 write_nic_byte(dev, 0x210014, 0x72); /* fifo width =16 */ in ipw2100_ucode_download()
8489 write_nic_byte(dev, 0x210000, 0x40); in ipw2100_ucode_download()
8491 write_nic_byte(dev, 0x210000, 0x0); in ipw2100_ucode_download()
8493 write_nic_byte(dev, 0x210000, 0x40); in ipw2100_ucode_download()
8498 while (microcode_data_left > 0) { in ipw2100_ucode_download()
8499 write_nic_byte(dev, 0x210010, *microcode_data++); in ipw2100_ucode_download()
8500 write_nic_byte(dev, 0x210010, *microcode_data++); in ipw2100_ucode_download()
8505 write_nic_byte(dev, 0x210000, 0x0); in ipw2100_ucode_download()
8508 /* Enable System (Reg 0) in ipw2100_ucode_download()
8510 write_nic_byte(dev, 0x210000, 0x0); in ipw2100_ucode_download()
8512 write_nic_byte(dev, 0x210000, 0x80); in ipw2100_ucode_download()
8516 write_nic_word(dev, IPW2100_CONTROL_REG, 0x703); in ipw2100_ucode_download()
8518 write_nic_word(dev, IPW2100_CONTROL_REG, 0x707); in ipw2100_ucode_download()
8522 write_nic_byte(dev, 0x210014, 0x72); // fifo width =16 in ipw2100_ucode_download()
8524 write_nic_byte(dev, 0x210014, 0x72); // fifo width =16 in ipw2100_ucode_download()
8527 /* Enable System (Reg 0) in ipw2100_ucode_download()
8529 write_nic_byte(dev, 0x210000, 0x00); // clear enable system in ipw2100_ucode_download()
8531 write_nic_byte(dev, 0x210000, 0x80); // set enable system in ipw2100_ucode_download()
8535 for (i = 0; i < 10; i++) { in ipw2100_ucode_download()
8539 read_nic_byte(dev, 0x210000, &data); in ipw2100_ucode_download()
8540 if (data & 0x1) in ipw2100_ucode_download()
8551 for (i = 0; i < 30; i++) { in ipw2100_ucode_download()
8553 for (j = 0; in ipw2100_ucode_download()
8555 read_nic_word(dev, 0x210004, ((u16 *) & response) + j); in ipw2100_ucode_download()
8557 if ((response.cmd_id == 1) && (response.ucode_valid == 0x1)) in ipw2100_ucode_download()
8570 return 0; in ipw2100_ucode_download()