misc: xilinx_sdfec: Add ability to get/set config

- Add capability to get SD-FEC config data using ioctl
XSDFEC_GET_CONFIG.

- Add capability to set SD-FEC data order using ioctl
SDFEC_SET_ORDER.

- Add capability to set SD-FEC bypass option using ioctl
XSDFEC_SET_BYPASS.

- Add capability to set SD-FEC active state using ioctl
XSDFEC_IS_ACTIVE.

Tested-by: Dragan Cvetic <dragan.cvetic@xilinx.com>
Signed-off-by: Derek Kiernan <derek.kiernan@xilinx.com>
Signed-off-by: Dragan Cvetic <dragan.cvetic@xilinx.com>
Link: https://lore.kernel.org/r/1564216438-322406-5-git-send-email-dragan.cvetic@xilinx.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Dragan Cvetic
2019-07-27 09:33:54 +01:00
committed by Greg Kroah-Hartman
parent 20ec628e80
commit 77dd39d924
2 changed files with 145 additions and 0 deletions
+57
View File
@@ -287,6 +287,19 @@ struct xsdfec_ldpc_param_table_sizes {
*/
#define XSDFEC_ADD_LDPC_CODE_PARAMS \
_IOW(XSDFEC_MAGIC, 5, struct xsdfec_ldpc_params)
/**
* DOC: XSDFEC_GET_CONFIG
* @Parameters
*
* @struct xsdfec_config *
* Pointer to the &struct xsdfec_config that contains the current
* configuration settings of the SD-FEC Block
*
* @Description
*
* ioctl that returns SD-FEC core configuration
*/
#define XSDFEC_GET_CONFIG _IOR(XSDFEC_MAGIC, 6, struct xsdfec_config)
/**
* DOC: XSDFEC_GET_TURBO
* @Parameters
@@ -300,4 +313,48 @@ struct xsdfec_ldpc_param_table_sizes {
* ioctl that returns SD-FEC turbo param values
*/
#define XSDFEC_GET_TURBO _IOR(XSDFEC_MAGIC, 7, struct xsdfec_turbo)
/**
* DOC: XSDFEC_SET_ORDER
* @Parameters
*
* @struct unsigned long *
* Pointer to the unsigned long that contains a value from the
* @enum xsdfec_order
*
* @Description
*
* ioctl that sets order, if order of blocks can change from input to output
*
* This can only be used when the driver is in the XSDFEC_STOPPED state
*/
#define XSDFEC_SET_ORDER _IOW(XSDFEC_MAGIC, 8, unsigned long)
/**
* DOC: XSDFEC_SET_BYPASS
* @Parameters
*
* @struct bool *
* Pointer to bool that sets the bypass value, where false results in
* normal operation and false results in the SD-FEC performing the
* configured operations (same number of cycles) but output data matches
* the input data
*
* @Description
*
* ioctl that sets bypass.
*
* This can only be used when the driver is in the XSDFEC_STOPPED state
*/
#define XSDFEC_SET_BYPASS _IOW(XSDFEC_MAGIC, 9, bool)
/**
* DOC: XSDFEC_IS_ACTIVE
* @Parameters
*
* @struct bool *
* Pointer to bool that returns true if the SD-FEC is processing data
*
* @Description
*
* ioctl that determines if SD-FEC is processing data
*/
#define XSDFEC_IS_ACTIVE _IOR(XSDFEC_MAGIC, 10, bool)
#endif /* __XILINX_SDFEC_H__ */