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)
335 IPW_DEBUG_IO("r: 0x%08X => 0x%08X\n", reg, *val); in read_register()
343 IPW_DEBUG_IO("w: 0x%08X <= 0x%08X\n", reg, val); in write_register()
352 IPW_DEBUG_IO("r: 0x%08X => %04X\n", reg, *val); in read_register_word()
360 IPW_DEBUG_IO("r: 0x%08X => %02X\n", reg, *val); in read_register_byte()
368 IPW_DEBUG_IO("w: 0x%08X <= %04X\n", reg, val); in write_register_word()
376 IPW_DEBUG_IO("w: 0x%08X =< %02X\n", reg, val); in write_register_byte()
430 aligned_addr = addr & (~0x3); in write_nic_memory()
447 aligned_len = len & (~0x3); in write_nic_memory()
448 for (i = 0; i < aligned_len; i += 4, buf += 4, aligned_addr += 4) in write_nic_memory()
454 for (i = 0; i < dif_len; i++, buf++) in write_nic_memory()
468 aligned_addr = addr & (~0x3); in read_nic_memory()
485 aligned_len = len & (~0x3); in read_nic_memory()
486 for (i = 0; i < aligned_len; i += 4, buf += 4, aligned_addr += 4) in read_nic_memory()
492 for (i = 0; i < dif_len; i++, buf++) in read_nic_memory()
515 if (ordinals->table1_addr == 0) { in ipw2100_get_ordinal()
538 return 0; in ipw2100_get_ordinal()
570 return 0; in ipw2100_get_ordinal()
575 return 0; in ipw2100_get_ordinal()
604 return 0; in ipw2100_set_ordinal()
622 for (l = 0, i = 0; i < 2; i++) { in snprint_line()
624 for (j = 0; j < 8 && l < len; j++, l++) in snprint_line()
632 for (l = 0, i = 0; i < 2; i++) { in snprint_line()
634 for (j = 0; j < 8 && l < len; j++, l++) { in snprint_line()
652 u32 ofs = 0; in printk_buf()
676 priv->reset_backoff = 0; in schedule_reset()
690 schedule_delayed_work(&priv->reset_work, 0); in schedule_reset()
709 int err = 0; in ipw2100_hw_send_command()
787 if (err == 0) { in ipw2100_hw_send_command()
809 return 0; in ipw2100_hw_send_command()
826 u32 val1 = 0x76543210; in ipw2100_verify()
827 u32 val2 = 0xFEDCBA98; in ipw2100_verify()
829 /* Domain 0 check - all values should be DOA_DEBUG */ in ipw2100_verify()
838 for (address = 0; address < 5; address++) { in ipw2100_verify()
840 write_register(priv->net_dev, IPW_REG_DOMAIN_1_OFFSET + 0x32, in ipw2100_verify()
842 write_register(priv->net_dev, IPW_REG_DOMAIN_1_OFFSET + 0x36, in ipw2100_verify()
844 read_register(priv->net_dev, IPW_REG_DOMAIN_1_OFFSET + 0x32, in ipw2100_verify()
846 read_register(priv->net_dev, IPW_REG_DOMAIN_1_OFFSET + 0x36, in ipw2100_verify()
849 return 0; in ipw2100_verify()
872 for (i = 0; i <= IPW_CARD_DISABLE_COMPLETE_WAIT * 1000; i += 50) { in ipw2100_wait_for_card_state()
878 return 0; in ipw2100_wait_for_card_state()
892 return 0; in ipw2100_wait_for_card_state()
918 for (i = 0; i < 1000; i++) { in sw_reset_and_clock()
936 for (i = 0; i < 10000; i++) { in sw_reset_and_clock()
953 return 0; in sw_reset_and_clock()
1021 IPW_INTERNAL_REGISTER_HALT_AND_RESET, 0x80000000); in ipw2100_download_firmware()
1024 write_register(priv->net_dev, IPW_REG_RESET_REG, 0); in ipw2100_download_firmware()
1036 IPW_INTERNAL_REGISTER_HALT_AND_RESET, 0x00000000); in ipw2100_download_firmware()
1069 write_nic_dword(priv->net_dev, address, 0); in ipw2100_download_firmware()
1072 write_nic_dword(priv->net_dev, address, 0); in ipw2100_download_firmware()
1075 write_nic_dword(priv->net_dev, address, 0); in ipw2100_download_firmware()
1078 write_nic_dword(priv->net_dev, address, 0); in ipw2100_download_firmware()
1081 write_nic_dword(priv->net_dev, address, 0); in ipw2100_download_firmware()
1083 return 0; in ipw2100_download_firmware()
1103 write_register(priv->net_dev, IPW_REG_INTA_MASK, 0x0); in ipw2100_disable_interrupts()
1121 ord->table2_size &= 0x0000FFFF; in ipw2100_initialize_ordinals()
1130 u32 reg = 0; in ipw2100_hw_set_gpio()
1145 unsigned short value = 0; in rf_kill_active()
1146 u32 reg = 0; in rf_kill_active()
1152 return 0; in rf_kill_active()
1155 for (i = 0; i < MAX_RF_KILL_CHECKS; i++) { in rf_kill_active()
1158 value = (value << 1) | ((reg & IPW_BIT_GPIO_RF_KILL) ? 0 : 1); in rf_kill_active()
1161 if (value == 0) { in rf_kill_active()
1169 return (value == 0); in rf_kill_active()
1191 * EEPROM version is the byte at offset 0xfd in firmware in ipw2100_get_hw_features()
1193 read_nic_dword(priv->net_dev, addr + 0xFC, &val); in ipw2100_get_hw_features()
1194 priv->eeprom_version = (val >> 24) & 0xFF; in ipw2100_get_hw_features()
1198 * HW RF Kill enable is bit 0 in byte at offset 0x21 in firmware in ipw2100_get_hw_features()
1201 * bit = 0 signifies HW RF kill switch is supported in ipw2100_get_hw_features()
1204 read_nic_dword(priv->net_dev, addr + 0x20, &val); in ipw2100_get_hw_features()
1205 if (!((val >> 24) & 0x01)) in ipw2100_get_hw_features()
1211 return 0; in ipw2100_get_hw_features()
1228 return 0; in ipw2100_start_adapter()
1252 write_register(priv->net_dev, IPW_REG_RESET_REG, 0); in ipw2100_start_adapter()
1317 return 0; in ipw2100_start_adapter()
1327 priv->fatal_error = 0; in ipw2100_reset_fatalerror()
1373 return 0; in ipw2100_power_cycle_adapter()
1391 .host_command_sequence = 0, in ipw2100_hw_phy_off()
1392 .host_command_length = 0, in ipw2100_hw_phy_off()
1404 for (i = 0; i < 2500; i++) { in ipw2100_hw_phy_off()
1410 return 0; in ipw2100_hw_phy_off()
1422 .host_command_sequence = 0, in ipw2100_enable_adapter()
1423 .host_command_length = 0 in ipw2100_enable_adapter()
1425 int err = 0; in ipw2100_enable_adapter()
1430 return 0; in ipw2100_enable_adapter()
1453 priv->stop_hang_check = 0; in ipw2100_enable_adapter()
1468 .host_command_sequence = 0, in ipw2100_hw_stop_adapter()
1469 .host_command_length = 0, in ipw2100_hw_stop_adapter()
1475 return 0; in ipw2100_hw_stop_adapter()
1544 for (i = 5; i > 0; i--) { in ipw2100_hw_stop_adapter()
1554 if (i == 0) in ipw2100_hw_stop_adapter()
1565 return 0; in ipw2100_hw_stop_adapter()
1572 .host_command_sequence = 0, in ipw2100_disable_adapter()
1573 .host_command_length = 0 in ipw2100_disable_adapter()
1575 int err = 0; in ipw2100_disable_adapter()
1580 return 0; in ipw2100_disable_adapter()
1617 .host_command_sequence = 0, in ipw2100_set_scan_options()
1626 cmd.host_command_parameters[0] = 0; in ipw2100_set_scan_options()
1629 cmd.host_command_parameters[0] |= IPW_SCAN_NOASSOCIATE; in ipw2100_set_scan_options()
1631 cmd.host_command_parameters[0] |= IPW_SCAN_MIXED_CELL; in ipw2100_set_scan_options()
1633 cmd.host_command_parameters[0] |= IPW_SCAN_PASSIVE; in ipw2100_set_scan_options()
1639 IPW_DEBUG_HC("SET_SCAN_OPTIONS 0x%04X\n", in ipw2100_set_scan_options()
1640 cmd.host_command_parameters[0]); in ipw2100_set_scan_options()
1649 .host_command_sequence = 0, in ipw2100_start_scan()
1656 cmd.host_command_parameters[0] = 0; in ipw2100_start_scan()
1664 return 0; in ipw2100_start_scan()
1701 int err = 0; in ipw2100_up()
1708 priv->suspend_time = 0; in ipw2100_up()
1715 return 0; in ipw2100_up()
1765 libipw_set_geo(priv->ieee, &ipw_geos[0]); in ipw2100_up()
1784 priv->stop_rf_kill = 0; in ipw2100_up()
1901 for (i = 0; i < geo->bg_channels; i++) { in ipw2100_wdev_init()
1932 return 0; in ipw2100_wdev_init()
1967 ipw2100_up(priv, 0); in ipw2100_reset_adapter()
2068 .host_command_sequence = 0, in ipw2100_set_essid()
2084 /* Bug in FW currently doesn't honor bit 0 in SET_SCAN_OPTIONS to in ipw2100_set_essid()
2089 for (i = 0; i < IW_ESSID_MAX_SIZE; i++) in ipw2100_set_essid()
2090 bogus[i] = 0x18 + i; in ipw2100_set_essid()
2099 memset(priv->essid + ssid_len, 0, IW_ESSID_MAX_SIZE - ssid_len); in ipw2100_set_essid()
2135 schedule_delayed_work(&priv->security_work, 0); in isr_indicate_association_lost()
2137 schedule_delayed_work(&priv->wx_event_work, 0); in isr_indicate_association_lost()
2150 priv->stop_rf_kill = 0; in isr_indicate_rf_kill()
2160 wrqu.data.length = 0; in ipw2100_scan_event()
2161 wrqu.data.flags = 0; in ipw2100_scan_event()
2177 priv->user_requested_scan = 0; in isr_scan_complete()
2178 mod_delayed_work(system_wq, &priv->scan_event, 0); in isr_scan_complete()
2233 for (i = 0; status_handlers[i].status != -1; i++) { in isr_status_change()
2295 return 0; in ipw2100_alloc_skb()
2298 #define SEARCH_ERROR 0xffffffff
2299 #define SEARCH_FAIL 0xfffffffe
2300 #define SEARCH_SUCCESS 0xfffffff0
2301 #define SEARCH_DISCARD 0
2304 #define SNAPSHOT_ADDR(ofs) (priv->snapshot[((ofs) >> 12) & 0xff] + ((ofs) & 0xfff))
2308 if (!priv->snapshot[0]) in ipw2100_snapshot_free()
2310 for (i = 0; i < 0x30; i++) in ipw2100_snapshot_free()
2312 priv->snapshot[0] = NULL; in ipw2100_snapshot_free()
2319 if (priv->snapshot[0]) in ipw2100_snapshot_alloc()
2321 for (i = 0; i < 0x30; i++) { in ipw2100_snapshot_alloc()
2322 priv->snapshot[i] = kmalloc(0x1000, GFP_ATOMIC); in ipw2100_snapshot_alloc()
2326 while (i > 0) in ipw2100_snapshot_alloc()
2328 priv->snapshot[0] = NULL; in ipw2100_snapshot_alloc()
2329 return 0; in ipw2100_snapshot_alloc()
2350 for (ret = SEARCH_FAIL, i = 0; i < 0x30000; i += 4) { in ipw2100_match_buf()
2356 for (j = 0; j < 4; j++) { in ipw2100_match_buf()
2378 * 0) Disconnect the SKB from the firmware (just unmap)
2402 IPW_DEBUG_INFO(": PCI latency error detected at 0x%04zX.\n", in ipw2100_corruption_detected()
2423 "offset 0x%06X, length %d:\n", in ipw2100_corruption_detected()
2562 ipw_rt->rt_hdr.it_pad = 0; /* always good to zero */ in isr_rx_monitor()
2610 return 0; in ipw2100_corruption_check()
2615 return 0; in ipw2100_corruption_check()
2694 stats.mask = 0; in __ipw2100_rx_process()
2695 if (stats.rssi != 0) in __ipw2100_rx_process()
2742 rxq->drv[i].status.info.field = 0; in __ipw2100_rx_process()
2748 /* backtrack one entry, wrapping to end if at 0 */ in __ipw2100_rx_process()
2803 u32 r, w, frag_num = 0; in __ipw2100_tx_process()
2806 return 0; in __ipw2100_tx_process()
2832 return 0; in __ipw2100_tx_process()
2871 return 0; in __ipw2100_tx_process()
2900 if (txq->drv[txq->oldest].status.info.fields.txType != 0) in __ipw2100_tx_process()
2907 for (i = 0; i < frag_num; i++) { in __ipw2100_tx_process()
2972 int i = 0; in __ipw2100_tx_complete()
3060 int i = 0; in ipw2100_tx_send_data()
3097 fragments[0]->data; in ipw2100_tx_send_data()
3112 ipw_hdr->host_command_reg1 = 0; in ipw2100_tx_send_data()
3115 ipw_hdr->needs_encryption = 0; in ipw2100_tx_send_data()
3122 ipw_hdr->fragment_size = 0; in ipw2100_tx_send_data()
3141 for (i = 0; i < packet->info.d_struct.txb->nr_frags; i++) { in ipw2100_tx_send_data()
3207 IPW_DEBUG_ISR("enter - INTA: 0x%08lX\n", in ipw2100_irq_tasklet()
3216 IPW_DEBUG_ISR("INTA: 0x%08lX\n", in ipw2100_irq_tasklet()
3226 IPW_DEBUG_INFO("%s: Fatal error value: 0x%08X\n", in ipw2100_irq_tasklet()
3230 IPW_DEBUG_INFO("%s: Fatal error address value: 0x%08X\n", in ipw2100_irq_tasklet()
3339 if (inta == 0xFFFFFFFF) { in ipw2100_interrupt()
3341 printk(KERN_WARNING DRV_NAME ": IRQ INTA == 0xFFFFFFFF\n"); in ipw2100_interrupt()
3392 IPW_DEBUG_TX("Sending fragment (%d bytes):\n", txb->fragments[0]->len); in ipw2100_tx()
3393 printk_buf(IPW_DL_TX, txb->fragments[0]->data, txb->fragments[0]->len); in ipw2100_tx()
3427 for (i = 0; i < IPW_COMMAND_POOL_SIZE; i++) { in ipw2100_msg_allocate()
3446 return 0; in ipw2100_msg_allocate()
3448 for (j = 0; j < i; j++) { in ipw2100_msg_allocate()
3468 for (i = 0; i < IPW_COMMAND_POOL_SIZE; i++) in ipw2100_msg_initialize()
3472 return 0; in ipw2100_msg_initialize()
3482 for (i = 0; i < IPW_COMMAND_POOL_SIZE; i++) { in ipw2100_msg_free()
3501 for (i = 0; i < 16; i++) { in pci_show()
3503 for (j = 0; j < 16; j += 4) { in pci_show()
3519 return sprintf(buf, "0x%08x\n", (int)p->config); in cfg_show()
3528 return sprintf(buf, "0x%08x\n", (int)p->status); in status_show()
3537 return sprintf(buf, "0x%08x\n", (int)p->capability); in capability_show()
3558 IPW2100_NIC(0x210014, 1), IPW2100_NIC(0x210000, 1),};
3705 "0 if not associated, else pointer to AP table entry"),
3735 IPW2100_ORD(POWER_MGMT_MODE, "Power mode - 0=CAM, 1=PSP"),
3784 u32 val = 0; in registers_show()
3788 for (i = 0; i < ARRAY_SIZE(hw_data); i++) { in registers_show()
3809 for (i = 0; i < ARRAY_SIZE(nic_data); i++) { in hardware_show()
3845 static unsigned long loop = 0; in memory_show()
3846 int len = 0; in memory_show()
3851 if (loop >= 0x30000) in memory_show()
3852 loop = 0; in memory_show()
3855 while (len < PAGE_SIZE - 128 && loop < 0x30000) { in memory_show()
3857 if (priv->snapshot[0]) in memory_show()
3858 for (i = 0; i < 4; i++) in memory_show()
3862 for (i = 0; i < 4; i++) in memory_show()
3871 ((u8 *) buffer)[0x0], in memory_show()
3872 ((u8 *) buffer)[0x1], in memory_show()
3873 ((u8 *) buffer)[0x2], in memory_show()
3874 ((u8 *) buffer)[0x3], in memory_show()
3875 ((u8 *) buffer)[0x4], in memory_show()
3876 ((u8 *) buffer)[0x5], in memory_show()
3877 ((u8 *) buffer)[0x6], in memory_show()
3878 ((u8 *) buffer)[0x7], in memory_show()
3879 ((u8 *) buffer)[0x8], in memory_show()
3880 ((u8 *) buffer)[0x9], in memory_show()
3881 ((u8 *) buffer)[0xa], in memory_show()
3882 ((u8 *) buffer)[0xb], in memory_show()
3883 ((u8 *) buffer)[0xc], in memory_show()
3884 ((u8 *) buffer)[0xd], in memory_show()
3885 ((u8 *) buffer)[0xe], in memory_show()
3886 ((u8 *) buffer)[0xf]); in memory_show()
3909 if (p[0] == '1' || in memory_store()
3910 (count >= 2 && tolower(p[0]) == 'o' && tolower(p[1]) == 'n')) { in memory_store()
3915 } else if (p[0] == '0' || (count >= 2 && tolower(p[0]) == 'o' && in memory_store()
3919 priv->dump_raw = 0; in memory_store()
3921 } else if (tolower(p[0]) == 'r') { in memory_store()
3926 IPW_DEBUG_INFO("%s: Usage: 0|on = HEX, 1|off = RAW, " in memory_store()
3938 u32 val = 0; in ordinals_show()
3939 int len = 0; in ordinals_show()
3941 static int loop = 0; in ordinals_show()
3944 return 0; in ordinals_show()
3947 loop = 0; in ordinals_show()
3955 len += sprintf(buf + len, "[0x%02X] = ERROR %s\n", in ordinals_show()
3959 len += sprintf(buf + len, "[0x%02X] = 0x%08X %s\n", in ordinals_show()
3983 priv->snapshot[0] ? "YES" : "NO"); in stats_show()
3996 return 0; in ipw2100_switch_mode()
4025 ipw2100_firmware.version = 0; in ipw2100_switch_mode()
4029 priv->reset_backoff = 0; in ipw2100_switch_mode()
4032 return 0; in ipw2100_switch_mode()
4039 int len = 0; in internals_show()
4095 u32 chan = 0; in bssinfo_show()
4101 return 0; in bssinfo_show()
4103 memset(essid, 0, sizeof(essid)); in bssinfo_show()
4104 memset(bssid, 0, sizeof(bssid)); in bssinfo_show()
4137 return sprintf(buf, "0x%08X\n", ipw2100_debug_level); in debug_level_show()
4146 ret = kstrtou32(buf, 0, &val); in debug_level_store()
4165 out += sprintf(out, "0x%08X\n", priv->fatal_error); in fatal_error_show()
4167 out += sprintf(out, "0\n"); in fatal_error_show()
4174 out += sprintf(out, "%d. 0x%08X\n", i, in fatal_error_show()
4212 ret = kstrtoul(buf, 0, &val); in scan_age_store()
4229 /* 0 - RF kill not enabled in rf_kill_show()
4234 int val = ((priv->status & STATUS_RF_KILL_SW) ? 0x1 : 0x0) | in rf_kill_show()
4235 (rf_kill_active(priv) ? 0x2 : 0x0); in rf_kill_show()
4241 if ((disable_radio ? 1 : 0) == in ipw_radio_kill_sw()
4242 (priv->status & STATUS_RF_KILL_SW ? 1 : 0)) in ipw_radio_kill_sw()
4243 return 0; in ipw_radio_kill_sw()
4259 priv->stop_rf_kill = 0; in ipw_radio_kill_sw()
4274 ipw_radio_kill_sw(priv, buf[0] == '1'); in rf_kill_store()
4318 return 0; in status_queue_allocate()
4341 memset(q, 0, sizeof(struct ipw2100_bd_queue)); in bd_queue_allocate()
4355 return 0; in bd_queue_allocate()
4426 for (i = 0; i < TX_PENDED_QUEUE_LENGTH; i++) { in ipw2100_tx_allocate()
4446 return 0; in ipw2100_tx_allocate()
4448 for (j = 0; j < i; j++) { in ipw2100_tx_allocate()
4481 for (i = 0; i < TX_PENDED_QUEUE_LENGTH; i++) { in ipw2100_tx_initialize()
4495 priv->tx_queue.oldest = 0; in ipw2100_tx_initialize()
4497 priv->tx_queue.next = 0; in ipw2100_tx_initialize()
4522 for (i = 0; i < TX_PENDED_QUEUE_LENGTH; i++) { in ipw2100_tx_free()
4576 for (i = 0; i < RX_QUEUE_LENGTH; i++) { in ipw2100_rx_allocate()
4588 priv->status_queue.drv[i].status_fields = 0; in ipw2100_rx_allocate()
4592 return 0; in ipw2100_rx_allocate()
4594 for (j = 0; j < i; j++) { in ipw2100_rx_allocate()
4616 priv->rx_queue.oldest = 0; in ipw2100_rx_initialize()
4648 for (i = 0; i < RX_QUEUE_LENGTH; i++) { in ipw2100_rx_free()
4680 return 0; in ipw2100_read_mac_address()
4693 .host_command_sequence = 0, in ipw2100_set_mac_address()
4720 .host_command_sequence = 0, in ipw2100_set_port_type()
4727 cmd.host_command_parameters[0] = IPW_BSS; in ipw2100_set_port_type()
4730 cmd.host_command_parameters[0] = IPW_IBSS; in ipw2100_set_port_type()
4761 .host_command_sequence = 0, in ipw2100_set_channel()
4766 cmd.host_command_parameters[0] = channel; in ipw2100_set_channel()
4772 return 0; in ipw2100_set_channel()
4774 if ((channel != 0) && in ipw2100_set_channel()
4803 return 0; in ipw2100_set_channel()
4810 .host_command_sequence = 0, in ipw2100_system_config()
4825 cmd.host_command_parameters[0] |= IPW_CFG_IBSS_AUTO_START; in ipw2100_system_config()
4827 cmd.host_command_parameters[0] |= IPW_CFG_IBSS_MASK | in ipw2100_system_config()
4831 cmd.host_command_parameters[0] |= IPW_CFG_PREAMBLE_AUTO; in ipw2100_system_config()
4843 /*cmd.host_command_parameters[0] |= DIVERSITY_ANTENNA_A; */ in ipw2100_system_config()
4853 cmd.host_command_sequence = 0; in ipw2100_system_config()
4854 cmd.host_command_length = 0; in ipw2100_system_config()
4864 return 0; in ipw2100_system_config()
4872 .host_command_sequence = 0, in ipw2100_set_tx_rates()
4877 cmd.host_command_parameters[0] = rate & TX_RATE_MASK; in ipw2100_set_tx_rates()
4904 return 0; in ipw2100_set_tx_rates()
4911 .host_command_sequence = 0, in ipw2100_set_power_mode()
4916 cmd.host_command_parameters[0] = power_level; in ipw2100_set_power_mode()
4931 cmd.host_command_parameters[0] = (u32) priv->adhoc_power; in ipw2100_set_power_mode()
4939 return 0; in ipw2100_set_power_mode()
4946 .host_command_sequence = 0, in ipw2100_set_rts_threshold()
4952 cmd.host_command_parameters[0] = MAX_RTS_THRESHOLD; in ipw2100_set_rts_threshold()
4954 cmd.host_command_parameters[0] = threshold & ~RTS_DISABLED; in ipw2100_set_rts_threshold()
4962 return 0; in ipw2100_set_rts_threshold()
4965 #if 0
4971 .host_command_sequence = 0,
4973 .host_command_parameters[0] = 0,
4983 if (threshold == 0)
4990 cmd.host_command_parameters[0] = threshold;
5010 .host_command_sequence = 0, in ipw2100_set_short_retry()
5015 cmd.host_command_parameters[0] = retry; in ipw2100_set_short_retry()
5023 return 0; in ipw2100_set_short_retry()
5030 .host_command_sequence = 0, in ipw2100_set_long_retry()
5035 cmd.host_command_parameters[0] = retry; in ipw2100_set_long_retry()
5043 return 0; in ipw2100_set_long_retry()
5051 .host_command_sequence = 0, in ipw2100_set_mandatory_bssid()
5052 .host_command_length = (bssid == NULL) ? 0 : ETH_ALEN in ipw2100_set_mandatory_bssid()
5084 .host_command_sequence = 0, in ipw2100_disassociate_bssid()
5112 .host_command_sequence = 0, in ipw2100_set_wpa_ie()
5154 .host_command_sequence = 0, in ipw2100_set_security_information()
5160 memset(security, 0, sizeof(*security)); in ipw2100_set_security_information()
5193 ("SET_SECURITY_INFORMATION: auth:%d cipher:0x%02X (level %d)\n", in ipw2100_set_security_information()
5196 security->replay_counters_number = 0; in ipw2100_set_security_information()
5216 .host_command_sequence = 0, in ipw2100_set_tx_power()
5219 int err = 0; in ipw2100_set_tx_power()
5226 cmd.host_command_parameters[0] = tmp; in ipw2100_set_tx_power()
5233 return 0; in ipw2100_set_tx_power()
5241 .host_command_sequence = 0, in ipw2100_set_ibss_beacon_interval()
5246 cmd.host_command_parameters[0] = interval; in ipw2100_set_ibss_beacon_interval()
5268 return 0; in ipw2100_set_ibss_beacon_interval()
5291 return 0; in ipw2100_queues_allocate()
5300 #define IPW_PRIVACY_CAPABLE 0x0008
5307 .host_command_sequence = 0, in ipw2100_set_wep_flags()
5312 cmd.host_command_parameters[0] = flags; in ipw2100_set_wep_flags()
5314 IPW_DEBUG_HC("WEP_FLAGS: flags = 0x%08X\n", flags); in ipw2100_set_wep_flags()
5344 #define WEP_STR_64(x) x[0],x[1],x[2],x[3],x[4]
5345 #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]
5357 * @returns 0 if OK, < 0 errno code on error.
5365 int keylen = len ? (len <= 5 ? 5 : 13) : 0; in ipw2100_set_key()
5368 .host_command_sequence = 0, in ipw2100_set_key()
5386 memset(wep_key->key + len, 0, keylen - len); in ipw2100_set_key()
5390 if (keylen == 0) in ipw2100_set_key()
5419 if (err == 0) in ipw2100_set_key()
5430 .host_command_sequence = 0, in ipw2100_set_key_index()
5438 if (idx < 0 || idx > 3) in ipw2100_set_key_index()
5465 return 0; in ipw2100_configure_security()
5476 SEC_LEVEL_0, 0, 1); in ipw2100_configure_security()
5490 use_group = 0; in ipw2100_configure_security()
5503 for (i = 0; i < 4; i++) { in ipw2100_configure_security()
5505 memset(priv->ieee->sec.keys[i], 0, WEP_KEY_LEN); in ipw2100_configure_security()
5506 priv->ieee->sec.key_sizes[i] = 0; in ipw2100_configure_security()
5525 enabled ? IPW_PRIVACY_CAPABLE : 0, 1); in ipw2100_configure_security()
5548 ipw2100_configure_security(priv, 0); in ipw2100_security_work()
5561 for (i = 0; i < 4; i++) { in shim__set_security()
5564 if (sec->key_sizes[i] == 0) in shim__set_security()
5607 priv->ieee->sec.flags & (1 << 8) ? '1' : '0', in shim__set_security()
5608 priv->ieee->sec.flags & (1 << 7) ? '1' : '0', in shim__set_security()
5609 priv->ieee->sec.flags & (1 << 6) ? '1' : '0', in shim__set_security()
5610 priv->ieee->sec.flags & (1 << 5) ? '1' : '0', in shim__set_security()
5611 priv->ieee->sec.flags & (1 << 4) ? '1' : '0', in shim__set_security()
5612 priv->ieee->sec.flags & (1 << 3) ? '1' : '0', in shim__set_security()
5613 priv->ieee->sec.flags & (1 << 2) ? '1' : '0', in shim__set_security()
5614 priv->ieee->sec.flags & (1 << 1) ? '1' : '0', in shim__set_security()
5615 priv->ieee->sec.flags & (1 << 0) ? '1' : '0'); in shim__set_security()
5623 ipw2100_configure_security(priv, 0); in shim__set_security()
5647 return 0; in ipw2100_adapter_setup()
5698 err = ipw2100_set_essid(priv, NULL, 0, batch_mode); in ipw2100_adapter_setup()
5728 return 0; in ipw2100_adapter_setup()
5744 int err = 0; in ipw2100_set_address()
5754 err = ipw2100_set_mac_address(priv, 0); in ipw2100_set_address()
5758 priv->reset_backoff = 0; in ipw2100_set_address()
5761 return 0; in ipw2100_set_address()
5781 return 0; in ipw2100_open()
5817 return 0; in ipw2100_close()
5844 return 0; in ipw2100_wpa_enable()
5854 int ret = 0; in ipw2100_wpa_set_auth_algs()
5858 ieee->open_wep = 0; in ipw2100_wpa_set_auth_algs()
5882 frame.fixed_ie_mask = 0; in ipw2100_wpa_assoc_frame()
5890 ipw2100_set_wpa_ie(priv, &frame, 0); in ipw2100_wpa_assoc_frame()
5915 return (priv->status & STATUS_ASSOCIATED) ? 1 : 0; in ipw2100_ethtool_get_link()
5928 u32 rtc = 0xa5a5a5a5; in ipw2100_hang_check()
5930 int restart = 0; in ipw2100_hang_check()
5934 if (priv->fatal_error != 0) { in ipw2100_hang_check()
6015 dev = alloc_libipw(sizeof(struct ipw2100_priv), 0); in ipw2100_alloc_device()
6036 dev->irq = 0; in ipw2100_alloc_device()
6046 /* memset() puts everything to 0, so we only have explicitly set in ipw2100_alloc_device()
6055 priv->ieee->wpa_enabled = 0; in ipw2100_alloc_device()
6056 priv->ieee->drop_unencrypted = 0; in ipw2100_alloc_device()
6057 priv->ieee->privacy_invoked = 0; in ipw2100_alloc_device()
6071 case 0: in ipw2100_alloc_device()
6079 if (channel != 0 && in ipw2100_alloc_device()
6141 int err = 0; in ipw2100_pci_init_one()
6142 int registered = 0; in ipw2100_pci_init_one()
6147 if (!(pci_resource_flags(pci_dev, 0) & IORESOURCE_MEM)) { in ipw2100_pci_init_one()
6153 ioaddr = pci_iomap(pci_dev, 0, 0); in ipw2100_pci_init_one()
6199 /* We disable the RETRY_TIMEOUT register (0x41) to keep in ipw2100_pci_init_one()
6201 pci_read_config_dword(pci_dev, 0x40, &val); in ipw2100_pci_init_one()
6202 if ((val & 0x0000ff00) != 0) in ipw2100_pci_init_one()
6203 pci_write_config_dword(pci_dev, 0x40, val & 0xffff00ff); in ipw2100_pci_init_one()
6324 free_libipw(dev, 0); in ipw2100_pci_init_one()
6376 free_libipw(dev, 0); in ipw2100_pci_remove_one()
6404 return 0; in ipw2100_suspend()
6415 return 0; in ipw2100_resume()
6423 * re-disable the RETRY_TIMEOUT register (0x41) to keep PCI Tx retries in ipw2100_resume()
6427 pci_read_config_dword(pci_dev, 0x40, &val); in ipw2100_resume()
6428 if ((val & 0x0000ff00) != 0) in ipw2100_resume()
6429 pci_write_config_dword(pci_dev, 0x40, val & 0xffff00ff); in ipw2100_resume()
6439 ipw2100_up(priv, 0); in ipw2100_resume()
6443 return 0; in ipw2100_resume()
6456 #define IPW2100_DEV_ID(x) { PCI_VENDOR_ID_INTEL, 0x1043, 0x8086, x }
6459 IPW2100_DEV_ID(0x2520), /* IN 2100A mPCI 3A */
6460 IPW2100_DEV_ID(0x2521), /* IN 2100A mPCI 3B */
6461 IPW2100_DEV_ID(0x2524), /* IN 2100A mPCI 3B */
6462 IPW2100_DEV_ID(0x2525), /* IN 2100A mPCI 3B */
6463 IPW2100_DEV_ID(0x2526), /* IN 2100A mPCI Gen A3 */
6464 IPW2100_DEV_ID(0x2522), /* IN 2100 mPCI 3B */
6465 IPW2100_DEV_ID(0x2523), /* IN 2100 mPCI 3A */
6466 IPW2100_DEV_ID(0x2527), /* IN 2100 mPCI 3B */
6467 IPW2100_DEV_ID(0x2528), /* IN 2100 mPCI 3B */
6468 IPW2100_DEV_ID(0x2529), /* IN 2100 mPCI 3B */
6469 IPW2100_DEV_ID(0x252B), /* IN 2100 mPCI 3A */
6470 IPW2100_DEV_ID(0x252C), /* IN 2100 mPCI 3A */
6471 IPW2100_DEV_ID(0x252D), /* IN 2100 mPCI 3A */
6473 IPW2100_DEV_ID(0x2550), /* IB 2100A mPCI 3B */
6474 IPW2100_DEV_ID(0x2551), /* IB 2100 mPCI 3B */
6475 IPW2100_DEV_ID(0x2553), /* IB 2100 mPCI 3B */
6476 IPW2100_DEV_ID(0x2554), /* IB 2100 mPCI 3B */
6477 IPW2100_DEV_ID(0x2555), /* IB 2100 mPCI 3B */
6479 IPW2100_DEV_ID(0x2560), /* DE 2100A mPCI 3A */
6480 IPW2100_DEV_ID(0x2562), /* DE 2100A mPCI 3A */
6481 IPW2100_DEV_ID(0x2563), /* DE 2100A mPCI 3A */
6482 IPW2100_DEV_ID(0x2561), /* DE 2100 mPCI 3A */
6483 IPW2100_DEV_ID(0x2565), /* DE 2100 mPCI 3A */
6484 IPW2100_DEV_ID(0x2566), /* DE 2100 mPCI 3A */
6485 IPW2100_DEV_ID(0x2567), /* DE 2100 mPCI 3A */
6487 IPW2100_DEV_ID(0x2570), /* GA 2100 mPCI 3B */
6489 IPW2100_DEV_ID(0x2580), /* TO 2100A mPCI 3B */
6490 IPW2100_DEV_ID(0x2582), /* TO 2100A mPCI 3B */
6491 IPW2100_DEV_ID(0x2583), /* TO 2100A mPCI 3B */
6492 IPW2100_DEV_ID(0x2581), /* TO 2100 mPCI 3B */
6493 IPW2100_DEV_ID(0x2585), /* TO 2100 mPCI 3B */
6494 IPW2100_DEV_ID(0x2586), /* TO 2100 mPCI 3B */
6495 IPW2100_DEV_ID(0x2587), /* TO 2100 mPCI 3B */
6497 IPW2100_DEV_ID(0x2590), /* SO 2100A mPCI 3B */
6498 IPW2100_DEV_ID(0x2592), /* SO 2100A mPCI 3B */
6499 IPW2100_DEV_ID(0x2591), /* SO 2100 mPCI 3B */
6500 IPW2100_DEV_ID(0x2593), /* SO 2100 mPCI 3B */
6501 IPW2100_DEV_ID(0x2596), /* SO 2100 mPCI 3B */
6502 IPW2100_DEV_ID(0x2598), /* SO 2100 mPCI 3B */
6504 IPW2100_DEV_ID(0x25A0), /* HP 2100 mPCI 3B */
6505 {0,},
6524 * @returns 0 if ok, < 0 errno node con error.
6585 return 0; in ipw2100_wx_get_name()
6594 int err = 0; in ipw2100_wx_set_freq()
6609 int c = 0; in ipw2100_wx_set_freq()
6616 fwrq->e = 0; in ipw2100_wx_set_freq()
6621 if (fwrq->e > 0 || fwrq->m > 1000) { in ipw2100_wx_set_freq()
6626 err = ipw2100_set_channel(priv, fwrq->m, 0); in ipw2100_wx_set_freq()
6644 wrqu->freq.e = 0; in ipw2100_wx_get_freq()
6652 wrqu->freq.m = 0; in ipw2100_wx_get_freq()
6655 return 0; in ipw2100_wx_get_freq()
6664 int err = 0; in ipw2100_wx_set_mode()
6669 return 0; in ipw2100_wx_set_mode()
6711 return 0; in ipw2100_wx_get_mode()
6747 memset(range, 0, sizeof(*range)); in ipw2100_wx_get_range()
6764 range->max_qual.level = 0; in ipw2100_wx_get_range()
6765 range->max_qual.noise = 0; in ipw2100_wx_get_range()
6771 range->avg_qual.noise = 0; in ipw2100_wx_get_range()
6776 for (i = 0; i < RATE_COUNT && i < IW_MAX_BITRATES; i++) { in ipw2100_wx_get_range()
6785 range->min_pmp = period_duration[0]; /* Minimal PM period */ in ipw2100_wx_get_range()
6788 range->max_pmt = timeout_duration[0]; /* Maximal PM timeout */ in ipw2100_wx_get_range()
6797 range->encoding_size[0] = 5; in ipw2100_wx_get_range()
6806 for (i = 0, level = (IPW_TX_POWER_MAX_DBM * 16); in ipw2100_wx_get_range()
6813 range->txpower_capa = 0; in ipw2100_wx_get_range()
6814 range->num_txpower = 0; in ipw2100_wx_get_range()
6831 val = 0; in ipw2100_wx_get_range()
6832 for (i = 0; i < FREQ_COUNT; i++) { in ipw2100_wx_get_range()
6846 range->event_capa[0] = (IW_EVENT_CAPA_K_0 | in ipw2100_wx_get_range()
6855 return 0; in ipw2100_wx_get_range()
6863 int err = 0; in ipw2100_wx_set_wap()
6880 err = ipw2100_set_mandatory_bssid(priv, NULL, 0); in ipw2100_wx_set_wap()
6887 err = ipw2100_set_mandatory_bssid(priv, wrqu->ap_addr.sa_data, 0); in ipw2100_wx_set_wap()
6915 return 0; in ipw2100_wx_get_wap()
6924 int length = 0; in ipw2100_wx_set_essid()
6925 int err = 0; in ipw2100_wx_set_essid()
6938 if (length == 0) { in ipw2100_wx_set_essid()
6941 err = ipw2100_set_essid(priv, NULL, 0, 0); in ipw2100_wx_set_essid()
6951 err = 0; in ipw2100_wx_set_essid()
6960 err = ipw2100_set_essid(priv, essid, length, 0); in ipw2100_wx_set_essid()
6987 wrqu->essid.length = 0; in ipw2100_wx_get_essid()
6988 wrqu->essid.flags = 0; /* active */ in ipw2100_wx_get_essid()
6991 return 0; in ipw2100_wx_get_essid()
7008 memset(priv->nick, 0, sizeof(priv->nick)); in ipw2100_wx_set_nick()
7013 return 0; in ipw2100_wx_set_nick()
7032 return 0; in ipw2100_wx_get_nick()
7042 int err = 0; in ipw2100_wx_set_rate()
7050 rate = 0; in ipw2100_wx_set_rate()
7064 if (rate == 0) in ipw2100_wx_set_rate()
7067 err = ipw2100_set_tx_rates(priv, rate, 0); in ipw2100_wx_set_rate()
7082 int err = 0; in ipw2100_wx_get_rate()
7087 wrqu->bitrate.value = 0; in ipw2100_wx_get_rate()
7088 return 0; in ipw2100_wx_get_rate()
7117 wrqu->bitrate.value = 0; in ipw2100_wx_get_rate()
7135 if (wrqu->rts.fixed == 0) in ipw2100_wx_set_rts()
7156 IPW_DEBUG_WX("SET RTS Threshold -> 0x%08X\n", value); in ipw2100_wx_set_rts()
7176 wrqu->rts.disabled = (priv->rts_threshold & RTS_DISABLED) ? 1 : 0; in ipw2100_wx_get_rts()
7178 IPW_DEBUG_WX("GET RTS Threshold -> 0x%08X\n", wrqu->rts.value); in ipw2100_wx_get_rts()
7180 return 0; in ipw2100_wx_get_rts()
7188 int err = 0, value; in ipw2100_wx_set_txpow()
7194 return 0; in ipw2100_wx_set_txpow()
7199 if (wrqu->txpower.fixed == 0) in ipw2100_wx_set_txpow()
7234 wrqu->txpower.disabled = (priv->status & STATUS_RF_KILL_MASK) ? 1 : 0; in ipw2100_wx_get_txpow()
7237 wrqu->txpower.fixed = 0; in ipw2100_wx_get_txpow()
7248 return 0; in ipw2100_wx_get_txpow()
7272 priv->ieee->fts = wrqu->frag.value & ~0x1; in ipw2100_wx_set_frag()
7278 return 0; in ipw2100_wx_set_frag()
7291 wrqu->frag.fixed = 0; /* no auto select */ in ipw2100_wx_get_frag()
7292 wrqu->frag.disabled = (priv->frag_threshold & FRAG_DISABLED) ? 1 : 0; in ipw2100_wx_get_frag()
7296 return 0; in ipw2100_wx_get_frag()
7304 int err = 0; in ipw2100_wx_set_retry()
7310 return 0; in ipw2100_wx_set_retry()
7353 wrqu->retry.disabled = 0; /* can't be disabled */ in ipw2100_wx_get_retry()
7372 return 0; in ipw2100_wx_get_retry()
7380 int err = 0; in ipw2100_wx_set_scan()
7447 int err = 0; in ipw2100_wx_set_power()
7479 IPW_DEBUG_WX("SET Power Management Mode -> 0x%02X\n", priv->power_mode); in ipw2100_wx_set_power()
7500 wrqu->power.disabled = 0; in ipw2100_wx_get_power()
7501 wrqu->power.flags = 0; in ipw2100_wx_get_power()
7506 return 0; in ipw2100_wx_get_power()
7541 ieee->wpa_ie_len = 0; in ipw2100_wx_set_genie()
7546 return 0; in ipw2100_wx_set_genie()
7557 if (ieee->wpa_ie_len == 0 || ieee->wpa_ie == NULL) { in ipw2100_wx_get_genie()
7558 wrqu->data.length = 0; in ipw2100_wx_get_genie()
7559 return 0; in ipw2100_wx_get_genie()
7568 return 0; in ipw2100_wx_get_genie()
7581 int ret = 0; in ipw2100_wx_set_auth()
7693 IEEE80211_CRYPTO_TKIP_COUNTERMEASURES) ? 1 : 0; in ipw2100_wx_get_auth()
7721 return 0; in ipw2100_wx_get_auth()
7762 return 0; in ipw2100_wx_set_mlme()
7777 int enable = (parms[0] > 0); in ipw2100_wx_set_promisc()
7778 int err = 0; in ipw2100_wx_set_promisc()
7788 err = ipw2100_set_channel(priv, parms[1], 0); in ipw2100_wx_set_promisc()
7809 return 0; in ipw2100_wx_reset()
7819 int err = 0, mode = *(int *)extra; in ipw2100_wx_set_powermode()
7827 if ((mode < 0) || (mode > POWER_MODES)) in ipw2100_wx_set_powermode()
7875 return 0; in ipw2100_wx_get_powermode()
7893 else if (mode == 0) in ipw2100_wx_set_preamble()
7900 err = ipw2100_system_config(priv, 0); in ipw2100_wx_set_preamble()
7920 snprintf(wrqu->name, IFNAMSIZ, "auto (0)"); in ipw2100_wx_get_preamble()
7922 return 0; in ipw2100_wx_get_preamble()
7941 else if (mode == 0) in ipw2100_wx_set_crc_check()
7947 err = 0; in ipw2100_wx_set_crc_check()
7967 snprintf(wrqu->name, IFNAMSIZ, "CRC ignored (0)"); in ipw2100_wx_get_crc_check()
7969 return 0; in ipw2100_wx_get_crc_check()
8025 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 2, 0, "monitor"},
8028 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 0, 0, "reset"},
8033 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "set_power"},
8036 0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | MAX_POWER_STRING,
8040 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "set_preamble"},
8043 0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | IFNAMSIZ, "get_preamble"},
8047 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "set_crc_check"},
8050 0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | IFNAMSIZ, "get_crc_check"},
8111 wstats->miss.beacon = 0; in ipw2100_wx_wireless_stats()
8112 wstats->discard.retries = 0; in ipw2100_wx_wireless_stats()
8113 wstats->qual.qual = 0; in ipw2100_wx_wireless_stats()
8114 wstats->qual.level = 0; in ipw2100_wx_wireless_stats()
8115 wstats->qual.noise = 0; in ipw2100_wx_wireless_stats()
8126 /* If we don't have a connection the quality and level is 0 */ in ipw2100_wx_wireless_stats()
8128 wstats->qual.qual = 0; in ipw2100_wx_wireless_stats()
8129 wstats->qual.level = 0; in ipw2100_wx_wireless_stats()
8198 wstats->qual.noise = 0; in ipw2100_wx_wireless_stats()
8270 0); in ipw2100_wx_event_work()
8272 ipw2100_set_essid(priv, NULL, 0, 0); in ipw2100_wx_event_work()
8282 #define IPW2100_FW_MINOR(x) ((x & 0xff) >> 8)
8283 #define IPW2100_FW_MAJOR(x) (x & 0xff)
8298 0 2 version
8299 2 2 mode == 0:BSS,1:IBSS,2:MONITOR
8333 return 0; in ipw2100_mod_firmware_load()
8362 if (rc < 0) { in ipw2100_get_firmware()
8373 return 0; in ipw2100_get_firmware()
8385 fw->version = 0; in ipw2100_release_firmware()
8403 for (i = 0; i < len; i++) in ipw2100_get_fwversion()
8405 buf[i] = '\0'; in ipw2100_get_fwversion()
8429 * 0 4 address to write to in ipw2100_fw_download()
8439 while (firmware_data_left > 0) { in ipw2100_fw_download()
8460 return 0; in ipw2100_fw_download()
8493 write_nic_word(dev, IPW2100_CONTROL_REG, 0x703); in ipw2100_ucode_download()
8495 write_nic_word(dev, IPW2100_CONTROL_REG, 0x707); in ipw2100_ucode_download()
8499 write_nic_byte(dev, 0x210014, 0x72); /* fifo width =16 */ in ipw2100_ucode_download()
8501 write_nic_byte(dev, 0x210014, 0x72); /* fifo width =16 */ in ipw2100_ucode_download()
8505 write_nic_byte(dev, 0x210000, 0x40); in ipw2100_ucode_download()
8507 write_nic_byte(dev, 0x210000, 0x0); in ipw2100_ucode_download()
8509 write_nic_byte(dev, 0x210000, 0x40); in ipw2100_ucode_download()
8514 while (microcode_data_left > 0) { in ipw2100_ucode_download()
8515 write_nic_byte(dev, 0x210010, *microcode_data++); in ipw2100_ucode_download()
8516 write_nic_byte(dev, 0x210010, *microcode_data++); in ipw2100_ucode_download()
8521 write_nic_byte(dev, 0x210000, 0x0); in ipw2100_ucode_download()
8524 /* Enable System (Reg 0) in ipw2100_ucode_download()
8526 write_nic_byte(dev, 0x210000, 0x0); in ipw2100_ucode_download()
8528 write_nic_byte(dev, 0x210000, 0x80); in ipw2100_ucode_download()
8532 write_nic_word(dev, IPW2100_CONTROL_REG, 0x703); in ipw2100_ucode_download()
8534 write_nic_word(dev, IPW2100_CONTROL_REG, 0x707); in ipw2100_ucode_download()
8538 write_nic_byte(dev, 0x210014, 0x72); // fifo width =16 in ipw2100_ucode_download()
8540 write_nic_byte(dev, 0x210014, 0x72); // fifo width =16 in ipw2100_ucode_download()
8543 /* Enable System (Reg 0) in ipw2100_ucode_download()
8545 write_nic_byte(dev, 0x210000, 0x00); // clear enable system in ipw2100_ucode_download()
8547 write_nic_byte(dev, 0x210000, 0x80); // set enable system in ipw2100_ucode_download()
8551 for (i = 0; i < 10; i++) { in ipw2100_ucode_download()
8555 read_nic_byte(dev, 0x210000, &data); in ipw2100_ucode_download()
8556 if (data & 0x1) in ipw2100_ucode_download()
8567 for (i = 0; i < 30; i++) { in ipw2100_ucode_download()
8569 for (j = 0; in ipw2100_ucode_download()
8571 read_nic_word(dev, 0x210004, ((u16 *) & response) + j); in ipw2100_ucode_download()
8573 if ((response.cmd_id == 1) && (response.ucode_valid == 0x1)) in ipw2100_ucode_download()
8586 return 0; in ipw2100_ucode_download()