Lines Matching refs:nspi

30 static int __nci_spi_send(struct nci_spi *nspi, const struct sk_buff *skb,
47 t.delay.value = nspi->xfer_udelay;
49 t.speed_hz = nspi->xfer_speed_hz;
54 return spi_sync(nspi->spi, &m);
57 int nci_spi_send(struct nci_spi *nspi,
69 hdr[1] = nspi->acknowledge_mode;
73 if (nspi->acknowledge_mode == NCI_SPI_CRC_ENABLED) {
83 ret = __nci_spi_send(nspi, NULL, 1);
95 ret = __nci_spi_send(nspi, skb, 0);
96 if (ret != 0 || nspi->acknowledge_mode == NCI_SPI_CRC_DISABLED)
99 reinit_completion(&nspi->req_completion);
101 &nspi->req_completion,
104 if (completion_rc <= 0 || nspi->req_result == ACKNOWLEDGE_NACK)
128 struct nci_spi *nspi;
130 nspi = devm_kzalloc(&spi->dev, sizeof(struct nci_spi), GFP_KERNEL);
131 if (!nspi)
134 nspi->acknowledge_mode = acknowledge_mode;
135 nspi->xfer_udelay = delay;
137 nspi->xfer_speed_hz = 0;
138 nspi->spi = spi;
139 nspi->ndev = ndev;
140 init_completion(&nspi->req_completion);
142 return nspi;
146 static int send_acknowledge(struct nci_spi *nspi, u8 acknowledge)
153 skb = nci_skb_alloc(nspi->ndev, 0, GFP_KERNEL);
168 ret = __nci_spi_send(nspi, skb, 0);
175 static struct sk_buff *__nci_spi_read(struct nci_spi *nspi)
188 req[1] = nspi->acknowledge_mode;
192 tx.speed_hz = nspi->xfer_speed_hz;
199 rx.speed_hz = nspi->xfer_speed_hz;
202 ret = spi_sync(nspi->spi, &m);
206 if (nspi->acknowledge_mode == NCI_SPI_CRC_ENABLED)
212 skb = nci_skb_alloc(nspi->ndev, rx_len, GFP_KERNEL);
222 rx.delay.value = nspi->xfer_udelay;
224 rx.speed_hz = nspi->xfer_speed_hz;
227 ret = spi_sync(nspi->spi, &m);
231 if (nspi->acknowledge_mode == NCI_SPI_CRC_ENABLED) {
273 * @nspi: The nci spi
281 struct sk_buff *nci_spi_read(struct nci_spi *nspi)
286 skb = __nci_spi_read(nspi);
290 if (nspi->acknowledge_mode == NCI_SPI_CRC_ENABLED) {
292 send_acknowledge(nspi, ACKNOWLEDGE_NACK);
299 nspi->req_result = nci_spi_get_ack(skb);
300 if (nspi->req_result)
301 complete(&nspi->req_completion);
313 if (nspi->acknowledge_mode == NCI_SPI_CRC_ENABLED)
314 send_acknowledge(nspi, ACKNOWLEDGE_ACK);