aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/fpga/fpga-mgr.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/fpga/fpga-mgr.h')
-rw-r--r--include/linux/fpga/fpga-mgr.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/fpga/fpga-mgr.h b/include/linux/fpga/fpga-mgr.h
index 3eb6b9d60d65..e249b7250345 100644
--- a/include/linux/fpga/fpga-mgr.h
+++ b/include/linux/fpga/fpga-mgr.h
@@ -101,6 +101,7 @@ struct fpga_image_info {
101 * struct fpga_manager_ops - ops for low level fpga manager drivers 101 * struct fpga_manager_ops - ops for low level fpga manager drivers
102 * @initial_header_size: Maximum number of bytes that should be passed into write_init 102 * @initial_header_size: Maximum number of bytes that should be passed into write_init
103 * @state: returns an enum value of the FPGA's state 103 * @state: returns an enum value of the FPGA's state
104 * @status: returns status of the FPGA, including reconfiguration error code
104 * @write_init: prepare the FPGA to receive confuration data 105 * @write_init: prepare the FPGA to receive confuration data
105 * @write: write count bytes of configuration data to the FPGA 106 * @write: write count bytes of configuration data to the FPGA
106 * @write_sg: write the scatter list of configuration data to the FPGA 107 * @write_sg: write the scatter list of configuration data to the FPGA
@@ -115,6 +116,7 @@ struct fpga_image_info {
115struct fpga_manager_ops { 116struct fpga_manager_ops {
116 size_t initial_header_size; 117 size_t initial_header_size;
117 enum fpga_mgr_states (*state)(struct fpga_manager *mgr); 118 enum fpga_mgr_states (*state)(struct fpga_manager *mgr);
119 u64 (*status)(struct fpga_manager *mgr);
118 int (*write_init)(struct fpga_manager *mgr, 120 int (*write_init)(struct fpga_manager *mgr,
119 struct fpga_image_info *info, 121 struct fpga_image_info *info,
120 const char *buf, size_t count); 122 const char *buf, size_t count);
@@ -126,6 +128,13 @@ struct fpga_manager_ops {
126 const struct attribute_group **groups; 128 const struct attribute_group **groups;
127}; 129};
128 130
131/* FPGA manager status: Partial/Full Reconfiguration errors */
132#define FPGA_MGR_STATUS_OPERATION_ERR BIT(0)
133#define FPGA_MGR_STATUS_CRC_ERR BIT(1)
134#define FPGA_MGR_STATUS_INCOMPATIBLE_IMAGE_ERR BIT(2)
135#define FPGA_MGR_STATUS_IP_PROTOCOL_ERR BIT(3)
136#define FPGA_MGR_STATUS_FIFO_OVERFLOW_ERR BIT(4)
137
129/** 138/**
130 * struct fpga_manager - fpga manager structure 139 * struct fpga_manager - fpga manager structure
131 * @name: name of low level fpga manager 140 * @name: name of low level fpga manager