Lines Matching +full:auto +full:- +full:poll

1 .. SPDX-License-Identifier: GPL-2.0+
4 Xilinx SD-FEC Driver
10 This driver supports SD-FEC Integrated Block for Zynq |Ultrascale+ (TM)| RFSoCs.
15 …f SD-FEC core features, see the `SD-FEC Product Guide (PG256) <https://www.xilinx.com/cgi-bin/docs…
19 - Retrieval of the Integrated Block configuration and status information
20 - Configuration of LDPC codes
21 - Configuration of Turbo decoding
22 - Monitoring errors
24 Missing features, known issues, and limitations of the SD-FEC driver are as
27 - Only allows a single open file handler to any instance of the driver at any time
28 - Reset of the SD-FEC Integrated Block is not controlled by this driver
29 - Does not support shared LDPC code table wraparound
32-xlnx/Documentation/devicetree/bindings/misc/xlnx,sd-fec.yaml <https://github.com/Xilinx/linux-xln…
36 ------------------
38 The driver works with the SD-FEC core in two modes of operation:
40 - Run-time configuration
41 - Programmable Logic (PL) initialization
44 Run-time Configuration
47 For Run-time configuration the role of driver is to allow the software application to do the follow…
49 - Load the configuration parameters for either Turbo decode or LDPC encode or decode
50 - Activate the SD-FEC core
51 - Monitor the SD-FEC core for errors
52 - Retrieve the status and configuration of the SD-FEC core
61 - Activate the SD-FEC core
62 - Monitor the SD-FEC core for errors
63 - Retrieve the status and configuration of the SD-FEC core
72- probe: Updates configuration register with device-tree entries plus determines the current activ…
78- open: Implements restriction that only a single file descriptor can be open per SD-FEC instance …
79- release: Allows another file descriptor to be open, that is after current file descriptor is clo…
80 - poll: Provides a method to monitor for SD-FEC Error events
81- unlocked_ioctl: Provides the following ioctl commands that allows the application configure the …
83 - :c:macro:`XSDFEC_START_DEV`
84 - :c:macro:`XSDFEC_STOP_DEV`
85 - :c:macro:`XSDFEC_GET_STATUS`
86 - :c:macro:`XSDFEC_SET_IRQ`
87 - :c:macro:`XSDFEC_SET_TURBO`
88 - :c:macro:`XSDFEC_ADD_LDPC_CODE_PARAMS`
89 - :c:macro:`XSDFEC_GET_CONFIG`
90 - :c:macro:`XSDFEC_SET_ORDER`
91 - :c:macro:`XSDFEC_SET_BYPASS`
92 - :c:macro:`XSDFEC_IS_ACTIVE`
93 - :c:macro:`XSDFEC_CLEAR_STATS`
94 - :c:macro:`XSDFEC_SET_DEFAULT_CONFIG`
102 --------
105 performed to configure and activate the SD-FEC core and determine the
109 - Determine Configuration
110 - Set the order, if not already configured as desired
111 - Set Turbo decode, LPDC encode or decode parameters, depending on how the
112 SD-FEC core is configured plus if the SD-FEC has not been configured for PL
114 - Enable interrupts, if not already enabled
115 - Bypass the SD-FEC core, if required
116 - Start the SD-FEC core if not already started
117 - Get the SD-FEC core status
118 - Monitor for interrupts
119 - Stop the SD-FEC core
126 -----------------------
128 Determine the configuration of the SD-FEC core by using the ioctl
132 -------------
140- The ``state`` member of struct :c:type:`xsdfec_status <xsdfec_status>` filled by the ioctl :c:ma…
144 --------------
146 The following steps indicate how to add LDPC codes to the SD-FEC core:
148- Use the auto-generated parameters to fill the :c:type:`struct xsdfec_ldpc_params <xsdfec_ldpc_pa…
149- Set the SC, QA, and LA table offsets for the LPDC parameters and the parameters in the structure…
150- Set the desired Code Id value in the structure :c:type:`struct xsdfec_ldpc_params <xsdfec_ldpc_p…
151 - Add the LPDC Code Parameters using the ioctl :c:macro:`XSDFEC_ADD_LDPC_CODE_PARAMS`
152- For the applied LPDC Code Parameter use the function :c:func:`xsdfec_calculate_shared_ldpc_table…
153 - Repeat for each LDPC code parameter.
157- The ``code`` member of :c:type:`struct xsdfec_config <xsdfec_config>` filled by the ioctl :c:mac…
158- The ``code_wr_protect`` of :c:type:`struct xsdfec_config <xsdfec_config>` filled by the ioctl :c…
159- The ``state`` member of struct :c:type:`xsdfec_status <xsdfec_status>` filled by the ioctl :c:ma…
162 ----------------
164 …e parameters is done by using the ioctl :c:macro:`XSDFEC_SET_TURBO` using auto-generated parameter…
168- The ``code`` member of :c:type:`struct xsdfec_config <xsdfec_config>` filled by the ioctl :c:mac…
169- The ``state`` member of struct :c:type:`xsdfec_status <xsdfec_status>` filled by the ioctl :c:ma…
172 -----------------
176 - ``enable_isr`` controls the ``tlast`` interrupts
177 - ``enable_ecc_isr`` controls the ECC interrupts
179 …c_config>` filled by the ioctl :c:macro:`XSDFEC_GET_CONFIG` indicates the SD-FEC core is configure…
181 Bypass the SD-FEC
182 -----------------
184 Bypassing the SD-FEC is done by using the ioctl :c:macro:`XSDFEC_SET_BYPASS`
186 Bypassing the SD-FEC can only be done if the following restrictions are met:
188- The ``state`` member of :c:type:`struct xsdfec_status <xsdfec_status>` filled by the ioctl :c:ma…
190 Start the SD-FEC core
191 ---------------------
193 Start the SD-FEC core by using the ioctl :c:macro:`XSDFEC_START_DEV`
195 Get SD-FEC Status
196 -----------------
198 Get the SD-FEC status of the device by using the ioctl :c:macro:`XSDFEC_GET_STATUS`, which will fil…
201 ----------------------
203- Use the poll system call to monitor for an interrupt. The poll system call waits for an interrup…
204 - On return Poll ``revents`` will indicate whether stats and/or state have been updated
205- ``POLLPRI`` indicates a critical error and the user should use :c:macro:`XSDFEC_GET_STATUS` and …
206- ``POLLRDNORM`` indicates a non-critical error has occurred and the user should use :c:macro:`XS…
207 - Get stats by using the ioctl :c:macro:`XSDFEC_GET_STATS`
208- For critical error the ``isr_err_count`` or ``uecc_count`` member of :c:type:`struct xsdfec_sta…
209- For non-critical errors the ``cecc_count`` member of :c:type:`struct xsdfec_stats <xsdfec_stats>…
210 - Get state by using the ioctl :c:macro:`XSDFEC_GET_STATUS`
211- For a critical error the ``state`` of :c:type:`xsdfec_status <xsdfec_status>` will indicate a Re…
212 - Clear stats by using the ioctl :c:macro:`XSDFEC_CLEAR_STATS`
216 Note: Using poll system call prevents busy looping using :c:macro:`XSDFEC_GET_STATS` and :c:macro:`…
218 Stop the SD-FEC Core
219 ---------------------
224 -----------------------------
229 -----------
231 Users should not duplicate SD-FEC device file handlers, for example fork() or dup() a process that …
237 .. kernel-doc:: include/uapi/misc/xilinx_sdfec.h
241 .. kernel-doc:: include/uapi/misc/xilinx_sdfec.h
245 .. kernel-doc:: include/uapi/misc/xilinx_sdfec.h
249 .. kernel-doc:: include/uapi/misc/xilinx_sdfec.h
253 .. kernel-doc:: include/uapi/misc/xilinx_sdfec.h
257 .. kernel-doc:: include/uapi/misc/xilinx_sdfec.h
261 .. kernel-doc:: include/uapi/misc/xilinx_sdfec.h
265 .. kernel-doc:: include/uapi/misc/xilinx_sdfec.h
269 .. kernel-doc:: include/uapi/misc/xilinx_sdfec.h
273 .. kernel-doc:: include/uapi/misc/xilinx_sdfec.h
277 .. kernel-doc:: include/uapi/misc/xilinx_sdfec.h
281 .. kernel-doc:: include/uapi/misc/xilinx_sdfec.h
285 .. kernel-doc:: include/uapi/misc/xilinx_sdfec.h
291 .. kernel-doc:: include/uapi/misc/xilinx_sdfec.h