* [PATCH net-next 0/8] r8169: smaller improvements again
@ 2020-06-17 20:50 Heiner Kallweit
2020-06-17 20:51 ` [PATCH net-next 1/8] r8169: add info for DASH being enabled Heiner Kallweit
` (8 more replies)
0 siblings, 9 replies; 10+ messages in thread
From: Heiner Kallweit @ 2020-06-17 20:50 UTC (permalink / raw)
To: Realtek linux nic maintainers, David Miller, Jakub Kicinski; +Cc: netdev
Series includes a number of different smaller improvements.
Heiner Kallweit (8):
r8169: add info for DASH being enabled
r8169: remove unused constant RsvdMask
r8169: improve setting WoL on runtime-resume
r8169: replace synchronize_rcu with synchronize_net
r8169: move napi_disable call and rename rtl8169_hw_reset
r8169: move updating counters to rtl8169_down
r8169: move switching optional clock on/off to pll power functions
r8169: allow setting irq coalescing if link is down
drivers/net/ethernet/realtek/r8169_main.c | 51 +++++++++++------------
1 file changed, 25 insertions(+), 26 deletions(-)
--
2.27.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH net-next 1/8] r8169: add info for DASH being enabled
2020-06-17 20:50 [PATCH net-next 0/8] r8169: smaller improvements again Heiner Kallweit
@ 2020-06-17 20:51 ` Heiner Kallweit
2020-06-17 20:51 ` [PATCH net-next 2/8] r8169: remove unused constant RsvdMask Heiner Kallweit
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Heiner Kallweit @ 2020-06-17 20:51 UTC (permalink / raw)
To: Realtek linux nic maintainers, David Miller, Jakub Kicinski; +Cc: netdev
In case of problems it facilitates the bug analysis if we know whether
DASH is active. Therefore emit a message in probe if this is the case.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
drivers/net/ethernet/realtek/r8169_main.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
index dad84ecf5..7bb26fb07 100644
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -5432,8 +5432,10 @@ static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
jumbo_max, tp->mac_version <= RTL_GIGA_MAC_VER_06 ?
"ok" : "ko");
- if (r8168_check_dash(tp))
+ if (r8168_check_dash(tp)) {
+ netdev_info(dev, "DASH enabled\n");
rtl8168_driver_start(tp);
+ }
if (pci_dev_run_wake(pdev))
pm_runtime_put_sync(&pdev->dev);
--
2.27.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH net-next 2/8] r8169: remove unused constant RsvdMask
2020-06-17 20:50 [PATCH net-next 0/8] r8169: smaller improvements again Heiner Kallweit
2020-06-17 20:51 ` [PATCH net-next 1/8] r8169: add info for DASH being enabled Heiner Kallweit
@ 2020-06-17 20:51 ` Heiner Kallweit
2020-06-17 20:52 ` [PATCH net-next 3/8] r8169: improve setting WoL on runtime-resume Heiner Kallweit
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Heiner Kallweit @ 2020-06-17 20:51 UTC (permalink / raw)
To: Realtek linux nic maintainers, David Miller, Jakub Kicinski; +Cc: netdev
Since 9d3679fe0f30 ("r8169: inline rtl8169_make_unusable_by_asic")
this constant isn't used any longer, so remove it.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
drivers/net/ethernet/realtek/r8169_main.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
index 7bb26fb07..4bc6c5529 100644
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -529,8 +529,6 @@ enum rtl_rx_desc_bit {
RxVlanTag = (1 << 16), /* VLAN tag available */
};
-#define RsvdMask 0x3fffc000
-
#define RTL_GSO_MAX_SIZE_V1 32000
#define RTL_GSO_MAX_SEGS_V1 24
#define RTL_GSO_MAX_SIZE_V2 64000
--
2.27.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH net-next 3/8] r8169: improve setting WoL on runtime-resume
2020-06-17 20:50 [PATCH net-next 0/8] r8169: smaller improvements again Heiner Kallweit
2020-06-17 20:51 ` [PATCH net-next 1/8] r8169: add info for DASH being enabled Heiner Kallweit
2020-06-17 20:51 ` [PATCH net-next 2/8] r8169: remove unused constant RsvdMask Heiner Kallweit
@ 2020-06-17 20:52 ` Heiner Kallweit
2020-06-17 20:53 ` [PATCH net-next 4/8] r8169: replace synchronize_rcu with synchronize_net Heiner Kallweit
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Heiner Kallweit @ 2020-06-17 20:52 UTC (permalink / raw)
To: Realtek linux nic maintainers, David Miller, Jakub Kicinski; +Cc: netdev
In the following scenario WoL isn't configured properly:
- Driver is loaded, interface isn't brought up within 10s, so driver
runtime-suspends.
- WoL is set.
- Interface is brought up, stored WoL setting isn't applied.
It has always been like that, but the scenario seems to be quite
theoretical as I haven't seen any bug report yet. Therefore treat
the change as an improvement.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
drivers/net/ethernet/realtek/r8169_main.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
index 4bc6c5529..bd95c0ae6 100644
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -4887,14 +4887,12 @@ static int rtl8169_runtime_resume(struct device *device)
rtl_rar_set(tp, tp->dev->dev_addr);
- if (!tp->TxDescArray)
- return 0;
-
rtl_lock_work(tp);
__rtl8169_set_wol(tp, tp->saved_wolopts);
rtl_unlock_work(tp);
- __rtl8169_resume(tp);
+ if (tp->TxDescArray)
+ __rtl8169_resume(tp);
return 0;
}
--
2.27.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH net-next 4/8] r8169: replace synchronize_rcu with synchronize_net
2020-06-17 20:50 [PATCH net-next 0/8] r8169: smaller improvements again Heiner Kallweit
` (2 preceding siblings ...)
2020-06-17 20:52 ` [PATCH net-next 3/8] r8169: improve setting WoL on runtime-resume Heiner Kallweit
@ 2020-06-17 20:53 ` Heiner Kallweit
2020-06-17 20:54 ` [PATCH net-next 5/8] r8169: move napi_disable call and rename rtl8169_hw_reset Heiner Kallweit
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Heiner Kallweit @ 2020-06-17 20:53 UTC (permalink / raw)
To: Realtek linux nic maintainers, David Miller, Jakub Kicinski; +Cc: netdev
rtl8169_hw_reset() may be called under RTNL lock, therefore switch to
synchronize_net().
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
drivers/net/ethernet/realtek/r8169_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
index bd95c0ae6..0d3e58ae1 100644
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -3929,7 +3929,7 @@ static void rtl8169_tx_clear(struct rtl8169_private *tp)
static void rtl8169_hw_reset(struct rtl8169_private *tp, bool going_down)
{
/* Give a racing hard_start_xmit a few cycles to complete. */
- synchronize_rcu();
+ synchronize_net();
/* Disable interrupts */
rtl8169_irq_mask_and_ack(tp);
--
2.27.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH net-next 5/8] r8169: move napi_disable call and rename rtl8169_hw_reset
2020-06-17 20:50 [PATCH net-next 0/8] r8169: smaller improvements again Heiner Kallweit
` (3 preceding siblings ...)
2020-06-17 20:53 ` [PATCH net-next 4/8] r8169: replace synchronize_rcu with synchronize_net Heiner Kallweit
@ 2020-06-17 20:54 ` Heiner Kallweit
2020-06-17 20:54 ` [PATCH net-next 6/8] r8169: move updating counters to rtl8169_down Heiner Kallweit
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Heiner Kallweit @ 2020-06-17 20:54 UTC (permalink / raw)
To: Realtek linux nic maintainers, David Miller, Jakub Kicinski; +Cc: netdev
rtl8169_hw_reset() meanwhile does more than a hw reset, therefore rename
it to rtl8169_cleanup(). In addition move calling napi_disable() to this
function.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
drivers/net/ethernet/realtek/r8169_main.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
index 0d3e58ae1..afcdaace2 100644
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -3926,8 +3926,10 @@ static void rtl8169_tx_clear(struct rtl8169_private *tp)
netdev_reset_queue(tp->dev);
}
-static void rtl8169_hw_reset(struct rtl8169_private *tp, bool going_down)
+static void rtl8169_cleanup(struct rtl8169_private *tp, bool going_down)
{
+ napi_disable(&tp->napi);
+
/* Give a racing hard_start_xmit a few cycles to complete. */
synchronize_net();
@@ -3970,10 +3972,9 @@ static void rtl_reset_work(struct rtl8169_private *tp)
struct net_device *dev = tp->dev;
int i;
- napi_disable(&tp->napi);
netif_stop_queue(dev);
- rtl8169_hw_reset(tp, false);
+ rtl8169_cleanup(tp, false);
for (i = 0; i < NUM_RX_DESC; i++)
rtl8169_mark_to_asic(tp->RxDescArray + i);
@@ -4636,9 +4637,8 @@ static void rtl8169_down(struct rtl8169_private *tp)
bitmap_zero(tp->wk.flags, RTL_FLAG_MAX);
phy_stop(tp->phydev);
- napi_disable(&tp->napi);
- rtl8169_hw_reset(tp, true);
+ rtl8169_cleanup(tp, true);
rtl_pll_power_down(tp);
--
2.27.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH net-next 6/8] r8169: move updating counters to rtl8169_down
2020-06-17 20:50 [PATCH net-next 0/8] r8169: smaller improvements again Heiner Kallweit
` (4 preceding siblings ...)
2020-06-17 20:54 ` [PATCH net-next 5/8] r8169: move napi_disable call and rename rtl8169_hw_reset Heiner Kallweit
@ 2020-06-17 20:54 ` Heiner Kallweit
2020-06-17 20:55 ` [PATCH net-next 7/8] r8169: move switching optional clock on/off to pll power functions Heiner Kallweit
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Heiner Kallweit @ 2020-06-17 20:54 UTC (permalink / raw)
To: Realtek linux nic maintainers, David Miller, Jakub Kicinski; +Cc: netdev
Counters are updated whenever we go down, therefore move the call to
rtl8169_down().
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
drivers/net/ethernet/realtek/r8169_main.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
index afcdaace2..9f99b3f07 100644
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -4638,6 +4638,8 @@ static void rtl8169_down(struct rtl8169_private *tp)
phy_stop(tp->phydev);
+ rtl8169_update_counters(tp);
+
rtl8169_cleanup(tp, true);
rtl_pll_power_down(tp);
@@ -4652,9 +4654,6 @@ static int rtl8169_close(struct net_device *dev)
pm_runtime_get_sync(&pdev->dev);
- /* Update counters before going down */
- rtl8169_update_counters(tp);
-
netif_stop_queue(dev);
rtl8169_down(tp);
rtl8169_rx_clear(tp);
@@ -4875,9 +4874,6 @@ static int rtl8169_runtime_suspend(struct device *device)
rtl8169_net_suspend(tp);
- /* Update counters before going runtime suspend */
- rtl8169_update_counters(tp);
-
return 0;
}
--
2.27.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH net-next 7/8] r8169: move switching optional clock on/off to pll power functions
2020-06-17 20:50 [PATCH net-next 0/8] r8169: smaller improvements again Heiner Kallweit
` (5 preceding siblings ...)
2020-06-17 20:54 ` [PATCH net-next 6/8] r8169: move updating counters to rtl8169_down Heiner Kallweit
@ 2020-06-17 20:55 ` Heiner Kallweit
2020-06-17 20:56 ` [PATCH net-next 8/8] r8169: allow setting irq coalescing if link is down Heiner Kallweit
2020-06-19 3:40 ` [PATCH net-next 0/8] r8169: smaller improvements again David Miller
8 siblings, 0 replies; 10+ messages in thread
From: Heiner Kallweit @ 2020-06-17 20:55 UTC (permalink / raw)
To: Realtek linux nic maintainers, David Miller, Jakub Kicinski; +Cc: netdev
Relevant chip clocks are disabled in rtl_pll_power_down(), therefore
move calling clk_disable_unprepare() there. Similar for enabling the
clock.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
drivers/net/ethernet/realtek/r8169_main.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
index 9f99b3f07..d55bf2cd2 100644
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -2292,10 +2292,14 @@ static void rtl_pll_power_down(struct rtl8169_private *tp)
default:
break;
}
+
+ clk_disable_unprepare(tp->clk);
}
static void rtl_pll_power_up(struct rtl8169_private *tp)
{
+ clk_prepare_enable(tp->clk);
+
switch (tp->mac_version) {
case RTL_GIGA_MAC_VER_25 ... RTL_GIGA_MAC_VER_33:
case RTL_GIGA_MAC_VER_37:
@@ -4826,7 +4830,6 @@ static int __maybe_unused rtl8169_suspend(struct device *device)
struct rtl8169_private *tp = dev_get_drvdata(device);
rtl8169_net_suspend(tp);
- clk_disable_unprepare(tp->clk);
return 0;
}
@@ -4853,8 +4856,6 @@ static int __maybe_unused rtl8169_resume(struct device *device)
rtl_rar_set(tp, tp->dev->dev_addr);
- clk_prepare_enable(tp->clk);
-
if (netif_running(tp->dev))
__rtl8169_resume(tp);
--
2.27.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH net-next 8/8] r8169: allow setting irq coalescing if link is down
2020-06-17 20:50 [PATCH net-next 0/8] r8169: smaller improvements again Heiner Kallweit
` (6 preceding siblings ...)
2020-06-17 20:55 ` [PATCH net-next 7/8] r8169: move switching optional clock on/off to pll power functions Heiner Kallweit
@ 2020-06-17 20:56 ` Heiner Kallweit
2020-06-19 3:40 ` [PATCH net-next 0/8] r8169: smaller improvements again David Miller
8 siblings, 0 replies; 10+ messages in thread
From: Heiner Kallweit @ 2020-06-17 20:56 UTC (permalink / raw)
To: Realtek linux nic maintainers, David Miller, Jakub Kicinski; +Cc: netdev
So far we can not configure irq coalescing when link is down. Allow the
user to do this, and assume that he wants to configure irq coalescing
for highest speed. Otherwise the irq rate is low enough anyway.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
drivers/net/ethernet/realtek/r8169_main.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
index d55bf2cd2..a3c4187d9 100644
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -1731,16 +1731,16 @@ struct rtl_coalesce_info {
#define COALESCE_DELAY(d) { (d), 8 * (d), 16 * (d), 32 * (d) }
static const struct rtl_coalesce_info rtl_coalesce_info_8169[] = {
- { SPEED_10, COALESCE_DELAY(40960) },
- { SPEED_100, COALESCE_DELAY(2560) },
{ SPEED_1000, COALESCE_DELAY(320) },
+ { SPEED_100, COALESCE_DELAY(2560) },
+ { SPEED_10, COALESCE_DELAY(40960) },
{ 0 },
};
static const struct rtl_coalesce_info rtl_coalesce_info_8168_8136[] = {
- { SPEED_10, COALESCE_DELAY(40960) },
- { SPEED_100, COALESCE_DELAY(2560) },
{ SPEED_1000, COALESCE_DELAY(5000) },
+ { SPEED_100, COALESCE_DELAY(2560) },
+ { SPEED_10, COALESCE_DELAY(40960) },
{ 0 },
};
#undef COALESCE_DELAY
@@ -1756,6 +1756,10 @@ rtl_coalesce_info(struct rtl8169_private *tp)
else
ci = rtl_coalesce_info_8168_8136;
+ /* if speed is unknown assume highest one */
+ if (tp->phydev->speed == SPEED_UNKNOWN)
+ return ci;
+
for (; ci->speed; ci++) {
if (tp->phydev->speed == ci->speed)
return ci;
--
2.27.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH net-next 0/8] r8169: smaller improvements again
2020-06-17 20:50 [PATCH net-next 0/8] r8169: smaller improvements again Heiner Kallweit
` (7 preceding siblings ...)
2020-06-17 20:56 ` [PATCH net-next 8/8] r8169: allow setting irq coalescing if link is down Heiner Kallweit
@ 2020-06-19 3:40 ` David Miller
8 siblings, 0 replies; 10+ messages in thread
From: David Miller @ 2020-06-19 3:40 UTC (permalink / raw)
To: hkallweit1; +Cc: nic_swsd, kuba, netdev
From: Heiner Kallweit <hkallweit1@gmail.com>
Date: Wed, 17 Jun 2020 22:50:11 +0200
> Series includes a number of different smaller improvements.
Series applied, thanks Heiner.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2020-06-19 3:40 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-17 20:50 [PATCH net-next 0/8] r8169: smaller improvements again Heiner Kallweit
2020-06-17 20:51 ` [PATCH net-next 1/8] r8169: add info for DASH being enabled Heiner Kallweit
2020-06-17 20:51 ` [PATCH net-next 2/8] r8169: remove unused constant RsvdMask Heiner Kallweit
2020-06-17 20:52 ` [PATCH net-next 3/8] r8169: improve setting WoL on runtime-resume Heiner Kallweit
2020-06-17 20:53 ` [PATCH net-next 4/8] r8169: replace synchronize_rcu with synchronize_net Heiner Kallweit
2020-06-17 20:54 ` [PATCH net-next 5/8] r8169: move napi_disable call and rename rtl8169_hw_reset Heiner Kallweit
2020-06-17 20:54 ` [PATCH net-next 6/8] r8169: move updating counters to rtl8169_down Heiner Kallweit
2020-06-17 20:55 ` [PATCH net-next 7/8] r8169: move switching optional clock on/off to pll power functions Heiner Kallweit
2020-06-17 20:56 ` [PATCH net-next 8/8] r8169: allow setting irq coalescing if link is down Heiner Kallweit
2020-06-19 3:40 ` [PATCH net-next 0/8] r8169: smaller improvements again David Miller
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.