Lines Matching refs:adis

26 	struct adis *adis = iio_device_get_drvdata(indio_dev);  in adis_update_scan_mode()  local
32 kfree(adis->xfer); in adis_update_scan_mode()
33 kfree(adis->buffer); in adis_update_scan_mode()
37 adis->xfer = kcalloc(scan_count + 1, sizeof(*adis->xfer), GFP_KERNEL); in adis_update_scan_mode()
38 if (!adis->xfer) in adis_update_scan_mode()
41 adis->buffer = kzalloc(indio_dev->scan_bytes * 2, GFP_KERNEL); in adis_update_scan_mode()
42 if (!adis->buffer) in adis_update_scan_mode()
45 rx = adis->buffer; in adis_update_scan_mode()
48 spi_message_init(&adis->msg); in adis_update_scan_mode()
51 adis->xfer[j].bits_per_word = 8; in adis_update_scan_mode()
53 adis->xfer[j].cs_change = 1; in adis_update_scan_mode()
54 adis->xfer[j].len = 2; in adis_update_scan_mode()
55 adis->xfer[j].delay_usecs = adis->data->read_delay; in adis_update_scan_mode()
57 adis->xfer[j].tx_buf = &tx[j]; in adis_update_scan_mode()
59 adis->xfer[j].rx_buf = &rx[j - 1]; in adis_update_scan_mode()
60 spi_message_add_tail(&adis->xfer[j], &adis->msg); in adis_update_scan_mode()
80 struct adis *adis = iio_device_get_drvdata(indio_dev); in adis_trigger_handler() local
83 if (!adis->buffer) in adis_trigger_handler()
86 if (adis->data->has_paging) { in adis_trigger_handler()
87 mutex_lock(&adis->txrx_lock); in adis_trigger_handler()
88 if (adis->current_page != 0) { in adis_trigger_handler()
89 adis->tx[0] = ADIS_WRITE_REG(ADIS_REG_PAGE_ID); in adis_trigger_handler()
90 adis->tx[1] = 0; in adis_trigger_handler()
91 spi_write(adis->spi, adis->tx, 2); in adis_trigger_handler()
95 ret = spi_sync(adis->spi, &adis->msg); in adis_trigger_handler()
97 dev_err(&adis->spi->dev, "Failed to read data: %d", ret); in adis_trigger_handler()
100 if (adis->data->has_paging) { in adis_trigger_handler()
101 adis->current_page = 0; in adis_trigger_handler()
102 mutex_unlock(&adis->txrx_lock); in adis_trigger_handler()
105 iio_push_to_buffers_with_timestamp(indio_dev, adis->buffer, in adis_trigger_handler()
129 int adis_setup_buffer_and_trigger(struct adis *adis, struct iio_dev *indio_dev, in adis_setup_buffer_and_trigger() argument
142 if (adis->spi->irq) { in adis_setup_buffer_and_trigger()
143 ret = adis_probe_trigger(adis, indio_dev); in adis_setup_buffer_and_trigger()
162 void adis_cleanup_buffer_and_trigger(struct adis *adis, in adis_cleanup_buffer_and_trigger() argument
165 if (adis->spi->irq) in adis_cleanup_buffer_and_trigger()
166 adis_remove_trigger(adis); in adis_cleanup_buffer_and_trigger()
167 kfree(adis->buffer); in adis_cleanup_buffer_and_trigger()
168 kfree(adis->xfer); in adis_cleanup_buffer_and_trigger()