mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 18:43:33 +02:00
Merge branch 'correcting-switch-hardware-versions-and-reported-speeds'
Justin Lai says: ==================== Correcting switch hardware versions and reported speeds This patch set mainly involves correcting switch hardware versions and reported speeds. Details are as follows: 1. Refactor the rtase_check_mac_version_valid() function. 2. Correct the speed for RTL907XD-V1 3. Corrects error handling of the rtase_check_mac_version_valid() v1 -> v2: - Add Fixes: tag. - Add defines for hardware version id. - Modify the error message for an invalid hardware version ID. v2 -> v3: - Remove the patch "Add support for RTL907XD-VA PCIe port". v3 -> v4: - Modify commit message to describe the main reason for the fix. v4 -> v5 - Integrate the addition of defines for hardware version ID into the patch "rtase: Refactor the rtase_check_mac_version_valid() function." ==================== Link: https://patch.msgid.link/20241120075624.499464-1-justinlai0215@realtek.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
commit
70ab873797
|
|
@ -9,7 +9,10 @@
|
|||
#ifndef RTASE_H
|
||||
#define RTASE_H
|
||||
|
||||
#define RTASE_HW_VER_MASK 0x7C800000
|
||||
#define RTASE_HW_VER_MASK 0x7C800000
|
||||
#define RTASE_HW_VER_906X_7XA 0x00800000
|
||||
#define RTASE_HW_VER_906X_7XC 0x04000000
|
||||
#define RTASE_HW_VER_907XD_V1 0x04800000
|
||||
|
||||
#define RTASE_RX_DMA_BURST_256 4
|
||||
#define RTASE_TX_DMA_BURST_UNLIMITED 7
|
||||
|
|
@ -327,6 +330,8 @@ struct rtase_private {
|
|||
u16 int_nums;
|
||||
u16 tx_int_mit;
|
||||
u16 rx_int_mit;
|
||||
|
||||
u32 hw_ver;
|
||||
};
|
||||
|
||||
#define RTASE_LSO_64K 64000
|
||||
|
|
|
|||
|
|
@ -1714,10 +1714,21 @@ static int rtase_get_settings(struct net_device *dev,
|
|||
struct ethtool_link_ksettings *cmd)
|
||||
{
|
||||
u32 supported = SUPPORTED_MII | SUPPORTED_Pause | SUPPORTED_Asym_Pause;
|
||||
const struct rtase_private *tp = netdev_priv(dev);
|
||||
|
||||
ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,
|
||||
supported);
|
||||
cmd->base.speed = SPEED_5000;
|
||||
|
||||
switch (tp->hw_ver) {
|
||||
case RTASE_HW_VER_906X_7XA:
|
||||
case RTASE_HW_VER_906X_7XC:
|
||||
cmd->base.speed = SPEED_5000;
|
||||
break;
|
||||
case RTASE_HW_VER_907XD_V1:
|
||||
cmd->base.speed = SPEED_10000;
|
||||
break;
|
||||
}
|
||||
|
||||
cmd->base.duplex = DUPLEX_FULL;
|
||||
cmd->base.port = PORT_MII;
|
||||
cmd->base.autoneg = AUTONEG_DISABLE;
|
||||
|
|
@ -1972,20 +1983,21 @@ static void rtase_init_software_variable(struct pci_dev *pdev,
|
|||
tp->dev->max_mtu = RTASE_MAX_JUMBO_SIZE;
|
||||
}
|
||||
|
||||
static bool rtase_check_mac_version_valid(struct rtase_private *tp)
|
||||
static int rtase_check_mac_version_valid(struct rtase_private *tp)
|
||||
{
|
||||
u32 hw_ver = rtase_r32(tp, RTASE_TX_CONFIG_0) & RTASE_HW_VER_MASK;
|
||||
bool known_ver = false;
|
||||
int ret = -ENODEV;
|
||||
|
||||
switch (hw_ver) {
|
||||
case 0x00800000:
|
||||
case 0x04000000:
|
||||
case 0x04800000:
|
||||
known_ver = true;
|
||||
tp->hw_ver = rtase_r32(tp, RTASE_TX_CONFIG_0) & RTASE_HW_VER_MASK;
|
||||
|
||||
switch (tp->hw_ver) {
|
||||
case RTASE_HW_VER_906X_7XA:
|
||||
case RTASE_HW_VER_906X_7XC:
|
||||
case RTASE_HW_VER_907XD_V1:
|
||||
ret = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
return known_ver;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int rtase_init_board(struct pci_dev *pdev, struct net_device **dev_out,
|
||||
|
|
@ -2105,9 +2117,13 @@ static int rtase_init_one(struct pci_dev *pdev,
|
|||
tp->pdev = pdev;
|
||||
|
||||
/* identify chip attached to board */
|
||||
if (!rtase_check_mac_version_valid(tp))
|
||||
return dev_err_probe(&pdev->dev, -ENODEV,
|
||||
"unknown chip version, contact rtase maintainers (see MAINTAINERS file)\n");
|
||||
ret = rtase_check_mac_version_valid(tp);
|
||||
if (ret != 0) {
|
||||
dev_err(&pdev->dev,
|
||||
"unknown chip version: 0x%08x, contact rtase maintainers (see MAINTAINERS file)\n",
|
||||
tp->hw_ver);
|
||||
goto err_out_release_board;
|
||||
}
|
||||
|
||||
rtase_init_software_variable(pdev, tp);
|
||||
rtase_init_hardware(tp);
|
||||
|
|
@ -2181,6 +2197,7 @@ static int rtase_init_one(struct pci_dev *pdev,
|
|||
netif_napi_del(&ivec->napi);
|
||||
}
|
||||
|
||||
err_out_release_board:
|
||||
rtase_release_board(pdev, dev, ioaddr);
|
||||
|
||||
return ret;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user