]> git.proxmox.com Git - mirror_ubuntu-disco-kernel.git/commitdiff
cxgb4: Revert "cxgb4: Remove SGE_HOST_PAGE_SIZE dependency on page size"
authorVishal Kulkarni <vishal@chelsio.com>
Thu, 23 May 2019 02:37:21 +0000 (08:07 +0530)
committerStefan Bader <stefan.bader@canonical.com>
Tue, 13 Aug 2019 12:11:36 +0000 (14:11 +0200)
BugLink: https://bugs.launchpad.net/bugs/1837518
[ Upstream commit ab0610efabb4c4f419a531455708caf1dd29357e ]

This reverts commit 2391b0030e241386d710df10e53e2cfc3c5d4fc1 which has
introduced regression. Now SGE's BAR2 Doorbell/GTS Page Size is
interpreted correctly in the firmware itself by using actual host
page size. Hence previous commit needs to be reverted.

Signed-off-by: Vishal Kulkarni <vishal@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c

index 2b03f6187a24ec1e88669c2e4e8fbe4bf4077cfc..29d3399c499509fa3bdd20a41cfc2fa27c7926c4 100644 (file)
@@ -7139,10 +7139,21 @@ int t4_fixup_host_params(struct adapter *adap, unsigned int page_size,
                         unsigned int cache_line_size)
 {
        unsigned int page_shift = fls(page_size) - 1;
+       unsigned int sge_hps = page_shift - 10;
        unsigned int stat_len = cache_line_size > 64 ? 128 : 64;
        unsigned int fl_align = cache_line_size < 32 ? 32 : cache_line_size;
        unsigned int fl_align_log = fls(fl_align) - 1;
 
+       t4_write_reg(adap, SGE_HOST_PAGE_SIZE_A,
+                    HOSTPAGESIZEPF0_V(sge_hps) |
+                    HOSTPAGESIZEPF1_V(sge_hps) |
+                    HOSTPAGESIZEPF2_V(sge_hps) |
+                    HOSTPAGESIZEPF3_V(sge_hps) |
+                    HOSTPAGESIZEPF4_V(sge_hps) |
+                    HOSTPAGESIZEPF5_V(sge_hps) |
+                    HOSTPAGESIZEPF6_V(sge_hps) |
+                    HOSTPAGESIZEPF7_V(sge_hps));
+
        if (is_t4(adap->params.chip)) {
                t4_set_reg_field(adap, SGE_CONTROL_A,
                                 INGPADBOUNDARY_V(INGPADBOUNDARY_M) |