Thread (6 messages) 6 messages, 3 authors, 2023-11-09

RE: [PATCH net v2 1/2] r8169: add handling DASH when DASH is disabled

flat view

From: Hau <hidden>
Date: 2023-11-09 16:21:00
Also in: lkml, stable

You should include the fixes tag you already added in v1 and your Sob should
come as the last tag

The same applies to the next patch
I forget to add Fixes tag. I will add it back.
quoted
Reviewed-by: Heiner Kallweit <hkallweit1@gmail.com>
It's not clear where/when Heiner provided the above tag for this patch.
I hope that was off-list.
I may misunderstanding what he means. I will not add this tag in my next patch.
quoted
Cc: stable@vger.kernel.org
---
 drivers/net/ethernet/realtek/r8169_main.c | 35
++++++++++++++++-------
 1 file changed, 25 insertions(+), 10 deletions(-)
diff --git a/drivers/net/ethernet/realtek/r8169_main.c
b/drivers/net/ethernet/realtek/r8169_main.c
index 0c76c162b8a9..108dc75050ba 100644
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -624,6 +624,7 @@ struct rtl8169_private {

      unsigned supports_gmii:1;
      unsigned aspm_manageable:1;
+     unsigned dash_enabled:1;
      dma_addr_t counters_phys_addr;
      struct rtl8169_counters *counters;
      struct rtl8169_tc_offsets tc_offset; @@ -1253,14 +1254,26 @@
static bool r8168ep_check_dash(struct rtl8169_private *tp)
      return r8168ep_ocp_read(tp, 0x128) & BIT(0);  }

-static enum rtl_dash_type rtl_check_dash(struct rtl8169_private *tp)
+static bool rtl_dash_is_enabled(struct rtl8169_private *tp) {
+     switch (tp->dash_type) {
+     case RTL_DASH_DP:
+             return r8168dp_check_dash(tp);
+     case RTL_DASH_EP:
+             return r8168ep_check_dash(tp);
+     default:
+             return false;
+     }
+}
+
+static enum rtl_dash_type rtl_get_dash_type(struct rtl8169_private
+*tp)
 {
      switch (tp->mac_version) {
      case RTL_GIGA_MAC_VER_28:
      case RTL_GIGA_MAC_VER_31:
-             return r8168dp_check_dash(tp) ? RTL_DASH_DP : RTL_DASH_NONE;
+             return RTL_DASH_DP;
      case RTL_GIGA_MAC_VER_51 ... RTL_GIGA_MAC_VER_53:
-             return r8168ep_check_dash(tp) ? RTL_DASH_EP : RTL_DASH_NONE;
+             return RTL_DASH_EP;
      default:
              return RTL_DASH_NONE;
      }
@@ -1453,7 +1466,7 @@ static void __rtl8169_set_wol(struct
rtl8169_private *tp, u32 wolopts)

      device_set_wakeup_enable(tp_to_dev(tp), wolopts);

-     if (tp->dash_type == RTL_DASH_NONE) {
+     if (!tp->dash_enabled) {
              rtl_set_d3_pll_down(tp, !wolopts);
              tp->dev->wol_enabled = wolopts ? 1 : 0;
      }
@@ -2512,7 +2525,7 @@ static void rtl_wol_enable_rx(struct
rtl8169_private *tp)

 static void rtl_prepare_power_down(struct rtl8169_private *tp)  {
-     if (tp->dash_type != RTL_DASH_NONE)
+     if (tp->dash_enabled)
              return;

      if (tp->mac_version == RTL_GIGA_MAC_VER_32 || @@ -4869,7 +4882,7
@@ static int rtl8169_runtime_idle(struct device *device)  {
      struct rtl8169_private *tp = dev_get_drvdata(device);

-     if (tp->dash_type != RTL_DASH_NONE)
+     if (tp->dash_enabled)
              return -EBUSY;

      if (!netif_running(tp->dev) || !netif_carrier_ok(tp->dev)) @@
-4896,7 +4909,7 @@ static void rtl_shutdown(struct pci_dev *pdev)
      rtl_rar_set(tp, tp->dev->perm_addr);

      if (system_state == SYSTEM_POWER_OFF &&
-         tp->dash_type == RTL_DASH_NONE) {
+             !tp->dash_enabled) {
Since you have to repost, please maintain the correct indentation
above:

        if (system_state == SYSTEM_POWER_OFF &&
            !tp->dash_enabled) {

        ^^^^
spaces here.
I will correct the indentation. Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help