mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-15 12:54:27 +00:00
964b3408fa
dpaa2_ni_media_change() was called in early setup stages, before we were fully setup. That lead to internal driver state being all synched and fine but hardware state was lost/never setup corrently. Introduce dpaa2_ni_media_change_locked() so we can avoid reccursive locking and call "dpaa2_ni_media_change()" instead of mii_mediachg() as the latter does not setup our state there either. In order for this all to work, call if_setdrvflagbits() just before rather than after the above. Also remove an unecessary direct call to dpaa2_ni_miibus_statchg() which mii_mediachg() will trigger anyway. This all fixes a problem [1] that one had to lose the link (either unplugging/replugging the cable or using ifconfig media none; ifconfig media auto) to re-trigger the all updates and get the full state programmed when hardware expected. MFC after: 3 days GH-Issue: https://github.com/mcusim/freebsd-src/issues/21 [1] Reviewed by: dsl, dch Differential Revision: https://reviews.freebsd.org/D42643 |
||
---|---|---|
.. | ||
dpaa2_bp.c | ||
dpaa2_bp.h | ||
dpaa2_buf.c | ||
dpaa2_buf.h | ||
dpaa2_channel.c | ||
dpaa2_channel.h | ||
dpaa2_cmd_if.m | ||
dpaa2_con.c | ||
dpaa2_con.h | ||
dpaa2_console.c | ||
dpaa2_io.c | ||
dpaa2_io.h | ||
dpaa2_mac.c | ||
dpaa2_mac.h | ||
dpaa2_mc.c | ||
dpaa2_mc.h | ||
dpaa2_mc_acpi.c | ||
dpaa2_mc_fdt.c | ||
dpaa2_mc_if.m | ||
dpaa2_mcp.c | ||
dpaa2_mcp.h | ||
dpaa2_ni.c | ||
dpaa2_ni.h | ||
dpaa2_ni_dpkg.h | ||
dpaa2_rc.c | ||
dpaa2_swp.c | ||
dpaa2_swp.h | ||
dpaa2_swp_if.m | ||
dpaa2_types.c | ||
dpaa2_types.h | ||
memac_mdio.h | ||
memac_mdio_acpi.c | ||
memac_mdio_common.c | ||
memac_mdio_fdt.c | ||
memac_mdio_if.m |