Lines Matching refs:nspi

43 static int __nci_spi_send(struct nci_spi *nspi, struct sk_buff *skb,  in __nci_spi_send()  argument
60 t.delay_usecs = nspi->xfer_udelay; in __nci_spi_send()
61 t.speed_hz = nspi->xfer_speed_hz; in __nci_spi_send()
66 return spi_sync(nspi->spi, &m); in __nci_spi_send()
69 int nci_spi_send(struct nci_spi *nspi, in nci_spi_send() argument
81 hdr[1] = nspi->acknowledge_mode; in nci_spi_send()
85 if (nspi->acknowledge_mode == NCI_SPI_CRC_ENABLED) { in nci_spi_send()
95 ret = __nci_spi_send(nspi, NULL, 1); in nci_spi_send()
107 ret = __nci_spi_send(nspi, skb, 0); in nci_spi_send()
108 if (ret != 0 || nspi->acknowledge_mode == NCI_SPI_CRC_DISABLED) in nci_spi_send()
111 reinit_completion(&nspi->req_completion); in nci_spi_send()
113 &nspi->req_completion, in nci_spi_send()
116 if (completion_rc <= 0 || nspi->req_result == ACKNOWLEDGE_NACK) in nci_spi_send()
140 struct nci_spi *nspi; in nci_spi_allocate_spi() local
142 nspi = devm_kzalloc(&spi->dev, sizeof(struct nci_spi), GFP_KERNEL); in nci_spi_allocate_spi()
143 if (!nspi) in nci_spi_allocate_spi()
146 nspi->acknowledge_mode = acknowledge_mode; in nci_spi_allocate_spi()
147 nspi->xfer_udelay = delay; in nci_spi_allocate_spi()
149 nspi->xfer_speed_hz = 0; in nci_spi_allocate_spi()
150 nspi->spi = spi; in nci_spi_allocate_spi()
151 nspi->ndev = ndev; in nci_spi_allocate_spi()
152 init_completion(&nspi->req_completion); in nci_spi_allocate_spi()
154 return nspi; in nci_spi_allocate_spi()
158 static int send_acknowledge(struct nci_spi *nspi, u8 acknowledge) in send_acknowledge() argument
165 skb = nci_skb_alloc(nspi->ndev, 0, GFP_KERNEL); in send_acknowledge()
178 ret = __nci_spi_send(nspi, skb, 0); in send_acknowledge()
185 static struct sk_buff *__nci_spi_read(struct nci_spi *nspi) in __nci_spi_read() argument
198 req[1] = nspi->acknowledge_mode; in __nci_spi_read()
202 tx.speed_hz = nspi->xfer_speed_hz; in __nci_spi_read()
209 rx.speed_hz = nspi->xfer_speed_hz; in __nci_spi_read()
212 ret = spi_sync(nspi->spi, &m); in __nci_spi_read()
216 if (nspi->acknowledge_mode == NCI_SPI_CRC_ENABLED) in __nci_spi_read()
222 skb = nci_skb_alloc(nspi->ndev, rx_len, GFP_KERNEL); in __nci_spi_read()
232 rx.delay_usecs = nspi->xfer_udelay; in __nci_spi_read()
233 rx.speed_hz = nspi->xfer_speed_hz; in __nci_spi_read()
236 ret = spi_sync(nspi->spi, &m); in __nci_spi_read()
240 if (nspi->acknowledge_mode == NCI_SPI_CRC_ENABLED) { in __nci_spi_read()
290 struct sk_buff *nci_spi_read(struct nci_spi *nspi) in nci_spi_read() argument
295 skb = __nci_spi_read(nspi); in nci_spi_read()
299 if (nspi->acknowledge_mode == NCI_SPI_CRC_ENABLED) { in nci_spi_read()
301 send_acknowledge(nspi, ACKNOWLEDGE_NACK); in nci_spi_read()
308 nspi->req_result = nci_spi_get_ack(skb); in nci_spi_read()
309 if (nspi->req_result) in nci_spi_read()
310 complete(&nspi->req_completion); in nci_spi_read()
322 if (nspi->acknowledge_mode == NCI_SPI_CRC_ENABLED) in nci_spi_read()
323 send_acknowledge(nspi, ACKNOWLEDGE_ACK); in nci_spi_read()