forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-10 9999e48639b3cecb08ffb37358bcba3b48161b29
kernel/drivers/s390/scsi/zfcp_ext.h
....@@ -4,7 +4,7 @@
44 *
55 * External function declarations.
66 *
7
- * Copyright IBM Corp. 2002, 2018
7
+ * Copyright IBM Corp. 2002, 2020
88 */
99
1010 #ifndef ZFCP_EXT_H
....@@ -44,6 +44,9 @@
4444 extern void zfcp_dbf_rec_run_wka(char *, struct zfcp_fc_wka_port *, u64);
4545 extern void zfcp_dbf_hba_fsf_uss(char *, struct zfcp_fsf_req *);
4646 extern void zfcp_dbf_hba_fsf_res(char *, int, struct zfcp_fsf_req *);
47
+extern void zfcp_dbf_hba_fsf_fces(char *tag, const struct zfcp_fsf_req *req,
48
+ u64 wwpn, u32 fc_security_old,
49
+ u32 fc_security_new);
4750 extern void zfcp_dbf_hba_bit_err(char *, struct zfcp_fsf_req *);
4851 extern void zfcp_dbf_hba_def_err(struct zfcp_adapter *, u64, u16, void **);
4952 extern void zfcp_dbf_hba_basic(char *, struct zfcp_adapter *);
....@@ -59,14 +62,15 @@
5962 /* zfcp_erp.c */
6063 extern void zfcp_erp_set_adapter_status(struct zfcp_adapter *, u32);
6164 extern void zfcp_erp_clear_adapter_status(struct zfcp_adapter *, u32);
62
-extern void zfcp_erp_port_forced_no_port_dbf(char *id,
65
+extern void zfcp_erp_port_forced_no_port_dbf(char *dbftag,
6366 struct zfcp_adapter *adapter,
6467 u64 port_name, u32 port_id);
6568 extern void zfcp_erp_adapter_reopen(struct zfcp_adapter *, int, char *);
6669 extern void zfcp_erp_adapter_shutdown(struct zfcp_adapter *, int, char *);
6770 extern void zfcp_erp_set_port_status(struct zfcp_port *, u32);
6871 extern void zfcp_erp_clear_port_status(struct zfcp_port *, u32);
69
-extern void zfcp_erp_port_reopen(struct zfcp_port *port, int clear, char *id);
72
+extern void zfcp_erp_port_reopen(struct zfcp_port *port, int clear,
73
+ char *dbftag);
7074 extern void zfcp_erp_port_shutdown(struct zfcp_port *, int, char *);
7175 extern void zfcp_erp_port_forced_reopen(struct zfcp_port *, int, char *);
7276 extern void zfcp_erp_port_forced_reopen_all(struct zfcp_adapter *adapter,
....@@ -81,7 +85,8 @@
8185 extern void zfcp_erp_wait(struct zfcp_adapter *);
8286 extern void zfcp_erp_notify(struct zfcp_erp_action *, unsigned long);
8387 extern void zfcp_erp_timeout_handler(struct timer_list *t);
84
-extern void zfcp_erp_adapter_reset_sync(struct zfcp_adapter *adapter, char *id);
88
+extern void zfcp_erp_adapter_reset_sync(struct zfcp_adapter *adapter,
89
+ char *dbftag);
8590
8691 /* zfcp_fc.c */
8792 extern struct kmem_cache *zfcp_fc_req_cache;
....@@ -120,6 +125,7 @@
120125 extern int zfcp_fsf_exchange_port_data(struct zfcp_erp_action *);
121126 extern int zfcp_fsf_exchange_port_data_sync(struct zfcp_qdio *,
122127 struct fsf_qtcb_bottom_port *);
128
+extern u32 zfcp_fsf_convert_portspeed(u32 fsf_speed);
123129 extern void zfcp_fsf_req_dismiss_all(struct zfcp_adapter *);
124130 extern int zfcp_fsf_status_read(struct zfcp_qdio *);
125131 extern int zfcp_status_read_refill(struct zfcp_adapter *adapter);
....@@ -129,10 +135,18 @@
129135 struct zfcp_fsf_ct_els *, unsigned int);
130136 extern int zfcp_fsf_fcp_cmnd(struct scsi_cmnd *);
131137 extern void zfcp_fsf_req_free(struct zfcp_fsf_req *);
138
+extern void zfcp_fsf_fc_host_link_down(struct zfcp_adapter *adapter);
132139 extern struct zfcp_fsf_req *zfcp_fsf_fcp_task_mgmt(struct scsi_device *sdev,
133140 u8 tm_flags);
134141 extern struct zfcp_fsf_req *zfcp_fsf_abort_fcp_cmnd(struct scsi_cmnd *);
135142 extern void zfcp_fsf_reqid_check(struct zfcp_qdio *, int);
143
+enum zfcp_fsf_print_fmt {
144
+ ZFCP_FSF_PRINT_FMT_LIST,
145
+ ZFCP_FSF_PRINT_FMT_SINGLEITEM,
146
+};
147
+extern ssize_t zfcp_fsf_scnprint_fc_security(char *buf, size_t size,
148
+ u32 fc_security,
149
+ enum zfcp_fsf_print_fmt fmt);
136150
137151 /* zfcp_qdio.c */
138152 extern int zfcp_qdio_setup(struct zfcp_adapter *);
....@@ -141,11 +155,14 @@
141155 extern int zfcp_qdio_send(struct zfcp_qdio *, struct zfcp_qdio_req *);
142156 extern int zfcp_qdio_sbals_from_sg(struct zfcp_qdio *, struct zfcp_qdio_req *,
143157 struct scatterlist *);
158
+extern void zfcp_qdio_shost_update(struct zfcp_adapter *const adapter,
159
+ const struct zfcp_qdio *const qdio);
144160 extern int zfcp_qdio_open(struct zfcp_qdio *);
145161 extern void zfcp_qdio_close(struct zfcp_qdio *);
146162 extern void zfcp_qdio_siosl(struct zfcp_adapter *);
147163
148164 /* zfcp_scsi.c */
165
+extern bool zfcp_experimental_dix;
149166 extern struct scsi_transport_template *zfcp_scsi_transport_template;
150167 extern int zfcp_scsi_adapter_register(struct zfcp_adapter *);
151168 extern void zfcp_scsi_adapter_unregister(struct zfcp_adapter *);
....@@ -156,6 +173,13 @@
156173 extern void zfcp_scsi_schedule_rports_block(struct zfcp_adapter *);
157174 extern void zfcp_scsi_set_prot(struct zfcp_adapter *);
158175 extern void zfcp_scsi_dif_sense_error(struct scsi_cmnd *, int);
176
+extern void zfcp_scsi_shost_update_config_data(
177
+ struct zfcp_adapter *const adapter,
178
+ const struct fsf_qtcb_bottom_config *const bottom,
179
+ const bool bottom_incomplete);
180
+extern void zfcp_scsi_shost_update_port_data(
181
+ struct zfcp_adapter *const adapter,
182
+ const struct fsf_qtcb_bottom_port *const bottom);
159183
160184 /* zfcp_sysfs.c */
161185 extern const struct attribute_group *zfcp_unit_attr_groups[];
....@@ -164,6 +188,7 @@
164188 extern struct mutex zfcp_sysfs_port_units_mutex;
165189 extern struct device_attribute *zfcp_sysfs_sdev_attrs[];
166190 extern struct device_attribute *zfcp_sysfs_shost_attrs[];
191
+extern const struct attribute_group zfcp_sysfs_diag_attr_group;
167192 bool zfcp_sysfs_port_is_removing(const struct zfcp_port *const port);
168193
169194 /* zfcp_unit.c */