Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) /* SPDX-License-Identifier: GPL-2.0-only */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3)  * Copyright 2017 Broadcom. All Rights Reserved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4)  * The term "Broadcom" refers to Broadcom Limited and/or its subsidiaries.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6)  * Contact Information:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7)  * linux-drivers@broadcom.com
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) #ifndef _BEISCSI_MGMT_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) #define _BEISCSI_MGMT_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) #include <scsi/scsi_bsg_iscsi.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) #include "be_iscsi.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) #include "be_main.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) #define IP_ACTION_ADD	0x01
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) #define IP_ACTION_DEL	0x02
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) #define IP_V6_LEN	16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) #define IP_V4_LEN	4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) /* UE Status and Mask register */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) #define PCICFG_UE_STATUS_LOW            0xA0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) #define PCICFG_UE_STATUS_HIGH           0xA4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) #define PCICFG_UE_STATUS_MASK_LOW       0xA8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) #define PCICFG_UE_STATUS_MASK_HI        0xAC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) int mgmt_open_connection(struct beiscsi_hba *phba,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 			 struct sockaddr *dst_addr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 			 struct beiscsi_endpoint *beiscsi_ep,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 			 struct be_dma_mem *nonemb_cmd);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) unsigned int mgmt_vendor_specific_fw_cmd(struct be_ctrl_info *ctrl,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 					 struct beiscsi_hba *phba,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) 					 struct bsg_job *job,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 					 struct be_dma_mem *nonemb_cmd);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) #define BE_INVLDT_CMD_TBL_SZ	128
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) struct invldt_cmd_tbl {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 	unsigned short icd;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 	unsigned short cid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) } __packed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) struct invldt_cmds_params_in {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) 	struct be_cmd_req_hdr hdr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 	unsigned int ref_handle;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 	unsigned int icd_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 	struct invldt_cmd_tbl table[BE_INVLDT_CMD_TBL_SZ];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 	unsigned short cleanup_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 	unsigned short unused;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) } __packed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) struct invldt_cmds_params_out {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 	struct be_cmd_resp_hdr hdr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 	unsigned int ref_handle;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 	unsigned int icd_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 	unsigned int icd_status[BE_INVLDT_CMD_TBL_SZ];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) } __packed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) union be_invldt_cmds_params {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 	struct invldt_cmds_params_in request;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 	struct invldt_cmds_params_out response;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) } __packed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) struct mgmt_hba_attributes {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 	u8 flashrom_version_string[BEISCSI_VER_STRLEN];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 	u8 manufacturer_name[BEISCSI_VER_STRLEN];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 	u32 supported_modes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 	u8 seeprom_version_lo;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 	u8 seeprom_version_hi;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 	u8 rsvd0[2];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 	u32 fw_cmd_data_struct_version;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 	u32 ep_fw_data_struct_version;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 	u8 ncsi_version_string[12];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 	u32 default_extended_timeout;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 	u8 controller_model_number[BEISCSI_VER_STRLEN];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 	u8 controller_description[64];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 	u8 controller_serial_number[BEISCSI_VER_STRLEN];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 	u8 ip_version_string[BEISCSI_VER_STRLEN];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 	u8 firmware_version_string[BEISCSI_VER_STRLEN];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 	u8 bios_version_string[BEISCSI_VER_STRLEN];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 	u8 redboot_version_string[BEISCSI_VER_STRLEN];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 	u8 driver_version_string[BEISCSI_VER_STRLEN];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 	u8 fw_on_flash_version_string[BEISCSI_VER_STRLEN];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 	u32 functionalities_supported;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 	u16 max_cdblength;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 	u8 asic_revision;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 	u8 generational_guid[16];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 	u8 hba_port_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 	u16 default_link_down_timeout;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 	u8 iscsi_ver_min_max;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 	u8 multifunction_device;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 	u8 cache_valid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 	u8 hba_status;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 	u8 max_domains_supported;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 	u8 phy_port;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 	u32 firmware_post_status;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 	u32 hba_mtu[8];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 	u8 iscsi_features;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 	u8 asic_generation;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 	u8 future_u8[2];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 	u32 future_u32[3];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) } __packed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) struct mgmt_controller_attributes {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 	struct mgmt_hba_attributes hba_attribs;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 	u16 pci_vendor_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 	u16 pci_device_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 	u16 pci_sub_vendor_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 	u16 pci_sub_system_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 	u8 pci_bus_number;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 	u8 pci_device_number;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 	u8 pci_function_number;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 	u8 interface_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 	u64 unique_identifier;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 	u8 netfilters;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 	u8 rsvd0[3];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 	u32 future_u32[4];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) } __packed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) struct be_mgmt_controller_attributes {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 	struct be_cmd_req_hdr hdr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 	struct mgmt_controller_attributes params;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) } __packed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) struct be_mgmt_controller_attributes_resp {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 	struct be_cmd_resp_hdr hdr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) 	struct mgmt_controller_attributes params;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) } __packed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) struct be_bsg_vendor_cmd {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) 	struct be_cmd_req_hdr hdr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) 	unsigned short region;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 	unsigned short offset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) 	unsigned short sector;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) } __packed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) /* configuration management */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) #define GET_MGMT_CONTROLLER_WS(phba)    (phba->pmgmt_ws)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) #define ISCSI_GET_PDU_TEMPLATE_ADDRESS(pc, pa) {\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) 	pa->lo = phba->init_mem[ISCSI_MEM_GLOBAL_HEADER].mem_array[0].\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) 					bus_address.u.a32.address_lo;  \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) 	pa->hi = phba->init_mem[ISCSI_MEM_GLOBAL_HEADER].mem_array[0].\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 					bus_address.u.a32.address_hi;  \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) #define BEISCSI_WRITE_FLASH 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) #define BEISCSI_READ_FLASH 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) struct beiscsi_endpoint {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) 	struct beiscsi_hba *phba;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) 	struct beiscsi_conn *conn;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) 	struct iscsi_endpoint *openiscsi_ep;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) 	unsigned short ip_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) 	char dst6_addr[ISCSI_ADDRESS_BUF_LEN];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) 	unsigned long dst_addr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) 	unsigned short ep_cid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) 	unsigned int fw_handle;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) 	u16 dst_tcpport;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) 	u16 cid_vld;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) int beiscsi_mgmt_invalidate_icds(struct beiscsi_hba *phba,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) 				 struct invldt_cmd_tbl *inv_tbl,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) 				 unsigned int nents);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) int beiscsi_get_initiator_name(struct beiscsi_hba *phba, char *name, bool cfg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) int beiscsi_if_en_dhcp(struct beiscsi_hba *phba, u32 ip_type);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) int beiscsi_if_en_static(struct beiscsi_hba *phba, u32 ip_type,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) 			 u8 *ip, u8 *subnet);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) int beiscsi_if_set_gw(struct beiscsi_hba *phba, u32 ip_type, u8 *gw);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) int beiscsi_if_get_gw(struct beiscsi_hba *phba, u32 ip_type,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) 		      struct be_cmd_get_def_gateway_resp *resp);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) int mgmt_get_nic_conf(struct beiscsi_hba *phba,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) 		      struct be_cmd_get_nic_conf_resp *mac);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) int beiscsi_if_get_info(struct beiscsi_hba *phba, int ip_type,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) 			struct be_cmd_get_if_info_resp **if_info);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) unsigned int beiscsi_if_get_handle(struct beiscsi_hba *phba);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) int beiscsi_if_set_vlan(struct beiscsi_hba *phba, uint16_t vlan_tag);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) unsigned int beiscsi_boot_logout_sess(struct beiscsi_hba *phba);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) unsigned int beiscsi_boot_reopen_sess(struct beiscsi_hba *phba);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) unsigned int beiscsi_boot_get_sinfo(struct beiscsi_hba *phba);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) unsigned int __beiscsi_boot_get_shandle(struct beiscsi_hba *phba, int async);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) int beiscsi_boot_get_shandle(struct beiscsi_hba *phba, unsigned int *s_handle);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) ssize_t beiscsi_drvr_ver_disp(struct device *dev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) 			       struct device_attribute *attr, char *buf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) ssize_t beiscsi_fw_ver_disp(struct device *dev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) 			     struct device_attribute *attr, char *buf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) ssize_t beiscsi_active_session_disp(struct device *dev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) 				     struct device_attribute *attr, char *buf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) ssize_t beiscsi_adap_family_disp(struct device *dev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) 				  struct device_attribute *attr, char *buf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) ssize_t beiscsi_free_session_disp(struct device *dev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) 				   struct device_attribute *attr, char *buf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) ssize_t beiscsi_phys_port_disp(struct device *dev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) 				struct device_attribute *attr, char *buf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) void beiscsi_offload_cxn_v0(struct beiscsi_offload_params *params,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) 			     struct wrb_handle *pwrb_handle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) 			     struct be_mem_descriptor *mem_descr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) 			     struct hwi_wrb_context *pwrb_context);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) void beiscsi_offload_cxn_v2(struct beiscsi_offload_params *params,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) 			     struct wrb_handle *pwrb_handle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) 			     struct hwi_wrb_context *pwrb_context);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) unsigned int beiscsi_invalidate_cxn(struct beiscsi_hba *phba,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) 				    struct beiscsi_endpoint *beiscsi_ep);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) unsigned int beiscsi_upload_cxn(struct beiscsi_hba *phba,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) 				struct beiscsi_endpoint *beiscsi_ep);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) int be_cmd_modify_eq_delay(struct beiscsi_hba *phba,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) 			 struct be_set_eqd *, int num);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) int beiscsi_logout_fw_sess(struct beiscsi_hba *phba,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) 			    uint32_t fw_sess_handle);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) #endif