net: hns3: Modify the order of initializing command queue register
authorHuazhong Tan <tanhuazhong@huawei.com>
Mon, 16 Jul 2018 15:36:19 +0000 (16:36 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 16 Jul 2018 18:16:44 +0000 (11:16 -0700)
According to hardware's description, the head pointer register should
be written before the tail pointer register while doing command queue
initialization.

Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c

index eca4b23..cf40afc 100644 (file)
@@ -119,8 +119,8 @@ static void hclge_cmd_config_regs(struct hclge_cmq_ring *ring)
                hclge_write_dev(hw, HCLGE_NIC_CSQ_DEPTH_REG,
                                (ring->desc_num >> HCLGE_NIC_CMQ_DESC_NUM_S) |
                                HCLGE_NIC_CMQ_ENABLE);
-               hclge_write_dev(hw, HCLGE_NIC_CSQ_TAIL_REG, 0);
                hclge_write_dev(hw, HCLGE_NIC_CSQ_HEAD_REG, 0);
+               hclge_write_dev(hw, HCLGE_NIC_CSQ_TAIL_REG, 0);
        } else {
                hclge_write_dev(hw, HCLGE_NIC_CRQ_BASEADDR_L_REG,
                                lower_32_bits(dma));
@@ -129,8 +129,8 @@ static void hclge_cmd_config_regs(struct hclge_cmq_ring *ring)
                hclge_write_dev(hw, HCLGE_NIC_CRQ_DEPTH_REG,
                                (ring->desc_num >> HCLGE_NIC_CMQ_DESC_NUM_S) |
                                HCLGE_NIC_CMQ_ENABLE);
-               hclge_write_dev(hw, HCLGE_NIC_CRQ_TAIL_REG, 0);
                hclge_write_dev(hw, HCLGE_NIC_CRQ_HEAD_REG, 0);
+               hclge_write_dev(hw, HCLGE_NIC_CRQ_TAIL_REG, 0);
        }
 }