diff options
Diffstat (limited to 'include/linux/qed/qed_if.h')
| -rw-r--r-- | include/linux/qed/qed_if.h | 72 | 
1 files changed, 60 insertions, 12 deletions
| diff --git a/include/linux/qed/qed_if.h b/include/linux/qed/qed_if.h index c70ac13a97e6..ef39c7f40ae6 100644 --- a/include/linux/qed/qed_if.h +++ b/include/linux/qed/qed_if.h @@ -156,6 +156,11 @@ struct qed_dcbx_get {  	struct qed_dcbx_admin_params local;  }; +enum qed_nvm_images { +	QED_NVM_IMAGE_ISCSI_CFG, +	QED_NVM_IMAGE_FCOE_CFG, +}; +  enum qed_led_mode {  	QED_LED_MODE_OFF,  	QED_LED_MODE_ON, @@ -180,6 +185,10 @@ struct qed_eth_pf_params {  	 */  	u16 num_cons; +	/* per-VF number of CIDs */ +	u8 num_vf_cons; +#define ETH_PF_PARAMS_VF_CONS_DEFAULT	(32) +  	/* To enable arfs, previous to HW-init a positive number needs to be  	 * set [as filters require allocated searcher ILT memory].  	 * This will set the maximal number of configured steering-filters. @@ -328,6 +337,14 @@ struct qed_dev_info {  	/* MFW version */  	u32		mfw_rev; +#define QED_MFW_VERSION_0_MASK		0x000000FF +#define QED_MFW_VERSION_0_OFFSET	0 +#define QED_MFW_VERSION_1_MASK		0x0000FF00 +#define QED_MFW_VERSION_1_OFFSET	8 +#define QED_MFW_VERSION_2_MASK		0x00FF0000 +#define QED_MFW_VERSION_2_OFFSET	16 +#define QED_MFW_VERSION_3_MASK		0xFF000000 +#define QED_MFW_VERSION_3_OFFSET	24  	u32		flash_size;  	u8		mf_mode; @@ -337,12 +354,23 @@ struct qed_dev_info {  	bool wol_support; +	/* MBI version */ +	u32 mbi_version; +#define QED_MBI_VERSION_0_MASK		0x000000FF +#define QED_MBI_VERSION_0_OFFSET	0 +#define QED_MBI_VERSION_1_MASK		0x0000FF00 +#define QED_MBI_VERSION_1_OFFSET	8 +#define QED_MBI_VERSION_2_MASK		0x00FF0000 +#define QED_MBI_VERSION_2_OFFSET	16 +  	enum qed_dev_type dev_type;  	/* Output parameters for qede */  	bool		vxlan_enable;  	bool		gre_enable;  	bool		geneve_enable; + +	u8		abs_pf_id;  };  enum qed_sb_type { @@ -503,9 +531,7 @@ struct qed_common_ops {  	int		(*set_power_state)(struct qed_dev *cdev,  					   pci_power_t state); -	void		(*set_id)(struct qed_dev *cdev, -				  char name[], -				  char ver_str[]); +	void (*set_name) (struct qed_dev *cdev, char name[]);  	/* Client drivers need to make this call before slowpath_start.  	 * PF params required for the call before slowpath_start is @@ -608,12 +634,26 @@ struct qed_common_ops {  				       enum qed_chain_cnt_type cnt_type,  				       u32 num_elems,  				       size_t elem_size, -				       struct qed_chain *p_chain); +				       struct qed_chain *p_chain, +				       struct qed_chain_ext_pbl *ext_pbl);  	void		(*chain_free)(struct qed_dev *cdev,  				      struct qed_chain *p_chain);  /** + * @brief nvm_get_image - reads an entire image from nvram + * + * @param cdev + * @param type - type of the request nvram image + * @param buf - preallocated buffer to fill with the image + * @param len - length of the allocated buffer + * + * @return 0 on success, error otherwise + */ +	int (*nvm_get_image)(struct qed_dev *cdev, +			     enum qed_nvm_images type, u8 *buf, u16 len); + +/**   * @brief get_coalesce - Get coalesce parameters in usec   *   * @param cdev @@ -700,11 +740,13 @@ struct qed_common_ops {  	(((value) >> (name ## _SHIFT)) & name ## _MASK)  /* Debug print definitions */ -#define DP_ERR(cdev, fmt, ...)						     \ -		pr_err("[%s:%d(%s)]" fmt,				     \ -		       __func__, __LINE__,				     \ -		       DP_NAME(cdev) ? DP_NAME(cdev) : "",		     \ -		       ## __VA_ARGS__)					     \ +#define DP_ERR(cdev, fmt, ...)					\ +	do {							\ +		pr_err("[%s:%d(%s)]" fmt,			\ +		       __func__, __LINE__,			\ +		       DP_NAME(cdev) ? DP_NAME(cdev) : "",	\ +		       ## __VA_ARGS__);				\ +	} while (0)  #define DP_NOTICE(cdev, fmt, ...)				      \  	do {							      \ @@ -869,9 +911,15 @@ struct qed_eth_stats {  #define TX_PI(tc)       (RX_PI + 1 + tc)  struct qed_sb_cnt_info { -	int	sb_cnt; -	int	sb_iov_cnt; -	int	sb_free_blk; +	/* Original, current, and free SBs for PF */ +	int orig; +	int cnt; +	int free_cnt; + +	/* Original, current and free SBS for child VFs */ +	int iov_orig; +	int iov_cnt; +	int free_cnt_iov;  };  static inline u16 qed_sb_update_sb_idx(struct qed_sb_info *sb_info) |