All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/3] r8169: smaller improvements to firmware handling
@ 2019-11-20 20:06 Heiner Kallweit
  2019-11-20 20:06 ` [PATCH net-next 1/3] r8169: change mdelay to msleep in rtl_fw_write_firmware Heiner Kallweit
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Heiner Kallweit @ 2019-11-20 20:06 UTC (permalink / raw)
  To: Realtek linux nic maintainers, David Miller; +Cc: netdev

This series includes few smaller improvements to firmware handling.

Heiner Kallweit (3):
  r8169: change mdelay to msleep in rtl_fw_write_firmware
  r8169: use macro FIELD_SIZEOF in definition of FW_OPCODE_SIZE
  r8169: add check for PHY_MDIO_CHG to rtl_nic_fw_data_ok

 drivers/net/ethernet/realtek/r8169_firmware.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

-- 
2.24.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH net-next 1/3] r8169: change mdelay to msleep in rtl_fw_write_firmware
  2019-11-20 20:06 [PATCH net-next 0/3] r8169: smaller improvements to firmware handling Heiner Kallweit
@ 2019-11-20 20:06 ` Heiner Kallweit
  2019-11-20 20:07 ` [PATCH net-next 2/3] r8169: use macro FIELD_SIZEOF in definition of FW_OPCODE_SIZE Heiner Kallweit
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Heiner Kallweit @ 2019-11-20 20:06 UTC (permalink / raw)
  To: Realtek linux nic maintainers, David Miller; +Cc: netdev

We're not in atomic context here, therefore switch to msleep.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
 drivers/net/ethernet/realtek/r8169_firmware.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/realtek/r8169_firmware.c b/drivers/net/ethernet/realtek/r8169_firmware.c
index 8f54a2c83..522415084 100644
--- a/drivers/net/ethernet/realtek/r8169_firmware.c
+++ b/drivers/net/ethernet/realtek/r8169_firmware.c
@@ -198,7 +198,7 @@ void rtl_fw_write_firmware(struct rtl8169_private *tp, struct rtl_fw *rtl_fw)
 			index += regno;
 			break;
 		case PHY_DELAY_MS:
-			mdelay(data);
+			msleep(data);
 			break;
 		}
 	}
-- 
2.24.0



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH net-next 2/3] r8169: use macro FIELD_SIZEOF in definition of FW_OPCODE_SIZE
  2019-11-20 20:06 [PATCH net-next 0/3] r8169: smaller improvements to firmware handling Heiner Kallweit
  2019-11-20 20:06 ` [PATCH net-next 1/3] r8169: change mdelay to msleep in rtl_fw_write_firmware Heiner Kallweit
@ 2019-11-20 20:07 ` Heiner Kallweit
  2019-11-20 20:08 ` [PATCH net-next 3/3] r8169: add check for PHY_MDIO_CHG to rtl_nic_fw_data_ok Heiner Kallweit
  2019-11-20 20:50 ` [PATCH net-next 0/3] r8169: smaller improvements to firmware handling David Miller
  3 siblings, 0 replies; 5+ messages in thread
From: Heiner Kallweit @ 2019-11-20 20:07 UTC (permalink / raw)
  To: Realtek linux nic maintainers, David Miller; +Cc: netdev

Using macro FIELD_SIZEOF makes this define easier understandable.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
 drivers/net/ethernet/realtek/r8169_firmware.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/realtek/r8169_firmware.c b/drivers/net/ethernet/realtek/r8169_firmware.c
index 522415084..927bb46b3 100644
--- a/drivers/net/ethernet/realtek/r8169_firmware.c
+++ b/drivers/net/ethernet/realtek/r8169_firmware.c
@@ -37,7 +37,7 @@ struct fw_info {
 	u8	chksum;
 } __packed;
 
-#define FW_OPCODE_SIZE	sizeof(typeof(*((struct rtl_fw_phy_action *)0)->code))
+#define FW_OPCODE_SIZE FIELD_SIZEOF(struct rtl_fw_phy_action, code[0])
 
 static bool rtl_fw_format_ok(struct rtl_fw *rtl_fw)
 {
-- 
2.24.0



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH net-next 3/3] r8169: add check for PHY_MDIO_CHG to rtl_nic_fw_data_ok
  2019-11-20 20:06 [PATCH net-next 0/3] r8169: smaller improvements to firmware handling Heiner Kallweit
  2019-11-20 20:06 ` [PATCH net-next 1/3] r8169: change mdelay to msleep in rtl_fw_write_firmware Heiner Kallweit
  2019-11-20 20:07 ` [PATCH net-next 2/3] r8169: use macro FIELD_SIZEOF in definition of FW_OPCODE_SIZE Heiner Kallweit
@ 2019-11-20 20:08 ` Heiner Kallweit
  2019-11-20 20:50 ` [PATCH net-next 0/3] r8169: smaller improvements to firmware handling David Miller
  3 siblings, 0 replies; 5+ messages in thread
From: Heiner Kallweit @ 2019-11-20 20:08 UTC (permalink / raw)
  To: Realtek linux nic maintainers, David Miller; +Cc: netdev

Only values 0 and 1 are currently defined as parameters for
PHY_MDIO_CHG. Instead of silently ignoring unknown values and
misinterpreting the firmware code let's explicitly check.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
 drivers/net/ethernet/realtek/r8169_firmware.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/realtek/r8169_firmware.c b/drivers/net/ethernet/realtek/r8169_firmware.c
index 927bb46b3..355cc810e 100644
--- a/drivers/net/ethernet/realtek/r8169_firmware.c
+++ b/drivers/net/ethernet/realtek/r8169_firmware.c
@@ -92,19 +92,24 @@ static bool rtl_fw_data_ok(struct rtl_fw *rtl_fw)
 
 	for (index = 0; index < pa->size; index++) {
 		u32 action = le32_to_cpu(pa->code[index]);
+		u32 val = action & 0x0000ffff;
 		u32 regno = (action & 0x0fff0000) >> 16;
 
 		switch (action >> 28) {
 		case PHY_READ:
 		case PHY_DATA_OR:
 		case PHY_DATA_AND:
-		case PHY_MDIO_CHG:
 		case PHY_CLEAR_READCOUNT:
 		case PHY_WRITE:
 		case PHY_WRITE_PREVIOUS:
 		case PHY_DELAY_MS:
 			break;
 
+		case PHY_MDIO_CHG:
+			if (val > 1)
+				goto out;
+			break;
+
 		case PHY_BJMPN:
 			if (regno > index)
 				goto out;
@@ -164,12 +169,12 @@ void rtl_fw_write_firmware(struct rtl8169_private *tp, struct rtl_fw *rtl_fw)
 			index -= (regno + 1);
 			break;
 		case PHY_MDIO_CHG:
-			if (data == 0) {
-				fw_write = rtl_fw->phy_write;
-				fw_read = rtl_fw->phy_read;
-			} else if (data == 1) {
+			if (data) {
 				fw_write = rtl_fw->mac_mcu_write;
 				fw_read = rtl_fw->mac_mcu_read;
+			} else {
+				fw_write = rtl_fw->phy_write;
+				fw_read = rtl_fw->phy_read;
 			}
 
 			break;
-- 
2.24.0



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH net-next 0/3] r8169: smaller improvements to firmware handling
  2019-11-20 20:06 [PATCH net-next 0/3] r8169: smaller improvements to firmware handling Heiner Kallweit
                   ` (2 preceding siblings ...)
  2019-11-20 20:08 ` [PATCH net-next 3/3] r8169: add check for PHY_MDIO_CHG to rtl_nic_fw_data_ok Heiner Kallweit
@ 2019-11-20 20:50 ` David Miller
  3 siblings, 0 replies; 5+ messages in thread
From: David Miller @ 2019-11-20 20:50 UTC (permalink / raw)
  To: hkallweit1; +Cc: nic_swsd, netdev

From: Heiner Kallweit <hkallweit1@gmail.com>
Date: Wed, 20 Nov 2019 21:06:08 +0100

> This series includes few smaller improvements to firmware handling.

Series applied, thanks Heiner.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-11-20 20:50 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-20 20:06 [PATCH net-next 0/3] r8169: smaller improvements to firmware handling Heiner Kallweit
2019-11-20 20:06 ` [PATCH net-next 1/3] r8169: change mdelay to msleep in rtl_fw_write_firmware Heiner Kallweit
2019-11-20 20:07 ` [PATCH net-next 2/3] r8169: use macro FIELD_SIZEOF in definition of FW_OPCODE_SIZE Heiner Kallweit
2019-11-20 20:08 ` [PATCH net-next 3/3] r8169: add check for PHY_MDIO_CHG to rtl_nic_fw_data_ok Heiner Kallweit
2019-11-20 20:50 ` [PATCH net-next 0/3] r8169: smaller improvements to firmware handling 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.