Lines Matching refs:cas_ctl
722 static void ca8210_rx_done(struct cas_control *cas_ctl) in ca8210_rx_done() argument
727 struct ca8210_priv *priv = cas_ctl->priv; in ca8210_rx_done()
729 buf = cas_ctl->tx_in_buf; in ca8210_rx_done()
842 struct cas_control *cas_ctl = context; in ca8210_spi_transfer_complete() local
843 struct ca8210_priv *priv = cas_ctl->priv; in ca8210_spi_transfer_complete()
849 cas_ctl->tx_in_buf[0] == SPI_NACK || in ca8210_spi_transfer_complete()
850 (cas_ctl->tx_in_buf[0] == SPI_IDLE && in ca8210_spi_transfer_complete()
851 cas_ctl->tx_in_buf[1] == SPI_NACK) in ca8210_spi_transfer_complete()
855 if (cas_ctl->tx_buf[0] == SPI_IDLE) { in ca8210_spi_transfer_complete()
860 kfree(cas_ctl); in ca8210_spi_transfer_complete()
865 kfree(cas_ctl); in ca8210_spi_transfer_complete()
869 memcpy(retry_buffer, cas_ctl->tx_buf, CA8210_SPI_BUF_SIZE); in ca8210_spi_transfer_complete()
870 kfree(cas_ctl); in ca8210_spi_transfer_complete()
880 cas_ctl->tx_in_buf[0] != SPI_IDLE && in ca8210_spi_transfer_complete()
881 cas_ctl->tx_in_buf[0] != SPI_NACK in ca8210_spi_transfer_complete()
888 for (i = 0; i < cas_ctl->tx_in_buf[1] + 2; i++) in ca8210_spi_transfer_complete()
892 cas_ctl->tx_in_buf[i] in ca8210_spi_transfer_complete()
894 ca8210_rx_done(cas_ctl); in ca8210_spi_transfer_complete()
897 kfree(cas_ctl); in ca8210_spi_transfer_complete()
917 struct cas_control *cas_ctl; in ca8210_spi_transfer() local
929 cas_ctl = kmalloc(sizeof(*cas_ctl), GFP_ATOMIC); in ca8210_spi_transfer()
930 if (!cas_ctl) in ca8210_spi_transfer()
933 cas_ctl->priv = priv; in ca8210_spi_transfer()
934 memset(cas_ctl->tx_buf, SPI_IDLE, CA8210_SPI_BUF_SIZE); in ca8210_spi_transfer()
935 memset(cas_ctl->tx_in_buf, SPI_IDLE, CA8210_SPI_BUF_SIZE); in ca8210_spi_transfer()
936 memcpy(cas_ctl->tx_buf, buf, len); in ca8210_spi_transfer()
939 dev_dbg(&spi->dev, "%#03x\n", cas_ctl->tx_buf[i]); in ca8210_spi_transfer()
941 spi_message_init(&cas_ctl->msg); in ca8210_spi_transfer()
943 cas_ctl->transfer.tx_nbits = 1; /* 1 MOSI line */ in ca8210_spi_transfer()
944 cas_ctl->transfer.rx_nbits = 1; /* 1 MISO line */ in ca8210_spi_transfer()
945 cas_ctl->transfer.speed_hz = 0; /* Use device setting */ in ca8210_spi_transfer()
946 cas_ctl->transfer.bits_per_word = 0; /* Use device setting */ in ca8210_spi_transfer()
947 cas_ctl->transfer.tx_buf = cas_ctl->tx_buf; in ca8210_spi_transfer()
948 cas_ctl->transfer.rx_buf = cas_ctl->tx_in_buf; in ca8210_spi_transfer()
949 cas_ctl->transfer.delay_usecs = 0; in ca8210_spi_transfer()
950 cas_ctl->transfer.cs_change = 0; in ca8210_spi_transfer()
951 cas_ctl->transfer.len = sizeof(struct mac_message); in ca8210_spi_transfer()
952 cas_ctl->msg.complete = ca8210_spi_transfer_complete; in ca8210_spi_transfer()
953 cas_ctl->msg.context = cas_ctl; in ca8210_spi_transfer()
956 &cas_ctl->transfer, in ca8210_spi_transfer()
957 &cas_ctl->msg in ca8210_spi_transfer()
960 status = spi_async(spi, &cas_ctl->msg); in ca8210_spi_transfer()