@@ -171,6 +171,7 @@ struct rtmdio_config {
171171 int (* read_mmd_phy )(u32 port , u32 addr , u32 reg , u32 * val );
172172 int (* read_phy )(u32 port , u32 page , u32 reg , u32 * val );
173173 int (* read_sds_phy )(int sds , int page , int regnum );
174+ int (* reset )(struct mii_bus * bus );
174175 int (* write_mmd_phy )(u32 port , u32 addr , u32 reg , u32 val );
175176 int (* write_phy )(u32 port , u32 page , u32 reg , u32 val );
176177 int (* write_sds_phy )(int sds , int page , int regnum , u16 val );
@@ -1382,6 +1383,13 @@ static int rtmdio_931x_reset(struct mii_bus *bus)
13821383 return 0 ;
13831384}
13841385
1386+ static int rtmdio_reset (struct mii_bus * bus )
1387+ {
1388+ struct rtmdio_bus_priv * priv = bus -> priv ;
1389+
1390+ return priv -> cfg -> reset (bus );
1391+ }
1392+
13851393/*
13861394 * TODO: This is a tiny leftover from the central SoC include. For now try to detect the
13871395 * Realtek SoC automatically. This needs to be changed to a proper DTS compatible in a
@@ -1437,22 +1445,8 @@ static int rtmdio_probe(struct platform_device *pdev)
14371445
14381446 priv -> cfg = (const struct rtmdio_config * )device_get_match_data (dev );
14391447
1440- switch (family ) {
1441- case RTMDIO_838X_FAMILY_ID :
1442- bus -> reset = rtmdio_838x_reset ;
1443- break ;
1444- case RTMDIO_839X_FAMILY_ID :
1445- bus -> reset = rtmdio_839x_reset ;
1446- break ;
1447- case RTMDIO_930X_FAMILY_ID :
1448- bus -> reset = rtmdio_930x_reset ;
1449- break ;
1450- case RTMDIO_931X_FAMILY_ID :
1451- bus -> reset = rtmdio_931x_reset ;
1452- break ;
1453- }
1454-
14551448 bus -> name = "Realtek MDIO bus" ;
1449+ bus -> reset = rtmdio_reset ;
14561450 bus -> read = rtmdio_read ;
14571451 bus -> write = rtmdio_write ;
14581452 bus -> read_c45 = rtmdio_read_c45 ;
@@ -1533,6 +1527,7 @@ static const struct rtmdio_config rtmdio_838x_cfg = {
15331527 .read_mmd_phy = rtmdio_838x_read_mmd_phy ,
15341528 .read_phy = rtmdio_838x_read_phy ,
15351529 .read_sds_phy = rtmdio_838x_read_sds_phy ,
1530+ .reset = rtmdio_838x_reset ,
15361531 .write_mmd_phy = rtmdio_838x_write_mmd_phy ,
15371532 .write_phy = rtmdio_838x_write_phy ,
15381533 .write_sds_phy = rtmdio_838x_write_sds_phy ,
@@ -1544,6 +1539,7 @@ static const struct rtmdio_config rtmdio_839x_cfg = {
15441539 .read_mmd_phy = rtmdio_839x_read_mmd_phy ,
15451540 .read_phy = rtmdio_839x_read_phy ,
15461541 .read_sds_phy = rtmdio_839x_read_sds_phy ,
1542+ .reset = rtmdio_839x_reset ,
15471543 .write_mmd_phy = rtmdio_839x_write_mmd_phy ,
15481544 .write_phy = rtmdio_839x_write_phy ,
15491545 .write_sds_phy = rtmdio_839x_write_sds_phy ,
@@ -1555,6 +1551,7 @@ static const struct rtmdio_config rtmdio_930x_cfg = {
15551551 .read_mmd_phy = rtmdio_930x_read_mmd_phy ,
15561552 .read_phy = rtmdio_930x_read_phy ,
15571553 .read_sds_phy = rtmdio_930x_read_sds_phy ,
1554+ .reset = rtmdio_930x_reset ,
15581555 .write_mmd_phy = rtmdio_930x_write_mmd_phy ,
15591556 .write_phy = rtmdio_930x_write_phy ,
15601557 .write_sds_phy = rtmdio_930x_write_sds_phy ,
@@ -1566,6 +1563,7 @@ static const struct rtmdio_config rtmdio_931x_cfg = {
15661563 .read_mmd_phy = rtmdio_931x_read_mmd_phy ,
15671564 .read_phy = rtmdio_931x_read_phy ,
15681565 .read_sds_phy = rtsds_931x_read ,
1566+ .reset = rtmdio_931x_reset ,
15691567 .write_mmd_phy = rtmdio_931x_write_mmd_phy ,
15701568 .write_phy = rtmdio_931x_write_phy ,
15711569 .write_sds_phy = rtsds_931x_write ,
0 commit comments