octeontx2-af: Fix mapping for NIX block from CGX connection
[ Upstream commit 2e7bc57b976bb016c6569a54d95c1b8d88f9450a ] Firmware configures NIX block mapping for all MAC blocks. The current implementation reads the configuration and creates the mapping between RVU PF and NIX blocks. But this configuration is only valid for silicons that support multiple blocks. For all other silicons, all MAC blocks map to NIX0. This patch corrects the mapping by adding a check for the same. Fixes: c5a73b632b90 ("octeontx2-af: Map NIX block from CGX connection") Signed-off-by: Hariprasad Kelam <hkelam@marvell.com> Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Reviewed-by: Simon Horman <simon.horman@corigine.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
5ded9e8aa5
commit
f970b05c9b
@ -20,6 +20,7 @@
|
|||||||
#define PCI_DEVID_OCTEONTX2_RVU_AF 0xA065
|
#define PCI_DEVID_OCTEONTX2_RVU_AF 0xA065
|
||||||
|
|
||||||
/* Subsystem Device ID */
|
/* Subsystem Device ID */
|
||||||
|
#define PCI_SUBSYS_DEVID_98XX 0xB100
|
||||||
#define PCI_SUBSYS_DEVID_96XX 0xB200
|
#define PCI_SUBSYS_DEVID_96XX 0xB200
|
||||||
|
|
||||||
/* PCI BAR nos */
|
/* PCI BAR nos */
|
||||||
@ -403,6 +404,16 @@ static inline bool is_rvu_96xx_B0(struct rvu *rvu)
|
|||||||
(pdev->subsystem_device == PCI_SUBSYS_DEVID_96XX);
|
(pdev->subsystem_device == PCI_SUBSYS_DEVID_96XX);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool is_rvu_supports_nix1(struct rvu *rvu)
|
||||||
|
{
|
||||||
|
struct pci_dev *pdev = rvu->pdev;
|
||||||
|
|
||||||
|
if (pdev->subsystem_device == PCI_SUBSYS_DEVID_98XX)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/* Function Prototypes
|
/* Function Prototypes
|
||||||
* RVU
|
* RVU
|
||||||
*/
|
*/
|
||||||
|
@ -84,7 +84,7 @@ static void rvu_map_cgx_nix_block(struct rvu *rvu, int pf,
|
|||||||
p2x = cgx_lmac_get_p2x(cgx_id, lmac_id);
|
p2x = cgx_lmac_get_p2x(cgx_id, lmac_id);
|
||||||
/* Firmware sets P2X_SELECT as either NIX0 or NIX1 */
|
/* Firmware sets P2X_SELECT as either NIX0 or NIX1 */
|
||||||
pfvf->nix_blkaddr = BLKADDR_NIX0;
|
pfvf->nix_blkaddr = BLKADDR_NIX0;
|
||||||
if (p2x == CMR_P2X_SEL_NIX1)
|
if (is_rvu_supports_nix1(rvu) && p2x == CMR_P2X_SEL_NIX1)
|
||||||
pfvf->nix_blkaddr = BLKADDR_NIX1;
|
pfvf->nix_blkaddr = BLKADDR_NIX1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user