Revert "net: mscc: ocelot: do not force Felix MACs at lower speeds than gigabit"
This reverts commit f3ebad1269
.
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
(cherry picked from commit 7a7928a5246b0bd1c44c6a015d8925fb576020ac)
5.4-rM2-2.2.x-imx-squashed
parent
5ee2429187
commit
b3a6ebfef6
|
@ -249,7 +249,6 @@ static int felix_init_structs(struct felix *felix, int num_phys_ports)
|
|||
ocelot->num_stats = felix->info->num_stats;
|
||||
ocelot->shared_queue_sz = felix->info->shared_queue_sz;
|
||||
ocelot->ops = felix->info->ops;
|
||||
ocelot->quirks = felix->info->quirks;
|
||||
|
||||
base = pci_resource_start(felix->pdev, felix->info->pci_bar);
|
||||
|
||||
|
|
|
@ -18,7 +18,6 @@ struct felix_info {
|
|||
unsigned int num_stats;
|
||||
int num_ports;
|
||||
int pci_bar;
|
||||
unsigned long quirks;
|
||||
};
|
||||
|
||||
extern struct felix_info felix_info_vsc9959;
|
||||
|
|
|
@ -584,5 +584,4 @@ struct felix_info felix_info_vsc9959 = {
|
|||
.shared_queue_sz = 128 * 1024,
|
||||
.num_ports = 6,
|
||||
.pci_bar = 4,
|
||||
.quirks = OCELOT_PCS_PERFORMS_RATE_ADAPTATION,
|
||||
};
|
||||
|
|
|
@ -409,32 +409,27 @@ static u16 ocelot_wm_enc(u16 value)
|
|||
void ocelot_adjust_link(struct ocelot *ocelot, int port,
|
||||
struct phy_device *phydev)
|
||||
{
|
||||
int speed, mac_speed, mac_mode = DEV_MAC_MODE_CFG_FDX_ENA;
|
||||
struct ocelot_port *ocelot_port = ocelot->ports[port];
|
||||
int speed, mode = 0;
|
||||
|
||||
if (ocelot->quirks & OCELOT_PCS_PERFORMS_RATE_ADAPTATION)
|
||||
speed = SPEED_1000;
|
||||
else
|
||||
speed = phydev->speed;
|
||||
|
||||
switch (speed) {
|
||||
switch (phydev->speed) {
|
||||
case SPEED_10:
|
||||
mac_speed = OCELOT_SPEED_10;
|
||||
speed = OCELOT_SPEED_10;
|
||||
break;
|
||||
case SPEED_100:
|
||||
mac_speed = OCELOT_SPEED_100;
|
||||
speed = OCELOT_SPEED_100;
|
||||
break;
|
||||
case SPEED_1000:
|
||||
mac_speed = OCELOT_SPEED_1000;
|
||||
mac_mode |= DEV_MAC_MODE_CFG_GIGA_MODE_ENA;
|
||||
speed = OCELOT_SPEED_1000;
|
||||
mode = DEV_MAC_MODE_CFG_GIGA_MODE_ENA;
|
||||
break;
|
||||
case SPEED_2500:
|
||||
mac_speed = OCELOT_SPEED_2500;
|
||||
mac_mode |= DEV_MAC_MODE_CFG_GIGA_MODE_ENA;
|
||||
speed = OCELOT_SPEED_2500;
|
||||
mode = DEV_MAC_MODE_CFG_GIGA_MODE_ENA;
|
||||
break;
|
||||
default:
|
||||
dev_err(ocelot->dev, "Unsupported PHY speed on port %d: %d\n",
|
||||
port, speed);
|
||||
port, phydev->speed);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -444,7 +439,8 @@ void ocelot_adjust_link(struct ocelot *ocelot, int port,
|
|||
return;
|
||||
|
||||
/* Only full duplex supported for now */
|
||||
ocelot_port_writel(ocelot_port, mac_mode, DEV_MAC_MODE_CFG);
|
||||
ocelot_port_writel(ocelot_port, DEV_MAC_MODE_CFG_FDX_ENA |
|
||||
mode, DEV_MAC_MODE_CFG);
|
||||
|
||||
if (ocelot->ops->pcs_init)
|
||||
ocelot->ops->pcs_init(ocelot, port);
|
||||
|
@ -455,11 +451,11 @@ void ocelot_adjust_link(struct ocelot *ocelot, int port,
|
|||
|
||||
/* Take MAC, Port, Phy (intern) and PCS (SGMII/Serdes) clock out of
|
||||
* reset */
|
||||
ocelot_port_writel(ocelot_port, DEV_CLOCK_CFG_LINK_SPEED(mac_speed),
|
||||
ocelot_port_writel(ocelot_port, DEV_CLOCK_CFG_LINK_SPEED(speed),
|
||||
DEV_CLOCK_CFG);
|
||||
|
||||
/* No PFC */
|
||||
ocelot_write_gix(ocelot, ANA_PFC_PFC_CFG_FC_LINK_SPEED(mac_speed),
|
||||
ocelot_write_gix(ocelot, ANA_PFC_PFC_CFG_FC_LINK_SPEED(speed),
|
||||
ANA_PFC_PFC_CFG, port);
|
||||
|
||||
/* Core: Enable port for frame transfer */
|
||||
|
@ -473,7 +469,7 @@ void ocelot_adjust_link(struct ocelot *ocelot, int port,
|
|||
SYS_MAC_FC_CFG_RX_FC_ENA | SYS_MAC_FC_CFG_TX_FC_ENA |
|
||||
SYS_MAC_FC_CFG_ZERO_PAUSE_ENA |
|
||||
SYS_MAC_FC_CFG_FC_LATENCY_CFG(0x7) |
|
||||
SYS_MAC_FC_CFG_FC_LINK_SPEED(mac_speed),
|
||||
SYS_MAC_FC_CFG_FC_LINK_SPEED(speed),
|
||||
SYS_MAC_FC_CFG, port);
|
||||
ocelot_write_rix(ocelot, 0, ANA_POL_FLOWC, port);
|
||||
}
|
||||
|
|
|
@ -404,11 +404,6 @@ enum ocelot_tag_prefix {
|
|||
OCELOT_TAG_PREFIX_LONG,
|
||||
};
|
||||
|
||||
/* Hardware quirks (differences between switch instantiations) */
|
||||
enum {
|
||||
OCELOT_PCS_PERFORMS_RATE_ADAPTATION = BIT(0),
|
||||
};
|
||||
|
||||
struct ocelot;
|
||||
|
||||
struct ocelot_ops {
|
||||
|
@ -469,8 +464,6 @@ struct ocelot {
|
|||
struct delayed_work stats_work;
|
||||
struct workqueue_struct *stats_queue;
|
||||
|
||||
unsigned long quirks;
|
||||
|
||||
u8 ptp:1;
|
||||
struct ptp_clock *ptp_clock;
|
||||
struct ptp_clock_info ptp_info;
|
||||
|
|
Loading…
Reference in New Issue