net: enetc: stop auto-configuring the port pMAC
authorVladimir Oltean <vladimir.oltean@nxp.com>
Thu, 19 Jan 2023 16:04:31 +0000 (18:04 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 23 Jan 2023 13:13:09 +0000 (13:13 +0000)
The pMAC (ENETC_PFPMR_PMACE) is probably unconditionally enabled in the
enetc driver to allow RX of preemptible packets and not see them as
error frames. I don't know why TX preemption (ENETC_MMCSR_ME) is enabled
though. With no way to say which traffic classes are preemptible (all
are express by default), no preemptible frames would be transmitted
anyway.

Lastly, it may have been believed that the register write lock-step mode
(now deleted) needed the pMAC to be enabled at all times. I don't know
if that's true. However, I've checked that driver writes to PM1
registers do propagate through to the ENETC IP even when the pMAC is
disabled.

With such incomplete support for frame preemption, it's best to just
remove whatever exists right now and come with something more coherent
later.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/enetc/enetc_pf.c

index 70d6b13b329966c0fd1cda97e7917a9146d01b31..7facc7d5261e1c1f9080298d25d71a74760d2267 100644 (file)
@@ -583,24 +583,11 @@ static void enetc_mac_enable(struct enetc_si *si, bool en)
        enetc_port_mac_wr(si, ENETC_PM0_CMD_CFG, val);
 }
 
-static void enetc_configure_port_pmac(struct enetc_hw *hw)
-{
-       u32 temp;
-
-       temp = enetc_port_rd(hw, ENETC_PFPMR);
-       enetc_port_wr(hw, ENETC_PFPMR, temp | ENETC_PFPMR_PMACE);
-
-       temp = enetc_port_rd(hw, ENETC_MMCSR);
-       enetc_port_wr(hw, ENETC_MMCSR, temp | ENETC_MMCSR_ME);
-}
-
 static void enetc_configure_port(struct enetc_pf *pf)
 {
        u8 hash_key[ENETC_RSSHASH_KEY_SIZE];
        struct enetc_hw *hw = &pf->si->hw;
 
-       enetc_configure_port_pmac(hw);
-
        enetc_configure_port_mac(pf->si);
 
        enetc_port_si_configure(pf->si);