Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

iio: backend: add support for number of lanes

Add iio backend support for number of lanes to be enabled.

Reviewed-by: Nuno Sá <nuno.sa@analog.com>
Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
Link: https://patch.msgid.link/20250516082630.8236-4-antoniu.miclaus@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

authored by

Antoniu Miclaus and committed by
Jonathan Cameron
5ef4cc6d 995fd6e0

+20
+17
drivers/iio/industrialio-backend.c
··· 850 850 EXPORT_SYMBOL_NS_GPL(iio_backend_interface_data_align, "IIO_BACKEND"); 851 851 852 852 /** 853 + * iio_backend_num_lanes_set - Number of lanes enabled. 854 + * @back: Backend device 855 + * @num_lanes: Number of lanes. 856 + * 857 + * RETURNS: 858 + * 0 on success, negative error number on failure. 859 + */ 860 + int iio_backend_num_lanes_set(struct iio_backend *back, unsigned int num_lanes) 861 + { 862 + if (!num_lanes) 863 + return -EINVAL; 864 + 865 + return iio_backend_op_call(back, num_lanes_set, num_lanes); 866 + } 867 + EXPORT_SYMBOL_NS_GPL(iio_backend_num_lanes_set, "IIO_BACKEND"); 868 + 869 + /** 853 870 * iio_backend_ddr_enable - Enable interface DDR (Double Data Rate) mode 854 871 * @back: Backend device 855 872 *
+3
include/linux/iio/backend.h
··· 111 111 * @debugfs_reg_access: Read or write register value of backend. 112 112 * @filter_type_set: Set filter type. 113 113 * @interface_data_align: Perform the data alignment process. 114 + * @num_lanes_set: Set the number of lanes enabled. 114 115 * @ddr_enable: Enable interface DDR (Double Data Rate) mode. 115 116 * @ddr_disable: Disable interface DDR (Double Data Rate) mode. 116 117 * @data_stream_enable: Enable data stream. ··· 167 166 int (*filter_type_set)(struct iio_backend *back, 168 167 enum iio_backend_filter_type type); 169 168 int (*interface_data_align)(struct iio_backend *back, u32 timeout_us); 169 + int (*num_lanes_set)(struct iio_backend *back, unsigned int num_lanes); 170 170 int (*ddr_enable)(struct iio_backend *back); 171 171 int (*ddr_disable)(struct iio_backend *back); 172 172 int (*data_stream_enable)(struct iio_backend *back); ··· 213 211 int iio_backend_filter_type_set(struct iio_backend *back, 214 212 enum iio_backend_filter_type type); 215 213 int iio_backend_interface_data_align(struct iio_backend *back, u32 timeout_us); 214 + int iio_backend_num_lanes_set(struct iio_backend *back, unsigned int num_lanes); 216 215 int iio_backend_ddr_enable(struct iio_backend *back); 217 216 int iio_backend_ddr_disable(struct iio_backend *back); 218 217 int iio_backend_data_stream_enable(struct iio_backend *back);