2020-07-17 13:25:05

by Mark Einon

[permalink] [raw]
Subject: [PATCH] net: ethernet: et131x: Remove redundant register read

Following the removal of an unused variable assignment (remove
unused variable 'pm_csr') the associated register read can also go,
as the read also occurs in the subsequent et1310_in_phy_coma()
call.

Signed-off-by: Mark Einon <[email protected]>
---
drivers/net/ethernet/agere/et131x.c | 3 ---
1 file changed, 3 deletions(-)

diff --git a/drivers/net/ethernet/agere/et131x.c b/drivers/net/ethernet/agere/et131x.c
index 8806e1e4c20f..41f8821f792d 100644
--- a/drivers/net/ethernet/agere/et131x.c
+++ b/drivers/net/ethernet/agere/et131x.c
@@ -983,7 +983,6 @@ static void et1310_setup_device_for_multicast(struct et131x_adapter *adapter)
}

/* Write out the new hash to the device */
- readl(&adapter->regs->global.pm_csr);
if (!et1310_in_phy_coma(adapter)) {
writel(hash1, &rxmac->multi_hash1);
writel(hash2, &rxmac->multi_hash2);
@@ -1023,7 +1022,6 @@ static void et1310_setup_device_for_unicast(struct et131x_adapter *adapter)
(adapter->addr[4] << ET_RX_UNI_PF_ADDR1_5_SHIFT) |
adapter->addr[5];

- readl(&adapter->regs->global.pm_csr);
if (!et1310_in_phy_coma(adapter)) {
writel(uni_pf1, &rxmac->uni_pf_addr1);
writel(uni_pf2, &rxmac->uni_pf_addr2);
@@ -3444,7 +3442,6 @@ static irqreturn_t et131x_isr(int irq, void *dev_id)
/* Tell the device to send a pause packet via the back
* pressure register (bp req and bp xon/xoff)
*/
- readl(&iomem->global.pm_csr);
if (!et1310_in_phy_coma(adapter))
writel(3, &iomem->txmac.bp_ctrl);
}
--
2.26.2


2020-07-17 13:40:44

by Andrew Lunn

[permalink] [raw]
Subject: Re: [PATCH] net: ethernet: et131x: Remove redundant register read

On Fri, Jul 17, 2020 at 02:21:35PM +0100, Mark Einon wrote:
> Following the removal of an unused variable assignment (remove
> unused variable 'pm_csr') the associated register read can also go,
> as the read also occurs in the subsequent et1310_in_phy_coma()
> call.

Hi Mark

Do you have any hardware documentation which indicates these read are
not required? Have you looked back through the git history to see if
there are any comments about these read?

Hardware reads which appear pointless are sometimes very important to
actually make the hardware work.

Andrew

2020-07-17 15:22:37

by Mark Einon

[permalink] [raw]
Subject: Re: [PATCH] net: ethernet: et131x: Remove redundant register read

On Fri, 2020-07-17 at 15:40 +0200, Andrew Lunn wrote:
> On Fri, Jul 17, 2020 at 02:21:35PM +0100, Mark Einon wrote:
> > Following the removal of an unused variable assignment (remove
> > unused variable 'pm_csr') the associated register read can also go,
> > as the read also occurs in the subsequent
> > call.
>
> Hi Mark
>
> Do you have any hardware documentation which indicates these read are
> not required? Have you looked back through the git history to see if
> there are any comments about these read?
>
> Hardware reads which appear pointless are sometimes very important to
> actually make the hardware work.
>
> Andrew

Hi Andrew,

Yes - I'm aware of such effects. In the original vendor driver (
https://gitlab.com/einonm/Legacy-et131x) the read of this register (
pm_phy_sw_coma) is not wrapped in a function call and is always called
once when needed.

Also in the current kernel driver et1310_in_phy_coma() is called a few
other times without the removed read being made.

The datasheet I have for a similar device (et1011) doesn't say anything
other than the register should be read/write.

So I think this is a safe thing to do.

Best regards,

Mark


2020-07-18 01:50:50

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] net: ethernet: et131x: Remove redundant register read

From: Mark Einon <[email protected]>
Date: Fri, 17 Jul 2020 14:21:35 +0100

> Following the removal of an unused variable assignment (remove
> unused variable 'pm_csr') the associated register read can also go,
> as the read also occurs in the subsequent et1310_in_phy_coma()
> call.
>
> Signed-off-by: Mark Einon <[email protected]>

Applied to net-next.

2020-07-18 14:55:08

by Andrew Lunn

[permalink] [raw]
Subject: Re: [PATCH] net: ethernet: et131x: Remove redundant register read

On Fri, Jul 17, 2020 at 04:21:51PM +0100, Mark Einon wrote:
> On Fri, 2020-07-17 at 15:40 +0200, Andrew Lunn wrote:
> > On Fri, Jul 17, 2020 at 02:21:35PM +0100, Mark Einon wrote:
> > > Following the removal of an unused variable assignment (remove
> > > unused variable 'pm_csr') the associated register read can also go,
> > > as the read also occurs in the subsequent
> > > call.
> >
> > Hi Mark
> >
> > Do you have any hardware documentation which indicates these read are
> > not required? Have you looked back through the git history to see if
> > there are any comments about these read?
> >
> > Hardware reads which appear pointless are sometimes very important to
> > actually make the hardware work.
> >
> > Andrew
>
> Hi Andrew,
>
> Yes - I'm aware of such effects. In the original vendor driver (
> https://gitlab.com/einonm/Legacy-et131x) the read of this register (
> pm_phy_sw_coma) is not wrapped in a function call and is always called
> once when needed.
>
> Also in the current kernel driver et1310_in_phy_coma() is called a few
> other times without the removed read being made.
>
> The datasheet I have for a similar device (et1011) doesn't say anything
> other than the register should be read/write.
>
> So I think this is a safe thing to do.

Hi Mark

It is good to include this sort of information in the commit
message. It makes it clear you have considered this, and it stops
people like me asking...

Andrew