Skip to content

Commit

Permalink
net: fman: Inline several functions into initialization
Browse files Browse the repository at this point in the history
There are several small functions which were only necessary because the
initialization functions didn't have access to the mac private data. Now
that they do, just do things directly.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Acked-by: Camelia Groza <camelia.groza@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Sean Anderson authored and David S. Miller committed Sep 5, 2022
1 parent 1257c96 commit 4498862
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 128 deletions.
59 changes: 9 additions & 50 deletions drivers/net/ethernet/freescale/fman/fman_dtsec.c
Original file line number Diff line number Diff line change
Expand Up @@ -814,26 +814,6 @@ static void free_init_resources(struct fman_mac *dtsec)
dtsec->unicast_addr_hash = NULL;
}

static int dtsec_cfg_max_frame_len(struct fman_mac *dtsec, u16 new_val)
{
if (is_init_done(dtsec->dtsec_drv_param))
return -EINVAL;

dtsec->dtsec_drv_param->maximum_frame = new_val;

return 0;
}

static int dtsec_cfg_pad_and_crc(struct fman_mac *dtsec, bool new_val)
{
if (is_init_done(dtsec->dtsec_drv_param))
return -EINVAL;

dtsec->dtsec_drv_param->tx_pad_crc = new_val;

return 0;
}

static void graceful_start(struct fman_mac *dtsec)
{
struct dtsec_regs __iomem *regs = dtsec->regs;
Expand Down Expand Up @@ -1274,18 +1254,6 @@ static void adjust_link_dtsec(struct mac_device *mac_dev)
err);
}

static int dtsec_get_version(struct fman_mac *dtsec, u32 *mac_version)
{
struct dtsec_regs __iomem *regs = dtsec->regs;

if (!is_init_done(dtsec->dtsec_drv_param))
return -EINVAL;

*mac_version = ioread32be(&regs->tsec_id);

return 0;
}

static int dtsec_set_exception(struct fman_mac *dtsec,
enum fman_mac_exceptions exception, bool enable)
{
Expand Down Expand Up @@ -1525,7 +1493,7 @@ int dtsec_initialization(struct mac_device *mac_dev,
{
int err;
struct fman_mac_params params;
u32 version;
struct fman_mac *dtsec;

mac_dev->set_promisc = dtsec_set_promiscuous;
mac_dev->change_addr = dtsec_modify_mac_address;
Expand All @@ -1552,34 +1520,25 @@ int dtsec_initialization(struct mac_device *mac_dev,
goto _return;
}

err = dtsec_cfg_max_frame_len(mac_dev->fman_mac, fman_get_max_frm());
if (err < 0)
goto _return_fm_mac_free;

err = dtsec_cfg_pad_and_crc(mac_dev->fman_mac, true);
if (err < 0)
goto _return_fm_mac_free;

err = dtsec_init(mac_dev->fman_mac);
dtsec = mac_dev->fman_mac;
dtsec->dtsec_drv_param->maximum_frame = fman_get_max_frm();
dtsec->dtsec_drv_param->tx_pad_crc = true;
err = dtsec_init(dtsec);
if (err < 0)
goto _return_fm_mac_free;

/* For 1G MAC, disable by default the MIB counters overflow interrupt */
err = mac_dev->set_exception(mac_dev->fman_mac,
FM_MAC_EX_1G_RX_MIB_CNT_OVFL, false);
if (err < 0)
goto _return_fm_mac_free;

err = dtsec_get_version(mac_dev->fman_mac, &version);
err = dtsec_set_exception(dtsec, FM_MAC_EX_1G_RX_MIB_CNT_OVFL, false);
if (err < 0)
goto _return_fm_mac_free;

dev_info(mac_dev->dev, "FMan dTSEC version: 0x%08x\n", version);
dev_info(mac_dev->dev, "FMan dTSEC version: 0x%08x\n",
ioread32be(&dtsec->regs->tsec_id));

goto _return;

_return_fm_mac_free:
dtsec_free(mac_dev->fman_mac);
dtsec_free(dtsec);

_return:
return err;
Expand Down
47 changes: 5 additions & 42 deletions drivers/net/ethernet/freescale/fman/fman_memac.c
Original file line number Diff line number Diff line change
Expand Up @@ -792,37 +792,6 @@ static void adjust_link_memac(struct mac_device *mac_dev)
err);
}

static int memac_cfg_max_frame_len(struct fman_mac *memac, u16 new_val)
{
if (is_init_done(memac->memac_drv_param))
return -EINVAL;

memac->memac_drv_param->max_frame_length = new_val;

return 0;
}

static int memac_cfg_reset_on_init(struct fman_mac *memac, bool enable)
{
if (is_init_done(memac->memac_drv_param))
return -EINVAL;

memac->memac_drv_param->reset_on_init = enable;

return 0;
}

static int memac_cfg_fixed_link(struct fman_mac *memac,
struct fixed_phy_status *fixed_link)
{
if (is_init_done(memac->memac_drv_param))
return -EINVAL;

memac->memac_drv_param->fixed_link = fixed_link;

return 0;
}

static int memac_set_tx_pause_frames(struct fman_mac *memac, u8 priority,
u16 pause_time, u16 thresh_time)
{
Expand Down Expand Up @@ -1206,6 +1175,7 @@ int memac_initialization(struct mac_device *mac_dev,
int err;
struct fman_mac_params params;
struct fixed_phy_status *fixed_link;
struct fman_mac *memac;

mac_dev->set_promisc = memac_set_promiscuous;
mac_dev->change_addr = memac_modify_mac_address;
Expand Down Expand Up @@ -1235,13 +1205,9 @@ int memac_initialization(struct mac_device *mac_dev,
goto _return;
}

err = memac_cfg_max_frame_len(mac_dev->fman_mac, fman_get_max_frm());
if (err < 0)
goto _return_fm_mac_free;

err = memac_cfg_reset_on_init(mac_dev->fman_mac, true);
if (err < 0)
goto _return_fm_mac_free;
memac = mac_dev->fman_mac;
memac->memac_drv_param->max_frame_length = fman_get_max_frm();
memac->memac_drv_param->reset_on_init = true;

if (!mac_dev->phy_node && of_phy_is_fixed_link(mac_node)) {
struct phy_device *phy;
Expand Down Expand Up @@ -1271,10 +1237,7 @@ int memac_initialization(struct mac_device *mac_dev,
fixed_link->asym_pause = phy->asym_pause;

put_device(&phy->mdio.dev);

err = memac_cfg_fixed_link(mac_dev->fman_mac, fixed_link);
if (err < 0)
goto _return_fixed_link_free;
memac->memac_drv_param->fixed_link = fixed_link;
}

err = memac_init(mac_dev->fman_mac);
Expand Down
43 changes: 7 additions & 36 deletions drivers/net/ethernet/freescale/fman/fman_tgec.c
Original file line number Diff line number Diff line change
Expand Up @@ -441,16 +441,6 @@ static int tgec_set_promiscuous(struct fman_mac *tgec, bool new_val)
return 0;
}

static int tgec_cfg_max_frame_len(struct fman_mac *tgec, u16 new_val)
{
if (is_init_done(tgec->cfg))
return -EINVAL;

tgec->cfg->max_frame_length = new_val;

return 0;
}

static int tgec_set_tx_pause_frames(struct fman_mac *tgec,
u8 __maybe_unused priority, u16 pause_time,
u16 __maybe_unused thresh_time)
Expand Down Expand Up @@ -618,18 +608,6 @@ static void adjust_link_void(struct mac_device *mac_dev)
{
}

static int tgec_get_version(struct fman_mac *tgec, u32 *mac_version)
{
struct tgec_regs __iomem *regs = tgec->regs;

if (!is_init_done(tgec->cfg))
return -EINVAL;

*mac_version = ioread32be(&regs->tgec_id);

return 0;
}

static int tgec_set_exception(struct fman_mac *tgec,
enum fman_mac_exceptions exception, bool enable)
{
Expand Down Expand Up @@ -809,7 +787,7 @@ int tgec_initialization(struct mac_device *mac_dev,
{
int err;
struct fman_mac_params params;
u32 version;
struct fman_mac *tgec;

mac_dev->set_promisc = tgec_set_promiscuous;
mac_dev->change_addr = tgec_modify_mac_address;
Expand All @@ -835,26 +813,19 @@ int tgec_initialization(struct mac_device *mac_dev,
goto _return;
}

err = tgec_cfg_max_frame_len(mac_dev->fman_mac, fman_get_max_frm());
if (err < 0)
goto _return_fm_mac_free;

err = tgec_init(mac_dev->fman_mac);
tgec = mac_dev->fman_mac;
tgec->cfg->max_frame_length = fman_get_max_frm();
err = tgec_init(tgec);
if (err < 0)
goto _return_fm_mac_free;

/* For 10G MAC, disable Tx ECC exception */
err = mac_dev->set_exception(mac_dev->fman_mac,
FM_MAC_EX_10G_TX_ECC_ER, false);
if (err < 0)
goto _return_fm_mac_free;

err = tgec_get_version(mac_dev->fman_mac, &version);
err = tgec_set_exception(tgec, FM_MAC_EX_10G_TX_ECC_ER, false);
if (err < 0)
goto _return_fm_mac_free;

pr_info("FMan XGEC version: 0x%08x\n", version);

pr_info("FMan XGEC version: 0x%08x\n",
ioread32be(&tgec->regs->tgec_id));
goto _return;

_return_fm_mac_free:
Expand Down

0 comments on commit 4498862

Please sign in to comment.