/linux-4.1.27/drivers/uwb/ |
H A D | allocator.c | 24 static void uwb_rsv_fill_column_alloc(struct uwb_rsv_alloc_info *ai) uwb_rsv_fill_column_alloc() argument 27 unsigned char *bm = ai->bm; uwb_rsv_fill_column_alloc() 28 struct uwb_rsv_col_info *ci = ai->ci; uwb_rsv_fill_column_alloc() 54 static void uwb_rsv_fill_row_alloc(struct uwb_rsv_alloc_info *ai) uwb_rsv_fill_row_alloc() argument 57 unsigned char *bm = ai->bm; uwb_rsv_fill_row_alloc() 58 struct uwb_rsv_row_info *ri = &ai->ri; uwb_rsv_fill_row_alloc() 76 ai->safe_allocated_mases++; uwb_rsv_fill_row_alloc() 78 ai->unsafe_allocated_mases++; uwb_rsv_fill_row_alloc() 84 ai->total_allocated_mases = ai->safe_allocated_mases + ai->unsafe_allocated_mases; uwb_rsv_fill_row_alloc() 137 static int uwb_rsv_find_best_column_set(struct uwb_rsv_alloc_info *ai, int interval, uwb_rsv_find_best_column_set() argument 140 struct uwb_rsv_col_info *ci = ai->ci; uwb_rsv_find_best_column_set() 196 ai->safe_allocated_mases = (UWB_NUM_ZONES / interval) * num_safe_mas; uwb_rsv_find_best_column_set() 197 ai->unsafe_allocated_mases = (UWB_NUM_ZONES / interval) * num_unsafe_mas; uwb_rsv_find_best_column_set() 198 ai->total_allocated_mases = ai->safe_allocated_mases + ai->unsafe_allocated_mases; uwb_rsv_find_best_column_set() 199 ai->interval = interval; uwb_rsv_find_best_column_set() 204 static void get_row_descriptors(struct uwb_rsv_alloc_info *ai) get_row_descriptors() argument 206 unsigned char *bm = ai->bm; get_row_descriptors() 207 struct uwb_rsv_row_info *ri = &ai->ri; get_row_descriptors() 260 static void get_column_descriptors(struct uwb_rsv_alloc_info *ai) get_column_descriptors() argument 262 unsigned char *bm = ai->bm; get_column_descriptors() 263 struct uwb_rsv_col_info *ci = ai->ci; get_column_descriptors() 271 static int uwb_rsv_find_best_row_alloc(struct uwb_rsv_alloc_info *ai) uwb_rsv_find_best_row_alloc() argument 274 int max_rows = ai->max_mas / UWB_USABLE_MAS_PER_ROW; uwb_rsv_find_best_row_alloc() 275 int min_rows = ai->min_mas / UWB_USABLE_MAS_PER_ROW; uwb_rsv_find_best_row_alloc() 276 if (ai->min_mas % UWB_USABLE_MAS_PER_ROW) uwb_rsv_find_best_row_alloc() 279 if (n_rows <= ai->ri.free_rows) { uwb_rsv_find_best_row_alloc() 280 ai->ri.used_rows = n_rows; uwb_rsv_find_best_row_alloc() 281 ai->interval = 1; /* row reservation */ uwb_rsv_find_best_row_alloc() 282 uwb_rsv_fill_row_alloc(ai); uwb_rsv_find_best_row_alloc() 289 static int uwb_rsv_find_best_col_alloc(struct uwb_rsv_alloc_info *ai, int interval) uwb_rsv_find_best_col_alloc() argument 293 int max_per_zone = ai->max_mas / n_column; uwb_rsv_find_best_col_alloc() 294 int min_per_zone = ai->min_mas / n_column; uwb_rsv_find_best_col_alloc() 296 if (ai->min_mas % n_column) uwb_rsv_find_best_col_alloc() 308 if (uwb_rsv_find_best_column_set(ai, interval, 0, n_mas) == UWB_RSV_ALLOC_NOT_FOUND) uwb_rsv_find_best_col_alloc() 312 if (uwb_rsv_find_best_column_set(ai, interval, n_safe, n_unsafe) == UWB_RSV_ALLOC_FOUND) { uwb_rsv_find_best_col_alloc() 313 uwb_rsv_fill_column_alloc(ai); uwb_rsv_find_best_col_alloc() 324 struct uwb_rsv_alloc_info *ai; uwb_rsv_find_best_allocation() local 328 ai = kzalloc(sizeof(struct uwb_rsv_alloc_info), GFP_KERNEL); uwb_rsv_find_best_allocation() 329 if (!ai) uwb_rsv_find_best_allocation() 331 ai->min_mas = rsv->min_mas; uwb_rsv_find_best_allocation() 332 ai->max_mas = rsv->max_mas; uwb_rsv_find_best_allocation() 333 ai->max_interval = rsv->max_interval; uwb_rsv_find_best_allocation() 338 ai->bm[bit_index] = UWB_RSV_MAS_NOT_AVAIL; uwb_rsv_find_best_allocation() 340 if (ai->max_interval == 1) { uwb_rsv_find_best_allocation() 341 get_row_descriptors(ai); uwb_rsv_find_best_allocation() 342 if (uwb_rsv_find_best_row_alloc(ai) == UWB_RSV_ALLOC_FOUND) uwb_rsv_find_best_allocation() 348 get_column_descriptors(ai); uwb_rsv_find_best_allocation() 351 if (interval > ai->max_interval) uwb_rsv_find_best_allocation() 353 if (uwb_rsv_find_best_col_alloc(ai, interval) == UWB_RSV_ALLOC_FOUND) uwb_rsv_find_best_allocation() 358 get_row_descriptors(ai); uwb_rsv_find_best_allocation() 359 if (uwb_rsv_find_best_row_alloc(ai) == UWB_RSV_ALLOC_FOUND) uwb_rsv_find_best_allocation() 369 if (ai->bm[bit_index] == UWB_RSV_MAS_SAFE) uwb_rsv_find_best_allocation() 371 else if (ai->bm[bit_index] == UWB_RSV_MAS_UNSAFE) uwb_rsv_find_best_allocation() 376 result->safe = ai->safe_allocated_mases; uwb_rsv_find_best_allocation() 377 result->unsafe = ai->unsafe_allocated_mases; uwb_rsv_find_best_allocation() 379 kfree(ai); uwb_rsv_find_best_allocation() 383 kfree(ai); uwb_rsv_find_best_allocation()
|
/linux-4.1.27/net/ipv4/ |
H A D | tcp_highspeed.c | 96 u32 ai; member in struct:hstcp 104 ca->ai = 0; hstcp_init() 125 * hstcp_aimd_vals[ca->ai-1].cwnd < hstcp_cong_avoid() 127 * hstcp_aimd_vals[ca->ai].cwnd hstcp_cong_avoid() 129 if (tp->snd_cwnd > hstcp_aimd_vals[ca->ai].cwnd) { hstcp_cong_avoid() 130 while (tp->snd_cwnd > hstcp_aimd_vals[ca->ai].cwnd && hstcp_cong_avoid() 131 ca->ai < HSTCP_AIMD_MAX - 1) hstcp_cong_avoid() 132 ca->ai++; hstcp_cong_avoid() 133 } else if (ca->ai && tp->snd_cwnd <= hstcp_aimd_vals[ca->ai-1].cwnd) { hstcp_cong_avoid() 134 while (ca->ai && tp->snd_cwnd <= hstcp_aimd_vals[ca->ai-1].cwnd) hstcp_cong_avoid() 135 ca->ai--; hstcp_cong_avoid() 141 tp->snd_cwnd_cnt += ca->ai + 1; hstcp_cong_avoid() 156 return max(tp->snd_cwnd - ((tp->snd_cwnd * hstcp_aimd_vals[ca->ai].md) >> 8), 2U); hstcp_ssthresh()
|
/linux-4.1.27/drivers/net/wireless/ |
H A D | airo.c | 1108 static int enable_MAC(struct airo_info *ai, int lock); 1109 static void disable_MAC(struct airo_info *ai, int lock); 1132 static void mpi_receive_802_3(struct airo_info *ai); 1133 static void mpi_receive_802_11(struct airo_info *ai); 1134 static int waitbusy (struct airo_info *ai); 1147 static void micinit(struct airo_info *ai); 1148 static int micsetup(struct airo_info *ai); 1149 static int encapsulate(struct airo_info *ai, etherHead *pPacket, MICBuffer *buffer, int len); 1150 static int decapsulate(struct airo_info *ai, MICBuffer *mic, etherHead *pPacket, u16 payLen); 1155 static void airo_networks_free(struct airo_info *ai); 1251 static inline int bap_read(struct airo_info *ai, __le16 *pu16Dst, int bytelen, bap_read() argument 1254 return ai->bap_read(ai, pu16Dst, bytelen, whichbap); bap_read() 1262 static int cmdreset(struct airo_info *ai); 1263 static int setflashmode (struct airo_info *ai); 1264 static int flashgchar(struct airo_info *ai,int matchbyte,int dwelltime); 1265 static int flashputbuf(struct airo_info *ai); 1266 static int flashrestart(struct airo_info *ai,struct net_device *dev); 1290 static int RxSeqValid (struct airo_info *ai,miccntx *context,int mcast,u32 micSeq); 1297 static int flashpchar(struct airo_info *ai,int byte,int dwelltime); 1324 static void micinit(struct airo_info *ai) micinit() argument 1328 clear_bit(JOB_MIC, &ai->jobs); micinit() 1329 PC4500_readrid(ai, RID_MIC, &mic_rid, sizeof(mic_rid), 0); micinit() 1330 up(&ai->sem); micinit() 1332 ai->micstats.enabled = (le16_to_cpu(mic_rid.state) & 0x00FF) ? 1 : 0; micinit() 1333 if (!ai->micstats.enabled) { micinit() 1337 ai->mod[0].uCtx.valid = 0; micinit() 1338 ai->mod[0].mCtx.valid = 0; micinit() 1343 age_mic_context(&ai->mod[0].mCtx, &ai->mod[1].mCtx, micinit() 1345 ai->tfm); micinit() 1349 age_mic_context(&ai->mod[0].uCtx, &ai->mod[1].uCtx, micinit() 1351 ai->tfm); micinit() 1357 static int micsetup(struct airo_info *ai) { micsetup() argument 1360 if (ai->tfm == NULL) micsetup() 1361 ai->tfm = crypto_alloc_cipher("aes", 0, CRYPTO_ALG_ASYNC); micsetup() 1363 if (IS_ERR(ai->tfm)) { micsetup() 1364 airo_print_err(ai->dev->name, "failed to load transform for AES"); micsetup() 1365 ai->tfm = NULL; micsetup() 1370 memset(&ai->mod[i].mCtx,0,sizeof(miccntx)); micsetup() 1371 memset(&ai->mod[i].uCtx,0,sizeof(miccntx)); micsetup() 1394 static int encapsulate(struct airo_info *ai ,etherHead *frame, MICBuffer *mic, int payLen) encapsulate() 1401 if (test_bit(FLAG_ADHOC, &ai->flags) && (frame->da[0] & 0x1)) encapsulate() 1402 context = &ai->mod[0].mCtx; encapsulate() 1404 context = &ai->mod[0].uCtx; encapsulate() 1450 static int decapsulate(struct airo_info *ai, MICBuffer *mic, etherHead *eth, u16 payLen) decapsulate() argument 1460 if (!ai->micstats.enabled) { decapsulate() 1463 ai->micstats.rxMICPlummed++; decapsulate() 1474 ai->micstats.rxMICPlummed++; decapsulate() 1485 ai->micstats.rxWrongSequence++; decapsulate() 1492 context = mcast ? &ai->mod[i].mCtx : &ai->mod[i].uCtx; decapsulate() 1521 if (RxSeqValid(ai, context, mcast, micSEQ) == SUCCESS) { decapsulate() 1522 ai->micstats.rxSuccess++; decapsulate() 1531 case NOMICPLUMMED: ai->micstats.rxMICPlummed++; break; decapsulate() 1532 case SEQUENCE: ai->micstats.rxWrongSequence++; break; decapsulate() 1533 case INCORRECTMIC: ai->micstats.rxIncorrectMIC++; break; decapsulate() 1554 static int RxSeqValid (struct airo_info *ai,miccntx *context,int mcast,u32 micSeq) RxSeqValid() argument 1562 if (test_bit(FLAG_UPDATE_MULTI, &ai->flags)) { RxSeqValid() 1563 clear_bit (FLAG_UPDATE_MULTI, &ai->flags); RxSeqValid() 1567 } else if (test_bit(FLAG_UPDATE_UNI, &ai->flags)) { RxSeqValid() 1568 clear_bit (FLAG_UPDATE_UNI, &ai->flags); RxSeqValid() 1743 static int readBSSListRid(struct airo_info *ai, int first, readBSSListRid() argument 1750 if (ai->flags & FLAG_RADIO_MASK) return -ENETDOWN; readBSSListRid() 1753 if (down_interruptible(&ai->sem)) readBSSListRid() 1755 ai->list_bss_task = current; readBSSListRid() 1756 issuecommand(ai, &cmd, &rsp); readBSSListRid() 1757 up(&ai->sem); readBSSListRid() 1760 ai->list_bss_task = NULL; readBSSListRid() 1762 return PC4500_readrid(ai, first ? ai->bssListFirst : ai->bssListNext, readBSSListRid() 1763 list, ai->bssListRidLen, 1); readBSSListRid() 1766 static int readWepKeyRid(struct airo_info *ai, WepKeyRid *wkr, int temp, int lock) readWepKeyRid() argument 1768 return PC4500_readrid(ai, temp ? RID_WEP_TEMP : RID_WEP_PERM, readWepKeyRid() 1772 static int writeWepKeyRid(struct airo_info *ai, WepKeyRid *wkr, int perm, int lock) writeWepKeyRid() argument 1775 rc = PC4500_writerid(ai, RID_WEP_TEMP, wkr, sizeof(*wkr), lock); writeWepKeyRid() 1777 airo_print_err(ai->dev->name, "WEP_TEMP set %x", rc); writeWepKeyRid() 1779 rc = PC4500_writerid(ai, RID_WEP_PERM, wkr, sizeof(*wkr), lock); writeWepKeyRid() 1781 airo_print_err(ai->dev->name, "WEP_PERM set %x", rc); writeWepKeyRid() 1786 static int readSsidRid(struct airo_info*ai, SsidRid *ssidr) readSsidRid() 1788 return PC4500_readrid(ai, RID_SSID, ssidr, sizeof(*ssidr), 1); readSsidRid() 1791 static int writeSsidRid(struct airo_info*ai, SsidRid *pssidr, int lock) writeSsidRid() 1793 return PC4500_writerid(ai, RID_SSID, pssidr, sizeof(*pssidr), lock); writeSsidRid() 1796 static int readConfigRid(struct airo_info *ai, int lock) readConfigRid() argument 1801 if (ai->config.len) readConfigRid() 1804 rc = PC4500_readrid(ai, RID_ACTUALCONFIG, &cfg, sizeof(cfg), lock); readConfigRid() 1808 ai->config = cfg; readConfigRid() 1812 static inline void checkThrottle(struct airo_info *ai) checkThrottle() argument 1816 if (ai->config.authType != AUTH_OPEN && maxencrypt) { checkThrottle() 1818 if (ai->config.rates[i] > maxencrypt) { checkThrottle() 1819 ai->config.rates[i] = 0; checkThrottle() 1825 static int writeConfigRid(struct airo_info *ai, int lock) writeConfigRid() argument 1829 if (!test_bit (FLAG_COMMIT, &ai->flags)) writeConfigRid() 1832 clear_bit (FLAG_COMMIT, &ai->flags); writeConfigRid() 1833 clear_bit (FLAG_RESET, &ai->flags); writeConfigRid() 1834 checkThrottle(ai); writeConfigRid() 1835 cfgr = ai->config; writeConfigRid() 1838 set_bit(FLAG_ADHOC, &ai->flags); writeConfigRid() 1840 clear_bit(FLAG_ADHOC, &ai->flags); writeConfigRid() 1842 return PC4500_writerid( ai, RID_CONFIG, &cfgr, sizeof(cfgr), lock); writeConfigRid() 1845 static int readStatusRid(struct airo_info *ai, StatusRid *statr, int lock) readStatusRid() argument 1847 return PC4500_readrid(ai, RID_STATUS, statr, sizeof(*statr), lock); readStatusRid() 1850 static int readAPListRid(struct airo_info *ai, APListRid *aplr) readAPListRid() argument 1852 return PC4500_readrid(ai, RID_APLIST, aplr, sizeof(*aplr), 1); readAPListRid() 1855 static int writeAPListRid(struct airo_info *ai, APListRid *aplr, int lock) writeAPListRid() argument 1857 return PC4500_writerid(ai, RID_APLIST, aplr, sizeof(*aplr), lock); writeAPListRid() 1860 static int readCapabilityRid(struct airo_info *ai, CapabilityRid *capr, int lock) readCapabilityRid() argument 1862 return PC4500_readrid(ai, RID_CAPABILITIES, capr, sizeof(*capr), lock); readCapabilityRid() 1865 static int readStatsRid(struct airo_info*ai, StatsRid *sr, int rid, int lock) readStatsRid() 1867 return PC4500_readrid(ai, rid, sr, sizeof(*sr), lock); readStatsRid() 1870 static void try_auto_wep(struct airo_info *ai) try_auto_wep() argument 1872 if (auto_wep && !test_bit(FLAG_RADIO_DOWN, &ai->flags)) { try_auto_wep() 1873 ai->expires = RUN_AT(3*HZ); try_auto_wep() 1874 wake_up_interruptible(&ai->thr_wait); try_auto_wep() 1879 struct airo_info *ai = dev->ml_priv; airo_open() local 1882 if (test_bit(FLAG_FLASHING, &ai->flags)) airo_open() 1889 if (test_bit(FLAG_COMMIT, &ai->flags)) { airo_open() 1890 disable_MAC(ai, 1); airo_open() 1891 writeConfigRid(ai, 1); airo_open() 1894 if (ai->wifidev != dev) { airo_open() 1895 clear_bit(JOB_DIE, &ai->jobs); airo_open() 1896 ai->airo_thread_task = kthread_run(airo_thread, dev, "%s", airo_open() 1898 if (IS_ERR(ai->airo_thread_task)) airo_open() 1899 return (int)PTR_ERR(ai->airo_thread_task); airo_open() 1907 set_bit(JOB_DIE, &ai->jobs); airo_open() 1908 kthread_stop(ai->airo_thread_task); airo_open() 1913 clear_bit(FLAG_RADIO_DOWN, &ai->flags); airo_open() 1914 enable_interrupts(ai); airo_open() 1916 try_auto_wep(ai); airo_open() 1918 enable_MAC(ai, 1); airo_open() 1929 struct airo_info *ai = dev->ml_priv; mpi_start_xmit() local 1935 npacks = skb_queue_len (&ai->txq); mpi_start_xmit() 1943 skb_queue_tail (&ai->txq, skb); mpi_start_xmit() 1947 spin_lock_irqsave(&ai->aux_lock, flags); mpi_start_xmit() 1948 skb_queue_tail (&ai->txq, skb); mpi_start_xmit() 1949 pending = test_bit(FLAG_PENDING_XMIT, &ai->flags); mpi_start_xmit() 1950 spin_unlock_irqrestore(&ai->aux_lock,flags); mpi_start_xmit() 1954 set_bit(FLAG_PENDING_XMIT, &ai->flags); mpi_start_xmit() 1973 struct airo_info *ai = dev->ml_priv; mpi_send_packet() local 1978 if ((skb = skb_dequeue(&ai->txq)) == NULL) { mpi_send_packet() 1989 ai->txfids[0].tx_desc.offset = 0; mpi_send_packet() 1990 ai->txfids[0].tx_desc.valid = 1; mpi_send_packet() 1991 ai->txfids[0].tx_desc.eoc = 1; mpi_send_packet() 1992 ai->txfids[0].tx_desc.len =len+sizeof(WifiHdr); mpi_send_packet() 2002 memcpy(ai->txfids[0].virtual_host_addr, mpi_send_packet() 2005 payloadLen = (__le16 *)(ai->txfids[0].virtual_host_addr + mpi_send_packet() 2007 sendbuf = ai->txfids[0].virtual_host_addr + mpi_send_packet() 2014 if (test_bit(FLAG_MIC_CAPABLE, &ai->flags) && ai->micstats.enabled && mpi_send_packet() 2018 if (encapsulate(ai, (etherHead *)buffer, &pMic, len - sizeof(etherHead)) != SUCCESS) mpi_send_packet() 2022 ai->txfids[0].tx_desc.len += sizeof(pMic); mpi_send_packet() 2039 memcpy_toio(ai->txfids[0].card_ram_off, mpi_send_packet() 2040 &ai->txfids[0].tx_desc, sizeof(TxFid)); mpi_send_packet() 2042 OUT4500(ai, EVACK, 8); mpi_send_packet() 2048 static void get_tx_error(struct airo_info *ai, s32 fid) get_tx_error() argument 2053 status = ((WifiCtlHdr *)ai->txfids[0].virtual_host_addr)->ctlhdr.status; get_tx_error() 2055 if (bap_setup(ai, ai->fids[fid] & 0xffff, 4, BAP0) != SUCCESS) get_tx_error() 2057 bap_read(ai, &status, 2, BAP0); get_tx_error() 2060 ai->dev->stats.tx_aborted_errors++; get_tx_error() 2062 ai->dev->stats.tx_heartbeat_errors++; get_tx_error() 2066 ai->dev->stats.tx_carrier_errors++; get_tx_error() 2081 bap_read(ai, (__le16 *) junk, 0x18, BAP0); get_tx_error() 2095 wireless_send_event(ai->dev, IWEVTXDROP, &wrqu, NULL); get_tx_error() 2242 struct airo_info *ai = dev->ml_priv; airo_read_stats() local 2246 clear_bit(JOB_STATS, &ai->jobs); airo_read_stats() 2247 if (ai->power.event) { airo_read_stats() 2248 up(&ai->sem); airo_read_stats() 2251 readStatsRid(ai, &stats_rid, RID_STATS, 0); airo_read_stats() 2252 up(&ai->sem); airo_read_stats() 2290 static void airo_set_promisc(struct airo_info *ai) { airo_set_promisc() argument 2296 clear_bit(JOB_PROMISC, &ai->jobs); airo_set_promisc() 2297 cmd.parm0=(ai->flags&IFF_PROMISC) ? PROMISC : NOPROMISC; airo_set_promisc() 2298 issuecommand(ai, &cmd, &rsp); airo_set_promisc() 2299 up(&ai->sem); airo_set_promisc() 2303 struct airo_info *ai = dev->ml_priv; airo_set_multicast_list() local 2305 if ((dev->flags ^ ai->flags) & IFF_PROMISC) { airo_set_multicast_list() 2306 change_bit(FLAG_PROMISC, &ai->flags); airo_set_multicast_list() 2307 if (down_trylock(&ai->sem) != 0) { airo_set_multicast_list() 2308 set_bit(JOB_PROMISC, &ai->jobs); airo_set_multicast_list() 2309 wake_up_interruptible(&ai->thr_wait); airo_set_multicast_list() 2311 airo_set_promisc(ai); airo_set_multicast_list() 2321 struct airo_info *ai = dev->ml_priv; airo_set_mac_address() local 2324 readConfigRid(ai, 1); airo_set_mac_address() 2325 memcpy (ai->config.macAddr, addr->sa_data, dev->addr_len); airo_set_mac_address() 2326 set_bit (FLAG_COMMIT, &ai->flags); airo_set_mac_address() 2327 disable_MAC(ai, 1); airo_set_mac_address() 2328 writeConfigRid (ai, 1); airo_set_mac_address() 2329 enable_MAC(ai, 1); airo_set_mac_address() 2330 memcpy (ai->dev->dev_addr, addr->sa_data, dev->addr_len); airo_set_mac_address() 2331 if (ai->wifidev) airo_set_mac_address() 2332 memcpy (ai->wifidev->dev_addr, addr->sa_data, dev->addr_len); airo_set_mac_address() 2346 static void add_airo_dev(struct airo_info *ai) add_airo_dev() argument 2350 if (!ai->pci) add_airo_dev() 2351 list_add_tail(&ai->dev_list, &airo_devices); add_airo_dev() 2354 static void del_airo_dev(struct airo_info *ai) del_airo_dev() argument 2356 if (!ai->pci) del_airo_dev() 2357 list_del(&ai->dev_list); del_airo_dev() 2361 struct airo_info *ai = dev->ml_priv; airo_close() local 2365 if (ai->wifidev != dev) { airo_close() 2372 set_bit(FLAG_RADIO_DOWN, &ai->flags); airo_close() 2373 disable_MAC(ai, 1); airo_close() 2375 disable_interrupts( ai ); airo_close() 2379 set_bit(JOB_DIE, &ai->jobs); airo_close() 2380 kthread_stop(ai->airo_thread_task); airo_close() 2387 struct airo_info *ai = dev->ml_priv; stop_airo_card() local 2389 set_bit(FLAG_RADIO_DOWN, &ai->flags); stop_airo_card() 2390 disable_MAC(ai, 1); stop_airo_card() 2391 disable_interrupts(ai); stop_airo_card() 2392 takedown_proc_entry( dev, ai ); stop_airo_card() 2393 if (test_bit(FLAG_REGISTERED, &ai->flags)) { stop_airo_card() 2395 if (ai->wifidev) { stop_airo_card() 2396 unregister_netdev(ai->wifidev); stop_airo_card() 2397 free_netdev(ai->wifidev); stop_airo_card() 2398 ai->wifidev = NULL; stop_airo_card() 2400 clear_bit(FLAG_REGISTERED, &ai->flags); stop_airo_card() 2405 if (test_bit(FLAG_MPI, &ai->flags) && !skb_queue_empty(&ai->txq)) { stop_airo_card() 2407 for (;(skb = skb_dequeue(&ai->txq));) stop_airo_card() 2411 airo_networks_free (ai); stop_airo_card() 2413 kfree(ai->flash); stop_airo_card() 2414 kfree(ai->rssi); stop_airo_card() 2415 kfree(ai->APList); stop_airo_card() 2416 kfree(ai->SSID); stop_airo_card() 2420 if (test_bit(FLAG_MPI, &ai->flags)) { stop_airo_card() 2421 if (ai->pci) stop_airo_card() 2422 mpi_unmap_card(ai->pci); stop_airo_card() 2423 if (ai->pcimem) stop_airo_card() 2424 iounmap(ai->pcimem); stop_airo_card() 2425 if (ai->pciaux) stop_airo_card() 2426 iounmap(ai->pciaux); stop_airo_card() 2427 pci_free_consistent(ai->pci, PCI_SHARED_LEN, stop_airo_card() 2428 ai->shared, ai->shared_dma); stop_airo_card() 2431 crypto_free_cipher(ai->tfm); stop_airo_card() 2432 del_airo_dev(ai); stop_airo_card() 2462 static int mpi_init_descriptors (struct airo_info *ai) mpi_init_descriptors() argument 2470 netif_stop_queue(ai->dev); mpi_init_descriptors() 2477 cmd.parm1 = (ai->rxfids[0].card_ram_off - ai->pciaux); mpi_init_descriptors() 2479 rc=issuecommand(ai, &cmd, &rsp); mpi_init_descriptors() 2481 airo_print_err(ai->dev->name, "Couldn't allocate RX FID"); mpi_init_descriptors() 2486 memcpy_toio(ai->rxfids[i].card_ram_off, mpi_init_descriptors() 2487 &ai->rxfids[i].rx_desc, sizeof(RxFid)); mpi_init_descriptors() 2497 cmd.parm1 = (ai->txfids[0].card_ram_off - ai->pciaux); mpi_init_descriptors() 2501 ai->txfids[i].tx_desc.valid = 1; mpi_init_descriptors() 2502 memcpy_toio(ai->txfids[i].card_ram_off, mpi_init_descriptors() 2503 &ai->txfids[i].tx_desc, sizeof(TxFid)); mpi_init_descriptors() 2505 ai->txfids[i-1].tx_desc.eoc = 1; /* Last descriptor has EOC set */ mpi_init_descriptors() 2507 rc=issuecommand(ai, &cmd, &rsp); mpi_init_descriptors() 2509 airo_print_err(ai->dev->name, "Couldn't allocate TX FID"); mpi_init_descriptors() 2519 cmd.parm1 = (ai->config_desc.card_ram_off - ai->pciaux); mpi_init_descriptors() 2521 rc=issuecommand(ai, &cmd, &rsp); mpi_init_descriptors() 2523 airo_print_err(ai->dev->name, "Couldn't allocate RID"); mpi_init_descriptors() 2527 memcpy_toio(ai->config_desc.card_ram_off, mpi_init_descriptors() 2528 &ai->config_desc.rid_desc, sizeof(Rid)); mpi_init_descriptors() 2539 static int mpi_map_card(struct airo_info *ai, struct pci_dev *pci) mpi_map_card() argument 2564 ai->pcimem = ioremap(mem_start, mem_len); mpi_map_card() 2565 if (!ai->pcimem) { mpi_map_card() 2570 ai->pciaux = ioremap(aux_start, aux_len); mpi_map_card() 2571 if (!ai->pciaux) { mpi_map_card() 2578 ai->shared = pci_alloc_consistent(pci, PCI_SHARED_LEN, &ai->shared_dma); mpi_map_card() 2579 if (!ai->shared) { mpi_map_card() 2588 busaddroff = ai->shared_dma; mpi_map_card() 2589 pciaddroff = ai->pciaux + AUX_OFFSET; mpi_map_card() 2590 vpackoff = ai->shared; mpi_map_card() 2594 ai->rxfids[i].pending = 0; mpi_map_card() 2595 ai->rxfids[i].card_ram_off = pciaddroff; mpi_map_card() 2596 ai->rxfids[i].virtual_host_addr = vpackoff; mpi_map_card() 2597 ai->rxfids[i].rx_desc.host_addr = busaddroff; mpi_map_card() 2598 ai->rxfids[i].rx_desc.valid = 1; mpi_map_card() 2599 ai->rxfids[i].rx_desc.len = PKTSIZE; mpi_map_card() 2600 ai->rxfids[i].rx_desc.rdy = 0; mpi_map_card() 2609 ai->txfids[i].card_ram_off = pciaddroff; mpi_map_card() 2610 ai->txfids[i].virtual_host_addr = vpackoff; mpi_map_card() 2611 ai->txfids[i].tx_desc.valid = 1; mpi_map_card() 2612 ai->txfids[i].tx_desc.host_addr = busaddroff; mpi_map_card() 2613 memcpy(ai->txfids[i].virtual_host_addr, mpi_map_card() 2620 ai->txfids[i-1].tx_desc.eoc = 1; /* Last descriptor has EOC set */ mpi_map_card() 2623 ai->config_desc.card_ram_off = pciaddroff; mpi_map_card() 2624 ai->config_desc.virtual_host_addr = vpackoff; mpi_map_card() 2625 ai->config_desc.rid_desc.host_addr = busaddroff; mpi_map_card() 2626 ai->ridbus = busaddroff; mpi_map_card() 2627 ai->config_desc.rid_desc.rid = 0; mpi_map_card() 2628 ai->config_desc.rid_desc.len = RIDSIZE; mpi_map_card() 2629 ai->config_desc.rid_desc.valid = 1; mpi_map_card() 2635 if (mpi_init_descriptors (ai) != SUCCESS) mpi_map_card() 2640 pci_free_consistent(pci, PCI_SHARED_LEN, ai->shared, ai->shared_dma); mpi_map_card() 2642 iounmap(ai->pciaux); mpi_map_card() 2644 iounmap(ai->pcimem); mpi_map_card() 2684 static struct net_device *init_wifidev(struct airo_info *ai, init_wifidev() argument 2707 struct airo_info *ai = dev->ml_priv; reset_card() local 2709 if (lock && down_interruptible(&ai->sem)) reset_card() 2711 waitbusy (ai); reset_card() 2712 OUT4500(ai,COMMAND,CMD_SOFTRESET); reset_card() 2714 waitbusy (ai); reset_card() 2717 up(&ai->sem); reset_card() 2722 static int airo_networks_allocate(struct airo_info *ai) airo_networks_allocate() argument 2724 if (ai->networks) airo_networks_allocate() 2727 ai->networks = kcalloc(AIRO_MAX_NETWORK_COUNT, sizeof(BSSListElement), airo_networks_allocate() 2729 if (!ai->networks) { airo_networks_allocate() 2737 static void airo_networks_free(struct airo_info *ai) airo_networks_free() argument 2739 kfree(ai->networks); airo_networks_free() 2740 ai->networks = NULL; airo_networks_free() 2743 static void airo_networks_initialize(struct airo_info *ai) airo_networks_initialize() argument 2747 INIT_LIST_HEAD(&ai->network_free_list); airo_networks_initialize() 2748 INIT_LIST_HEAD(&ai->network_list); airo_networks_initialize() 2750 list_add_tail(&ai->networks[i].list, airo_networks_initialize() 2751 &ai->network_free_list); airo_networks_initialize() 2784 struct airo_info *ai; _init_airo_card() local 2789 dev = alloc_netdev(sizeof(*ai), "", NET_NAME_UNKNOWN, ether_setup); _init_airo_card() 2795 ai = dev->ml_priv = netdev_priv(dev); _init_airo_card() 2796 ai->wifidev = NULL; _init_airo_card() 2797 ai->flags = 1 << FLAG_RADIO_DOWN; _init_airo_card() 2798 ai->jobs = 0; _init_airo_card() 2799 ai->dev = dev; _init_airo_card() 2802 set_bit(FLAG_MPI, &ai->flags); _init_airo_card() 2804 spin_lock_init(&ai->aux_lock); _init_airo_card() 2805 sema_init(&ai->sem, 1); _init_airo_card() 2806 ai->config.len = 0; _init_airo_card() 2807 ai->pci = pci; _init_airo_card() 2808 init_waitqueue_head (&ai->thr_wait); _init_airo_card() 2809 ai->tfm = NULL; _init_airo_card() 2810 add_airo_dev(ai); _init_airo_card() 2812 if (airo_networks_allocate (ai)) _init_airo_card() 2814 airo_networks_initialize (ai); _init_airo_card() 2816 skb_queue_head_init (&ai->txq); _init_airo_card() 2819 if (test_bit(FLAG_MPI,&ai->flags)) _init_airo_card() 2824 ai->wireless_data.spy_data = &ai->spy_data; _init_airo_card() 2825 dev->wireless_data = &ai->wireless_data; _init_airo_card() 2843 if (test_bit(FLAG_MPI,&ai->flags)) { _init_airo_card() 2844 if (mpi_map_card(ai, pci)) { _init_airo_card() 2851 if (setup_card(ai, dev->dev_addr, 1) != SUCCESS) { _init_airo_card() 2856 } else if (!test_bit(FLAG_MPI,&ai->flags)) { _init_airo_card() 2857 ai->bap_read = fast_bap_read; _init_airo_card() 2858 set_bit(FLAG_FLASHING, &ai->flags); _init_airo_card() 2867 ai->wifidev = init_wifidev(ai, dev); _init_airo_card() 2868 if (!ai->wifidev) _init_airo_card() 2871 rc = readCapabilityRid(ai, &cap_rid, 1); _init_airo_card() 2877 ai->wep_capable = (cap_rid.softCap & cpu_to_le16(0x02)) ? 1 : 0; _init_airo_card() 2878 ai->max_wep_idx = (cap_rid.softCap & cpu_to_le16(0x80)) ? 3 : 0; _init_airo_card() 2890 airo_print_info(ai->dev->name, "WPA supported."); _init_airo_card() 2892 set_bit(FLAG_WPA_CAPABLE, &ai->flags); _init_airo_card() 2893 ai->bssListFirst = RID_WPA_BSSLISTFIRST; _init_airo_card() 2894 ai->bssListNext = RID_WPA_BSSLISTNEXT; _init_airo_card() 2895 ai->bssListRidLen = sizeof(BSSListRid); _init_airo_card() 2897 airo_print_info(ai->dev->name, "WPA unsupported with firmware " _init_airo_card() 2900 ai->bssListFirst = RID_BSSLISTFIRST; _init_airo_card() 2901 ai->bssListNext = RID_BSSLISTNEXT; _init_airo_card() 2902 ai->bssListRidLen = sizeof(BSSListRid) - sizeof(BSSListRidExtra); _init_airo_card() 2905 set_bit(FLAG_REGISTERED,&ai->flags); _init_airo_card() 2909 if (probe && !test_bit(FLAG_MPI,&ai->flags)) _init_airo_card() 2911 ai->fids[i] = transmit_allocate(ai,AIRO_DEF_MTU,i>=MAX_FIDS/2); _init_airo_card() 2919 unregister_netdev(ai->wifidev); _init_airo_card() 2920 free_netdev(ai->wifidev); _init_airo_card() 2924 if (test_bit(FLAG_MPI,&ai->flags) && pci) { _init_airo_card() 2925 pci_free_consistent(pci, PCI_SHARED_LEN, ai->shared, ai->shared_dma); _init_airo_card() 2926 iounmap(ai->pciaux); _init_airo_card() 2927 iounmap(ai->pcimem); _init_airo_card() 2928 mpi_unmap_card(ai->pci); _init_airo_card() 2934 airo_networks_free(ai); _init_airo_card() 2936 del_airo_dev(ai); _init_airo_card() 2949 static int waitbusy (struct airo_info *ai) { waitbusy() argument 2951 while ((IN4500(ai, COMMAND) & COMMAND_BUSY) && (delay < 10000)) { waitbusy() 2954 OUT4500(ai, EVACK, EV_CLEARCOMMANDBUSY); waitbusy() 2962 struct airo_info *ai = dev->ml_priv; reset_airo_card() local 2967 if ( setup_card(ai, dev->dev_addr, 1 ) != SUCCESS ) { reset_airo_card() 2973 if (!test_bit(FLAG_MPI,&ai->flags)) reset_airo_card() 2975 ai->fids[i] = transmit_allocate (ai,AIRO_DEF_MTU,i>=MAX_FIDS/2); reset_airo_card() 2977 enable_interrupts( ai ); reset_airo_card() 2985 struct airo_info *ai = dev->ml_priv; airo_send_event() local 2989 clear_bit(JOB_EVENT, &ai->jobs); airo_send_event() 2990 PC4500_readrid(ai, RID_STATUS, &status_rid, sizeof(status_rid), 0); airo_send_event() 2991 up(&ai->sem); airo_send_event() 3001 static void airo_process_scan_results (struct airo_info *ai) { airo_process_scan_results() argument 3009 list_for_each_entry_safe (loop_net, tmp_net, &ai->network_list, list) { airo_process_scan_results() 3010 list_move_tail (&loop_net->list, &ai->network_free_list); airo_process_scan_results() 3016 rc = PC4500_readrid(ai, ai->bssListFirst, &bss, ai->bssListRidLen, 0); airo_process_scan_results() 3026 if (!list_empty(&ai->network_free_list)) { airo_process_scan_results() 3027 tmp_net = list_entry(ai->network_free_list.next, airo_process_scan_results() 3029 list_del(ai->network_free_list.next); airo_process_scan_results() 3034 list_add_tail(&tmp_net->list, &ai->network_list); airo_process_scan_results() 3039 rc = PC4500_readrid(ai, ai->bssListNext, airo_process_scan_results() 3040 &bss, ai->bssListRidLen, 0); airo_process_scan_results() 3044 ai->scan_timeout = 0; airo_process_scan_results() 3045 clear_bit(JOB_SCAN_RESULTS, &ai->jobs); airo_process_scan_results() 3046 up(&ai->sem); airo_process_scan_results() 3057 wireless_send_event(ai->dev, SIOCGIWSCAN, &wrqu, NULL); airo_process_scan_results() 3062 struct airo_info *ai = dev->ml_priv; airo_thread() local 3070 if (test_bit(JOB_DIE, &ai->jobs)) airo_thread() 3073 if (ai->jobs) { airo_thread() 3074 locked = down_interruptible(&ai->sem); airo_thread() 3079 add_wait_queue(&ai->thr_wait, &wait); airo_thread() 3082 if (ai->jobs) airo_thread() 3084 if (ai->expires || ai->scan_timeout) { airo_thread() 3085 if (ai->scan_timeout && airo_thread() 3086 time_after_eq(jiffies,ai->scan_timeout)){ airo_thread() 3087 set_bit(JOB_SCAN_RESULTS, &ai->jobs); airo_thread() 3089 } else if (ai->expires && airo_thread() 3090 time_after_eq(jiffies,ai->expires)){ airo_thread() 3091 set_bit(JOB_AUTOWEP, &ai->jobs); airo_thread() 3097 if (!ai->expires || !ai->scan_timeout) { airo_thread() 3098 wake_at = max(ai->expires, airo_thread() 3099 ai->scan_timeout); airo_thread() 3101 wake_at = min(ai->expires, airo_thread() 3102 ai->scan_timeout); airo_thread() 3115 remove_wait_queue(&ai->thr_wait, &wait); airo_thread() 3122 if (test_bit(JOB_DIE, &ai->jobs)) { airo_thread() 3123 up(&ai->sem); airo_thread() 3127 if (ai->power.event || test_bit(FLAG_FLASHING, &ai->flags)) { airo_thread() 3128 up(&ai->sem); airo_thread() 3132 if (test_bit(JOB_XMIT, &ai->jobs)) airo_thread() 3134 else if (test_bit(JOB_XMIT11, &ai->jobs)) airo_thread() 3136 else if (test_bit(JOB_STATS, &ai->jobs)) airo_thread() 3138 else if (test_bit(JOB_WSTATS, &ai->jobs)) airo_thread() 3139 airo_read_wireless_stats(ai); airo_thread() 3140 else if (test_bit(JOB_PROMISC, &ai->jobs)) airo_thread() 3141 airo_set_promisc(ai); airo_thread() 3142 else if (test_bit(JOB_MIC, &ai->jobs)) airo_thread() 3143 micinit(ai); airo_thread() 3144 else if (test_bit(JOB_EVENT, &ai->jobs)) airo_thread() 3146 else if (test_bit(JOB_AUTOWEP, &ai->jobs)) airo_thread() 3148 else if (test_bit(JOB_SCAN_RESULTS, &ai->jobs)) airo_thread() 3149 airo_process_scan_results(ai); airo_thread() 3151 up(&ai->sem); airo_thread() 3172 static void airo_handle_cisco_mic(struct airo_info *ai) airo_handle_cisco_mic() argument 3174 if (test_bit(FLAG_MIC_CAPABLE, &ai->flags)) { airo_handle_cisco_mic() 3175 set_bit(JOB_MIC, &ai->jobs); airo_handle_cisco_mic() 3176 wake_up_interruptible(&ai->thr_wait); airo_handle_cisco_mic() 3241 static void airo_handle_link(struct airo_info *ai) airo_handle_link() argument 3248 status = le16_to_cpu(IN4500(ai, LINKSTAT)); airo_handle_link() 3249 OUT4500(ai, EVACK, EV_LINK); airo_handle_link() 3251 if ((status == STAT_FORCELOSS) && (ai->scan_timeout > 0)) airo_handle_link() 3254 airo_print_status(ai->dev->name, status); airo_handle_link() 3258 ai->expires = 0; airo_handle_link() 3259 if (ai->list_bss_task) airo_handle_link() 3260 wake_up_process(ai->list_bss_task); airo_handle_link() 3261 set_bit(FLAG_UPDATE_UNI, &ai->flags); airo_handle_link() 3262 set_bit(FLAG_UPDATE_MULTI, &ai->flags); airo_handle_link() 3264 if (down_trylock(&ai->sem) != 0) { airo_handle_link() 3265 set_bit(JOB_EVENT, &ai->jobs); airo_handle_link() 3266 wake_up_interruptible(&ai->thr_wait); airo_handle_link() 3268 airo_send_event(ai->dev); airo_handle_link() 3270 if (auto_wep && !ai->expires) { airo_handle_link() 3271 ai->expires = RUN_AT(3*HZ); airo_handle_link() 3272 wake_up_interruptible(&ai->thr_wait); airo_handle_link() 3278 wireless_send_event(ai->dev, SIOCGIWAP, &wrqu, NULL); airo_handle_link() 3282 static void airo_handle_rx(struct airo_info *ai) airo_handle_rx() argument 3290 if (test_bit(FLAG_MPI, &ai->flags)) { airo_handle_rx() 3291 if (test_bit(FLAG_802_11, &ai->flags)) airo_handle_rx() 3292 mpi_receive_802_11(ai); airo_handle_rx() 3294 mpi_receive_802_3(ai); airo_handle_rx() 3295 OUT4500(ai, EVACK, EV_RX); airo_handle_rx() 3299 fid = IN4500(ai, RXFID); airo_handle_rx() 3302 if (test_bit(FLAG_802_11, &ai->flags)) { airo_handle_rx() 3303 bap_setup (ai, fid, 4, BAP0); airo_handle_rx() 3304 bap_read (ai, (__le16*)&hdr, sizeof(hdr), BAP0); airo_handle_rx() 3308 if (ai->wifidev == NULL) airo_handle_rx() 3311 bap_setup(ai, fid, 0x36, BAP0); airo_handle_rx() 3312 bap_read(ai, &hdr.len, 2, BAP0); airo_handle_rx() 3317 airo_print_err(ai->dev->name, "Bad size %d", len); airo_handle_rx() 3323 if (test_bit(FLAG_802_11, &ai->flags)) { airo_handle_rx() 3324 bap_read(ai, &fc, sizeof (fc), BAP0); airo_handle_rx() 3331 ai->dev->stats.rx_dropped++; airo_handle_rx() 3337 if (test_bit(FLAG_802_11, &ai->flags)) { airo_handle_rx() 3339 bap_read(ai, buffer + 1, hdrlen - 2, BAP0); airo_handle_rx() 3341 bap_read(ai, tmpbuf, 6, BAP0); airo_handle_rx() 3343 bap_read(ai, &v, sizeof(v), BAP0); airo_handle_rx() 3347 bap_read(ai, tmpbuf, gap, BAP0); airo_handle_rx() 3349 airo_print_err(ai->dev->name, "gaplen too " airo_handle_rx() 3353 bap_read(ai, buffer + hdrlen/2, len, BAP0); airo_handle_rx() 3357 bap_read(ai, buffer, ETH_ALEN * 2, BAP0); airo_handle_rx() 3358 if (ai->micstats.enabled) { airo_handle_rx() 3359 bap_read(ai, (__le16 *) &micbuf, sizeof (micbuf), BAP0); airo_handle_rx() 3361 bap_setup(ai, fid, 0x44, BAP0); airo_handle_rx() 3373 bap_read(ai, buffer + ETH_ALEN, len, BAP0); airo_handle_rx() 3374 if (decapsulate(ai, &micbuf, (etherHead*) buffer, len)) airo_handle_rx() 3381 if (success && (ai->spy_data.spy_number > 0)) { airo_handle_rx() 3386 if (!test_bit(FLAG_802_11, &ai->flags)) { airo_handle_rx() 3388 bap_setup(ai, fid, 8, BAP0); airo_handle_rx() 3389 bap_read(ai, (__le16 *) hdr.rssi, 2, BAP0); airo_handle_rx() 3393 if (ai->rssi) airo_handle_rx() 3394 wstats.level = 0x100 - ai->rssi[hdr.rssi[1]].rssidBm; airo_handle_rx() 3397 wstats.noise = ai->wstats.qual.noise; airo_handle_rx() 3402 wireless_spy_update(ai->dev, sa, &wstats); airo_handle_rx() 3407 OUT4500(ai, EVACK, EV_RX); airo_handle_rx() 3410 if (test_bit(FLAG_802_11, &ai->flags)) { airo_handle_rx() 3413 skb->dev = ai->wifidev; airo_handle_rx() 3416 skb->protocol = eth_type_trans(skb, ai->dev); airo_handle_rx() 3423 static void airo_handle_tx(struct airo_info *ai, u16 status) airo_handle_tx() argument 3428 if (test_bit(FLAG_MPI, &ai->flags)) { airo_handle_tx() 3432 get_tx_error(ai, -1); airo_handle_tx() 3434 spin_lock_irqsave(&ai->aux_lock, flags); airo_handle_tx() 3435 if (!skb_queue_empty(&ai->txq)) { airo_handle_tx() 3436 spin_unlock_irqrestore(&ai->aux_lock,flags); airo_handle_tx() 3437 mpi_send_packet(ai->dev); airo_handle_tx() 3439 clear_bit(FLAG_PENDING_XMIT, &ai->flags); airo_handle_tx() 3440 spin_unlock_irqrestore(&ai->aux_lock,flags); airo_handle_tx() 3441 netif_wake_queue(ai->dev); airo_handle_tx() 3443 OUT4500(ai, EVACK, status & (EV_TX | EV_TXCPY | EV_TXEXC)); airo_handle_tx() 3447 fid = IN4500(ai, TXCOMPLFID); airo_handle_tx() 3450 if ((ai->fids[i] & 0xffff) == fid) { airo_handle_tx() 3451 len = ai->fids[i] >> 16; airo_handle_tx() 3458 get_tx_error(ai, index); airo_handle_tx() 3460 OUT4500(ai, EVACK, status & (EV_TX | EV_TXEXC)); airo_handle_tx() 3463 ai->fids[index] &= 0xffff; airo_handle_tx() 3465 if (!test_bit(FLAG_PENDING_XMIT, &ai->flags)) airo_handle_tx() 3466 netif_wake_queue(ai->dev); airo_handle_tx() 3468 if (!test_bit(FLAG_PENDING_XMIT11, &ai->flags)) airo_handle_tx() 3469 netif_wake_queue(ai->wifidev); airo_handle_tx() 3472 OUT4500(ai, EVACK, status & (EV_TX | EV_TXCPY | EV_TXEXC)); airo_handle_tx() 3473 airo_print_err(ai->dev->name, "Unallocated FID was used to xmit"); airo_handle_tx() 3481 struct airo_info *ai = dev->ml_priv; airo_interrupt() local 3488 status = IN4500(ai, EVSTAT); airo_interrupt() 3495 OUT4500(ai, EVACK, EV_AWAKE); airo_interrupt() 3496 OUT4500(ai, EVACK, EV_AWAKE); airo_interrupt() 3500 savedInterrupts = IN4500(ai, EVINTEN); airo_interrupt() 3501 OUT4500(ai, EVINTEN, 0); airo_interrupt() 3505 OUT4500(ai, EVACK, EV_MIC); airo_interrupt() 3506 airo_handle_cisco_mic(ai); airo_interrupt() 3511 airo_handle_link(ai); airo_interrupt() 3516 airo_handle_rx(ai); airo_interrupt() 3520 airo_handle_tx(ai, status); airo_interrupt() 3523 airo_print_warn(ai->dev->name, "Got weird status %x", airo_interrupt() 3529 OUT4500(ai, EVINTEN, savedInterrupts); airo_interrupt() 3543 static void OUT4500( struct airo_info *ai, u16 reg, u16 val ) { OUT4500() argument 3544 if (test_bit(FLAG_MPI,&ai->flags)) OUT4500() 3547 outw( val, ai->dev->base_addr + reg ); OUT4500() 3549 outb( val & 0xff, ai->dev->base_addr + reg ); OUT4500() 3550 outb( val >> 8, ai->dev->base_addr + reg + 1 ); OUT4500() 3554 static u16 IN4500( struct airo_info *ai, u16 reg ) { IN4500() argument 3557 if (test_bit(FLAG_MPI,&ai->flags)) IN4500() 3560 rc = inw( ai->dev->base_addr + reg ); IN4500() 3562 rc = inb( ai->dev->base_addr + reg ); IN4500() 3563 rc += ((int)inb( ai->dev->base_addr + reg + 1 )) << 8; IN4500() 3568 static int enable_MAC(struct airo_info *ai, int lock) enable_MAC() argument 3580 if (ai->flags & FLAG_RADIO_MASK) return SUCCESS; enable_MAC() 3582 if (lock && down_interruptible(&ai->sem)) enable_MAC() 3585 if (!test_bit(FLAG_ENABLED, &ai->flags)) { enable_MAC() 3588 rc = issuecommand(ai, &cmd, &rsp); enable_MAC() 3590 set_bit(FLAG_ENABLED, &ai->flags); enable_MAC() 3595 up(&ai->sem); enable_MAC() 3598 airo_print_err(ai->dev->name, "Cannot enable MAC"); enable_MAC() 3600 airo_print_err(ai->dev->name, "Bad MAC enable reason=%x, " enable_MAC() 3607 static void disable_MAC( struct airo_info *ai, int lock ) { disable_MAC() argument 3611 if (lock && down_interruptible(&ai->sem)) disable_MAC() 3614 if (test_bit(FLAG_ENABLED, &ai->flags)) { disable_MAC() 3617 issuecommand(ai, &cmd, &rsp); disable_MAC() 3618 clear_bit(FLAG_ENABLED, &ai->flags); disable_MAC() 3621 up(&ai->sem); disable_MAC() 3624 static void enable_interrupts( struct airo_info *ai ) { enable_interrupts() 3626 OUT4500( ai, EVINTEN, STATUS_INTS ); enable_interrupts() 3629 static void disable_interrupts( struct airo_info *ai ) { disable_interrupts() 3630 OUT4500( ai, EVINTEN, 0 ); disable_interrupts() 3633 static void mpi_receive_802_3(struct airo_info *ai) mpi_receive_802_3() argument 3642 memcpy_fromio(&rxd, ai->rxfids[0].card_ram_off, sizeof(rxd)); mpi_receive_802_3() 3651 ai->dev->stats.rx_dropped++; mpi_receive_802_3() 3655 memcpy(buffer, ai->rxfids[0].virtual_host_addr, ETH_ALEN * 2); mpi_receive_802_3() 3656 if (ai->micstats.enabled) { mpi_receive_802_3() 3658 ai->rxfids[0].virtual_host_addr + ETH_ALEN * 2, mpi_receive_802_3() 3669 ai->rxfids[0].virtual_host_addr + ETH_ALEN * 2 + off, mpi_receive_802_3() 3671 if (decapsulate (ai, &micbuf, (etherHead*)buffer, len - off - ETH_ALEN * 2)) { mpi_receive_802_3() 3677 if (ai->spy_data.spy_number > 0) { mpi_receive_802_3() 3686 wireless_spy_update(ai->dev, sa, &wstats); mpi_receive_802_3() 3691 skb->protocol = eth_type_trans(skb, ai->dev); mpi_receive_802_3() 3699 memcpy_toio(ai->rxfids[0].card_ram_off, &rxd, sizeof(rxd)); mpi_receive_802_3() 3703 static void mpi_receive_802_11(struct airo_info *ai) mpi_receive_802_11() argument 3712 char *ptr = ai->rxfids[0].virtual_host_addr + 4; mpi_receive_802_11() 3714 memcpy_fromio(&rxd, ai->rxfids[0].card_ram_off, sizeof(rxd)); mpi_receive_802_11() 3720 if (ai->wifidev == NULL) mpi_receive_802_11() 3724 airo_print_err(ai->dev->name, "Bad size %d", len); mpi_receive_802_11() 3735 ai->dev->stats.rx_dropped++; mpi_receive_802_11() 3749 airo_print_err(ai->dev->name, mpi_receive_802_11() 3755 if (ai->spy_data.spy_number > 0) { mpi_receive_802_11() 3761 if (ai->rssi) mpi_receive_802_11() 3762 wstats.level = 0x100 - ai->rssi[hdr.rssi[1]].rssidBm; mpi_receive_802_11() 3765 wstats.noise = ai->wstats.qual.noise; mpi_receive_802_11() 3770 wireless_spy_update(ai->dev, sa, &wstats); mpi_receive_802_11() 3775 skb->dev = ai->wifidev; mpi_receive_802_11() 3785 memcpy_toio(ai->rxfids[0].card_ram_off, &rxd, sizeof(rxd)); mpi_receive_802_11() 3789 static u16 setup_card(struct airo_info *ai, u8 *mac, int lock) setup_card() argument 3800 kfree (ai->flash); setup_card() 3801 ai->flash = NULL; setup_card() 3806 if (lock && down_interruptible(&ai->sem)) setup_card() 3808 if ( issuecommand( ai, &cmd, &rsp ) != SUCCESS ) { setup_card() 3810 up(&ai->sem); setup_card() 3813 disable_MAC( ai, 0); setup_card() 3816 if (!test_bit(FLAG_MPI,&ai->flags)) { setup_card() 3818 if (issuecommand(ai, &cmd, &rsp) != SUCCESS) { setup_card() 3820 up(&ai->sem); setup_card() 3821 airo_print_err(ai->dev->name, "Error checking for AUX port"); setup_card() 3825 ai->bap_read = fast_bap_read; setup_card() 3826 airo_print_dbg(ai->dev->name, "Doing fast bap_reads"); setup_card() 3828 ai->bap_read = aux_bap_read; setup_card() 3829 airo_print_dbg(ai->dev->name, "Doing AUX bap_reads"); setup_card() 3833 up(&ai->sem); setup_card() 3834 if (ai->config.len == 0) { setup_card() 3839 kfree(ai->APList); setup_card() 3840 ai->APList = NULL; setup_card() 3841 kfree(ai->SSID); setup_card() 3842 ai->SSID = NULL; setup_card() 3844 status = readConfigRid(ai, lock); setup_card() 3847 status = readCapabilityRid(ai, &cap_rid, lock); setup_card() 3850 status = PC4500_readrid(ai,RID_RSSI,&rssi_rid,sizeof(rssi_rid),lock); setup_card() 3852 if (ai->rssi || (ai->rssi = kmalloc(512, GFP_KERNEL)) != NULL) setup_card() 3853 memcpy(ai->rssi, (u8*)&rssi_rid + 2, 512); /* Skip RID length member */ setup_card() 3856 kfree(ai->rssi); setup_card() 3857 ai->rssi = NULL; setup_card() 3859 ai->config.rmode |= RXMODE_NORMALIZED_RSSI; setup_card() 3861 airo_print_warn(ai->dev->name, "unknown received signal " setup_card() 3864 ai->config.opmode = adhoc ? MODE_STA_IBSS : MODE_STA_ESS; setup_card() 3865 ai->config.authType = AUTH_OPEN; setup_card() 3866 ai->config.modulation = MOD_CCK; setup_card() 3870 micsetup(ai) == SUCCESS) { setup_card() 3871 ai->config.opmode |= MODE_MIC; setup_card() 3872 set_bit(FLAG_MIC_CAPABLE, &ai->flags); setup_card() 3877 mac[i] = ai->config.macAddr[i]; setup_card() 3883 memset(ai->config.rates,0,sizeof(ai->config.rates)); setup_card() 3885 ai->config.rates[i] = rates[i]; setup_card() 3888 set_bit (FLAG_COMMIT, &ai->flags); setup_card() 3904 status = writeConfigRid(ai, lock); setup_card() 3909 status = writeSsidRid(ai, &mySsid, lock); setup_card() 3913 status = enable_MAC(ai, lock); setup_card() 3918 rc = readWepKeyRid(ai, &wkr, 1, lock); setup_card() 3922 ai->defindex = wkr.mac[0]; setup_card() 3924 rc = readWepKeyRid(ai, &wkr, 0, lock); setup_card() 3927 try_auto_wep(ai); setup_card() 3932 static u16 issuecommand(struct airo_info *ai, Cmd *pCmd, Resp *pRsp) { issuecommand() argument 3936 if (IN4500(ai, EVSTAT) & EV_CMD) issuecommand() 3937 OUT4500(ai, EVACK, EV_CMD); issuecommand() 3939 OUT4500(ai, PARAM0, pCmd->parm0); issuecommand() 3940 OUT4500(ai, PARAM1, pCmd->parm1); issuecommand() 3941 OUT4500(ai, PARAM2, pCmd->parm2); issuecommand() 3942 OUT4500(ai, COMMAND, pCmd->cmd); issuecommand() 3944 while (max_tries-- && (IN4500(ai, EVSTAT) & EV_CMD) == 0) { issuecommand() 3945 if ((IN4500(ai, COMMAND)) == pCmd->cmd) issuecommand() 3947 OUT4500(ai, COMMAND, pCmd->cmd); issuecommand() 3953 airo_print_err(ai->dev->name, issuecommand() 3955 if (IN4500(ai, COMMAND) & COMMAND_BUSY) issuecommand() 3956 OUT4500(ai, EVACK, EV_CLEARCOMMANDBUSY); issuecommand() 3961 pRsp->status = IN4500(ai, STATUS); issuecommand() 3962 pRsp->rsp0 = IN4500(ai, RESP0); issuecommand() 3963 pRsp->rsp1 = IN4500(ai, RESP1); issuecommand() 3964 pRsp->rsp2 = IN4500(ai, RESP2); issuecommand() 3966 airo_print_err(ai->dev->name, issuecommand() 3972 if (IN4500(ai, COMMAND) & COMMAND_BUSY) { issuecommand() 3973 OUT4500(ai, EVACK, EV_CLEARCOMMANDBUSY); issuecommand() 3976 OUT4500(ai, EVACK, EV_CMD); issuecommand() 3984 static int bap_setup(struct airo_info *ai, u16 rid, u16 offset, int whichbap ) bap_setup() argument 3989 OUT4500(ai, SELECT0+whichbap, rid); bap_setup() 3990 OUT4500(ai, OFFSET0+whichbap, offset); bap_setup() 3992 int status = IN4500(ai, OFFSET0+whichbap); bap_setup() 4001 airo_print_err(ai->dev->name, "BAP error %x %d", bap_setup() 4008 airo_print_err(ai->dev->name, bap_setup() 4013 OUT4500(ai, SELECT0+whichbap, rid); bap_setup() 4014 OUT4500(ai, OFFSET0+whichbap, offset); bap_setup() 4022 static u16 aux_setup(struct airo_info *ai, u16 page, aux_setup() argument 4027 OUT4500(ai, AUXPAGE, page); aux_setup() 4028 OUT4500(ai, AUXOFF, 0); aux_setup() 4029 next = IN4500(ai, AUXDATA); aux_setup() 4030 *len = IN4500(ai, AUXDATA)&0xff; aux_setup() 4031 if (offset != 4) OUT4500(ai, AUXOFF, offset); aux_setup() 4036 static int aux_bap_read(struct airo_info *ai, __le16 *pu16Dst, aux_bap_read() argument 4047 spin_lock_irqsave(&ai->aux_lock, flags); aux_bap_read() 4048 page = IN4500(ai, SWS0+whichbap); aux_bap_read() 4049 offset = IN4500(ai, SWS2+whichbap); aux_bap_read() 4050 next = aux_setup(ai, page, offset, &len); aux_bap_read() 4057 insw( ai->dev->base_addr+DATA0+whichbap, aux_bap_read() 4060 insb( ai->dev->base_addr+DATA0+whichbap, aux_bap_read() 4064 next = aux_setup(ai, next, 4, &len); aux_bap_read() 4067 spin_unlock_irqrestore(&ai->aux_lock, flags); aux_bap_read() 4073 static int fast_bap_read(struct airo_info *ai, __le16 *pu16Dst, fast_bap_read() argument 4078 insw( ai->dev->base_addr+DATA0+whichbap, pu16Dst, bytelen>>1 ); fast_bap_read() 4080 insb( ai->dev->base_addr+DATA0+whichbap, pu16Dst, bytelen ); fast_bap_read() 4085 static int bap_write(struct airo_info *ai, const __le16 *pu16Src, bap_write() argument 4090 outsw( ai->dev->base_addr+DATA0+whichbap, bap_write() 4093 outsb( ai->dev->base_addr+DATA0+whichbap, pu16Src, bytelen ); bap_write() 4097 static int PC4500_accessrid(struct airo_info *ai, u16 rid, u16 accmd) PC4500_accessrid() argument 4106 status = issuecommand(ai, &cmd, &rsp); PC4500_accessrid() 4116 static int PC4500_readrid(struct airo_info *ai, u16 rid, void *pBuf, int len, int lock) PC4500_readrid() argument 4122 if (down_interruptible(&ai->sem)) PC4500_readrid() 4125 if (test_bit(FLAG_MPI,&ai->flags)) { PC4500_readrid() 4131 ai->config_desc.rid_desc.valid = 1; PC4500_readrid() 4132 ai->config_desc.rid_desc.len = RIDSIZE; PC4500_readrid() 4133 ai->config_desc.rid_desc.rid = 0; PC4500_readrid() 4134 ai->config_desc.rid_desc.host_addr = ai->ridbus; PC4500_readrid() 4139 memcpy_toio(ai->config_desc.card_ram_off, PC4500_readrid() 4140 &ai->config_desc.rid_desc, sizeof(Rid)); PC4500_readrid() 4142 rc = issuecommand(ai, &cmd, &rsp); PC4500_readrid() 4147 memcpy(pBuf, ai->config_desc.virtual_host_addr, len); PC4500_readrid() 4150 if ((status = PC4500_accessrid(ai, rid, CMD_ACCESS))!=SUCCESS) { PC4500_readrid() 4154 if (bap_setup(ai, rid, 0, BAP1) != SUCCESS) { PC4500_readrid() 4159 bap_read(ai, pBuf, 2, BAP1); PC4500_readrid() 4164 airo_print_err(ai->dev->name, PC4500_readrid() 4171 rc = bap_read(ai, ((__le16*)pBuf)+1, len, BAP1); PC4500_readrid() 4175 up(&ai->sem); PC4500_readrid() 4181 static int PC4500_writerid(struct airo_info *ai, u16 rid, PC4500_writerid() argument 4190 if (down_interruptible(&ai->sem)) PC4500_writerid() 4193 if (test_bit(FLAG_MPI,&ai->flags)) { PC4500_writerid() 4197 if (test_bit(FLAG_ENABLED, &ai->flags) && (RID_WEP_TEMP != rid)) PC4500_writerid() 4198 airo_print_err(ai->dev->name, PC4500_writerid() 4204 ai->config_desc.rid_desc.valid = 1; PC4500_writerid() 4205 ai->config_desc.rid_desc.len = *((u16 *)pBuf); PC4500_writerid() 4206 ai->config_desc.rid_desc.rid = 0; PC4500_writerid() 4211 memcpy_toio(ai->config_desc.card_ram_off, PC4500_writerid() 4212 &ai->config_desc.rid_desc, sizeof(Rid)); PC4500_writerid() 4215 airo_print_err(ai->dev->name, "%s: len=%d", __func__, len); PC4500_writerid() 4218 memcpy(ai->config_desc.virtual_host_addr, PC4500_writerid() 4221 rc = issuecommand(ai, &cmd, &rsp); PC4500_writerid() 4223 airo_print_err(ai->dev->name, "%s: Write rid Error %d", PC4500_writerid() 4225 airo_print_err(ai->dev->name, "%s: Cmd=%04x", PC4500_writerid() 4234 if ( (status = PC4500_accessrid(ai, rid, CMD_ACCESS)) != 0) { PC4500_writerid() 4239 if (bap_setup(ai, rid, 0, BAP1) != SUCCESS) { PC4500_writerid() 4243 bap_write(ai, pBuf, len, BAP1); PC4500_writerid() 4245 rc = PC4500_accessrid(ai, rid, 0x100|CMD_ACCESS); PC4500_writerid() 4249 up(&ai->sem); PC4500_writerid() 4255 static u16 transmit_allocate(struct airo_info *ai, int lenPayload, int raw) transmit_allocate() argument 4265 if (down_interruptible(&ai->sem)) transmit_allocate() 4267 if (issuecommand(ai, &cmd, &rsp) != SUCCESS) { transmit_allocate() 4278 while (((IN4500(ai, EVSTAT) & EV_ALLOC) == 0) && --loop); transmit_allocate() 4285 txFid = IN4500(ai, TXALLOCFID); transmit_allocate() 4286 OUT4500(ai, EVACK, EV_ALLOC); transmit_allocate() 4299 if (bap_setup(ai, txFid, 0x0008, BAP1) != SUCCESS) transmit_allocate() 4302 bap_write(ai, &txControl, sizeof(txControl), BAP1); transmit_allocate() 4305 up(&ai->sem); transmit_allocate() 4313 static int transmit_802_3_packet(struct airo_info *ai, int len, char *pPacket) transmit_802_3_packet() argument 4325 airo_print_warn(ai->dev->name, "Short packet %d", len); transmit_802_3_packet() 4330 if (test_bit(FLAG_MIC_CAPABLE, &ai->flags) && ai->micstats.enabled && transmit_802_3_packet() 4332 if (encapsulate(ai,(etherHead *)pPacket,&pMic,len) != SUCCESS) transmit_802_3_packet() 4338 if (bap_setup(ai, txFid, 0x0036, BAP1) != SUCCESS) return ERROR; transmit_802_3_packet() 4342 bap_write(ai, &payloadLen, sizeof(payloadLen),BAP1); transmit_802_3_packet() 4343 bap_write(ai, (__le16*)pPacket, sizeof(etherHead), BAP1); transmit_802_3_packet() 4345 bap_write(ai, (__le16*)&pMic, miclen, BAP1); transmit_802_3_packet() 4346 bap_write(ai, (__le16*)(pPacket + sizeof(etherHead)), len, BAP1); transmit_802_3_packet() 4351 if (issuecommand(ai, &cmd, &rsp) != SUCCESS) return ERROR; transmit_802_3_packet() 4356 static int transmit_802_11_packet(struct airo_info *ai, int len, char *pPacket) transmit_802_11_packet() argument 4371 airo_print_warn(ai->dev->name, "Short packet %d", len); transmit_802_11_packet() 4377 if (bap_setup(ai, txFid, 6, BAP1) != SUCCESS) return ERROR; transmit_802_11_packet() 4381 bap_write(ai, &payloadLen, sizeof(payloadLen),BAP1); transmit_802_11_packet() 4382 if (bap_setup(ai, txFid, 0x0014, BAP1) != SUCCESS) return ERROR; transmit_802_11_packet() 4383 bap_write(ai, (__le16 *)pPacket, hdrlen, BAP1); transmit_802_11_packet() 4384 bap_write(ai, (__le16 *)(tail + (hdrlen - 10)), 38 - hdrlen, BAP1); transmit_802_11_packet() 4386 bap_write(ai, (__le16 *)(pPacket + hdrlen), len - hdrlen, BAP1); transmit_802_11_packet() 4391 if (issuecommand(ai, &cmd, &rsp) != SUCCESS) return ERROR; transmit_802_11_packet() 4770 static inline int sniffing_mode(struct airo_info *ai) sniffing_mode() argument 4772 return (le16_to_cpu(ai->config.rmode) & le16_to_cpu(RXMODE_MASK)) >= sniffing_mode() 4780 struct airo_info *ai = dev->ml_priv; proc_config_on_close() local 4785 readConfigRid(ai, 1); proc_config_on_close() 4786 set_bit (FLAG_COMMIT, &ai->flags); proc_config_on_close() 4793 if (sniffing_mode(ai)) proc_config_on_close() 4794 set_bit (FLAG_RESET, &ai->flags); proc_config_on_close() 4795 ai->config.rmode &= ~RXMODE_FULL_MASK; proc_config_on_close() 4796 clear_bit (FLAG_802_11, &ai->flags); proc_config_on_close() 4797 ai->config.opmode &= ~MODE_CFG_MASK; proc_config_on_close() 4798 ai->config.scanMode = SCANMODE_ACTIVE; proc_config_on_close() 4800 ai->config.opmode |= MODE_STA_IBSS; proc_config_on_close() 4802 ai->config.opmode |= MODE_STA_ESS; proc_config_on_close() 4804 ai->config.rmode |= RXMODE_RFMON | RXMODE_DISABLE_802_3_HEADER; proc_config_on_close() 4805 ai->config.scanMode = SCANMODE_PASSIVE; proc_config_on_close() 4806 set_bit (FLAG_802_11, &ai->flags); proc_config_on_close() 4808 ai->config.rmode |= RXMODE_RFMON_ANYBSS | RXMODE_DISABLE_802_3_HEADER; proc_config_on_close() 4809 ai->config.scanMode = SCANMODE_PASSIVE; proc_config_on_close() 4810 set_bit (FLAG_802_11, &ai->flags); proc_config_on_close() 4812 ai->config.rmode |= RXMODE_LANMON; proc_config_on_close() 4814 set_bit (FLAG_COMMIT, &ai->flags); proc_config_on_close() 4821 set_bit (FLAG_RADIO_OFF, &ai->flags); proc_config_on_close() 4823 clear_bit (FLAG_RADIO_OFF, &ai->flags); proc_config_on_close() 4831 memset( ai->config.nodeName, 0, 16 ); proc_config_on_close() 4834 ai->config.nodeName[j] = line[j]; proc_config_on_close() 4836 set_bit (FLAG_COMMIT, &ai->flags); proc_config_on_close() 4843 ai->config.powerSaveMode = POWERSAVE_PSPCAM; proc_config_on_close() 4844 set_bit (FLAG_COMMIT, &ai->flags); proc_config_on_close() 4846 ai->config.powerSaveMode = POWERSAVE_PSP; proc_config_on_close() 4847 set_bit (FLAG_COMMIT, &ai->flags); proc_config_on_close() 4849 ai->config.powerSaveMode = POWERSAVE_CAM; proc_config_on_close() 4850 set_bit (FLAG_COMMIT, &ai->flags); proc_config_on_close() 4858 ai->config.rates[k++] = (u8)v; proc_config_on_close() 4862 set_bit (FLAG_COMMIT, &ai->flags); proc_config_on_close() 4868 ai->config.channelSet = cpu_to_le16(v); proc_config_on_close() 4869 set_bit (FLAG_COMMIT, &ai->flags); proc_config_on_close() 4876 ai->config.txPower = cpu_to_le16(v); proc_config_on_close() 4877 set_bit (FLAG_COMMIT, &ai->flags); proc_config_on_close() 4883 ai->config.authType = AUTH_SHAREDKEY; proc_config_on_close() 4886 ai->config.authType = AUTH_ENCRYPT; proc_config_on_close() 4889 ai->config.authType = AUTH_OPEN; proc_config_on_close() 4892 set_bit (FLAG_COMMIT, &ai->flags); proc_config_on_close() 4899 ai->config.longRetryLimit = cpu_to_le16(v); proc_config_on_close() 4900 set_bit (FLAG_COMMIT, &ai->flags); proc_config_on_close() 4907 ai->config.shortRetryLimit = cpu_to_le16(v); proc_config_on_close() 4908 set_bit (FLAG_COMMIT, &ai->flags); proc_config_on_close() 4915 ai->config.rtsThres = cpu_to_le16(v); proc_config_on_close() 4916 set_bit (FLAG_COMMIT, &ai->flags); proc_config_on_close() 4923 ai->config.txLifetime = cpu_to_le16(v); proc_config_on_close() 4924 set_bit (FLAG_COMMIT, &ai->flags); proc_config_on_close() 4931 ai->config.rxLifetime = cpu_to_le16(v); proc_config_on_close() 4932 set_bit (FLAG_COMMIT, &ai->flags); proc_config_on_close() 4934 ai->config.txDiversity = proc_config_on_close() 4937 set_bit (FLAG_COMMIT, &ai->flags); proc_config_on_close() 4939 ai->config.rxDiversity = proc_config_on_close() 4942 set_bit (FLAG_COMMIT, &ai->flags); proc_config_on_close() 4950 ai->config.fragThresh = cpu_to_le16(v); proc_config_on_close() 4951 set_bit (FLAG_COMMIT, &ai->flags); proc_config_on_close() 4955 case 'd': ai->config.modulation=MOD_DEFAULT; set_bit(FLAG_COMMIT, &ai->flags); break; proc_config_on_close() 4956 case 'c': ai->config.modulation=MOD_CCK; set_bit(FLAG_COMMIT, &ai->flags); break; proc_config_on_close() 4957 case 'm': ai->config.modulation=MOD_MOK; set_bit(FLAG_COMMIT, &ai->flags); break; proc_config_on_close() 4958 default: airo_print_warn(ai->dev->name, "Unknown modulation"); proc_config_on_close() 4963 case 'a': ai->config.preamble=PREAMBLE_AUTO; set_bit(FLAG_COMMIT, &ai->flags); break; proc_config_on_close() 4964 case 'l': ai->config.preamble=PREAMBLE_LONG; set_bit(FLAG_COMMIT, &ai->flags); break; proc_config_on_close() 4965 case 's': ai->config.preamble=PREAMBLE_SHORT; set_bit(FLAG_COMMIT, &ai->flags); break; proc_config_on_close() 4966 default: airo_print_warn(ai->dev->name, "Unknown preamble"); proc_config_on_close() 4969 airo_print_warn(ai->dev->name, "Couldn't figure out %s", line); proc_config_on_close() 4991 struct airo_info *ai = dev->ml_priv; proc_config_open() local 5010 readConfigRid(ai, 1); proc_config_open() 5012 mode = ai->config.opmode & MODE_CFG_MASK; proc_config_open() 5022 mode == MODE_STA_ESS ? get_rmode(ai->config.rmode): proc_config_open() 5025 test_bit(FLAG_RADIO_OFF, &ai->flags) ? "off" : "on", proc_config_open() 5026 ai->config.nodeName, proc_config_open() 5027 ai->config.powerSaveMode == POWERSAVE_CAM ? "CAM" : proc_config_open() 5028 ai->config.powerSaveMode == POWERSAVE_PSP ? "PSP" : proc_config_open() 5029 ai->config.powerSaveMode == POWERSAVE_PSPCAM ? "PSPCAM" : proc_config_open() 5031 (int)ai->config.rates[0], proc_config_open() 5032 (int)ai->config.rates[1], proc_config_open() 5033 (int)ai->config.rates[2], proc_config_open() 5034 (int)ai->config.rates[3], proc_config_open() 5035 (int)ai->config.rates[4], proc_config_open() 5036 (int)ai->config.rates[5], proc_config_open() 5037 (int)ai->config.rates[6], proc_config_open() 5038 (int)ai->config.rates[7], proc_config_open() 5039 le16_to_cpu(ai->config.channelSet), proc_config_open() 5040 le16_to_cpu(ai->config.txPower) proc_config_open() 5054 le16_to_cpu(ai->config.longRetryLimit), proc_config_open() 5055 le16_to_cpu(ai->config.shortRetryLimit), proc_config_open() 5056 le16_to_cpu(ai->config.rtsThres), proc_config_open() 5057 le16_to_cpu(ai->config.txLifetime), proc_config_open() 5058 le16_to_cpu(ai->config.rxLifetime), proc_config_open() 5059 ai->config.txDiversity == 1 ? "left" : proc_config_open() 5060 ai->config.txDiversity == 2 ? "right" : "both", proc_config_open() 5061 ai->config.rxDiversity == 1 ? "left" : proc_config_open() 5062 ai->config.rxDiversity == 2 ? "right" : "both", proc_config_open() 5063 le16_to_cpu(ai->config.fragThresh), proc_config_open() 5064 ai->config.authType == AUTH_ENCRYPT ? "encrypt" : proc_config_open() 5065 ai->config.authType == AUTH_SHAREDKEY ? "shared" : "open", proc_config_open() 5066 ai->config.modulation == MOD_DEFAULT ? "default" : proc_config_open() 5067 ai->config.modulation == MOD_CCK ? "cck" : proc_config_open() 5068 ai->config.modulation == MOD_MOK ? "mok" : "error", proc_config_open() 5069 ai->config.preamble == PREAMBLE_AUTO ? "auto" : proc_config_open() 5070 ai->config.preamble == PREAMBLE_LONG ? "long" : proc_config_open() 5071 ai->config.preamble == PREAMBLE_SHORT ? "short" : "error" proc_config_open() 5081 struct airo_info *ai = dev->ml_priv; proc_SSID_on_close() local 5108 disable_MAC(ai, 1); proc_SSID_on_close() 5109 writeSsidRid(ai, &SSID_rid, 1); proc_SSID_on_close() 5110 enable_MAC(ai, 1); proc_SSID_on_close() 5116 struct airo_info *ai = dev->ml_priv; proc_APList_on_close() local 5140 disable_MAC(ai, 1); proc_APList_on_close() 5141 writeAPListRid(ai, &APList_rid, 1); proc_APList_on_close() 5142 enable_MAC(ai, 1); proc_APList_on_close() 5146 static int do_writerid( struct airo_info *ai, u16 rid, const void *rid_data, do_writerid() argument 5150 disable_MAC(ai, 1); do_writerid() 5151 rc = PC4500_writerid(ai, rid, rid_data, len, 1); do_writerid() 5152 enable_MAC(ai, 1); do_writerid() 5159 static int get_wep_key(struct airo_info *ai, u16 index, char *buf, u16 buflen) get_wep_key() argument 5165 rc = readWepKeyRid(ai, &wkr, 1, 1); get_wep_key() 5175 rc = readWepKeyRid(ai, &wkr, 0, 1); get_wep_key() 5182 static int get_wep_tx_idx(struct airo_info *ai) get_wep_tx_idx() argument 5188 rc = readWepKeyRid(ai, &wkr, 1, 1); get_wep_tx_idx() 5195 rc = readWepKeyRid(ai, &wkr, 0, 1); get_wep_tx_idx() 5202 static int set_wep_key(struct airo_info *ai, u16 index, const char *key, set_wep_key() argument 5219 if (perm) disable_MAC(ai, lock); set_wep_key() 5220 rc = writeWepKeyRid(ai, &wkr, perm, lock); set_wep_key() 5221 if (perm) enable_MAC(ai, lock); set_wep_key() 5225 static int set_wep_tx_idx(struct airo_info *ai, u16 index, int perm, int lock) set_wep_tx_idx() argument 5236 ai->defindex = (char)index; set_wep_tx_idx() 5237 disable_MAC(ai, lock); set_wep_tx_idx() 5240 rc = writeWepKeyRid(ai, &wkr, perm, lock); set_wep_tx_idx() 5243 enable_MAC(ai, lock); set_wep_tx_idx() 5250 struct airo_info *ai = dev->ml_priv; proc_wepkey_on_close() local 5265 rc = set_wep_tx_idx(ai, index, 1, 1); proc_wepkey_on_close() 5267 airo_print_err(ai->dev->name, "failed to set " proc_wepkey_on_close() 5275 airo_print_err(ai->dev->name, "WepKey passed invalid key index"); proc_wepkey_on_close() 5290 rc = set_wep_key(ai, index, key, i/3, 1, 1); proc_wepkey_on_close() 5292 airo_print_err(ai->dev->name, "failed to set WEP key at index " proc_wepkey_on_close() 5301 struct airo_info *ai = dev->ml_priv; proc_wepkey_open() local 5327 rc = readWepKeyRid(ai, &wkr, 1, 1); proc_wepkey_open() 5338 readWepKeyRid(ai, &wkr, 0, 1); proc_wepkey_open() 5349 struct airo_info *ai = dev->ml_priv; proc_SSID_open() local 5371 readSsidRid(ai, &SSID_rid); proc_SSID_open() 5392 struct airo_info *ai = dev->ml_priv; proc_APList_open() local 5413 readAPListRid(ai, &APList_rid); proc_APList_open() 5431 struct airo_info *ai = dev->ml_priv; proc_BSSList_open() local 5455 if (ai->flags & FLAG_RADIO_MASK) return -ENETDOWN; proc_BSSList_open() 5458 if (down_interruptible(&ai->sem)) proc_BSSList_open() 5460 issuecommand(ai, &cmd, &rsp); proc_BSSList_open() 5461 up(&ai->sem); proc_BSSList_open() 5471 rc = readBSSListRid(ai, doLoseSync, &BSSList_rid); proc_BSSList_open() 5484 rc = readBSSListRid(ai, 0, &BSSList_rid); proc_BSSList_open() 5579 struct airo_info *ai = dev->ml_priv; airo_pci_suspend() local 5583 if (!ai->APList) airo_pci_suspend() 5584 ai->APList = kmalloc(sizeof(APListRid), GFP_KERNEL); airo_pci_suspend() 5585 if (!ai->APList) airo_pci_suspend() 5587 if (!ai->SSID) airo_pci_suspend() 5588 ai->SSID = kmalloc(sizeof(SsidRid), GFP_KERNEL); airo_pci_suspend() 5589 if (!ai->SSID) airo_pci_suspend() 5591 readAPListRid(ai, ai->APList); airo_pci_suspend() 5592 readSsidRid(ai, ai->SSID); airo_pci_suspend() 5595 if (down_interruptible(&ai->sem)) airo_pci_suspend() 5597 disable_MAC(ai, 0); airo_pci_suspend() 5599 ai->power = state; airo_pci_suspend() 5601 issuecommand(ai, &cmd, &rsp); airo_pci_suspend() 5612 struct airo_info *ai = dev->ml_priv; airo_pci_resume() local 5621 mpi_init_descriptors(ai); airo_pci_resume() 5622 setup_card(ai, dev->dev_addr, 0); airo_pci_resume() 5623 clear_bit(FLAG_RADIO_OFF, &ai->flags); airo_pci_resume() 5624 clear_bit(FLAG_PENDING_XMIT, &ai->flags); airo_pci_resume() 5626 OUT4500(ai, EVACK, EV_AWAKEN); airo_pci_resume() 5627 OUT4500(ai, EVACK, EV_AWAKEN); airo_pci_resume() 5631 set_bit(FLAG_COMMIT, &ai->flags); airo_pci_resume() 5632 disable_MAC(ai, 0); airo_pci_resume() 5634 if (ai->SSID) { airo_pci_resume() 5635 writeSsidRid(ai, ai->SSID, 0); airo_pci_resume() 5636 kfree(ai->SSID); airo_pci_resume() 5637 ai->SSID = NULL; airo_pci_resume() 5639 if (ai->APList) { airo_pci_resume() 5640 writeAPListRid(ai, ai->APList, 0); airo_pci_resume() 5641 kfree(ai->APList); airo_pci_resume() 5642 ai->APList = NULL; airo_pci_resume() 5644 writeConfigRid(ai, 0); airo_pci_resume() 5645 enable_MAC(ai, 0); airo_pci_resume() 5646 ai->power = PMSG_ON; airo_pci_resume() 5649 enable_interrupts(ai); airo_pci_resume() 5650 up(&ai->sem); airo_pci_resume() 5695 struct airo_info *ai; airo_cleanup_module() local 5697 ai = list_entry(airo_devices.next, struct airo_info, dev_list); airo_cleanup_module() 5698 airo_print_info(ai->dev->name, "Unregistering..."); airo_cleanup_module() 5699 stop_airo_card(ai->dev, 1); airo_cleanup_module() 6299 static inline int valid_index(struct airo_info *ai, int index) valid_index() argument 6301 return (index >= 0) && (index <= ai->max_wep_idx); valid_index() 7216 struct airo_info *ai = dev->ml_priv; airo_set_scan() local 7227 if (ai->flags & FLAG_RADIO_MASK) return -ENETDOWN; airo_set_scan() 7229 if (down_interruptible(&ai->sem)) airo_set_scan() 7234 if (ai->scan_timeout > 0) airo_set_scan() 7238 ai->scan_timeout = RUN_AT(3*HZ); airo_set_scan() 7241 issuecommand(ai, &cmd, &rsp); airo_set_scan() 7245 up(&ai->sem); airo_set_scan() 7247 wake_up_interruptible(&ai->thr_wait); airo_set_scan() 7262 struct airo_info *ai = dev->ml_priv; airo_translate_scan() local 7313 if (ai->rssi) { airo_translate_scan() 7315 iwe.u.qual.qual = airo_dbm_to_pct(ai->rssi, dBm); airo_translate_scan() 7326 iwe.u.qual.noise = ai->wstats.qual.noise; airo_translate_scan() 7375 if (test_bit(FLAG_WPA_CAPABLE, &ai->flags)) { airo_translate_scan() 7439 struct airo_info *ai = dev->ml_priv; airo_get_scan() local 7445 if (ai->scan_timeout > 0) airo_get_scan() 7448 if (down_interruptible(&ai->sem)) airo_get_scan() 7451 list_for_each_entry (net, &ai->network_list, list) { airo_get_scan() 7470 up(&ai->sem); airo_get_scan() 7628 struct airo_info *ai = dev->ml_priv; airo_ioctl() local 7630 if (ai->power.event) airo_ioctl() 7781 struct airo_info *ai = dev->ml_priv; readrids() local 7783 if (test_bit(FLAG_FLASHING, &ai->flags)) readrids() 7790 if (test_bit(FLAG_COMMIT, &ai->flags)) { readrids() 7791 disable_MAC (ai, 1); readrids() 7792 writeConfigRid (ai, 1); readrids() 7793 enable_MAC(ai, 1); readrids() 7814 if (copy_to_user(comp->data, &ai->micstats, readrids() 7815 min((int)comp->len,(int)sizeof(ai->micstats)))) readrids() 7826 PC4500_readrid(ai,ridcode,iobuf,RIDSIZE, 1); readrids() 7846 struct airo_info *ai = dev->ml_priv; writerids() local 7856 if (test_bit(FLAG_FLASHING, &ai->flags)) writerids() 7867 case AIROPCFG: ai->config.len = 0; writerids() 7868 clear_bit(FLAG_COMMIT, &ai->flags); writerids() 7882 if (enable_MAC(ai, 1) != 0) writerids() 7891 disable_MAC(ai, 1); writerids() 7902 PC4500_readrid(ai,RID_STATSDELTACLEAR,iobuf,RIDSIZE, 1); writerids() 7904 enabled = ai->micstats.enabled; writerids() 7905 memset(&ai->micstats,0,sizeof(ai->micstats)); writerids() 7906 ai->micstats.enabled = enabled; writerids() 7933 if (test_bit(FLAG_MIC_CAPABLE, &ai->flags)) writerids() 7937 set_bit (FLAG_ADHOC, &ai->flags); writerids() 7939 clear_bit (FLAG_ADHOC, &ai->flags); writerids() 7942 if((*writer)(ai, ridcode, iobuf,comp->len,1)) { writerids() 8018 static int cmdreset(struct airo_info *ai) { cmdreset() argument 8019 disable_MAC(ai, 1); cmdreset() 8021 if(!waitbusy (ai)){ cmdreset() 8022 airo_print_info(ai->dev->name, "Waitbusy hang before RESET"); cmdreset() 8026 OUT4500(ai,COMMAND,CMD_SOFTRESET); cmdreset() 8030 if(!waitbusy (ai)){ cmdreset() 8031 airo_print_info(ai->dev->name, "Waitbusy hang AFTER RESET"); cmdreset() 8042 static int setflashmode (struct airo_info *ai) { setflashmode() argument 8043 set_bit (FLAG_FLASHING, &ai->flags); setflashmode() 8045 OUT4500(ai, SWS0, FLASH_COMMAND); setflashmode() 8046 OUT4500(ai, SWS1, FLASH_COMMAND); setflashmode() 8048 OUT4500(ai, SWS0, FLASH_COMMAND); setflashmode() 8049 OUT4500(ai, COMMAND,0x10); setflashmode() 8051 OUT4500(ai, SWS2, FLASH_COMMAND); setflashmode() 8052 OUT4500(ai, SWS3, FLASH_COMMAND); setflashmode() 8053 OUT4500(ai, COMMAND,0); setflashmode() 8057 if(!waitbusy(ai)) { setflashmode() 8058 clear_bit (FLAG_FLASHING, &ai->flags); setflashmode() 8059 airo_print_info(ai->dev->name, "Waitbusy hang after setflash mode"); setflashmode() 8069 static int flashpchar(struct airo_info *ai,int byte,int dwelltime) { flashpchar() argument 8081 while ((IN4500 (ai, SWS0) & 0x8000) && waittime > 0) { flashpchar() 8088 airo_print_info(ai->dev->name, "flash putchar busywait timeout!"); flashpchar() 8094 OUT4500(ai,SWS0,byte); flashpchar() 8097 echo = IN4500(ai,SWS1); flashpchar() 8100 OUT4500(ai,SWS1,0); flashpchar() 8109 static int flashgchar(struct airo_info *ai,int matchbyte,int dwelltime){ flashgchar() argument 8114 rchar = IN4500(ai,SWS1); flashgchar() 8124 OUT4500(ai,SWS1,0); flashgchar() 8129 OUT4500(ai,SWS1,0); flashgchar() 8140 static int flashputbuf(struct airo_info *ai){ flashputbuf() argument 8144 if (test_bit(FLAG_MPI,&ai->flags)) flashputbuf() 8145 memcpy_toio(ai->pciaux + 0x8000, ai->flash, FLASHSIZE); flashputbuf() 8147 OUT4500(ai,AUXPAGE,0x100); flashputbuf() 8148 OUT4500(ai,AUXOFF,0); flashputbuf() 8151 OUT4500(ai,AUXDATA,ai->flash[nwords] & 0xffff); flashputbuf() 8154 OUT4500(ai,SWS0,0x8000); flashputbuf() 8162 static int flashrestart(struct airo_info *ai,struct net_device *dev){ flashrestart() argument 8166 clear_bit (FLAG_FLASHING, &ai->flags); flashrestart() 8167 if (test_bit(FLAG_MPI, &ai->flags)) { flashrestart() 8168 status = mpi_init_descriptors(ai); flashrestart() 8172 status = setup_card(ai, dev->dev_addr, 1); flashrestart() 8174 if (!test_bit(FLAG_MPI,&ai->flags)) flashrestart() 8176 ai->fids[i] = transmit_allocate flashrestart() 8177 ( ai, AIRO_DEF_MTU, i >= MAX_FIDS / 2 ); flashrestart()
|
/linux-4.1.27/drivers/mtd/ubi/ |
H A D | attach.c | 92 static int self_check_ai(struct ubi_device *ubi, struct ubi_attach_info *ai); 100 * @ai: attaching information 119 static int add_to_list(struct ubi_attach_info *ai, int pnum, int vol_id, add_to_list() argument 124 if (list == &ai->free) { add_to_list() 126 } else if (list == &ai->erase) { add_to_list() 128 } else if (list == &ai->alien) { add_to_list() 130 ai->alien_peb_count += 1; add_to_list() 134 aeb = kmem_cache_alloc(ai->aeb_slab_cache, GFP_KERNEL); add_to_list() 151 * @ai: attaching information 160 static int add_corrupted(struct ubi_attach_info *ai, int pnum, int ec) add_corrupted() argument 166 aeb = kmem_cache_alloc(ai->aeb_slab_cache, GFP_KERNEL); add_corrupted() 170 ai->corr_peb_count += 1; add_corrupted() 173 list_add(&aeb->u.list, &ai->corr); add_corrupted() 247 * @ai: attaching information 258 static struct ubi_ainf_volume *add_volume(struct ubi_attach_info *ai, add_volume() argument 263 struct rb_node **p = &ai->volumes.rb_node, *parent = NULL; add_volume() 294 if (vol_id > ai->highest_vol_id) add_volume() 295 ai->highest_vol_id = vol_id; add_volume() 298 rb_insert_color(&av->rb, &ai->volumes); add_volume() 299 ai->vols_found += 1; add_volume() 436 * @ai: attaching information 449 int ubi_add_to_av(struct ubi_device *ubi, struct ubi_attach_info *ai, int pnum, ubi_add_to_av() argument 465 av = add_volume(ai, vol_id, pnum, vid_hdr); ubi_add_to_av() 469 if (ai->max_sqnum < sqnum) ubi_add_to_av() 470 ai->max_sqnum = sqnum; ubi_add_to_av() 536 err = add_to_list(ai, aeb->pnum, aeb->vol_id, ubi_add_to_av() 538 &ai->erase); ubi_add_to_av() 560 return add_to_list(ai, pnum, vol_id, lnum, ec, ubi_add_to_av() 561 cmp_res & 4, &ai->erase); ubi_add_to_av() 574 aeb = kmem_cache_alloc(ai->aeb_slab_cache, GFP_KERNEL); ubi_add_to_av() 599 * @ai: attaching information 605 struct ubi_ainf_volume *ubi_find_av(const struct ubi_attach_info *ai, ubi_find_av() argument 609 struct rb_node *p = ai->volumes.rb_node; ubi_find_av() 628 * @ai: attaching information 631 void ubi_remove_av(struct ubi_attach_info *ai, struct ubi_ainf_volume *av) ubi_remove_av() argument 641 list_add_tail(&aeb->u.list, &ai->erase); ubi_remove_av() 644 rb_erase(&av->rb, &ai->volumes); ubi_remove_av() 646 ai->vols_found -= 1; ubi_remove_av() 652 * @ai: attaching information 663 const struct ubi_attach_info *ai, int pnum, int ec) early_erase_peb() 698 * @ai: attaching information 710 struct ubi_attach_info *ai) ubi_early_get_peb() 715 if (!list_empty(&ai->free)) { ubi_early_get_peb() 716 aeb = list_entry(ai->free.next, struct ubi_ainf_peb, u.list); ubi_early_get_peb() 728 list_for_each_entry_safe(aeb, tmp_aeb, &ai->erase, u.list) { ubi_early_get_peb() 730 aeb->ec = ai->mean_ec; ubi_early_get_peb() 732 err = early_erase_peb(ubi, ai, aeb->pnum, aeb->ec+1); ubi_early_get_peb() 809 * @ai: attaching information 819 static int scan_peb(struct ubi_device *ubi, struct ubi_attach_info *ai, scan_peb() argument 832 ai->bad_peb_count += 1; scan_peb() 846 ai->empty_peb_count += 1; scan_peb() 847 return add_to_list(ai, pnum, UBI_UNKNOWN, UBI_UNKNOWN, scan_peb() 848 UBI_UNKNOWN, 0, &ai->erase); scan_peb() 850 ai->empty_peb_count += 1; scan_peb() 851 return add_to_list(ai, pnum, UBI_UNKNOWN, UBI_UNKNOWN, scan_peb() 852 UBI_UNKNOWN, 1, &ai->erase); scan_peb() 936 ai->maybe_bad_peb_count += 1; scan_peb() 963 err = add_to_list(ai, pnum, UBI_UNKNOWN, scan_peb() 964 UBI_UNKNOWN, ec, 1, &ai->erase); scan_peb() 967 err = add_corrupted(ai, pnum, ec); scan_peb() 972 err = add_to_list(ai, pnum, UBI_UNKNOWN, UBI_UNKNOWN, scan_peb() 973 ec, 1, &ai->erase); scan_peb() 979 err = add_to_list(ai, pnum, UBI_UNKNOWN, scan_peb() 980 UBI_UNKNOWN, ec, 1, &ai->erase); scan_peb() 982 err = add_to_list(ai, pnum, UBI_UNKNOWN, scan_peb() 983 UBI_UNKNOWN, ec, 0, &ai->free); scan_peb() 1009 err = add_to_list(ai, pnum, vol_id, lnum, scan_peb() 1010 ec, 1, &ai->erase); scan_peb() 1024 err = add_to_list(ai, pnum, vol_id, lnum, scan_peb() 1025 ec, 0, &ai->alien); scan_peb() 1040 err = ubi_add_to_av(ubi, ai, pnum, ec, vidh, bitflips); scan_peb() 1046 ai->ec_sum += ec; scan_peb() 1047 ai->ec_count += 1; scan_peb() 1048 if (ec > ai->max_ec) scan_peb() 1049 ai->max_ec = ec; scan_peb() 1050 if (ec < ai->min_ec) scan_peb() 1051 ai->min_ec = ec; scan_peb() 1060 * @ai: attaching information 1063 * gather information about all of them ("ai" is compete). It decides whether 1068 static int late_analysis(struct ubi_device *ubi, struct ubi_attach_info *ai) late_analysis() argument 1073 peb_count = ubi->peb_count - ai->bad_peb_count - ai->alien_peb_count; late_analysis() 1081 if (ai->corr_peb_count) { late_analysis() 1083 ai->corr_peb_count); late_analysis() 1085 list_for_each_entry(aeb, &ai->corr, u.list) late_analysis() 1093 if (ai->corr_peb_count >= max_corr) { late_analysis() 1099 if (ai->empty_peb_count + ai->maybe_bad_peb_count == peb_count) { late_analysis() 1115 if (ai->maybe_bad_peb_count <= 2) { late_analysis() 1116 ai->is_empty = 1; late_analysis() 1133 * @ai: attaching information 1137 static void destroy_av(struct ubi_attach_info *ai, struct ubi_ainf_volume *av) destroy_av() argument 1157 kmem_cache_free(ai->aeb_slab_cache, aeb); destroy_av() 1165 * @ai: attaching information 1167 static void destroy_ai(struct ubi_attach_info *ai) destroy_ai() argument 1173 list_for_each_entry_safe(aeb, aeb_tmp, &ai->alien, u.list) { destroy_ai() 1175 kmem_cache_free(ai->aeb_slab_cache, aeb); destroy_ai() 1177 list_for_each_entry_safe(aeb, aeb_tmp, &ai->erase, u.list) { destroy_ai() 1179 kmem_cache_free(ai->aeb_slab_cache, aeb); destroy_ai() 1181 list_for_each_entry_safe(aeb, aeb_tmp, &ai->corr, u.list) { destroy_ai() 1183 kmem_cache_free(ai->aeb_slab_cache, aeb); destroy_ai() 1185 list_for_each_entry_safe(aeb, aeb_tmp, &ai->free, u.list) { destroy_ai() 1187 kmem_cache_free(ai->aeb_slab_cache, aeb); destroy_ai() 1191 rb = ai->volumes.rb_node; destroy_ai() 1208 destroy_av(ai, av); destroy_ai() 1212 if (ai->aeb_slab_cache) destroy_ai() 1213 kmem_cache_destroy(ai->aeb_slab_cache); destroy_ai() 1215 kfree(ai); destroy_ai() 1221 * @ai: attach info object 1228 static int scan_all(struct ubi_device *ubi, struct ubi_attach_info *ai, scan_all() argument 1250 err = scan_peb(ubi, ai, pnum, NULL, NULL); scan_all() 1258 if (ai->ec_count) scan_all() 1259 ai->mean_ec = div_u64(ai->ec_sum, ai->ec_count); scan_all() 1261 err = late_analysis(ubi, ai); scan_all() 1269 ubi_rb_for_each_entry(rb1, av, &ai->volumes, rb) { scan_all() 1272 aeb->ec = ai->mean_ec; scan_all() 1275 list_for_each_entry(aeb, &ai->free, u.list) { scan_all() 1277 aeb->ec = ai->mean_ec; scan_all() 1280 list_for_each_entry(aeb, &ai->corr, u.list) scan_all() 1282 aeb->ec = ai->mean_ec; scan_all() 1284 list_for_each_entry(aeb, &ai->erase, u.list) scan_all() 1286 aeb->ec = ai->mean_ec; scan_all() 1288 err = self_check_ai(ubi, ai); scan_all() 1306 struct ubi_attach_info *ai; alloc_ai() local 1308 ai = kzalloc(sizeof(struct ubi_attach_info), GFP_KERNEL); alloc_ai() 1309 if (!ai) alloc_ai() 1310 return ai; alloc_ai() 1312 INIT_LIST_HEAD(&ai->corr); alloc_ai() 1313 INIT_LIST_HEAD(&ai->free); alloc_ai() 1314 INIT_LIST_HEAD(&ai->erase); alloc_ai() 1315 INIT_LIST_HEAD(&ai->alien); alloc_ai() 1316 ai->volumes = RB_ROOT; alloc_ai() 1317 ai->aeb_slab_cache = kmem_cache_create("ubi_aeb_slab_cache", alloc_ai() 1320 if (!ai->aeb_slab_cache) { alloc_ai() 1321 kfree(ai); alloc_ai() 1322 ai = NULL; alloc_ai() 1325 return ai; alloc_ai() 1333 * @ai: attach info object 1340 static int scan_fast(struct ubi_device *ubi, struct ubi_attach_info **ai) scan_fast() argument 1361 err = scan_peb(ubi, *ai, pnum, &vol_id, &sqnum); scan_fast() 1377 destroy_ai(*ai); scan_fast() 1378 *ai = alloc_ai(); scan_fast() 1379 if (!*ai) scan_fast() 1382 return ubi_scan_fastmap(ubi, *ai, fm_anchor); scan_fast() 1405 struct ubi_attach_info *ai; ubi_attach() local 1407 ai = alloc_ai(); ubi_attach() 1408 if (!ai) ubi_attach() 1419 err = scan_all(ubi, ai, 0); ubi_attach() 1421 err = scan_fast(ubi, &ai); ubi_attach() 1424 destroy_ai(ai); ubi_attach() 1425 ai = alloc_ai(); ubi_attach() 1426 if (!ai) ubi_attach() 1429 err = scan_all(ubi, ai, 0); ubi_attach() 1431 err = scan_all(ubi, ai, UBI_FM_MAX_START); ubi_attach() 1436 err = scan_all(ubi, ai, 0); ubi_attach() 1441 ubi->bad_peb_count = ai->bad_peb_count; ubi_attach() 1443 ubi->corr_peb_count = ai->corr_peb_count; ubi_attach() 1444 ubi->max_ec = ai->max_ec; ubi_attach() 1445 ubi->mean_ec = ai->mean_ec; ubi_attach() 1446 dbg_gen("max. sequence number: %llu", ai->max_sqnum); ubi_attach() 1448 err = ubi_read_volume_table(ubi, ai); ubi_attach() 1452 err = ubi_wl_init(ubi, ai); ubi_attach() 1456 err = ubi_eba_init(ubi, ai); ubi_attach() 1476 err = self_check_eba(ubi, ai, scan_ai); ubi_attach() 1484 destroy_ai(ai); ubi_attach() 1493 destroy_ai(ai); ubi_attach() 1500 * @ai: attaching information 1505 static int self_check_ai(struct ubi_device *ubi, struct ubi_attach_info *ai) self_check_ai() argument 1519 ubi_rb_for_each_entry(rb1, av, &ai->volumes, rb) { self_check_ai() 1526 if (ai->is_empty) { self_check_ai() 1544 if (av->vol_id > ai->highest_vol_id) { self_check_ai() 1546 ai->highest_vol_id, av->vol_id); self_check_ai() 1573 if (aeb->ec < ai->min_ec) { self_check_ai() 1574 ubi_err(ubi, "bad ai->min_ec (%d), %d found", self_check_ai() 1575 ai->min_ec, aeb->ec); self_check_ai() 1579 if (aeb->ec > ai->max_ec) { self_check_ai() 1580 ubi_err(ubi, "bad ai->max_ec (%d), %d found", self_check_ai() 1581 ai->max_ec, aeb->ec); self_check_ai() 1626 if (vols_found != ai->vols_found) { self_check_ai() 1627 ubi_err(ubi, "bad ai->vols_found %d, should be %d", self_check_ai() 1628 ai->vols_found, vols_found); self_check_ai() 1633 ubi_rb_for_each_entry(rb1, av, &ai->volumes, rb) { self_check_ai() 1721 ubi_rb_for_each_entry(rb1, av, &ai->volumes, rb) self_check_ai() 1725 list_for_each_entry(aeb, &ai->free, u.list) self_check_ai() 1728 list_for_each_entry(aeb, &ai->corr, u.list) self_check_ai() 1731 list_for_each_entry(aeb, &ai->erase, u.list) self_check_ai() 1734 list_for_each_entry(aeb, &ai->alien, u.list) self_check_ai() 662 early_erase_peb(struct ubi_device *ubi, const struct ubi_attach_info *ai, int pnum, int ec) early_erase_peb() argument 709 ubi_early_get_peb(struct ubi_device *ubi, struct ubi_attach_info *ai) ubi_early_get_peb() argument
|
H A D | fastmap.c | 133 * @ai: UBI attach info object 141 static int add_aeb(struct ubi_attach_info *ai, struct list_head *list, add_aeb() argument 146 aeb = kmem_cache_alloc(ai->aeb_slab_cache, GFP_KERNEL); add_aeb() 156 ai->ec_sum += aeb->ec; add_aeb() 157 ai->ec_count++; add_aeb() 159 if (ai->max_ec < aeb->ec) add_aeb() 160 ai->max_ec = aeb->ec; add_aeb() 162 if (ai->min_ec > aeb->ec) add_aeb() 163 ai->min_ec = aeb->ec; add_aeb() 172 * @ai: ubi_attach_info object 182 static struct ubi_ainf_volume *add_vol(struct ubi_attach_info *ai, int vol_id, add_vol() argument 187 struct rb_node **p = &ai->volumes.rb_node, *parent = NULL; add_vol() 216 rb_insert_color(&av->rb, &ai->volumes); add_vol() 225 * @ai: ubi_attach_info object 229 static void assign_aeb_to_av(struct ubi_attach_info *ai, assign_aeb_to_av() argument 234 struct rb_node **p = &ai->volumes.rb_node, *parent = NULL; assign_aeb_to_av() 262 * @ai: attach info object 269 static int update_vol(struct ubi_device *ubi, struct ubi_attach_info *ai, update_vol() argument 296 kmem_cache_free(ai->aeb_slab_cache, new_aeb); update_vol() 307 victim = kmem_cache_alloc(ai->aeb_slab_cache, update_vol() 314 list_add_tail(&victim->u.list, &ai->erase); update_vol() 327 kmem_cache_free(ai->aeb_slab_cache, new_aeb); update_vol() 333 list_add_tail(&new_aeb->u.list, &ai->erase); update_vol() 359 * @ai: attach info object 365 static int process_pool_aeb(struct ubi_device *ubi, struct ubi_attach_info *ai, process_pool_aeb() argument 370 struct rb_node **p = &ai->volumes.rb_node, *parent = NULL; process_pool_aeb() 375 kmem_cache_free(ai->aeb_slab_cache, new_aeb); process_pool_aeb() 399 kmem_cache_free(ai->aeb_slab_cache, new_aeb); process_pool_aeb() 405 return update_vol(ubi, ai, av, new_vh, new_aeb); process_pool_aeb() 413 * @ai: UBI attach info object 416 static void unmap_peb(struct ubi_attach_info *ai, int pnum) unmap_peb() argument 422 for (node = rb_first(&ai->volumes); node; node = rb_next(node)) { unmap_peb() 431 kmem_cache_free(ai->aeb_slab_cache, aeb); unmap_peb() 441 * @ai: attach info object 445 * @free: list of PEBs which are most likely free (and go into @ai->free) 450 static int scan_pool(struct ubi_device *ubi, struct ubi_attach_info *ai, scan_pool() argument 512 unmap_peb(ai, pnum); scan_pool() 515 add_aeb(ai, free, pnum, ec, 1); scan_pool() 517 add_aeb(ai, free, pnum, ec, 0); scan_pool() 525 new_aeb = kmem_cache_alloc(ai->aeb_slab_cache, scan_pool() 542 err = process_pool_aeb(ubi, ai, vh, new_aeb); scan_pool() 564 * @ai: The UBI attach info object 566 static int count_fastmap_pebs(struct ubi_attach_info *ai) count_fastmap_pebs() argument 573 list_for_each_entry(aeb, &ai->erase, u.list) count_fastmap_pebs() 576 list_for_each_entry(aeb, &ai->free, u.list) count_fastmap_pebs() 579 ubi_rb_for_each_entry(rb1, av, &ai->volumes, rb) count_fastmap_pebs() 589 * @ai: UBI attach info object 596 struct ubi_attach_info *ai, ubi_attach_fastmap() 615 ai->min_ec = UBI_MAX_ERASECOUNTER; ubi_attach_fastmap() 618 ai->max_sqnum = fmsb->sqnum; ubi_attach_fastmap() 690 add_aeb(ai, &ai->free, be32_to_cpu(fmec->pnum), ubi_attach_fastmap() 701 add_aeb(ai, &used, be32_to_cpu(fmec->pnum), ubi_attach_fastmap() 712 add_aeb(ai, &used, be32_to_cpu(fmec->pnum), ubi_attach_fastmap() 723 add_aeb(ai, &ai->erase, be32_to_cpu(fmec->pnum), ubi_attach_fastmap() 727 ai->mean_ec = div_u64(ai->ec_sum, ai->ec_count); ubi_attach_fastmap() 728 ai->bad_peb_count = be32_to_cpu(fmhdr->bad_peb_count); ubi_attach_fastmap() 743 av = add_vol(ai, be32_to_cpu(fmvhdr->vol_id), ubi_attach_fastmap() 752 ai->vols_found++; ubi_attach_fastmap() 753 if (ai->highest_vol_id < be32_to_cpu(fmvhdr->vol_id)) ubi_attach_fastmap() 754 ai->highest_vol_id = be32_to_cpu(fmvhdr->vol_id); ubi_attach_fastmap() 792 assign_aeb_to_av(ai, aeb, av); ubi_attach_fastmap() 799 ret = scan_pool(ubi, ai, fmpl1->pebs, pool_size, &max_sqnum, &free); ubi_attach_fastmap() 803 ret = scan_pool(ubi, ai, fmpl2->pebs, wl_pool_size, &max_sqnum, &free); ubi_attach_fastmap() 807 if (max_sqnum > ai->max_sqnum) ubi_attach_fastmap() 808 ai->max_sqnum = max_sqnum; ubi_attach_fastmap() 811 list_move_tail(&tmp_aeb->u.list, &ai->free); ubi_attach_fastmap() 814 list_move_tail(&tmp_aeb->u.list, &ai->erase); ubi_attach_fastmap() 824 if (WARN_ON(count_fastmap_pebs(ai) != ubi->peb_count - ubi_attach_fastmap() 825 ai->bad_peb_count - fm->used_blocks)) ubi_attach_fastmap() 835 kmem_cache_free(ai->aeb_slab_cache, tmp_aeb); ubi_attach_fastmap() 839 kmem_cache_free(ai->aeb_slab_cache, tmp_aeb); ubi_attach_fastmap() 848 * @ai: UBI attach info to be filled 855 int ubi_scan_fastmap(struct ubi_device *ubi, struct ubi_attach_info *ai, ubi_scan_fastmap() argument 1022 ret = ubi_attach_fastmap(ubi, ai, fm); ubi_scan_fastmap() 595 ubi_attach_fastmap(struct ubi_device *ubi, struct ubi_attach_info *ai, struct ubi_fastmap_layout *fm) ubi_attach_fastmap() argument
|
H A D | vtbl.c | 288 * @ai: attaching information 295 static int create_vtbl(struct ubi_device *ubi, struct ubi_attach_info *ai, create_vtbl() argument 309 new_aeb = ubi_early_get_peb(ubi, ai); create_vtbl() 321 vid_hdr->sqnum = cpu_to_be64(++ai->max_sqnum); create_vtbl() 337 err = ubi_add_to_av(ubi, ai, new_aeb->pnum, new_aeb->ec, vid_hdr, 0); create_vtbl() 338 kmem_cache_free(ai->aeb_slab_cache, new_aeb); create_vtbl() 348 list_add(&new_aeb->u.list, &ai->erase); create_vtbl() 351 kmem_cache_free(ai->aeb_slab_cache, new_aeb); create_vtbl() 361 * @ai: attaching information 369 struct ubi_attach_info *ai, process_lvol() 445 err = create_vtbl(ubi, ai, 1, leb[0]); process_lvol() 468 err = create_vtbl(ubi, ai, 0, leb[1]); process_lvol() 486 * @ai: attaching information 492 struct ubi_attach_info *ai) create_empty_lvol() 507 err = create_vtbl(ubi, ai, i, vtbl); create_empty_lvol() 520 * @ai: scanning information 528 const struct ubi_attach_info *ai, init_volumes() 588 av = ubi_find_av(ai, i); init_volumes() 702 * @ai: attaching information 710 struct ubi_attach_info *ai) check_attaching_info() 716 if (ai->vols_found > UBI_INT_VOL_COUNT + ubi->vtbl_slots) { check_attaching_info() 718 ai->vols_found, UBI_INT_VOL_COUNT, ubi->vtbl_slots); check_attaching_info() 722 if (ai->highest_vol_id >= ubi->vtbl_slots + UBI_INT_VOL_COUNT && check_attaching_info() 723 ai->highest_vol_id < UBI_INTERNAL_VOL_START) { check_attaching_info() 725 ai->highest_vol_id); check_attaching_info() 732 av = ubi_find_av(ai, i); check_attaching_info() 736 ubi_remove_av(ai, av); check_attaching_info() 754 ubi_remove_av(ai, av); check_attaching_info() 768 * @ai: attaching information 774 int ubi_read_volume_table(struct ubi_device *ubi, struct ubi_attach_info *ai) ubi_read_volume_table() argument 792 av = ubi_find_av(ai, UBI_LAYOUT_VOLUME_ID); ubi_read_volume_table() 802 if (ai->is_empty) { ubi_read_volume_table() 803 ubi->vtbl = create_empty_lvol(ubi, ai); ubi_read_volume_table() 818 ubi->vtbl = process_lvol(ubi, ai, av); ubi_read_volume_table() 829 err = init_volumes(ubi, ai, ubi->vtbl); ubi_read_volume_table() 837 err = check_attaching_info(ubi, ai); ubi_read_volume_table() 368 process_lvol(struct ubi_device *ubi, struct ubi_attach_info *ai, struct ubi_ainf_volume *av) process_lvol() argument 491 create_empty_lvol(struct ubi_device *ubi, struct ubi_attach_info *ai) create_empty_lvol() argument 527 init_volumes(struct ubi_device *ubi, const struct ubi_attach_info *ai, const struct ubi_vtbl_record *vtbl) init_volumes() argument 709 check_attaching_info(const struct ubi_device *ubi, struct ubi_attach_info *ai) check_attaching_info() argument
|
H A D | ubi.h | 785 int ubi_add_to_av(struct ubi_device *ubi, struct ubi_attach_info *ai, int pnum, 787 struct ubi_ainf_volume *ubi_find_av(const struct ubi_attach_info *ai, 789 void ubi_remove_av(struct ubi_attach_info *ai, struct ubi_ainf_volume *av); 791 struct ubi_attach_info *ai); 793 void ubi_destroy_ai(struct ubi_attach_info *ai); 800 int ubi_read_volume_table(struct ubi_device *ubi, struct ubi_attach_info *ai); 844 int ubi_eba_init(struct ubi_device *ubi, struct ubi_attach_info *ai); 855 int ubi_wl_init(struct ubi_device *ubi, struct ubi_attach_info *ai); 909 int ubi_scan_fastmap(struct ubi_device *ubi, struct ubi_attach_info *ai,
|
H A D | eba.c | 1281 struct ubi_attach_info *ai) print_rsvd_warning() 1287 if (ai->max_sqnum > (1 << 18)) { print_rsvd_warning() 1402 * @ai: attaching information 1407 int ubi_eba_init(struct ubi_device *ubi, struct ubi_attach_info *ai) ubi_eba_init() argument 1421 ubi->global_sqnum = ai->max_sqnum + 1; ubi_eba_init() 1441 av = ubi_find_av(ai, idx2vol_id(ubi, i)); ubi_eba_init() 1451 ubi_move_aeb_to_list(av, aeb, &ai->erase); ubi_eba_init() 1475 print_rsvd_warning(ubi, ai); ubi_eba_init() 1280 print_rsvd_warning(struct ubi_device *ubi, struct ubi_attach_info *ai) print_rsvd_warning() argument
|
H A D | wl.c | 1486 * @ai: attaching information 1491 int ubi_wl_init(struct ubi_device *ubi, struct ubi_attach_info *ai) ubi_wl_init() argument 1503 ubi->max_ec = ai->max_ec; ubi_wl_init() 1517 list_for_each_entry_safe(aeb, tmp, &ai->erase, u.list) { ubi_wl_init() 1536 list_for_each_entry(aeb, &ai->free, u.list) { ubi_wl_init() 1555 ubi_rb_for_each_entry(rb1, av, &ai->volumes, rb) { ubi_wl_init()
|
/linux-4.1.27/drivers/media/dvb-core/ |
H A D | dvb_filter.c | 290 static int get_ainfo(u8 *mbuf, int count, struct dvb_audio_info *ai, int pr) 313 ai->layer = (headr[1] & 0x06) >> 1; 316 printk("Audiostream: Layer: %d", 4-ai->layer); 319 ai->bit_rate = bitrates[(3-ai->layer)][(headr[2] >> 4 )]*1000; 322 if (ai->bit_rate == 0) 324 else if (ai->bit_rate == 0xf) 327 printk(" BRate: %d kb/s", ai->bit_rate/1000); 331 ai->frequency = freq[fr]*100; 333 if (ai->frequency == 3) 336 printk(" Freq: %d kHz\n",ai->frequency); 339 ai->off = c; 345 int dvb_filter_get_ac3info(u8 *mbuf, int count, struct dvb_audio_info *ai, int pr) dvb_filter_get_ac3info() argument 367 ai->off = c; dvb_filter_get_ac3info() 370 ai->layer = 0; // 0 for AC3 dvb_filter_get_ac3info() 374 ai->bit_rate = ac3_bitrates[frame >> 1]*1000; dvb_filter_get_ac3info() 377 printk(" BRate: %d kb/s", (int) ai->bit_rate/1000); dvb_filter_get_ac3info() 379 ai->frequency = (headr[2] & 0xc0 ) >> 6; dvb_filter_get_ac3info() 381 ai->frequency = freq[fr]*100; dvb_filter_get_ac3info() 382 if (pr) printk (" Freq: %d Hz\n", (int) ai->frequency); dvb_filter_get_ac3info() 385 ai->framesize = ac3_frames[fr][frame >> 1]; dvb_filter_get_ac3info() 386 if ((frame & 1) && (fr == 1)) ai->framesize++; dvb_filter_get_ac3info() 387 ai->framesize = ai->framesize << 1; dvb_filter_get_ac3info() 388 if (pr) printk (" Framesize %d\n",(int) ai->framesize); dvb_filter_get_ac3info()
|
H A D | dvb_filter.h | 243 int dvb_filter_get_ac3info(u8 *mbuf, int count, struct dvb_audio_info *ai, int pr);
|
/linux-4.1.27/mm/ |
H A D | percpu.c | 824 static int __init pcpu_verify_alloc_info(const struct pcpu_alloc_info *ai); 1365 * Allocate ai which is large enough for @nr_groups groups containing 1366 * @nr_units units. The returned ai's groups[0].cpu_map points to the 1378 struct pcpu_alloc_info *ai; pcpu_alloc_alloc_info() local 1383 base_size = ALIGN(sizeof(*ai) + nr_groups * sizeof(ai->groups[0]), pcpu_alloc_alloc_info() 1384 __alignof__(ai->groups[0].cpu_map[0])); pcpu_alloc_alloc_info() 1385 ai_size = base_size + nr_units * sizeof(ai->groups[0].cpu_map[0]); pcpu_alloc_alloc_info() 1390 ai = ptr; pcpu_alloc_alloc_info() 1393 ai->groups[0].cpu_map = ptr; pcpu_alloc_alloc_info() 1396 ai->groups[0].cpu_map[unit] = NR_CPUS; pcpu_alloc_alloc_info() 1398 ai->nr_groups = nr_groups; pcpu_alloc_alloc_info() 1399 ai->__ai_size = PFN_ALIGN(ai_size); pcpu_alloc_alloc_info() 1401 return ai; pcpu_alloc_alloc_info() 1406 * @ai: pcpu_alloc_info to free 1408 * Free @ai which was allocated by pcpu_alloc_alloc_info(). 1410 void __init pcpu_free_alloc_info(struct pcpu_alloc_info *ai) pcpu_free_alloc_info() argument 1412 memblock_free_early(__pa(ai), ai->__ai_size); pcpu_free_alloc_info() 1418 * @ai: allocation info to dump 1420 * Print out information about @ai using loglevel @lvl. 1423 const struct pcpu_alloc_info *ai) pcpu_dump_alloc_info() 1431 v = ai->nr_groups; pcpu_dump_alloc_info() 1440 upa = ai->alloc_size / ai->unit_size; pcpu_dump_alloc_info() 1445 lvl, ai->static_size, ai->reserved_size, ai->dyn_size, pcpu_dump_alloc_info() 1446 ai->unit_size, ai->alloc_size / ai->atom_size, ai->atom_size); pcpu_dump_alloc_info() 1448 for (group = 0; group < ai->nr_groups; group++) { pcpu_dump_alloc_info() 1449 const struct pcpu_group_info *gi = &ai->groups[group]; pcpu_dump_alloc_info() 1474 * @ai: pcpu_alloc_info describing how to percpu area is shaped 1481 * @ai contains all information necessary to initialize the first 1484 * @ai->static_size is the size of static percpu area. 1486 * @ai->reserved_size, if non-zero, specifies the amount of bytes to 1494 * @ai->dyn_size determines the number of bytes available for dynamic 1495 * allocation in the first chunk. The area between @ai->static_size + 1496 * @ai->reserved_size + @ai->dyn_size and @ai->unit_size is unused. 1498 * @ai->unit_size specifies unit size and must be aligned to PAGE_SIZE 1499 * and equal to or larger than @ai->static_size + @ai->reserved_size + 1500 * @ai->dyn_size. 1502 * @ai->atom_size is the allocation atom size and used as alignment 1505 * @ai->alloc_size is the allocation size and always multiple of 1506 * @ai->atom_size. This is larger than @ai->atom_size if 1507 * @ai->unit_size is larger than @ai->atom_size. 1509 * @ai->nr_groups and @ai->groups describe virtual memory layout of 1512 * groupings. If @ai->nr_groups is zero, a single group containing 1528 int __init pcpu_setup_first_chunk(const struct pcpu_alloc_info *ai, pcpu_setup_first_chunk() argument 1533 size_t dyn_size = ai->dyn_size; pcpu_setup_first_chunk() 1534 size_t size_sum = ai->static_size + ai->reserved_size + dyn_size; pcpu_setup_first_chunk() 1548 pcpu_dump_alloc_info(KERN_EMERG, ai); \ pcpu_setup_first_chunk() 1554 PCPU_SETUP_BUG_ON(ai->nr_groups <= 0); pcpu_setup_first_chunk() 1556 PCPU_SETUP_BUG_ON(!ai->static_size); pcpu_setup_first_chunk() 1561 PCPU_SETUP_BUG_ON(ai->unit_size < size_sum); pcpu_setup_first_chunk() 1562 PCPU_SETUP_BUG_ON(ai->unit_size & ~PAGE_MASK); pcpu_setup_first_chunk() 1563 PCPU_SETUP_BUG_ON(ai->unit_size < PCPU_MIN_UNIT_SIZE); pcpu_setup_first_chunk() 1564 PCPU_SETUP_BUG_ON(ai->dyn_size < PERCPU_DYNAMIC_EARLY_SIZE); pcpu_setup_first_chunk() 1565 PCPU_SETUP_BUG_ON(pcpu_verify_alloc_info(ai) < 0); pcpu_setup_first_chunk() 1568 group_offsets = memblock_virt_alloc(ai->nr_groups * pcpu_setup_first_chunk() 1570 group_sizes = memblock_virt_alloc(ai->nr_groups * pcpu_setup_first_chunk() 1581 for (group = 0, unit = 0; group < ai->nr_groups; group++, unit += i) { pcpu_setup_first_chunk() 1582 const struct pcpu_group_info *gi = &ai->groups[group]; pcpu_setup_first_chunk() 1585 group_sizes[group] = gi->nr_units * ai->unit_size; pcpu_setup_first_chunk() 1597 unit_off[cpu] = gi->base_offset + i * ai->unit_size; pcpu_setup_first_chunk() 1615 pcpu_dump_alloc_info(KERN_DEBUG, ai); pcpu_setup_first_chunk() 1617 pcpu_nr_groups = ai->nr_groups; pcpu_setup_first_chunk() 1624 pcpu_unit_pages = ai->unit_size >> PAGE_SHIFT; pcpu_setup_first_chunk() 1626 pcpu_atom_size = ai->atom_size; pcpu_setup_first_chunk() 1657 if (ai->reserved_size) { pcpu_setup_first_chunk() 1658 schunk->free_size = ai->reserved_size; pcpu_setup_first_chunk() 1660 pcpu_reserved_chunk_limit = ai->static_size + ai->reserved_size; pcpu_setup_first_chunk() 1668 schunk->map[1] = ai->static_size; pcpu_setup_first_chunk() 1671 schunk->map[++schunk->map_used] = 1 | (ai->static_size + schunk->free_size); pcpu_setup_first_chunk() 1788 struct pcpu_alloc_info *ai; pcpu_build_alloc_info() local 1871 ai = pcpu_alloc_alloc_info(nr_groups, nr_units); 1872 if (!ai) 1874 cpu_map = ai->groups[0].cpu_map; 1877 ai->groups[group].cpu_map = cpu_map; 1881 ai->static_size = static_size; 1882 ai->reserved_size = reserved_size; 1883 ai->dyn_size = dyn_size; 1884 ai->unit_size = alloc_size / upa; 1885 ai->atom_size = atom_size; 1886 ai->alloc_size = alloc_size; 1889 struct pcpu_group_info *gi = &ai->groups[group]; 1896 gi->base_offset = unit * ai->unit_size; 1906 return ai; 1951 struct pcpu_alloc_info *ai; pcpu_embed_first_chunk() local 1955 ai = pcpu_build_alloc_info(reserved_size, dyn_size, atom_size, pcpu_embed_first_chunk() 1957 if (IS_ERR(ai)) pcpu_embed_first_chunk() 1958 return PTR_ERR(ai); pcpu_embed_first_chunk() 1960 size_sum = ai->static_size + ai->reserved_size + ai->dyn_size; pcpu_embed_first_chunk() 1961 areas_size = PFN_ALIGN(ai->nr_groups * sizeof(void *)); pcpu_embed_first_chunk() 1970 for (group = 0; group < ai->nr_groups; group++) { pcpu_embed_first_chunk() 1971 struct pcpu_group_info *gi = &ai->groups[group]; pcpu_embed_first_chunk() 1980 ptr = alloc_fn(cpu, gi->nr_units * ai->unit_size, atom_size); pcpu_embed_first_chunk() 1997 for (group = 0; group < ai->nr_groups; group++) { pcpu_embed_first_chunk() 1998 struct pcpu_group_info *gi = &ai->groups[group]; pcpu_embed_first_chunk() 2001 for (i = 0; i < gi->nr_units; i++, ptr += ai->unit_size) { pcpu_embed_first_chunk() 2004 free_fn(ptr, ai->unit_size); pcpu_embed_first_chunk() 2008 memcpy(ptr, __per_cpu_load, ai->static_size); pcpu_embed_first_chunk() 2009 free_fn(ptr + size_sum, ai->unit_size - size_sum); pcpu_embed_first_chunk() 2015 for (group = 0; group < ai->nr_groups; group++) { pcpu_embed_first_chunk() 2016 ai->groups[group].base_offset = areas[group] - base; pcpu_embed_first_chunk() 2018 ai->groups[group].base_offset); pcpu_embed_first_chunk() 2020 max_distance += ai->unit_size; pcpu_embed_first_chunk() 2035 PFN_DOWN(size_sum), base, ai->static_size, ai->reserved_size, pcpu_embed_first_chunk() 2036 ai->dyn_size, ai->unit_size); pcpu_embed_first_chunk() 2038 rc = pcpu_setup_first_chunk(ai, base); pcpu_embed_first_chunk() 2042 for (group = 0; group < ai->nr_groups; group++) pcpu_embed_first_chunk() 2045 ai->groups[group].nr_units * ai->unit_size); pcpu_embed_first_chunk() 2047 pcpu_free_alloc_info(ai); pcpu_embed_first_chunk() 2077 struct pcpu_alloc_info *ai; pcpu_page_first_chunk() local 2086 ai = pcpu_build_alloc_info(reserved_size, 0, PAGE_SIZE, NULL); pcpu_page_first_chunk() 2087 if (IS_ERR(ai)) pcpu_page_first_chunk() 2088 return PTR_ERR(ai); pcpu_page_first_chunk() 2089 BUG_ON(ai->nr_groups != 1); pcpu_page_first_chunk() 2090 BUG_ON(ai->groups[0].nr_units != num_possible_cpus()); pcpu_page_first_chunk() 2092 unit_pages = ai->unit_size >> PAGE_SHIFT; pcpu_page_first_chunk() 2103 unsigned int cpu = ai->groups[0].cpu_map[unit]; pcpu_page_first_chunk() 2119 vm.size = num_possible_cpus() * ai->unit_size; pcpu_page_first_chunk() 2124 (unsigned long)vm.addr + unit * ai->unit_size; pcpu_page_first_chunk() 2144 memcpy((void *)unit_addr, __per_cpu_load, ai->static_size); pcpu_page_first_chunk() 2149 unit_pages, psize_str, vm.addr, ai->static_size, pcpu_page_first_chunk() 2150 ai->reserved_size, ai->dyn_size); pcpu_page_first_chunk() 2152 rc = pcpu_setup_first_chunk(ai, vm.addr); pcpu_page_first_chunk() 2161 pcpu_free_alloc_info(ai); pcpu_page_first_chunk() 2230 struct pcpu_alloc_info *ai; setup_per_cpu_areas() local 2233 ai = pcpu_alloc_alloc_info(1, 1); setup_per_cpu_areas() 2237 if (!ai || !fc) setup_per_cpu_areas() 2242 ai->dyn_size = unit_size; setup_per_cpu_areas() 2243 ai->unit_size = unit_size; setup_per_cpu_areas() 2244 ai->atom_size = unit_size; setup_per_cpu_areas() 2245 ai->alloc_size = unit_size; setup_per_cpu_areas() 2246 ai->groups[0].nr_units = 1; setup_per_cpu_areas() 2247 ai->groups[0].cpu_map[0] = 0; setup_per_cpu_areas() 2249 if (pcpu_setup_first_chunk(ai, fc) < 0) setup_per_cpu_areas() 1422 pcpu_dump_alloc_info(const char *lvl, const struct pcpu_alloc_info *ai) pcpu_dump_alloc_info() argument
|
H A D | percpu-km.c | 92 static int __init pcpu_verify_alloc_info(const struct pcpu_alloc_info *ai) pcpu_verify_alloc_info() argument 97 if (ai->nr_groups != 1) { pcpu_verify_alloc_info() 102 nr_pages = (ai->groups[0].nr_units * ai->unit_size) >> PAGE_SHIFT; pcpu_verify_alloc_info()
|
H A D | percpu-vm.c | 362 static int __init pcpu_verify_alloc_info(const struct pcpu_alloc_info *ai) pcpu_verify_alloc_info() argument
|
/linux-4.1.27/include/uapi/linux/ |
H A D | udf_fs_i.h | 9 * ftp://prep.ai.mit.edu/pub/gnu/GPL
|
H A D | kvm.h | 477 #define KVM_S390_INT_IO(ai,cssid,ssid,schid) \ 481 ((ai) << 26))
|
/linux-4.1.27/net/ceph/ |
H A D | auth_none.c | 69 struct ceph_auth_none_info *ai = ac->private; ceph_auth_none_create_authorizer() local 70 struct ceph_none_authorizer *au = &ai->au; ceph_auth_none_create_authorizer() 74 if (!ai->built_authorizer) { ceph_auth_none_create_authorizer() 84 ai->built_authorizer = true; ceph_auth_none_create_authorizer()
|
/linux-4.1.27/arch/ia64/mm/ |
H A D | contig.c | 150 struct pcpu_alloc_info *ai; setup_per_cpu_areas() local 156 ai = pcpu_alloc_alloc_info(1, num_possible_cpus()); setup_per_cpu_areas() 157 if (!ai) setup_per_cpu_areas() 159 gi = &ai->groups[0]; setup_per_cpu_areas() 173 ai->static_size = static_size; setup_per_cpu_areas() 174 ai->reserved_size = reserved_size; setup_per_cpu_areas() 175 ai->dyn_size = dyn_size; setup_per_cpu_areas() 176 ai->unit_size = PERCPU_PAGE_SIZE; setup_per_cpu_areas() 177 ai->atom_size = PAGE_SIZE; setup_per_cpu_areas() 178 ai->alloc_size = PERCPU_PAGE_SIZE; setup_per_cpu_areas() 180 rc = pcpu_setup_first_chunk(ai, __per_cpu_start + __per_cpu_offset[0]); setup_per_cpu_areas() 184 pcpu_free_alloc_info(ai); setup_per_cpu_areas()
|
H A D | discontig.c | 186 struct pcpu_alloc_info *ai; setup_per_cpu_areas() local 195 ai = pcpu_alloc_alloc_info(MAX_NUMNODES, nr_cpu_ids); setup_per_cpu_areas() 196 if (!ai) setup_per_cpu_areas() 198 cpu_map = ai->groups[0].cpu_map; setup_per_cpu_areas() 223 ai->static_size = static_size; setup_per_cpu_areas() 224 ai->reserved_size = reserved_size; setup_per_cpu_areas() 225 ai->dyn_size = dyn_size; setup_per_cpu_areas() 226 ai->unit_size = PERCPU_PAGE_SIZE; setup_per_cpu_areas() 227 ai->atom_size = PAGE_SIZE; setup_per_cpu_areas() 228 ai->alloc_size = PERCPU_PAGE_SIZE; setup_per_cpu_areas() 235 ai->nr_groups = 0; setup_per_cpu_areas() 246 gi = &ai->groups[ai->nr_groups++]; setup_per_cpu_areas() 252 rc = pcpu_setup_first_chunk(ai, base); setup_per_cpu_areas() 256 pcpu_free_alloc_info(ai); setup_per_cpu_areas()
|
/linux-4.1.27/arch/powerpc/platforms/cell/spufs/ |
H A D | spu_save_crt0.S | 60 ai $4, $4, 4 69 ai $3, $3, 64 85 ai $SP, $SP, -160
|
H A D | spu_restore_crt0.S | 51 ai $SP, $SP, -160 65 ai $4, $4, 4 74 ai $3, $3, 64
|
/linux-4.1.27/tools/usb/usbip/src/ |
H A D | usbipd.c | 346 static void addrinfo_to_text(struct addrinfo *ai, char buf[], addrinfo_to_text() argument 355 rc = getnameinfo(ai->ai_addr, ai->ai_addrlen, hbuf, sizeof(hbuf), addrinfo_to_text() 366 struct addrinfo *ai; listen_all_addrinfo() local 371 for (ai = ai_head; ai && nsockfd < maxsockfd; ai = ai->ai_next) { listen_all_addrinfo() 374 addrinfo_to_text(ai, ai_buf, ai_buf_size); listen_all_addrinfo() 376 sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); listen_all_addrinfo() 396 ret = bind(sock, ai->ai_addr, ai->ai_addrlen); listen_all_addrinfo()
|
/linux-4.1.27/drivers/media/pci/ttpci/ |
H A D | av7110_ipack.c | 47 struct dvb_audio_info ai; send_ipack() local 64 ai.off = 0; send_ipack() 69 p->count - ac3_off, &ai, 0); send_ipack() 72 ai.framesize + 1; send_ipack() 76 ac3_off += nframes * ai.framesize - p->count; send_ipack()
|
/linux-4.1.27/drivers/staging/comedi/drivers/ |
H A D | ni_mio_cs.c | 52 .name = "DAQCard-ai-16xe-50", 61 .name = "DAQCard-ai-16e-4", 208 PCMCIA_DEVICE_MANF_CARD(0x010b, 0x010d), /* DAQCard-ai-16xe-50 */ 209 PCMCIA_DEVICE_MANF_CARD(0x010b, 0x010c), /* DAQCard-ai-16e-4 */
|
H A D | das08.h | 22 /* different ways ai data is encoded in first two registers */
|
H A D | ni_labpc.c | 21 * Lab-PC-1200AI (lab-pc-1200ai), Lab-PC+ (lab-pc+) 74 .name = "lab-pc-1200ai",
|
H A D | ni_labpc.h | 32 unsigned ai_scan_up:1; /* can auto scan up in ai channels */
|
H A D | das08.c | 41 requires hard-wiring for async ai 261 dev_err(dev->class_dev, "bug! unknown ai encoding\n"); das08_ai_rinsn() 379 /* ai */ das08_common_attach()
|
H A D | icp_multi.c | 395 "Incorrect differential ai ch-nr\n"); 401 "Incorrect ai channel number\n");
|
H A D | cb_pcidas64.c | 71 make it return error if user attempts an ai command that uses the 80 make ao fifo size adjustable like ai fifo 626 int ai_se_chans; /* number of ai inputs in single-ended mode */ 1132 /* physical addresses of ai dma buffers */ 1134 /* array of ai dma descriptors read by plx9080, 1137 /* physical address of ai dma descriptor array */ 1139 /* index of the ai dma descriptor/buffer 1164 /* index of calibration source readable through ai ch0 */ 2288 dev_err(dev->class_dev, "bug! failed to set ai pacing!\n"); ai_convert_counter_4020() 2656 /* read num_samples from 16 bit wide ai fifo */ pio_drain_ai_fifo_16() 2709 /* Read from 32 bit wide ai fifo of 4020 - deal with insane grey coding of
|
H A D | multiq3.c | 225 /* ai subdevice */ multiq3_attach()
|
H A D | ni_atmio.c | 212 .name = "at-ai-16xe-10",
|
H A D | ni_daq_700.c | 246 /* DAQCard-700 ai */ daq700_auto_attach()
|
H A D | rti800.c | 288 /* ai subdevice */ rti800_attach()
|
H A D | dt2801.c | 574 /* ai subdevice */ dt2801_attach()
|
H A D | das16m1.c | 571 /* ai */ das16m1_attach()
|
H A D | dmm32at.c | 365 /* enable the ai conversion interrupt and the clock to start scans */ dmm32at_setaitimer()
|
H A D | dt3000.c | 674 /* ai subdevice */ dt3000_auto_attach()
|
H A D | dt282x.c | 1094 5 ai 0=straight binary, 1=2's comp 1097 8 ai 0=±10 V, 1=0-10 V, 2=±5 V, 3=0-5 V
|
H A D | ni_labpc_common.c | 765 /* read all available samples from ai fifo */ labpc_drain_fifo() 790 dev_err(dev->class_dev, "ai timeout, fifo never empties\n"); labpc_drain_fifo()
|
H A D | usbduxfast.c | 298 "non-zero urb status received in ai intr context: %d\n", usbduxfast_ai_interrupt() 452 dev_err(dev->class_dev, "ai is already running\n"); usbduxfast_ai_inttrig()
|
H A D | daqboard2000.c | 694 /* ai subdevice */ daqboard2000_auto_attach()
|
H A D | ni_atmio16d.c | 644 /* ai subdevice */ atmio16d_attach()
|
H A D | usbdux.c | 45 * sanity checks in ai/ao_cmd 336 "Non-zero urb status received in ai intr context: %d\n", usbduxsub_ai_isoc_irq()
|
H A D | ni_mio_common.c | 737 under the assumption the cdio dma selection works just like ai/ao/gpct. ni_set_cdo_dma_channel() 1466 /* 67xx boards don't have ai subdevice, but their gpct0 might generate an a interrupt */ handle_a_interrupt() 1500 dev_err(dev->class_dev, "ai error a_status=%04x\n", handle_a_interrupt() 1723 /* ai configuration */ ni_ai_reset() 2446 start_stop_select |= AI_STOP_Select(19); /* ai configuration memory */ ni_ai_cmd()
|
H A D | addi_apci_3120.c | 419 /* a dummy read of APCI3120_TIMER_MODE_REG resets the ai FIFO */ apci3120_set_chanlist()
|
H A D | das16.c | 977 /* initialize ai range */ das16_ai_range()
|
H A D | das1800.c | 208 int resolution; /* bits of ai resolution */
|
H A D | cb_pcidas.c | 74 #define AI_BUFFER_SIZE 1024 /* max ai fifo size */
|
H A D | s626.c | 1354 /* check if interrupt is an ai acquisition start trigger */ s626_handle_dio_interrupt()
|
/linux-4.1.27/arch/s390/kernel/ |
H A D | cache.c | 102 static inline unsigned long ecag(int ai, int li, int ti) ecag() argument 106 cmd = ai << 4 | li << 1 | ti; ecag()
|
/linux-4.1.27/fs/udf/ |
H A D | lowlevel.c | 10 * ftp://prep.ai.mit.edu/pub/gnu/GPL
|
H A D | ialloc.c | 10 * ftp://prep.ai.mit.edu/pub/gnu/GPL
|
H A D | symlink.c | 10 * ftp://prep.ai.mit.edu/pub/gnu/GPL
|
H A D | dir.c | 10 * ftp://prep.ai.mit.edu/pub/gnu/GPL
|
H A D | directory.c | 10 * ftp://prep.ai.mit.edu/pub/gnu/GPL
|
H A D | file.c | 10 * ftp://prep.ai.mit.edu/pub/gnu/GPL
|
H A D | misc.c | 10 * ftp://prep.ai.mit.edu/pub/gnu/GPL
|
H A D | partition.c | 10 * ftp://prep.ai.mit.edu/pub/gnu/GPL
|
H A D | truncate.c | 10 * ftp://prep.ai.mit.edu/pub/gnu/GPL
|
H A D | unicode.c | 17 * ftp://prep.ai.mit.edu/pub/gnu/GPL
|
H A D | balloc.c | 10 * ftp://prep.ai.mit.edu/pub/gnu/GPL
|
H A D | namei.c | 10 * ftp://prep.ai.mit.edu/pub/gnu/GPL
|
H A D | inode.c | 10 * ftp://prep.ai.mit.edu/pub/gnu/GPL
|
H A D | super.c | 20 * ftp://prep.ai.mit.edu/pub/gnu/GPL
|
/linux-4.1.27/net/netfilter/ |
H A D | xt_TCPMSS.c | 51 const struct nf_afinfo *ai; tcpmss_reverse_mtu() local 66 ai = nf_get_afinfo(family); tcpmss_reverse_mtu() 67 if (ai != NULL) tcpmss_reverse_mtu() 68 ai->route(net, (struct dst_entry **)&rt, &fl, false); tcpmss_reverse_mtu()
|
/linux-4.1.27/arch/arm/mach-omap2/ |
H A D | dpll3xxx.c | 137 u8 ai; _omap3_noncore_dpll_lock() local 150 ai = omap3_dpll_autoidle_read(clk); _omap3_noncore_dpll_lock() 152 if (ai) _omap3_noncore_dpll_lock() 159 if (ai) _omap3_noncore_dpll_lock() 182 u8 ai; _omap3_noncore_dpll_bypass() local 190 ai = omap3_dpll_autoidle_read(clk); _omap3_noncore_dpll_bypass() 196 if (ai) _omap3_noncore_dpll_bypass() 213 u8 ai; _omap3_noncore_dpll_stop() local 220 ai = omap3_dpll_autoidle_read(clk); _omap3_noncore_dpll_stop() 224 if (ai) _omap3_noncore_dpll_stop()
|
/linux-4.1.27/include/linux/ |
H A D | percpu.h | 98 extern void __init pcpu_free_alloc_info(struct pcpu_alloc_info *ai); 100 extern int __init pcpu_setup_first_chunk(const struct pcpu_alloc_info *ai,
|
/linux-4.1.27/arch/s390/pci/ |
H A D | pci.c | 354 unsigned long si, ai; zpci_irq_handler() local 374 for (ai = 0;;) { zpci_irq_handler() 375 ai = airq_iv_scan(aibv, ai, airq_iv_end(aibv)); zpci_irq_handler() 376 if (ai == -1UL) zpci_irq_handler() 379 airq_iv_lock(aibv, ai); zpci_irq_handler() 380 generic_handle_irq(airq_iv_get_data(aibv, ai)); zpci_irq_handler() 381 airq_iv_unlock(aibv, ai); zpci_irq_handler()
|
/linux-4.1.27/drivers/s390/kvm/ |
H A D | virtio_ccw.c | 187 unsigned long ai; virtio_airq_handler() local 192 for (ai = 0;;) { virtio_airq_handler() 193 ai = airq_iv_scan(info->aiv, ai, airq_iv_end(info->aiv)); virtio_airq_handler() 194 if (ai == -1UL) virtio_airq_handler() 196 vring_interrupt(0, (void *)airq_iv_get_ptr(info->aiv, ai)); virtio_airq_handler() 201 for (ai = 0;;) { virtio_airq_handler() 202 ai = airq_iv_scan(info->aiv, ai, airq_iv_end(info->aiv)); virtio_airq_handler() 203 if (ai == -1UL) virtio_airq_handler() 205 vring_interrupt(0, (void *)airq_iv_get_ptr(info->aiv, ai)); virtio_airq_handler()
|
/linux-4.1.27/drivers/cdrom/ |
H A D | cdrom.c | 1640 static int dvd_do_auth(struct cdrom_device_info *cdi, dvd_authinfo *ai) dvd_do_auth() argument 1651 switch (ai->type) { dvd_do_auth() 1656 setup_report_key(&cgc, ai->lsa.agid, 0); dvd_do_auth() 1661 ai->lsa.agid = buf[7] >> 6; dvd_do_auth() 1667 setup_report_key(&cgc, ai->lsk.agid, 2); dvd_do_auth() 1672 copy_key(ai->lsk.key, &buf[4]); dvd_do_auth() 1678 setup_report_key(&cgc, ai->lsc.agid, 1); dvd_do_auth() 1683 copy_chal(ai->lsc.chal, &buf[4]); dvd_do_auth() 1691 setup_report_key(&cgc, ai->lstk.agid, 4); dvd_do_auth() 1692 cgc.cmd[5] = ai->lstk.lba; dvd_do_auth() 1693 cgc.cmd[4] = ai->lstk.lba >> 8; dvd_do_auth() 1694 cgc.cmd[3] = ai->lstk.lba >> 16; dvd_do_auth() 1695 cgc.cmd[2] = ai->lstk.lba >> 24; dvd_do_auth() 1700 ai->lstk.cpm = (buf[4] >> 7) & 1; dvd_do_auth() 1701 ai->lstk.cp_sec = (buf[4] >> 6) & 1; dvd_do_auth() 1702 ai->lstk.cgms = (buf[4] >> 4) & 3; dvd_do_auth() 1703 copy_key(ai->lstk.title_key, &buf[5]); dvd_do_auth() 1709 setup_report_key(&cgc, ai->lsasf.agid, 5); dvd_do_auth() 1714 ai->lsasf.asf = buf[7] & 1; dvd_do_auth() 1720 setup_send_key(&cgc, ai->hsc.agid, 1); dvd_do_auth() 1722 copy_chal(&buf[4], ai->hsc.chal); dvd_do_auth() 1727 ai->type = DVD_LU_SEND_KEY1; dvd_do_auth() 1732 setup_send_key(&cgc, ai->hsk.agid, 3); dvd_do_auth() 1734 copy_key(&buf[4], ai->hsk.key); dvd_do_auth() 1737 ai->type = DVD_AUTH_FAILURE; dvd_do_auth() 1740 ai->type = DVD_AUTH_ESTABLISHED; dvd_do_auth() 1747 setup_report_key(&cgc, ai->lsa.agid, 0x3f); dvd_do_auth() 1762 ai->lrpcs.type = rpc_state.type_code; dvd_do_auth() 1763 ai->lrpcs.vra = rpc_state.vra; dvd_do_auth() 1764 ai->lrpcs.ucca = rpc_state.ucca; dvd_do_auth() 1765 ai->lrpcs.region_mask = rpc_state.region_mask; dvd_do_auth() 1766 ai->lrpcs.rpc_scheme = rpc_state.rpc_scheme; dvd_do_auth() 1774 buf[4] = ai->hrpcs.pdrc; dvd_do_auth() 1781 cd_dbg(CD_WARNING, "Invalid DVD key ioctl (%d)\n", ai->type); dvd_do_auth() 3213 dvd_authinfo ai; mmc_ioctl_dvd_auth() local 3217 if (copy_from_user(&ai, (dvd_authinfo __user *)arg, sizeof(ai))) mmc_ioctl_dvd_auth() 3219 ret = dvd_do_auth(cdi, &ai); mmc_ioctl_dvd_auth() 3222 if (copy_to_user((dvd_authinfo __user *)arg, &ai, sizeof(ai))) mmc_ioctl_dvd_auth()
|
/linux-4.1.27/arch/mips/bcm47xx/ |
H A D | prom.c | 105 * for sb (ssb) and ai (bcma) bus.
|
/linux-4.1.27/drivers/isdn/hisax/ |
H A D | l3dss1.c | 1048 EncodeSyncParams(u_char si2, u_char ai) EncodeSyncParams() argument 1053 return ai + 2; // 1200 bit/s EncodeSyncParams() 1056 return ai + 24; // 1200/75 bit/s EncodeSyncParams() 1059 return ai + 23; // 75/1200 bit/s EncodeSyncParams() 1062 return ai + 3; // 2400 bit/s EncodeSyncParams() 1065 return ai + 5; // 4800 bit/s EncodeSyncParams() 1068 return ai + 8; // 9600 bit/s EncodeSyncParams() 1071 return ai + 9; // 14400 bit/s EncodeSyncParams() 1074 return ai + 11; // 19200 bit/s EncodeSyncParams() 1077 return ai + 14; // 48000 bit/s EncodeSyncParams() 1080 return ai + 15; // 56000 bit/s EncodeSyncParams() 1083 return ai + 40; // negotiate bit/s EncodeSyncParams() 1088 return ai; EncodeSyncParams() 1154 case 40: // bit/s negotiation failed ai := 165 not 175! DecodeSyncParams() 1157 case 15: // 56000 bit/s failed, ai := 0 not 169 ! DecodeSyncParams()
|
H A D | l3ni1.c | 998 EncodeSyncParams(u_char si2, u_char ai) EncodeSyncParams() argument 1003 return ai + 2; // 1200 bit/s EncodeSyncParams() 1006 return ai + 24; // 1200/75 bit/s EncodeSyncParams() 1009 return ai + 23; // 75/1200 bit/s EncodeSyncParams() 1012 return ai + 3; // 2400 bit/s EncodeSyncParams() 1015 return ai + 5; // 4800 bit/s EncodeSyncParams() 1018 return ai + 8; // 9600 bit/s EncodeSyncParams() 1021 return ai + 9; // 14400 bit/s EncodeSyncParams() 1024 return ai + 11; // 19200 bit/s EncodeSyncParams() 1027 return ai + 14; // 48000 bit/s EncodeSyncParams() 1030 return ai + 15; // 56000 bit/s EncodeSyncParams() 1033 return ai + 40; // negotiate bit/s EncodeSyncParams() 1038 return ai; EncodeSyncParams() 1104 case 40: // bit/s negotiation failed ai := 165 not 175! DecodeSyncParams() 1107 case 15: // 56000 bit/s failed, ai := 0 not 169 ! DecodeSyncParams()
|
/linux-4.1.27/drivers/net/ethernet/marvell/ |
H A D | mvpp2.c | 1135 /* Update ai bits in tcam sw entry */ mvpp2_prs_tcam_ai_update() 1155 /* Get ai bits from tcam sw entry */ mvpp2_prs_tcam_ai_get() 1210 /* Update ai bits in sram sw entry */ mvpp2_prs_sram_ai_update() 1231 /* Read ai bits from sram sw entry */ mvpp2_prs_sram_ai_get() 1548 /* Clear all ai bits for next iteration */ mvpp2_prs_dsa_tag_set() 1618 /* Clear all ai bits for next iteration */ mvpp2_prs_dsa_tag_ethertype_set() 1641 unsigned short tpid, int ai) mvpp2_prs_vlan_find() 1672 /* Get current ai value from tcam */ mvpp2_prs_vlan_find() 1677 if (ai != ai_bits) mvpp2_prs_vlan_find() 1690 static int mvpp2_prs_vlan_add(struct mvpp2 *priv, unsigned short tpid, int ai, mvpp2_prs_vlan_add() argument 1697 pe = mvpp2_prs_vlan_find(priv, tpid, ai); mvpp2_prs_vlan_add() 1742 /* Clear all ai bits for next iteration */ mvpp2_prs_vlan_add() 1745 if (ai == MVPP2_PRS_SINGLE_VLAN_AI) { mvpp2_prs_vlan_add() 1749 ai |= MVPP2_PRS_DBL_VLAN_AI_BIT; mvpp2_prs_vlan_add() 1753 mvpp2_prs_tcam_ai_update(pe, ai, MVPP2_PRS_SRAM_AI_MASK); mvpp2_prs_vlan_add() 1768 /* Get first free double vlan ai number */ mvpp2_prs_double_vlan_ai_free_get() 1828 int tid_aux, tid, ai, ret = 0; mvpp2_prs_double_vlan_add() local 1843 /* Set ai value for new double vlan entry */ mvpp2_prs_double_vlan_add() 1844 ai = mvpp2_prs_double_vlan_ai_free_get(priv); mvpp2_prs_double_vlan_add() 1845 if (ai < 0) { mvpp2_prs_double_vlan_add() 1846 ret = ai; mvpp2_prs_double_vlan_add() 1877 priv->prs_double_vlans[ai] = true; mvpp2_prs_double_vlan_add() 1888 mvpp2_prs_sram_ai_update(pe, ai | MVPP2_PRS_DBL_VLAN_AI_BIT, mvpp2_prs_double_vlan_add() 2248 /* Clear all sram ai bits for next iteration */ mvpp2_prs_dsa_init() 2526 /* Clear ai for next iterations */ mvpp2_prs_vlan_init() 1640 mvpp2_prs_vlan_find(struct mvpp2 *priv, unsigned short tpid, int ai) mvpp2_prs_vlan_find() argument
|
/linux-4.1.27/drivers/staging/ozwpan/ |
H A D | ozpd.c | 870 const struct oz_app_if *ai = &g_app_if[OZ_APPID_USB]; oz_pd_indicate_farewells() local 882 if (ai->farewell) oz_pd_indicate_farewells() 883 ai->farewell(pd, f->ep_num, f->report, f->len); oz_pd_indicate_farewells()
|
/linux-4.1.27/sound/pci/hda/ |
H A D | patch_hdmi.c | 651 * spk_mask => (channel_allocations[]) => ai->CA 1071 union audio_infoframe ai; hdmi_pin_setup_infoframe() local 1073 memset(&ai, 0, sizeof(ai)); hdmi_pin_setup_infoframe() 1075 struct hdmi_audio_infoframe *hdmi_ai = &ai.hdmi; hdmi_pin_setup_infoframe() 1084 struct dp_audio_infoframe *dp_ai = &ai.dp; hdmi_pin_setup_infoframe() 1098 * sizeof(ai) is used instead of sizeof(*hdmi_ai) or hdmi_pin_setup_infoframe() 1102 if (!hdmi_infoframe_uptodate(codec, pin_nid, ai.bytes, hdmi_pin_setup_infoframe() 1103 sizeof(ai))) { hdmi_pin_setup_infoframe() 1110 ai.bytes, sizeof(ai)); hdmi_pin_setup_infoframe()
|
/linux-4.1.27/drivers/net/ethernet/chelsio/cxgb3/ |
H A D | t3_hw.c | 196 static void mi1_init(struct adapter *adap, const struct adapter_info *ai) mi1_init() argument 3452 * @ai: information about the current card 3526 const struct adapter_info *ai) early_hw_init() 3530 mi1_init(adapter, ai); early_hw_init() 3534 ai->gpio_out | F_GPIO0_OEN | F_GPIO0_OUT_VAL); early_hw_init() 3621 int t3_prep_adapter(struct adapter *adapter, const struct adapter_info *ai, t3_prep_adapter() argument 3629 adapter->params.info = ai; t3_prep_adapter() 3630 adapter->params.nports = ai->nports0 + ai->nports1; t3_prep_adapter() 3631 adapter->params.chan_map = (!!ai->nports0) | (!!ai->nports1 << 1); t3_prep_adapter() 3691 early_hw_init(adapter, ai); t3_prep_adapter() 3712 ret = pti->phy_prep(&p->phy, adapter, ai->phy_base_addr + j, for_each_port() 3713 ai->mdio_ops); for_each_port() 3752 const struct adapter_info *ai = adapter->params.info; t3_replay_prep_adapter() local 3756 early_hw_init(adapter, ai); t3_replay_prep_adapter() 3525 early_hw_init(struct adapter *adapter, const struct adapter_info *ai) early_hw_init() argument
|
H A D | cxgb3_main.c | 3109 static void print_port_info(struct adapter *adap, const struct adapter_info *ai) print_port_info() argument 3134 ai->desc, pi->phy.desc, for_each_port() 3179 const struct adapter_info *ai; init_one() local 3224 ai = t3_get_adapter_info(ent->driver_data); init_one() 3266 for (i = 0; i < ai->nports0 + ai->nports1; ++i) { init_one() 3298 if (t3_prep_adapter(adapter, ai, 1) < 0) { init_one() 3353 print_port_info(adapter, ai); 3358 for (i = ai->nports0 + ai->nports1 - 1; i >= 0; --i)
|
H A D | common.h | 692 int t3_prep_adapter(struct adapter *adapter, const struct adapter_info *ai,
|
/linux-4.1.27/drivers/input/keyboard/ |
H A D | hilkbd.c | 5 * Copyright (C) 1999 Matthew Wilcox <willy@bofh.ai>
|
/linux-4.1.27/drivers/gpu/drm/qxl/ |
H A D | qxl_drv.c | 1 /* vim: set ts=8 sw=8 tw=78 ai noexpandtab */
|
/linux-4.1.27/drivers/usb/misc/ |
H A D | emi26.c | 261 /* vi:ai:syntax=c:sw=8:ts=8:tw=80
|
H A D | emi62.c | 274 /* vi:ai:syntax=c:sw=8:ts=8:tw=80
|
/linux-4.1.27/fs/isofs/ |
H A D | dir.c | 48 /* Acorn extensions written by Matthew Wilcox <willy@bofh.ai> 1998 */ get_acorn_filename()
|
/linux-4.1.27/fs/gfs2/ |
H A D | log.c | 88 * @ai: The ail structure 186 * @ai: the AIL entry 260 * @ai: the AIL entry
|
H A D | lops.c | 93 * @ai:
|
/linux-4.1.27/drivers/isdn/hardware/eicon/ |
H A D | message.c | 1202 API_PARSE *ai; connect_req() local 1245 ai = &parms[9]; connect_req() 1250 if (ai->length) connect_req() 1253 if (!api_parse(&ai->info[1], (word)ai->length, "ssss", ai_parms)) connect_req() 1418 API_PARSE *ai; connect_res() local 1429 ai = &parms[5]; connect_res() 1430 dbug(1, dprintf("ai->length=%d", ai->length)); connect_res() 1432 if (ai->length) connect_res() 1434 if (!api_parse(&ai->info[1], (word)ai->length, "ssss", ai_parms)) connect_res() 1713 API_PARSE *ai; info_req() local 1721 ai = &msg[1]; info_req() 1723 if (ai->length) info_req() 1725 if (api_parse(&ai->info[1], (word)ai->length, "ssss", ai_parms)) info_req() 7447 static void add_ai(PLCI *plci, API_PARSE *ai) add_ai() argument 7454 if (!ai->length) add_ai() 7456 if (api_parse(&ai->info[1], (word)ai->length, "ssss", ai_parms)) add_ai()
|
/linux-4.1.27/sound/pci/asihpi/ |
H A D | hpi_internal.h | 128 #define HPI_CTL_ATTR(ctl, ai) ((HPI_CONTROL_##ctl << 8) + ai)
|
/linux-4.1.27/drivers/scsi/ |
H A D | ncr53c8xx.h | 38 ** Charles M. Hannum <mycroft@gnu.ai.mit.edu>
|
H A D | scsi.c | 17 * Modified by Eric Youngdale eric@andante.org or ericy@gnu.ai.mit.edu to
|
H A D | ncr53c8xx.c | 37 ** Charles M. Hannum <mycroft@gnu.ai.mit.edu>
|
/linux-4.1.27/arch/powerpc/xmon/ |
H A D | spu-insns.h | 226 APUOP(M_AI, RI10, 0x0e0, "ai", _A3(A_T,A_A,A_S10), 00012, FX2) /* Add%Immed RT<-RA+I10 */
|
H A D | ppc-opc.c | 2537 { "ai", OP(12), OP_MASK, PWRCOM, { RT, RA, SI } }, 2541 { "ai.", OP(13), OP_MASK, PWRCOM, { RT, RA, SI } },
|
/linux-4.1.27/arch/parisc/kernel/ |
H A D | syscall.S | 5 * Copyright (c) Matthew Wilcox 1999 <willy@bofh.ai>
|
/linux-4.1.27/drivers/scsi/megaraid/ |
H A D | megaraid_mbox.c | 4145 /* vim: set ts=8 sw=8 tw=78 ai si: */
|