mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 12:52:29 -04:00
net: dsa: microchip: move ksz_get_gbit() and ksz_get_xmii() to ksz9477.c
ksz_get_gbit() and ksz_get_xmii() are defined in the ksz_common while they are only used by the ksz9477 driver. Move their definition into ksz9477.c Signed-off-by: Bastien Curutchet (Schneider Electric) <bastien.curutchet@bootlin.com> Link: https://patch.msgid.link/20260702-clean-ksz-4th-v1-5-93441e695fa4@bootlin.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
committed by
Paolo Abeni
parent
a7e806f11f
commit
7a83196e90
@@ -1181,6 +1181,58 @@ void ksz9477_port_mirror_del(struct dsa_switch *ds, int port,
|
||||
PORT_MIRROR_SNIFFER, false);
|
||||
}
|
||||
|
||||
static bool ksz9477_get_gbit(struct ksz_device *dev, int port)
|
||||
{
|
||||
const u8 *bitval = dev->info->xmii_ctrl1;
|
||||
const u16 *regs = dev->info->regs;
|
||||
bool gbit = false;
|
||||
u8 data8;
|
||||
bool val;
|
||||
|
||||
ksz_pread8(dev, port, regs[P_XMII_CTRL_1], &data8);
|
||||
|
||||
val = FIELD_GET(P_GMII_1GBIT_M, data8);
|
||||
|
||||
if (val == bitval[P_GMII_1GBIT])
|
||||
gbit = true;
|
||||
|
||||
return gbit;
|
||||
}
|
||||
|
||||
static phy_interface_t ksz9477_get_xmii(struct ksz_device *dev, int port,
|
||||
bool gbit)
|
||||
{
|
||||
const u8 *bitval = dev->info->xmii_ctrl1;
|
||||
const u16 *regs = dev->info->regs;
|
||||
phy_interface_t interface;
|
||||
u8 data8;
|
||||
u8 val;
|
||||
|
||||
ksz_pread8(dev, port, regs[P_XMII_CTRL_1], &data8);
|
||||
|
||||
val = FIELD_GET(P_MII_SEL_M, data8);
|
||||
|
||||
if (val == bitval[P_MII_SEL]) {
|
||||
if (gbit)
|
||||
interface = PHY_INTERFACE_MODE_GMII;
|
||||
else
|
||||
interface = PHY_INTERFACE_MODE_MII;
|
||||
} else if (val == bitval[P_RMII_SEL]) {
|
||||
interface = PHY_INTERFACE_MODE_RMII;
|
||||
} else {
|
||||
interface = PHY_INTERFACE_MODE_RGMII;
|
||||
if (data8 & P_RGMII_ID_EG_ENABLE)
|
||||
interface = PHY_INTERFACE_MODE_RGMII_TXID;
|
||||
if (data8 & P_RGMII_ID_IG_ENABLE) {
|
||||
interface = PHY_INTERFACE_MODE_RGMII_RXID;
|
||||
if (data8 & P_RGMII_ID_EG_ENABLE)
|
||||
interface = PHY_INTERFACE_MODE_RGMII_ID;
|
||||
}
|
||||
}
|
||||
|
||||
return interface;
|
||||
}
|
||||
|
||||
static phy_interface_t ksz9477_get_interface(struct ksz_device *dev, int port)
|
||||
{
|
||||
phy_interface_t interface;
|
||||
@@ -1189,9 +1241,9 @@ static phy_interface_t ksz9477_get_interface(struct ksz_device *dev, int port)
|
||||
if (dev->info->internal_phy[port])
|
||||
return PHY_INTERFACE_MODE_NA;
|
||||
|
||||
gbit = ksz_get_gbit(dev, port);
|
||||
gbit = ksz9477_get_gbit(dev, port);
|
||||
|
||||
interface = ksz_get_xmii(dev, port, gbit);
|
||||
interface = ksz9477_get_xmii(dev, port, gbit);
|
||||
|
||||
return interface;
|
||||
}
|
||||
|
||||
@@ -2966,39 +2966,6 @@ void ksz_set_xmii(struct ksz_device *dev, int port, phy_interface_t interface)
|
||||
ksz_pwrite8(dev, port, regs[P_XMII_CTRL_1], data8);
|
||||
}
|
||||
|
||||
phy_interface_t ksz_get_xmii(struct ksz_device *dev, int port, bool gbit)
|
||||
{
|
||||
const u8 *bitval = dev->info->xmii_ctrl1;
|
||||
const u16 *regs = dev->info->regs;
|
||||
phy_interface_t interface;
|
||||
u8 data8;
|
||||
u8 val;
|
||||
|
||||
ksz_pread8(dev, port, regs[P_XMII_CTRL_1], &data8);
|
||||
|
||||
val = FIELD_GET(P_MII_SEL_M, data8);
|
||||
|
||||
if (val == bitval[P_MII_SEL]) {
|
||||
if (gbit)
|
||||
interface = PHY_INTERFACE_MODE_GMII;
|
||||
else
|
||||
interface = PHY_INTERFACE_MODE_MII;
|
||||
} else if (val == bitval[P_RMII_SEL]) {
|
||||
interface = PHY_INTERFACE_MODE_RMII;
|
||||
} else {
|
||||
interface = PHY_INTERFACE_MODE_RGMII;
|
||||
if (data8 & P_RGMII_ID_EG_ENABLE)
|
||||
interface = PHY_INTERFACE_MODE_RGMII_TXID;
|
||||
if (data8 & P_RGMII_ID_IG_ENABLE) {
|
||||
interface = PHY_INTERFACE_MODE_RGMII_RXID;
|
||||
if (data8 & P_RGMII_ID_EG_ENABLE)
|
||||
interface = PHY_INTERFACE_MODE_RGMII_ID;
|
||||
}
|
||||
}
|
||||
|
||||
return interface;
|
||||
}
|
||||
|
||||
bool ksz_phylink_need_config(struct phylink_config *config,
|
||||
unsigned int mode)
|
||||
{
|
||||
@@ -3034,24 +3001,6 @@ void ksz_phylink_mac_config(struct phylink_config *config,
|
||||
ksz_set_xmii(dev, port, state->interface);
|
||||
}
|
||||
|
||||
bool ksz_get_gbit(struct ksz_device *dev, int port)
|
||||
{
|
||||
const u8 *bitval = dev->info->xmii_ctrl1;
|
||||
const u16 *regs = dev->info->regs;
|
||||
bool gbit = false;
|
||||
u8 data8;
|
||||
bool val;
|
||||
|
||||
ksz_pread8(dev, port, regs[P_XMII_CTRL_1], &data8);
|
||||
|
||||
val = FIELD_GET(P_GMII_1GBIT_M, data8);
|
||||
|
||||
if (val == bitval[P_GMII_1GBIT])
|
||||
gbit = true;
|
||||
|
||||
return gbit;
|
||||
}
|
||||
|
||||
static int ksz_switch_detect(struct ksz_device *dev)
|
||||
{
|
||||
u8 id1, id2, id4;
|
||||
|
||||
@@ -395,8 +395,6 @@ void ksz_teardown(struct dsa_switch *ds);
|
||||
void ksz_init_mib_timer(struct ksz_device *dev);
|
||||
void ksz_r_mib_stats64(struct ksz_device *dev, int port);
|
||||
void ksz_port_stp_state_set(struct dsa_switch *ds, int port, u8 state);
|
||||
bool ksz_get_gbit(struct ksz_device *dev, int port);
|
||||
phy_interface_t ksz_get_xmii(struct ksz_device *dev, int port, bool gbit);
|
||||
extern const struct ksz_chip_data ksz_switch_chips[];
|
||||
int ksz_switch_macaddr_get(struct dsa_switch *ds, int port,
|
||||
struct netlink_ext_ack *extack);
|
||||
|
||||
Reference in New Issue
Block a user