staticint __nci_spi_send(struct nci_spi *nspi, conststruct sk_buff *skb, int cs_change)
{ struct spi_message m; struct spi_transfer t;
memset(&t, 0, sizeof(struct spi_transfer)); /* a NULL skb means we just want the SPI chip select line to raise */ if (skb) {
t.tx_buf = skb->data;
t.len = skb->len;
} else { /* still set tx_buf non NULL to make the driver happy */
t.tx_buf = &t;
t.len = 0;
}
t.cs_change = cs_change;
t.delay.value = nspi->xfer_udelay;
t.delay.unit = SPI_DELAY_UNIT_USECS;
t.speed_hz = nspi->xfer_speed_hz;
/* Remove NFCC part of the header: ACK, NACK and MSB payload len */
skb_pull(skb, 2);
return ret;
}
/** * nci_spi_read - read frame from NCI SPI drivers * * @nspi: The nci spi * Context: can sleep * * This call may only be used from a context that may sleep. The sleep * is non-interruptible, and has no timeout. * * It returns an allocated skb containing the frame on success, or NULL.
*/ struct sk_buff *nci_spi_read(struct nci_spi *nspi)
{ struct sk_buff *skb;
/* Retrieve frame from SPI */
skb = __nci_spi_read(nspi); if (!skb) goto done;
if (nspi->acknowledge_mode == NCI_SPI_CRC_ENABLED) { if (!nci_spi_check_crc(skb)) {
send_acknowledge(nspi, ACKNOWLEDGE_NACK); goto done;
}
/* In case of acknowledged mode: if ACK or NACK received, * unblock completion of latest frame sent.
*/
nspi->req_result = nci_spi_get_ack(skb); if (nspi->req_result)
complete(&nspi->req_completion);
}
/* If there is no payload (ACK/NACK only frame), * free the socket buffer
*/ if (!skb->len) {
kfree_skb(skb);
skb = NULL; goto done;
}
if (nspi->acknowledge_mode == NCI_SPI_CRC_ENABLED)
send_acknowledge(nspi, ACKNOWLEDGE_ACK);
done:
return skb;
}
EXPORT_SYMBOL_GPL(nci_spi_read);
MODULE_DESCRIPTION("NFC Controller Interface (NCI) SPI link layer");
MODULE_LICENSE("GPL");
Messung V0.5
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.