Lines Matching refs:rd
1398 struct brcmf_sdio_hdrinfo *rd, in brcmf_sdio_hdparse() argument
1426 (roundup(len, bus->blocksize) != rd->len)) { in brcmf_sdio_hdparse()
1430 if (type == BRCMF_SDIO_FT_SUB && len > rd->len) { in brcmf_sdio_hdparse()
1434 rd->len = len; in brcmf_sdio_hdparse()
1441 rd->len = 0; in brcmf_sdio_hdparse()
1445 rd->channel = (swheader & SDPCM_CHANNEL_MASK) >> SDPCM_CHANNEL_SHIFT; in brcmf_sdio_hdparse()
1446 if (len > MAX_RX_DATASZ && rd->channel != SDPCM_CONTROL_CHANNEL && in brcmf_sdio_hdparse()
1451 rd->len = 0; in brcmf_sdio_hdparse()
1454 if (type == BRCMF_SDIO_FT_SUPER && rd->channel != SDPCM_GLOM_CHANNEL) { in brcmf_sdio_hdparse()
1456 rd->len = 0; in brcmf_sdio_hdparse()
1459 if (type == BRCMF_SDIO_FT_SUB && rd->channel != SDPCM_DATA_CHANNEL && in brcmf_sdio_hdparse()
1460 rd->channel != SDPCM_EVENT_CHANNEL) { in brcmf_sdio_hdparse()
1462 rd->len = 0; in brcmf_sdio_hdparse()
1465 rd->dat_offset = brcmf_sdio_getdatoffset(header); in brcmf_sdio_hdparse()
1466 if (rd->dat_offset < SDPCM_HDRLEN || rd->dat_offset > rd->len) { in brcmf_sdio_hdparse()
1470 rd->len = 0; in brcmf_sdio_hdparse()
1473 if (rd->seq_num != rx_seq) { in brcmf_sdio_hdparse()
1475 rx_seq, rd->seq_num); in brcmf_sdio_hdparse()
1477 rd->seq_num = rx_seq; in brcmf_sdio_hdparse()
1482 rd->len_nxtfrm = (swheader & SDPCM_NEXTLEN_MASK) >> SDPCM_NEXTLEN_SHIFT; in brcmf_sdio_hdparse()
1483 if (rd->len_nxtfrm << 4 > MAX_RX_DATASZ) { in brcmf_sdio_hdparse()
1485 if (rd->channel != SDPCM_GLOM_CHANNEL) in brcmf_sdio_hdparse()
1487 rd->len_nxtfrm = 0; in brcmf_sdio_hdparse()
1903 struct brcmf_sdio_hdrinfo *rd = &bus->cur_read, rd_new; in brcmf_sdio_readframes() local
1911 for (rd->seq_num = bus->rx_seq, rxleft = maxframes; in brcmf_sdio_readframes()
1913 rd->seq_num++, rxleft--) { in brcmf_sdio_readframes()
1920 cnt = brcmf_sdio_rxglom(bus, rd->seq_num); in brcmf_sdio_readframes()
1922 rd->seq_num += cnt - 1; in brcmf_sdio_readframes()
1927 rd->len_left = rd->len; in brcmf_sdio_readframes()
1930 if (!rd->len) { in brcmf_sdio_readframes()
1947 if (brcmf_sdio_hdparse(bus, bus->rxhdr, rd, in brcmf_sdio_readframes()
1956 if (rd->channel == SDPCM_CONTROL_CHANNEL) { in brcmf_sdio_readframes()
1958 rd->len, in brcmf_sdio_readframes()
1959 rd->dat_offset); in brcmf_sdio_readframes()
1961 rd->len = rd->len_nxtfrm << 4; in brcmf_sdio_readframes()
1962 rd->len_nxtfrm = 0; in brcmf_sdio_readframes()
1964 rd->channel = SDPCM_EVENT_CHANNEL; in brcmf_sdio_readframes()
1968 rd->len_left = rd->len > BRCMF_FIRSTREAD ? in brcmf_sdio_readframes()
1969 rd->len - BRCMF_FIRSTREAD : 0; in brcmf_sdio_readframes()
1973 brcmf_sdio_pad(bus, &pad, &rd->len_left); in brcmf_sdio_readframes()
1975 pkt = brcmu_pkt_buf_get_skb(rd->len_left + head_read + in brcmf_sdio_readframes()
1981 RETRYCHAN(rd->channel)); in brcmf_sdio_readframes()
1986 pkt_align(pkt, rd->len_left, bus->head_align); in brcmf_sdio_readframes()
1994 rd->len, rd->channel, ret); in brcmf_sdio_readframes()
1998 RETRYCHAN(rd->channel)); in brcmf_sdio_readframes()
2009 rd_new.seq_num = rd->seq_num; in brcmf_sdio_readframes()
2013 rd->len = 0; in brcmf_sdio_readframes()
2017 if (rd->len != roundup(rd_new.len, 16)) { in brcmf_sdio_readframes()
2019 rd->len, in brcmf_sdio_readframes()
2021 rd->len = 0; in brcmf_sdio_readframes()
2028 rd->len_nxtfrm = rd_new.len_nxtfrm; in brcmf_sdio_readframes()
2029 rd->channel = rd_new.channel; in brcmf_sdio_readframes()
2030 rd->dat_offset = rd_new.dat_offset; in brcmf_sdio_readframes()
2042 rd->len = 0; in brcmf_sdio_readframes()
2052 pkt->data, rd->len, "Rx Data:\n"); in brcmf_sdio_readframes()
2055 if (rd->channel == SDPCM_GLOM_CHANNEL) { in brcmf_sdio_readframes()
2058 rd->len); in brcmf_sdio_readframes()
2060 pkt->data, rd->len, in brcmf_sdio_readframes()
2062 __skb_trim(pkt, rd->len); in brcmf_sdio_readframes()
2073 rd->len = rd->len_nxtfrm << 4; in brcmf_sdio_readframes()
2074 rd->len_nxtfrm = 0; in brcmf_sdio_readframes()
2076 rd->channel = SDPCM_EVENT_CHANNEL; in brcmf_sdio_readframes()
2081 __skb_trim(pkt, rd->len); in brcmf_sdio_readframes()
2082 skb_pull(pkt, rd->dat_offset); in brcmf_sdio_readframes()
2085 rd->len = rd->len_nxtfrm << 4; in brcmf_sdio_readframes()
2086 rd->len_nxtfrm = 0; in brcmf_sdio_readframes()
2088 rd->channel = SDPCM_EVENT_CHANNEL; in brcmf_sdio_readframes()
2106 rd->seq_num--; in brcmf_sdio_readframes()
2107 bus->rx_seq = rd->seq_num; in brcmf_sdio_readframes()