| /linux/drivers/i3c/master/mipi-i3c-hci/ |
| H A D | cmd_v2.c | 91 struct hci_xfer *xfer, in hci_cmd_v2_prep_private_xfer() argument 95 u8 *data = xfer->data; in hci_cmd_v2_prep_private_xfer() 96 unsigned int data_len = xfer->data_len; in hci_cmd_v2_prep_private_xfer() 97 bool rnw = xfer->rnw; in hci_cmd_v2_prep_private_xfer() 99 xfer->cmd_tid = hci_get_tid(); in hci_cmd_v2_prep_private_xfer() 102 xfer->cmd_desc[0] = in hci_cmd_v2_prep_private_xfer() 104 CMD_U0_TID(xfer->cmd_tid) | in hci_cmd_v2_prep_private_xfer() 109 xfer->cmd_desc[1] = in hci_cmd_v2_prep_private_xfer() 111 xfer->cmd_desc[2] = 0; in hci_cmd_v2_prep_private_xfer() 112 xfer->cmd_desc[3] = 0; in hci_cmd_v2_prep_private_xfer() [all …]
|
| H A D | cmd_v1.c | 144 static void fill_data_bytes(struct hci_xfer *xfer, u8 *data, in fill_data_bytes() argument 147 xfer->cmd_desc[1] = 0; in fill_data_bytes() 150 xfer->cmd_desc[1] |= CMD_I1_DATA_BYTE_4(data[3]); in fill_data_bytes() 153 xfer->cmd_desc[1] |= CMD_I1_DATA_BYTE_3(data[2]); in fill_data_bytes() 156 xfer->cmd_desc[1] |= CMD_I1_DATA_BYTE_2(data[1]); in fill_data_bytes() 159 xfer->cmd_desc[1] |= CMD_I1_DATA_BYTE_1(data[0]); in fill_data_bytes() 165 xfer->data = NULL; in fill_data_bytes() 169 struct hci_xfer *xfer, in hci_cmd_v1_prep_ccc() argument 174 u8 *data = xfer->data; in hci_cmd_v1_prep_ccc() 175 unsigned int data_len = xfer->data_len; in hci_cmd_v1_prep_ccc() [all …]
|
| H A D | pio.c | 247 static void hci_pio_write_cmd(struct i3c_hci *hci, struct hci_xfer *xfer) in hci_pio_write_cmd() argument 250 0, xfer->cmd_desc[0]); in hci_pio_write_cmd() 252 1, xfer->cmd_desc[1]); in hci_pio_write_cmd() 253 pio_reg_write(COMMAND_QUEUE_PORT, xfer->cmd_desc[0]); in hci_pio_write_cmd() 254 pio_reg_write(COMMAND_QUEUE_PORT, xfer->cmd_desc[1]); in hci_pio_write_cmd() 257 2, xfer->cmd_desc[2]); in hci_pio_write_cmd() 259 3, xfer->cmd_desc[3]); in hci_pio_write_cmd() 260 pio_reg_write(COMMAND_QUEUE_PORT, xfer->cmd_desc[2]); in hci_pio_write_cmd() 261 pio_reg_write(COMMAND_QUEUE_PORT, xfer->cmd_desc[3]); in hci_pio_write_cmd() 267 struct hci_xfer *xfer = pio->curr_rx; in hci_pio_do_rx() local [all …]
|
| H A D | core.c | 249 int i3c_hci_process_xfer(struct i3c_hci *hci, struct hci_xfer *xfer, int n) in i3c_hci_process_xfer() argument 251 struct completion *done = xfer[n - 1].completion; in i3c_hci_process_xfer() 252 unsigned long timeout = xfer[n - 1].timeout; in i3c_hci_process_xfer() 255 ret = hci->io->queue_xfer(hci, xfer, n); in i3c_hci_process_xfer() 260 if (hci->io->dequeue_xfer(hci, xfer, n)) { in i3c_hci_process_xfer() 271 error = RESP_STATUS(xfer[i].response); in i3c_hci_process_xfer() 273 return hci->io->handle_error(hci, xfer, n); in i3c_hci_process_xfer() 283 struct hci_xfer *xfer; in i3c_hci_send_ccc_cmd() local 293 xfer = hci_alloc_xfer(nxfers); in i3c_hci_send_ccc_cmd() 294 if (!xfer) in i3c_hci_send_ccc_cmd() [all …]
|
| H A D | dma.c | 128 void *xfer, *resp, *ibi_status, *ibi_data; member 188 if (rh->xfer) in hci_dma_free() 191 rh->xfer, rh->xfer_dma); in hci_dma_free() 360 rh->xfer = dma_alloc_coherent(rings->sysdev, xfers_sz, in hci_dma_init() 367 if (!rh->xfer || !rh->resp || !rh->src_xfers) in hci_dma_init() 430 struct hci_xfer *xfer; in hci_dma_unmap_xfer() local 434 xfer = xfer_list + i; in hci_dma_unmap_xfer() 435 if (!xfer->data) in hci_dma_unmap_xfer() 437 i3c_master_dma_unmap_single(xfer->dma); in hci_dma_unmap_xfer() 441 static struct i3c_dma *hci_dma_map_xfer(struct device *dev, struct hci_xfer *xfer) in hci_dma_map_xfer() argument [all …]
|
| /linux/drivers/firmware/ |
| H A D | ti_sci.c | 242 struct ti_sci_xfer *xfer; in ti_sci_rx_callback() local 256 xfer = &minfo->xfer_block[xfer_id]; in ti_sci_rx_callback() 265 if (mbox_msg->len < xfer->rx_len) { in ti_sci_rx_callback() 267 mbox_msg->len, xfer->rx_len); in ti_sci_rx_callback() 274 memcpy(xfer->xfer_buf, mbox_msg->buf, xfer->rx_len); in ti_sci_rx_callback() 275 complete(&xfer->done); in ti_sci_rx_callback() 301 struct ti_sci_xfer *xfer; in ti_sci_get_one_xfer() local 341 xfer = &minfo->xfer_block[xfer_id]; in ti_sci_get_one_xfer() 343 hdr = (struct ti_sci_msg_hdr *)xfer->tx_message.buf; in ti_sci_get_one_xfer() 344 xfer->tx_message.len = tx_message_size; in ti_sci_get_one_xfer() [all …]
|
| /linux/drivers/spi/ |
| H A D | spi-atmel.c | 480 static inline bool atmel_spi_is_vmalloc_xfer(struct spi_transfer *xfer) in atmel_spi_is_vmalloc_xfer() argument 482 return is_vmalloc_addr(xfer->tx_buf) || is_vmalloc_addr(xfer->rx_buf); in atmel_spi_is_vmalloc_xfer() 486 struct spi_transfer *xfer) in atmel_spi_use_dma() argument 488 return as->use_dma && xfer->len >= DMA_MIN_BYTES; in atmel_spi_use_dma() 493 struct spi_transfer *xfer) in atmel_spi_can_dma() argument 498 return atmel_spi_use_dma(as, xfer) && in atmel_spi_can_dma() 499 !atmel_spi_is_vmalloc_xfer(xfer); in atmel_spi_can_dma() 501 return atmel_spi_use_dma(as, xfer); in atmel_spi_can_dma() 644 struct spi_transfer *xfer) in atmel_spi_next_xfer_single() argument 647 unsigned long xfer_pos = xfer->len - as->current_remaining_bytes; in atmel_spi_next_xfer_single() [all …]
|
| H A D | spi-axi-spi-engine.c | 229 struct spi_transfer *xfer, u32 num_lanes) in spi_engine_gen_xfer() argument 233 if (xfer->bits_per_word <= 8) in spi_engine_gen_xfer() 234 len = xfer->len; in spi_engine_gen_xfer() 235 else if (xfer->bits_per_word <= 16) in spi_engine_gen_xfer() 236 len = xfer->len / 2; in spi_engine_gen_xfer() 238 len = xfer->len / 4; in spi_engine_gen_xfer() 240 if (xfer->multi_lane_mode == SPI_MULTI_LANE_MODE_STRIPE) in spi_engine_gen_xfer() 247 if (xfer->tx_buf || (xfer->offload_flags & SPI_OFFLOAD_XFER_TX_STREAM)) in spi_engine_gen_xfer() 249 if (xfer->rx_buf || (xfer->offload_flags & SPI_OFFLOAD_XFER_RX_STREAM)) in spi_engine_gen_xfer() 307 struct spi_transfer *xfer; in spi_engine_precompile_message() local [all …]
|
| H A D | spi.c | 308 struct spi_transfer *xfer, in spi_statistics_add_transfer_stats() argument 311 int l2len = min(fls(xfer->len), SPI_STATISTICS_HISTO_SIZE) - 1; in spi_statistics_add_transfer_stats() 324 u64_stats_add(&stats->bytes, xfer->len); in spi_statistics_add_transfer_stats() 325 if (spi_valid_txbuf(msg, xfer)) in spi_statistics_add_transfer_stats() 326 u64_stats_add(&stats->bytes_tx, xfer->len); in spi_statistics_add_transfer_stats() 327 if (spi_valid_rxbuf(msg, xfer)) in spi_statistics_add_transfer_stats() 328 u64_stats_add(&stats->bytes_rx, xfer->len); in spi_statistics_add_transfer_stats() 1220 struct spi_transfer *xfer; in __spi_map_msg() local 1241 list_for_each_entry(xfer, &msg->transfers, transfer_list) { in __spi_map_msg() 1245 if (!ctlr->can_dma(ctlr, msg->spi, xfer)) in __spi_map_msg() [all …]
|
| H A D | spi-amlogic-spisg.c | 220 struct spi_transfer *xfer) in aml_spisg_can_dma() argument 249 struct spi_transfer *xfer, in aml_spisg_setup_transfer() argument 263 aml_spisg_set_speed(spisg, xfer->speed_hz); in aml_spisg_setup_transfer() 264 xfer->effective_speed_hz = spisg->effective_speed_hz; in aml_spisg_setup_transfer() 269 block_size = xfer->bits_per_word >> 3; in aml_spisg_setup_transfer() 270 blocks = xfer->len / block_size; in aml_spisg_setup_transfer() 273 desc->cfg_bus |= FIELD_PREP(CFG_KEEP_SS, !xfer->cs_change); in aml_spisg_setup_transfer() 276 if (xfer->tx_buf || xfer->tx_dma) { in aml_spisg_setup_transfer() 277 desc->cfg_bus |= FIELD_PREP(CFG_LANE, nbits_to_lane[xfer->tx_nbits]); in aml_spisg_setup_transfer() 280 if (xfer->rx_buf || xfer->rx_dma) { in aml_spisg_setup_transfer() [all …]
|
| H A D | spi-geni-qcom.c | 154 const struct spi_transfer *xfer; in handle_se_timeout() local 160 xfer = mas->cur_xfer; in handle_se_timeout() 194 if (xfer) { in handle_se_timeout() 195 if (xfer->tx_buf) { in handle_se_timeout() 204 if (xfer->rx_buf) { in handle_se_timeout() 394 static int setup_gsi_xfer(struct spi_transfer *xfer, struct spi_geni_master *mas, in setup_gsi_xfer() argument 407 if (xfer->bits_per_word != mas->cur_bits_per_word || in setup_gsi_xfer() 408 xfer->speed_hz != mas->cur_speed_hz) { in setup_gsi_xfer() 409 mas->cur_bits_per_word = xfer->bits_per_word; in setup_gsi_xfer() 410 mas->cur_speed_hz = xfer->speed_hz; in setup_gsi_xfer() [all …]
|
| /linux/drivers/firmware/arm_scmi/ |
| H A D | msg.c | 33 static size_t msg_command_size(struct scmi_xfer *xfer) in msg_command_size() argument 35 return sizeof(struct scmi_msg_payld) + xfer->tx.len; in msg_command_size() 45 static size_t msg_response_size(struct scmi_xfer *xfer) in msg_response_size() argument 47 return sizeof(struct scmi_msg_payld) + sizeof(__le32) + xfer->rx.len; in msg_response_size() 56 static void msg_tx_prepare(struct scmi_msg_payld *msg, struct scmi_xfer *xfer) in msg_tx_prepare() argument 58 msg->msg_header = cpu_to_le32(pack_scmi_header(&xfer->hdr)); in msg_tx_prepare() 59 if (xfer->tx.buf) in msg_tx_prepare() 60 memcpy(msg->msg_payload, xfer->tx.buf, xfer->tx.len); in msg_tx_prepare() 83 size_t len, struct scmi_xfer *xfer) in msg_fetch_response() argument 87 xfer->hdr.status = le32_to_cpu(msg->msg_payload[0]); in msg_fetch_response() [all …]
|
| H A D | raw_mode.c | 206 struct scmi_xfer *xfer; member 336 scmi_xfer_raw_waiter_get(struct scmi_raw_mode_info *raw, struct scmi_xfer *xfer, in scmi_xfer_raw_waiter_get() argument 349 xfer->async_done = &rw->async_response; in scmi_xfer_raw_waiter_get() 353 rw->xfer = xfer; in scmi_xfer_raw_waiter_get() 363 if (rw->xfer) { in scmi_xfer_raw_waiter_put() 364 rw->xfer->async_done = NULL; in scmi_xfer_raw_waiter_put() 365 rw->xfer = NULL; in scmi_xfer_raw_waiter_put() 379 trace_scmi_xfer_response_wait(rw->xfer->transfer_id, rw->xfer->hdr.id, in scmi_xfer_raw_waiter_enqueue() 380 rw->xfer->hdr.protocol_id, in scmi_xfer_raw_waiter_enqueue() 381 rw->xfer->hdr.seq, in scmi_xfer_raw_waiter_enqueue() [all …]
|
| /linux/drivers/dma/dw-edma/ |
| H A D | dw-edma-core.c | 351 dw_edma_device_transfer(struct dw_edma_transfer *xfer) in dw_edma_device_transfer() argument 353 struct dw_edma_chan *chan = dchan2dw_edma_chan(xfer->dchan); in dw_edma_device_transfer() 354 enum dma_transfer_direction dir = xfer->direction; in dw_edma_device_transfer() 403 if (xfer->type == EDMA_XFER_CYCLIC) { in dw_edma_device_transfer() 404 if (!xfer->xfer.cyclic.len || !xfer->xfer.cyclic.cnt) in dw_edma_device_transfer() 406 } else if (xfer->type == EDMA_XFER_SCATTER_GATHER) { in dw_edma_device_transfer() 407 if (xfer->xfer.sg.len < 1) in dw_edma_device_transfer() 409 } else if (xfer->type == EDMA_XFER_INTERLEAVED) { in dw_edma_device_transfer() 410 if (!xfer->xfer.il->numf || xfer->xfer.il->frame_size < 1) in dw_edma_device_transfer() 412 if (!xfer->xfer.il->src_inc || !xfer->xfer.il->dst_inc) in dw_edma_device_transfer() [all …]
|
| /linux/include/trace/events/ |
| H A D | spi.h | 174 #define spi_valid_txbuf(msg, xfer) \ argument 175 (xfer->tx_buf && xfer->tx_buf != msg->spi->controller->dummy_tx) 176 #define spi_valid_rxbuf(msg, xfer) \ argument 177 (xfer->rx_buf && xfer->rx_buf != msg->spi->controller->dummy_rx) 181 TP_PROTO(struct spi_message *msg, struct spi_transfer *xfer), 183 TP_ARGS(msg, xfer), 188 __field( struct spi_transfer *, xfer ) 191 spi_valid_rxbuf(msg, xfer) ? 192 (xfer->len < 64 ? xfer->len : 64) : 0) 194 spi_valid_txbuf(msg, xfer) ? [all …]
|
| /linux/drivers/iio/imu/ |
| H A D | adis_buffer.c | 36 adis->xfer = kzalloc_objs(*adis->xfer, 2); in adis_update_scan_mode_burst() 37 if (!adis->xfer) in adis_update_scan_mode_burst() 42 kfree(adis->xfer); in adis_update_scan_mode_burst() 43 adis->xfer = NULL; in adis_update_scan_mode_burst() 51 adis->xfer[0].tx_buf = tx; in adis_update_scan_mode_burst() 52 adis->xfer[0].len = 2; in adis_update_scan_mode_burst() 54 adis->xfer[0].speed_hz = adis->data->burst_max_speed_hz; in adis_update_scan_mode_burst() 55 adis->xfer[1].rx_buf = adis->buffer; in adis_update_scan_mode_burst() 56 adis->xfer[1].len = burst_length; in adis_update_scan_mode_burst() 58 adis->xfer[1].speed_hz = adis->data->burst_max_speed_hz; in adis_update_scan_mode_burst() [all …]
|
| /linux/drivers/staging/greybus/ |
| H A D | spilib.c | 151 static struct spi_transfer *get_next_xfer(struct spi_transfer *xfer, in get_next_xfer() argument 154 if (xfer == list_last_entry(&msg->transfers, struct spi_transfer, in get_next_xfer() 158 return list_next_entry(xfer, transfer_list); in get_next_xfer() 167 struct spi_transfer *xfer; in gb_spi_operation_create() local 178 xfer = spi->first_xfer; in gb_spi_operation_create() 184 spi->last_xfer = xfer; in gb_spi_operation_create() 186 if (!xfer->tx_buf && !xfer->rx_buf) { in gb_spi_operation_create() 188 "bufferless transfer, length %u\n", xfer->len); in gb_spi_operation_create() 196 if (xfer->tx_buf) { in gb_spi_operation_create() 197 len = xfer->len - spi->tx_xfer_offset; in gb_spi_operation_create() [all …]
|
| /linux/drivers/firmware/samsung/ |
| H A D | exynos-acpm-dvfs.c | 23 static void acpm_dvfs_set_xfer(struct acpm_xfer *xfer, u32 *cmd, size_t cmdlen, in acpm_dvfs_set_xfer() argument 26 xfer->acpm_chan_id = acpm_chan_id; in acpm_dvfs_set_xfer() 27 xfer->txd = cmd; in acpm_dvfs_set_xfer() 28 xfer->txlen = cmdlen; in acpm_dvfs_set_xfer() 31 xfer->rxd = cmd; in acpm_dvfs_set_xfer() 32 xfer->rxlen = cmdlen; in acpm_dvfs_set_xfer() 49 struct acpm_xfer xfer = {0}; in acpm_dvfs_set_rate() local 53 acpm_dvfs_set_xfer(&xfer, cmd, sizeof(cmd), acpm_chan_id, false); in acpm_dvfs_set_rate() 55 return acpm_do_xfer(handle, &xfer); in acpm_dvfs_set_rate() 68 struct acpm_xfer xfer; in acpm_dvfs_get_rate() local [all …]
|
| /linux/drivers/i2c/busses/ |
| H A D | i2c-cgbc.c | 179 static unsigned int cgbc_i2c_xfer_to_cmd(struct cgbc_i2c_transfer xfer, u8 *cmd) in cgbc_i2c_xfer_to_cmd() argument 183 cmd[i++] = CGBC_I2C_CMD_START | xfer.bus_id; in cgbc_i2c_xfer_to_cmd() 185 cmd[i] = (xfer.start) ? CGBC_I2C_START : 0x00; in cgbc_i2c_xfer_to_cmd() 186 if (xfer.stop) in cgbc_i2c_xfer_to_cmd() 188 cmd[i++] |= (xfer.start) ? xfer.write + 1 : xfer.write; in cgbc_i2c_xfer_to_cmd() 190 cmd[i++] = (xfer.last_ack) ? (xfer.read | CGBC_I2C_LAST_ACK) : xfer.read; in cgbc_i2c_xfer_to_cmd() 192 if (xfer.start) in cgbc_i2c_xfer_to_cmd() 193 cmd[i++] = xfer.addr; in cgbc_i2c_xfer_to_cmd() 195 if (xfer.write > 0) in cgbc_i2c_xfer_to_cmd() 196 memcpy(&cmd[i], &xfer.data, xfer.write); in cgbc_i2c_xfer_to_cmd() [all …]
|
| /linux/drivers/input/touchscreen/ |
| H A D | ad7877.c | 147 struct spi_transfer xfer[6]; member 177 struct spi_transfer xfer[AD7877_NR_SENSE + 2]; member 212 req->xfer[0].tx_buf = &req->command; in ad7877_read() 213 req->xfer[0].len = 2; in ad7877_read() 214 req->xfer[0].cs_change = 1; in ad7877_read() 216 req->xfer[1].rx_buf = &req->sample; in ad7877_read() 217 req->xfer[1].len = 2; in ad7877_read() 219 spi_message_add_tail(&req->xfer[0], &req->msg); in ad7877_read() 220 spi_message_add_tail(&req->xfer[1], &req->msg); in ad7877_read() 242 req->xfer[0].tx_buf = &req->command; in ad7877_write() [all …]
|
| H A D | cyttsp_spi.c | 40 struct spi_transfer xfer[2]; in cyttsp_spi_xfer() local 62 memset(xfer, 0, sizeof(xfer)); in cyttsp_spi_xfer() 69 xfer[0].tx_buf = wr_buf; in cyttsp_spi_xfer() 70 xfer[0].rx_buf = rd_buf; in cyttsp_spi_xfer() 73 xfer[0].len = length + CY_SPI_CMD_BYTES; in cyttsp_spi_xfer() 74 spi_message_add_tail(&xfer[0], &msg); in cyttsp_spi_xfer() 78 xfer[0].len = CY_SPI_CMD_BYTES; in cyttsp_spi_xfer() 79 spi_message_add_tail(&xfer[0], &msg); in cyttsp_spi_xfer() 81 xfer[1].rx_buf = buf; in cyttsp_spi_xfer() 82 xfer[1].len = length; in cyttsp_spi_xfer() [all …]
|
| /linux/drivers/i3c/master/ |
| H A D | renesas-i3c.c | 346 struct renesas_i3c_xfer *xfer; in renesas_i3c_alloc_xfer() local 348 xfer = kzalloc_flex(*xfer, cmds, ncmds); in renesas_i3c_alloc_xfer() 349 if (!xfer) in renesas_i3c_alloc_xfer() 352 INIT_LIST_HEAD(&xfer->node); in renesas_i3c_alloc_xfer() 353 xfer->ncmds = ncmds; in renesas_i3c_alloc_xfer() 354 xfer->ret = -ETIMEDOUT; in renesas_i3c_alloc_xfer() 356 return xfer; in renesas_i3c_alloc_xfer() 361 struct renesas_i3c_xfer *xfer = i3c->xferqueue.cur; in renesas_i3c_start_xfer_locked() local 365 if (!xfer) in renesas_i3c_start_xfer_locked() 368 cmd = xfer->cmds; in renesas_i3c_start_xfer_locked() [all …]
|
| H A D | adi-i3c-master.c | 188 struct adi_i3c_xfer *xfer; in adi_i3c_master_alloc_xfer() local 190 xfer = kzalloc_flex(*xfer, cmds, ncmds); in adi_i3c_master_alloc_xfer() 191 if (!xfer) in adi_i3c_master_alloc_xfer() 194 INIT_LIST_HEAD(&xfer->node); in adi_i3c_master_alloc_xfer() 195 xfer->ncmds = ncmds; in adi_i3c_master_alloc_xfer() 196 xfer->ret = -ETIMEDOUT; in adi_i3c_master_alloc_xfer() 198 return xfer; in adi_i3c_master_alloc_xfer() 203 struct adi_i3c_xfer *xfer = master->xferqueue.cur; in adi_i3c_master_start_xfer_locked() local 206 if (!xfer) in adi_i3c_master_start_xfer_locked() 209 for (i = 0; i < xfer->ncmds; i++) { in adi_i3c_master_start_xfer_locked() [all …]
|
| /linux/drivers/net/ethernet/asix/ |
| H A D | ax88796c_spi.c | 48 struct spi_transfer *xfer = ax_spi->spi_rx_xfer; in axspi_read_rxq() local 53 xfer->tx_buf = ax_spi->cmd_buf; in axspi_read_rxq() 54 xfer->rx_buf = NULL; in axspi_read_rxq() 55 xfer->len = ax_spi->comp ? 2 : 5; in axspi_read_rxq() 56 xfer->bits_per_word = 8; in axspi_read_rxq() 57 spi_message_add_tail(xfer, &ax_spi->rx_msg); in axspi_read_rxq() 59 xfer++; in axspi_read_rxq() 60 xfer->rx_buf = data; in axspi_read_rxq() 61 xfer->tx_buf = NULL; in axspi_read_rxq() 62 xfer->len = len; in axspi_read_rxq() [all …]
|
| /linux/sound/soc/codecs/ |
| H A D | rl6347a.c | 62 struct i2c_msg xfer[2]; in rl6347a_hw_read() local 83 xfer[0].addr = client->addr; in rl6347a_hw_read() 84 xfer[0].flags = 0; in rl6347a_hw_read() 85 xfer[0].len = 4; in rl6347a_hw_read() 86 xfer[0].buf = (u8 *)&be_reg; in rl6347a_hw_read() 89 xfer[1].addr = client->addr; in rl6347a_hw_read() 90 xfer[1].flags = I2C_M_RD; in rl6347a_hw_read() 91 xfer[1].len = 4; in rl6347a_hw_read() 92 xfer[1].buf = (u8 *)&buf; in rl6347a_hw_read() 94 ret = i2c_transfer(client->adapter, xfer, 2); in rl6347a_hw_read()
|