Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/tn40xx/AQR105_phy_FreeBSD.c
- This file was added.
#include "tn40.h" | |||||
void AQR105_register_settings(struct bdx_priv *priv); | |||||
int AQR105_setMedia (struct bdx_priv *priv, int ifm_media); | |||||
//------------------------------------------------------------------------------------------------- | |||||
int AQR105_setMedia(struct bdx_priv *priv, int ifm_media) | |||||
{ | |||||
int rVal, speed = -1; | |||||
if (ifm_media == 0) | |||||
{ | |||||
speed = 0; | |||||
priv->autoneg = AUTONEG_ENABLE; | |||||
} | |||||
else | |||||
{ | |||||
priv->autoneg = AUTONEG_DISABLE; | |||||
switch (ifm_media) | |||||
{ | |||||
case IFM_10G_T: | |||||
speed = 10000; | |||||
break; | |||||
case IFM_5000_T: | |||||
speed = 5000; | |||||
break; | |||||
case IFM_2500_T: | |||||
speed = 2500; | |||||
break; | |||||
case IFM_1000_T: | |||||
speed = 1000; | |||||
break; | |||||
case IFM_100_T: | |||||
speed = 100; | |||||
break; | |||||
default: | |||||
ERR("Unsupported mediad 0x%x\n", ifm_media); | |||||
break; | |||||
} | |||||
} | |||||
if (speed >= 0) | |||||
{ | |||||
rVal = AQR105_set_speed(priv, speed); | |||||
} | |||||
else | |||||
{ | |||||
rVal = -1; | |||||
} | |||||
return rVal; | |||||
} // AQR105_setMedia() | |||||
//------------------------------------------------------------------------------------------------- | |||||
__init void AQR105_register_settings(struct bdx_priv *priv) | |||||
{ | |||||
tn40_priv_t *tn40_priv = CONTAINING_RECORD(priv, tn40_priv_t, bdx_priv); | |||||
struct ifmedia *ifm = &tn40_priv->media; | |||||
priv->autoneg = AUTONEG_ENABLE; | |||||
ifmedia_add(ifm, IFM_ETHER | IFM_AUTO, 0, NULL); | |||||
ifmedia_add(ifm, IFM_ETHER | IFM_10G_T | IFM_FDX, 0, NULL); | |||||
ifmedia_add(ifm, IFM_ETHER | IFM_5000_T | IFM_FDX, 0, NULL); | |||||
ifmedia_add(ifm, IFM_ETHER | IFM_2500_T | IFM_FDX, 0, NULL); | |||||
ifmedia_add(ifm, IFM_ETHER | IFM_1000_T | IFM_FDX, 0, NULL); | |||||
ifmedia_add(ifm, IFM_ETHER | IFM_100_T | IFM_FDX, 0, NULL); | |||||
ifmedia_set(ifm, IFM_ETHER | IFM_AUTO); | |||||
priv->phy_ops.set_settings = AQR105_setMedia; | |||||
} // AQR105_register_settings() | |||||
//------------------------------------------------------------------------------------------------- | |||||