From: Hayes Wang <hayeswang@realtek.com> To: <netdev@vger.kernel.org> Cc: <nic_swsd@realtek.com>, <linux-kernel@vger.kernel.org>, <linux-usb@vger.kernel.org>, <pmalani@chromium.org>, <grundler@chromium.org>, Hayes Wang <hayeswang@realtek.com> Subject: [PATCH net 5/9] r8152: Disable PLA MCU clock speed down Date: Tue, 21 Jan 2020 20:40:31 +0800 [thread overview] Message-ID: <1394712342-15778-343-Taiwan-albertk@realtek.com> (raw) In-Reply-To: <1394712342-15778-338-Taiwan-albertk@realtek.com> PLA MCU clock speed down could only be enabled when tx/rx are disabled. Otherwise, the packet lost may occur. Signed-off-by: Hayes Wang <hayeswang@realtek.com> --- drivers/net/usb/r8152.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index 0a118fd83692..eabc7b43d48b 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -324,6 +324,7 @@ #define MAC_CLK_SPDWN_EN BIT(15) /* PLA_MAC_PWR_CTRL3 */ +#define PLA_MCU_SPDWN_EN BIT(14) #define PKT_AVAIL_SPDWN_EN 0x0100 #define SUSPEND_SPDWN_EN 0x0004 #define U1U2_SPDWN_EN 0x0002 @@ -5004,6 +5005,8 @@ static void rtl8153_down(struct r8152 *tp) static void rtl8153b_up(struct r8152 *tp) { + u32 ocp_data; + if (test_bit(RTL8152_UNPLUG, &tp->flags)) return; @@ -5014,17 +5017,27 @@ static void rtl8153b_up(struct r8152 *tp) r8153_first_init(tp); ocp_write_dword(tp, MCU_TYPE_USB, USB_RX_BUF_TH, RX_THR_B); + ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL3); + ocp_data &= ~PLA_MCU_SPDWN_EN; + ocp_write_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL3, ocp_data); + r8153_aldps_en(tp, true); r8153b_u1u2en(tp, true); } static void rtl8153b_down(struct r8152 *tp) { + u32 ocp_data; + if (test_bit(RTL8152_UNPLUG, &tp->flags)) { rtl_drop_queued_tx(tp); return; } + ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL3); + ocp_data |= PLA_MCU_SPDWN_EN; + ocp_write_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL3, ocp_data); + r8153b_u1u2en(tp, false); r8153_u2p3en(tp, false); r8153b_power_cut_en(tp, false); @@ -5520,6 +5533,10 @@ static void r8153b_init(struct r8152 *tp) ocp_data |= MAC_CLK_SPDWN_EN; ocp_write_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL2, ocp_data); + ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL3); + ocp_data &= ~PLA_MCU_SPDWN_EN; + ocp_write_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL3, ocp_data); + set_bit(GREEN_ETHERNET, &tp->flags); /* rx aggregation */ -- 2.21.0
WARNING: multiple messages have this Message-ID (diff)
From: Hayes Wang <hayeswang@realtek.com> To: <netdev@vger.kernel.org> Cc: <nic_swsd@realtek.com>, <linux-kernel@vger.kernel.org>, <linux-usb@vger.kernel.org>, Hayes Wang <hayeswang@realtek.com> Subject: [PATCH net-next 2/4] r8152: check if the pointer of the function exists Date: Fri, 19 Feb 2021 17:04:41 +0800 [thread overview] Message-ID: <1394712342-15778-343-Taiwan-albertk@realtek.com> (raw) Message-ID: <20210219090441.vUwzBuGPjT--6zRc_iLI8BurvX5JmGm1cv2DmbQfh5Q@z> (raw) In-Reply-To: <1394712342-15778-341-Taiwan-albertk@realtek.com> Return error code if autosuspend_en, eee_get, or eee_set don't exist. Signed-off-by: Hayes Wang <hayeswang@realtek.com> --- drivers/net/usb/r8152.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index 4bfee289aa6f..baa63ea2590a 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -5757,6 +5757,9 @@ static int rtl8152_runtime_suspend(struct r8152 *tp) struct net_device *netdev = tp->netdev; int ret = 0; + if (!tp->rtl_ops.autosuspend_en) + return -EBUSY; + set_bit(SELECTIVE_SUSPEND, &tp->flags); smp_mb__after_atomic(); @@ -6156,6 +6159,11 @@ rtl_ethtool_get_eee(struct net_device *net, struct ethtool_eee *edata) struct r8152 *tp = netdev_priv(net); int ret; + if (!tp->rtl_ops.eee_get) { + ret = -EOPNOTSUPP; + goto out; + } + ret = usb_autopm_get_interface(tp->intf); if (ret < 0) goto out; @@ -6178,6 +6186,11 @@ rtl_ethtool_set_eee(struct net_device *net, struct ethtool_eee *edata) struct r8152 *tp = netdev_priv(net); int ret; + if (!tp->rtl_ops.eee_set) { + ret = -EOPNOTSUPP; + goto out; + } + ret = usb_autopm_get_interface(tp->intf); if (ret < 0) goto out; -- 2.26.2
next prev parent reply other threads:[~2020-01-21 12:43 UTC|newest] Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-01-21 12:40 [PATCH net 0/9] r8152: serial fixes Hayes Wang 2020-01-21 12:40 ` [PATCH net 1/9] r8152: fix runtime resume for linking change Hayes Wang 2020-01-22 9:47 ` Sergei Shtylyov 2020-01-21 12:40 ` [PATCH net 2/9] r8152: reset flow control patch when linking on for RTL8153B Hayes Wang 2020-01-21 12:54 ` David Miller 2020-01-21 13:01 ` Joe Perches 2020-01-21 13:19 ` Hayes Wang 2020-01-21 12:40 ` [PATCH net 3/9] r8152: get default setting of WOL before initializing Hayes Wang 2021-02-19 9:04 ` [PATCH net-next 0/4] r8152: minor adjustments Hayes Wang 2021-02-23 20:40 ` patchwork-bot+netdevbpf 2020-01-21 12:40 ` [PATCH net 4/9] r8152: disable U2P3 for RTL8153B Hayes Wang 2021-02-19 9:04 ` [PATCH net-next 1/4] r8152: enable U1/U2 for USB_SPEED_SUPER Hayes Wang 2020-01-21 12:40 ` Hayes Wang [this message] 2021-02-19 9:04 ` [PATCH net-next 2/4] r8152: check if the pointer of the function exists Hayes Wang 2020-01-21 12:40 ` [PATCH net 6/9] r8152: disable test IO for RTL8153B Hayes Wang 2021-02-19 9:04 ` [PATCH net-next 3/4] r8152: replace netif_err with dev_err Hayes Wang 2020-01-21 12:40 ` [PATCH net 7/9] r8152: don't enable U1U2 with USB_SPEED_HIGH for RTL8153B Hayes Wang 2021-02-19 9:04 ` [PATCH net-next 4/4] r8152: spilt rtl_set_eee_plus and r8153b_green_en Hayes Wang 2020-01-21 12:40 ` [PATCH net 8/9] r8152: avoid the MCU to clear the lanwake Hayes Wang 2021-02-19 9:38 ` [PATCH net] r8152: move r8153_mac_clk_spd Hayes Wang 2021-02-19 18:22 ` Jakub Kicinski 2021-02-22 6:19 ` Hayes Wang 2020-01-21 12:40 ` [PATCH net 9/9] r8152: disable DelayPhyPwrChg Hayes Wang 2020-01-22 7:02 ` Grant Grundler 2020-01-22 7:50 ` Hayes Wang 2021-03-03 8:39 ` [PATCH net] Revert "r8152: adjust the settings about MAC clock speed down for RTL8153" Hayes Wang 2021-03-04 1:00 ` patchwork-bot+netdevbpf 2020-01-22 1:41 ` [PATCH net v2 0/9] r8152: serial fixes Hayes Wang 2020-01-22 1:41 ` [PATCH net v2 1/9] r8152: fix runtime resume for linking change Hayes Wang 2021-03-19 7:37 ` [PATCH net] r8152: limit the RX buffer size of RTL8153A for USB 2.0 Hayes Wang 2020-01-22 1:41 ` [PATCH net v2 2/9] r8152: reset flow control patch when linking on for RTL8153B Hayes Wang 2021-04-16 8:04 ` [PATCH net-next 0/6] r8152: support new chips Hayes Wang 2021-04-16 22:40 ` patchwork-bot+netdevbpf 2020-01-22 1:41 ` [PATCH net v2 3/9] r8152: get default setting of WOL before initializing Hayes Wang 2021-04-16 8:04 ` [PATCH net-next 1/6] r8152: set inter fram gap time depending on speed Hayes Wang 2020-01-22 1:41 ` [PATCH net v2 4/9] r8152: disable U2P3 for RTL8153B Hayes Wang 2021-04-16 8:04 ` [PATCH net-next 2/6] r8152: adjust rtl8152_check_firmware function Hayes Wang 2020-01-22 1:41 ` [PATCH net v2 5/9] r8152: Disable PLA MCU clock speed down Hayes Wang 2021-04-16 8:04 ` [PATCH net-next 3/6] r8152: add help function to change mtu Hayes Wang 2020-01-22 1:41 ` [PATCH net v2 6/9] r8152: disable test IO for RTL8153B Hayes Wang 2021-04-16 8:04 ` [PATCH net-next 4/6] r8152: support new chips Hayes Wang 2021-04-16 21:50 ` Jakub Kicinski 2021-04-20 7:00 ` Hayes Wang 2021-04-20 18:34 ` Jakub Kicinski 2021-04-21 2:23 ` Hayes Wang 2020-01-22 1:41 ` [PATCH net v2 7/9] r8152: don't enable U1U2 with USB_SPEED_HIGH for RTL8153B Hayes Wang 2021-04-16 8:04 ` [PATCH net-next 5/6] r8152: support PHY firmware for RTL8156 series Hayes Wang 2020-01-22 1:41 ` [PATCH net v2 8/9] r8152: avoid the MCU to clear the lanwake Hayes Wang 2021-04-16 8:04 ` [PATCH net-next 6/6] r8152: search the configuration of vendor mode Hayes Wang 2020-01-22 1:41 ` [PATCH net v2 9/9] r8152: disable DelayPhyPwrChg Hayes Wang 2021-03-05 9:34 ` [PATCH net] r8169: fix r8168fp_adjust_ocp_cmd function Hayes Wang 2021-03-05 11:48 ` Heiner Kallweit 2021-03-05 21:10 ` patchwork-bot+netdevbpf 2020-01-22 8:02 ` [PATCH net v3 0/9] r8152: serial fixes Hayes Wang 2020-01-22 8:02 ` [PATCH net v3 1/9] r8152: fix runtime resume for linking change Hayes Wang 2021-04-23 9:44 ` [PATCH net-next 0/2] r8152: adjust REALTEK_USB_DEVICE Hayes Wang 2021-04-23 21:00 ` patchwork-bot+netdevbpf 2020-01-22 8:02 ` [PATCH net v3 2/9] r8152: reset flow control patch when linking on for RTL8153B Hayes Wang 2021-04-23 9:44 ` [PATCH net-next 1/2] r8152: remove NCM mode from REALTEK_USB_DEVICE macro Hayes Wang 2020-01-22 8:02 ` [PATCH net v3 3/9] r8152: get default setting of WOL before initializing Hayes Wang 2021-04-23 9:44 ` [PATCH net-next 2/2] r8152: redefine REALTEK_USB_DEVICE macro Hayes Wang 2020-01-22 8:02 ` [PATCH net v3 4/9] r8152: disable U2P3 for RTL8153B Hayes Wang 2021-04-24 6:09 ` [PATCH net-next] r8152: remove some bit operations Hayes Wang 2021-04-26 1:30 ` patchwork-bot+netdevbpf 2020-01-22 8:02 ` [PATCH net v3 5/9] r8152: Disable PLA MCU clock speed down Hayes Wang 2021-05-21 9:07 ` [PATCH net] r8152: check the informaton of the device Hayes Wang 2021-05-21 9:42 ` Greg KH 2021-05-22 3:13 ` Hayes Wang 2020-01-22 8:02 ` [PATCH net v3 6/9] r8152: disable test IO for RTL8153B Hayes Wang 2021-05-22 5:24 ` [PATCH net v2] r8152: check the informaton of the device Hayes Wang 2021-05-22 7:32 ` Greg KH 2021-05-22 8:07 ` Johan Hovold 2021-05-24 1:49 ` Hayes Wang 2021-05-24 7:44 ` Johan Hovold 2020-01-22 8:02 ` [PATCH net v3 7/9] r8152: don't enable U1U2 with USB_SPEED_HIGH for RTL8153B Hayes Wang 2021-05-24 6:49 ` [PATCH net v3] r8152: check the informaton of the device Hayes Wang 2021-05-24 8:00 ` Johan Hovold 2021-05-24 8:54 ` Hayes Wang 2021-05-24 9:13 ` Johan Hovold 2021-05-24 20:20 ` patchwork-bot+netdevbpf 2020-01-22 8:02 ` [PATCH net v3 8/9] r8152: avoid the MCU to clear the lanwake Hayes Wang 2021-06-01 7:37 ` [PATCH net-next] r8152: support pauseparam of ethtool_ops Hayes Wang 2021-06-01 22:30 ` patchwork-bot+netdevbpf 2020-01-22 8:02 ` [PATCH net v3 9/9] r8152: disable DelayPhyPwrChg Hayes Wang 2021-06-17 10:00 ` [PATCH net-next] r8152: store the information of the pipes Hayes Wang 2021-06-17 19:20 ` patchwork-bot+netdevbpf 2020-01-23 10:21 ` [PATCH net v3 0/9] r8152: serial fixes David Miller 2021-04-22 8:48 ` [PATCH net-next] r8152: replace return with break for ram code speedup mode timeout Hayes Wang 2021-04-22 21:20 ` patchwork-bot+netdevbpf
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1394712342-15778-343-Taiwan-albertk@realtek.com \ --to=hayeswang@realtek.com \ --cc=grundler@chromium.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-usb@vger.kernel.org \ --cc=netdev@vger.kernel.org \ --cc=nic_swsd@realtek.com \ --cc=pmalani@chromium.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).