Lines Matching refs:skb
43 static int __nci_spi_send(struct nci_spi *nspi, struct sk_buff *skb, in __nci_spi_send() argument
51 if (skb) { in __nci_spi_send()
52 t.tx_buf = skb->data; in __nci_spi_send()
53 t.len = skb->len; in __nci_spi_send()
71 struct sk_buff *skb) in nci_spi_send() argument
73 unsigned int payload_len = skb->len; in nci_spi_send()
79 hdr = skb_push(skb, NCI_SPI_HDR_LEN); in nci_spi_send()
88 crc = crc_ccitt(CRC_INIT, skb->data, skb->len); in nci_spi_send()
89 *skb_put(skb, 1) = crc >> 8; in nci_spi_send()
90 *skb_put(skb, 1) = crc & 0xFF; in nci_spi_send()
107 ret = __nci_spi_send(nspi, skb, 0); in nci_spi_send()
120 kfree_skb(skb); in nci_spi_send()
160 struct sk_buff *skb; in send_acknowledge() local
165 skb = nci_skb_alloc(nspi->ndev, 0, GFP_KERNEL); in send_acknowledge()
168 hdr = skb_push(skb, NCI_SPI_HDR_LEN); in send_acknowledge()
174 crc = crc_ccitt(CRC_INIT, skb->data, skb->len); in send_acknowledge()
175 *skb_put(skb, 1) = crc >> 8; in send_acknowledge()
176 *skb_put(skb, 1) = crc & 0xFF; in send_acknowledge()
178 ret = __nci_spi_send(nspi, skb, 0); in send_acknowledge()
180 kfree_skb(skb); in send_acknowledge()
187 struct sk_buff *skb; in __nci_spi_read() local
222 skb = nci_skb_alloc(nspi->ndev, rx_len, GFP_KERNEL); in __nci_spi_read()
223 if (!skb) in __nci_spi_read()
229 rx.rx_buf = skb_put(skb, rx_len); in __nci_spi_read()
241 *skb_push(skb, 1) = resp_hdr[1]; in __nci_spi_read()
242 *skb_push(skb, 1) = resp_hdr[0]; in __nci_spi_read()
245 return skb; in __nci_spi_read()
248 kfree_skb(skb); in __nci_spi_read()
253 static int nci_spi_check_crc(struct sk_buff *skb) in nci_spi_check_crc() argument
255 u16 crc_data = (skb->data[skb->len - 2] << 8) | in nci_spi_check_crc()
256 skb->data[skb->len - 1]; in nci_spi_check_crc()
259 ret = (crc_ccitt(CRC_INIT, skb->data, skb->len - NCI_SPI_CRC_LEN) in nci_spi_check_crc()
262 skb_trim(skb, skb->len - NCI_SPI_CRC_LEN); in nci_spi_check_crc()
267 static u8 nci_spi_get_ack(struct sk_buff *skb) in nci_spi_get_ack() argument
271 ret = skb->data[0] >> NCI_SPI_ACK_SHIFT; in nci_spi_get_ack()
274 skb_pull(skb, 2); in nci_spi_get_ack()
292 struct sk_buff *skb; in nci_spi_read() local
295 skb = __nci_spi_read(nspi); in nci_spi_read()
296 if (!skb) in nci_spi_read()
300 if (!nci_spi_check_crc(skb)) { in nci_spi_read()
308 nspi->req_result = nci_spi_get_ack(skb); in nci_spi_read()
316 if (!skb->len) { in nci_spi_read()
317 kfree_skb(skb); in nci_spi_read()
318 skb = NULL; in nci_spi_read()
327 return skb; in nci_spi_read()