]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: phy: make phy_device members pause and asym_pause bitfield bits
authorHeiner Kallweit <hkallweit1@gmail.com>
Mon, 3 Nov 2025 22:26:49 +0000 (23:26 +0100)
committerJakub Kicinski <kuba@kernel.org>
Wed, 5 Nov 2025 02:14:35 +0000 (18:14 -0800)
We can reduce the size of struct phy_device a little by switching
the type of members pause and asym_pause from int to a single bit.
As C99 is supported now, we can use type bool for the bitfield members,
what provides us with the benefit of the usual implicit bool conversions.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Link: https://patch.msgid.link/764e9a31-b40b-4dc9-b808-118192a16d87@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/phy-c45.c
drivers/net/phy/phy_device.c
include/linux/phy.h

index 61670be0f09574ea90828d79c13bb0ce740fd018..1a7b32be4625c70c237901a7a68bcec514d6ee5d 100644 (file)
@@ -485,8 +485,8 @@ static int genphy_c45_baset1_read_lpa(struct phy_device *phydev)
                mii_t1_adv_l_mod_linkmode_t(phydev->lp_advertising, 0);
                mii_t1_adv_m_mod_linkmode_t(phydev->lp_advertising, 0);
 
-               phydev->pause = 0;
-               phydev->asym_pause = 0;
+               phydev->pause = false;
+               phydev->asym_pause = false;
 
                return 0;
        }
@@ -498,8 +498,8 @@ static int genphy_c45_baset1_read_lpa(struct phy_device *phydev)
                return val;
 
        mii_t1_adv_l_mod_linkmode_t(phydev->lp_advertising, val);
-       phydev->pause = val & MDIO_AN_T1_ADV_L_PAUSE_CAP ? 1 : 0;
-       phydev->asym_pause = val & MDIO_AN_T1_ADV_L_PAUSE_ASYM ? 1 : 0;
+       phydev->pause = val & MDIO_AN_T1_ADV_L_PAUSE_CAP;
+       phydev->asym_pause = val & MDIO_AN_T1_ADV_L_PAUSE_ASYM;
 
        val = phy_read_mmd(phydev, MDIO_MMD_AN, MDIO_AN_T1_LP_M);
        if (val < 0)
@@ -536,8 +536,8 @@ int genphy_c45_read_lpa(struct phy_device *phydev)
                                   phydev->lp_advertising);
                mii_10gbt_stat_mod_linkmode_lpa_t(phydev->lp_advertising, 0);
                mii_adv_mod_linkmode_adv_t(phydev->lp_advertising, 0);
-               phydev->pause = 0;
-               phydev->asym_pause = 0;
+               phydev->pause = false;
+               phydev->asym_pause = false;
 
                return 0;
        }
@@ -551,8 +551,8 @@ int genphy_c45_read_lpa(struct phy_device *phydev)
                return val;
 
        mii_adv_mod_linkmode_adv_t(phydev->lp_advertising, val);
-       phydev->pause = val & LPA_PAUSE_CAP ? 1 : 0;
-       phydev->asym_pause = val & LPA_PAUSE_ASYM ? 1 : 0;
+       phydev->pause = val & LPA_PAUSE_CAP;
+       phydev->asym_pause = val & LPA_PAUSE_ASYM;
 
        /* Read the link partner's 10G advertisement */
        val = phy_read_mmd(phydev, MDIO_MMD_AN, MDIO_AN_10GBT_STAT);
@@ -1171,8 +1171,8 @@ int genphy_c45_read_status(struct phy_device *phydev)
 
        phydev->speed = SPEED_UNKNOWN;
        phydev->duplex = DUPLEX_UNKNOWN;
-       phydev->pause = 0;
-       phydev->asym_pause = 0;
+       phydev->pause = false;
+       phydev->asym_pause = false;
 
        if (phydev->autoneg == AUTONEG_ENABLE) {
                ret = genphy_c45_read_lpa(phydev);
index 737747cf19069bb4b097d314956ac2860f7f4a2c..81984d4ebb7cb36e59267d9166232d2a4fa9be98 100644 (file)
@@ -825,8 +825,8 @@ struct phy_device *phy_device_create(struct mii_bus *bus, int addr, u32 phy_id,
 
        dev->speed = SPEED_UNKNOWN;
        dev->duplex = DUPLEX_UNKNOWN;
-       dev->pause = 0;
-       dev->asym_pause = 0;
+       dev->pause = false;
+       dev->asym_pause = false;
        dev->link = 0;
        dev->port = PORT_TP;
        dev->interface = PHY_INTERFACE_MODE_GMII;
@@ -2092,8 +2092,8 @@ int genphy_setup_forced(struct phy_device *phydev)
 {
        u16 ctl;
 
-       phydev->pause = 0;
-       phydev->asym_pause = 0;
+       phydev->pause = false;
+       phydev->asym_pause = false;
 
        ctl = mii_bmcr_encode_fixed(phydev->speed, phydev->duplex);
 
@@ -2500,8 +2500,8 @@ int genphy_read_status(struct phy_device *phydev)
        phydev->master_slave_state = MASTER_SLAVE_STATE_UNSUPPORTED;
        phydev->speed = SPEED_UNKNOWN;
        phydev->duplex = DUPLEX_UNKNOWN;
-       phydev->pause = 0;
-       phydev->asym_pause = 0;
+       phydev->pause = false;
+       phydev->asym_pause = false;
 
        if (phydev->is_gigabit_capable) {
                err = genphy_read_master_slave(phydev);
@@ -2554,8 +2554,8 @@ int genphy_c37_read_status(struct phy_device *phydev, bool *changed)
        /* Signal link has changed */
        *changed = true;
        phydev->duplex = DUPLEX_UNKNOWN;
-       phydev->pause = 0;
-       phydev->asym_pause = 0;
+       phydev->pause = false;
+       phydev->asym_pause = false;
 
        if (phydev->autoneg == AUTONEG_ENABLE && phydev->autoneg_complete) {
                lpa = phy_read(phydev, MII_LPA);
index e3474f03cbc1e265f1e6a1abb2fbf72043f094be..d145a200ea21123950b13463d0eb7379670a932a 100644 (file)
@@ -666,6 +666,8 @@ struct phy_device {
        /* The most recently read link state */
        unsigned link:1;
        unsigned autoneg_complete:1;
+       bool pause:1;
+       bool asym_pause:1;
 
        /* Interrupts are enabled */
        unsigned interrupts:1;
@@ -690,8 +692,6 @@ struct phy_device {
        int speed;
        int duplex;
        int port;
-       int pause;
-       int asym_pause;
        u8 master_slave_get;
        u8 master_slave_set;
        u8 master_slave_state;