net: hns3: add api capability bits for firmware
To improve the compatibility of firmware for driver, help firmware to deal with different api commands, add api capability bits when initialize the command queue. Signed-off-by: Jian Shen <shenjian15@huawei.com> Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
74c05b9f60
commit
1cef42c847
|
@ -363,6 +363,15 @@ static void hclge_parse_capability(struct hclge_dev *hdev,
|
|||
set_bit(HNAE3_DEV_SUPPORT_FD_FORWARD_TC_B, ae_dev->caps);
|
||||
}
|
||||
|
||||
static __le32 hclge_build_api_caps(void)
|
||||
{
|
||||
u32 api_caps = 0;
|
||||
|
||||
hnae3_set_bit(api_caps, HCLGE_API_CAP_FLEX_RSS_TBL_B, 1);
|
||||
|
||||
return cpu_to_le32(api_caps);
|
||||
}
|
||||
|
||||
static enum hclge_cmd_status
|
||||
hclge_cmd_query_version_and_capability(struct hclge_dev *hdev)
|
||||
{
|
||||
|
@ -373,6 +382,7 @@ hclge_cmd_query_version_and_capability(struct hclge_dev *hdev)
|
|||
|
||||
hclge_cmd_setup_basic_desc(&desc, HCLGE_OPC_QUERY_FW_VER, 1);
|
||||
resp = (struct hclge_query_version_cmd *)desc.data;
|
||||
resp->api_caps = hclge_build_api_caps();
|
||||
|
||||
ret = hclge_cmd_send(&hdev->hw, &desc, 1);
|
||||
if (ret)
|
||||
|
|
|
@ -386,11 +386,15 @@ enum HCLGE_CAP_BITS {
|
|||
HCLGE_CAP_UDP_TUNNEL_CSUM_B,
|
||||
};
|
||||
|
||||
enum HCLGE_API_CAP_BITS {
|
||||
HCLGE_API_CAP_FLEX_RSS_TBL_B,
|
||||
};
|
||||
|
||||
#define HCLGE_QUERY_CAP_LENGTH 3
|
||||
struct hclge_query_version_cmd {
|
||||
__le32 firmware;
|
||||
__le32 hardware;
|
||||
__le32 rsv;
|
||||
__le32 api_caps;
|
||||
__le32 caps[HCLGE_QUERY_CAP_LENGTH]; /* capabilities of device */
|
||||
};
|
||||
|
||||
|
|
|
@ -342,6 +342,15 @@ static void hclgevf_parse_capability(struct hclgevf_dev *hdev,
|
|||
set_bit(HNAE3_DEV_SUPPORT_UDP_TUNNEL_CSUM_B, ae_dev->caps);
|
||||
}
|
||||
|
||||
static __le32 hclgevf_build_api_caps(void)
|
||||
{
|
||||
u32 api_caps = 0;
|
||||
|
||||
hnae3_set_bit(api_caps, HCLGEVF_API_CAP_FLEX_RSS_TBL_B, 1);
|
||||
|
||||
return cpu_to_le32(api_caps);
|
||||
}
|
||||
|
||||
static int hclgevf_cmd_query_version_and_capability(struct hclgevf_dev *hdev)
|
||||
{
|
||||
struct hnae3_ae_dev *ae_dev = pci_get_drvdata(hdev->pdev);
|
||||
|
@ -352,6 +361,7 @@ static int hclgevf_cmd_query_version_and_capability(struct hclgevf_dev *hdev)
|
|||
resp = (struct hclgevf_query_version_cmd *)desc.data;
|
||||
|
||||
hclgevf_cmd_setup_basic_desc(&desc, HCLGEVF_OPC_QUERY_FW_VER, 1);
|
||||
resp->api_caps = hclgevf_build_api_caps();
|
||||
status = hclgevf_cmd_send(&hdev->hw, &desc, 1);
|
||||
if (status)
|
||||
return status;
|
||||
|
|
|
@ -161,11 +161,15 @@ enum HCLGEVF_CAP_BITS {
|
|||
HCLGEVF_CAP_UDP_TUNNEL_CSUM_B,
|
||||
};
|
||||
|
||||
enum HCLGEVF_API_CAP_BITS {
|
||||
HCLGEVF_API_CAP_FLEX_RSS_TBL_B,
|
||||
};
|
||||
|
||||
#define HCLGEVF_QUERY_CAP_LENGTH 3
|
||||
struct hclgevf_query_version_cmd {
|
||||
__le32 firmware;
|
||||
__le32 hardware;
|
||||
__le32 rsv;
|
||||
__le32 api_caps;
|
||||
__le32 caps[HCLGEVF_QUERY_CAP_LENGTH]; /* capabilities of device */
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue