-LINUX_VERSION-5.15 = .70
-LINUX_KERNEL_HASH-5.15.70 = 1a7c26f0253407bb222786c8cbf2ee6235acebe8ea641fe0bc2360acce970d76
+LINUX_VERSION-5.15 = .71
+LINUX_KERNEL_HASH-5.15.71 = 5f5408138e016c0e029e015d98ceab86f4e6366c65cd611259dac808ab1d1e53
static void macb_usx_pcs_link_up(struct phylink_pcs *pcs, unsigned int mode,
--- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c
-@@ -940,7 +940,7 @@ static void enetc_pl_mac_validate(struct
+@@ -968,7 +968,7 @@ static void enetc_pl_mac_validate(struct
state->interface != PHY_INTERFACE_MODE_2500BASEX &&
state->interface != PHY_INTERFACE_MODE_USXGMII &&
!phy_interface_mode_is_rgmii(state->interface)) {
return;
}
-@@ -963,10 +963,8 @@ static void enetc_pl_mac_validate(struct
+@@ -991,10 +991,8 @@ static void enetc_pl_mac_validate(struct
phylink_set(mask, 2500baseX_Full);
}
} \
\
/* __*init sections */ \
-@@ -1018,6 +1028,8 @@
+@@ -1017,6 +1027,8 @@
#define COMMON_DISCARDS \
SANITIZER_DISCARDS \
#define MDIO_PHYXS_VEND_IF_STATUS 0xe812
#define MDIO_PHYXS_VEND_IF_STATUS_TYPE_MASK GENMASK(7, 3)
-@@ -372,6 +374,49 @@ static int aqr107_read_rate(struct phy_d
+@@ -381,6 +383,49 @@ static int aqr107_read_rate(struct phy_d
return 0;
}
static int aqr107_read_status(struct phy_device *phydev)
{
int val, ret;
-@@ -502,7 +547,7 @@ static void aqr107_chip_info(struct phy_
+@@ -511,7 +556,7 @@ static void aqr107_chip_info(struct phy_
build_id = FIELD_GET(VEND1_GLOBAL_RSVD_STAT1_FW_BUILD_ID, val);
prov_id = FIELD_GET(VEND1_GLOBAL_RSVD_STAT1_PROV_ID, val);
fw_major, fw_minor, build_id, prov_id);
}
-@@ -674,6 +719,24 @@ static struct phy_driver aqr_driver[] =
+@@ -719,6 +764,24 @@ static struct phy_driver aqr_driver[] =
.link_change_notify = aqr107_link_change_notify,
},
{
PHY_ID_MATCH_MODEL(PHY_ID_AQCS109),
.name = "Aquantia AQCS109",
.probe = aqr107_probe,
-@@ -699,6 +762,24 @@ static struct phy_driver aqr_driver[] =
+@@ -744,6 +807,24 @@ static struct phy_driver aqr_driver[] =
.handle_interrupt = aqr_handle_interrupt,
.read_status = aqr_read_status,
},
};
module_phy_driver(aqr_driver);
-@@ -709,8 +790,10 @@ static struct mdio_device_id __maybe_unu
+@@ -754,8 +835,10 @@ static struct mdio_device_id __maybe_unu
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR105) },
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR106) },
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR107) },
#define PHY_ID_AQR813 0x31c31cb2
#define MDIO_PHYXS_VEND_IF_STATUS 0xe812
-@@ -126,6 +128,29 @@
- #define VEND1_GLOBAL_INT_VEND_MASK_GLOBAL2 BIT(1)
- #define VEND1_GLOBAL_INT_VEND_MASK_GLOBAL3 BIT(0)
+@@ -135,6 +137,29 @@
+ #define AQR107_OP_IN_PROG_SLEEP 1000
+ #define AQR107_OP_IN_PROG_TIMEOUT 100000
+/* registers in MDIO_MMD_VEND1 region */
+#define AQUANTIA_VND1_GLOBAL_SC 0x000
struct aqr107_hw_stat {
const char *name;
int reg;
-@@ -257,6 +282,51 @@ static int aqr_config_aneg(struct phy_de
+@@ -266,6 +291,51 @@ static int aqr_config_aneg(struct phy_de
return genphy_c45_check_and_restart_aneg(phydev, changed);
}
static int aqr_config_intr(struct phy_device *phydev)
{
bool en = phydev->interrupts == PHY_INTERRUPT_ENABLED;
-@@ -780,6 +850,30 @@ static struct phy_driver aqr_driver[] =
+@@ -825,6 +895,30 @@ static struct phy_driver aqr_driver[] =
.get_stats = aqr107_get_stats,
.link_change_notify = aqr107_link_change_notify,
},
};
module_phy_driver(aqr_driver);
-@@ -790,9 +884,11 @@ static struct mdio_device_id __maybe_unu
+@@ -835,9 +929,11 @@ static struct mdio_device_id __maybe_unu
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR105) },
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR106) },
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR107) },
--- a/drivers/net/phy/aquantia_main.c
+++ b/drivers/net/phy/aquantia_main.c
-@@ -315,10 +315,16 @@ static int aqr_config_aneg_set_prot(stru
+@@ -324,10 +324,16 @@ static int aqr_config_aneg_set_prot(stru
phy_write_mmd(phydev, MDIO_MMD_VEND1, AQUANTIA_VND1_GSTART_RATE,
aquantia_syscfg[if_type].start_rate);
#define PHY_ID_AQR113C 0x31c31c12
#define PHY_ID_AQCS109 0x03a1b5c2
#define PHY_ID_AQR405 0x03a1b4b0
-@@ -869,6 +870,14 @@ static struct phy_driver aqr_driver[] =
+@@ -914,6 +915,14 @@ static struct phy_driver aqr_driver[] =
.get_stats = aqr107_get_stats,
},
{
PHY_ID_MATCH_MODEL(PHY_ID_AQR412),
.name = "Aquantia AQR412",
.probe = aqr107_probe,
-@@ -891,6 +900,7 @@ static struct mdio_device_id __maybe_unu
+@@ -936,6 +945,7 @@ static struct mdio_device_id __maybe_unu
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR106) },
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR107) },
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR112) },
#define PHY_ID_AQR113 0x31c31c40
#define PHY_ID_AQR113C 0x31c31c12
#define PHY_ID_AQCS109 0x03a1b5c2
-@@ -870,6 +872,30 @@ static struct phy_driver aqr_driver[] =
+@@ -915,6 +917,30 @@ static struct phy_driver aqr_driver[] =
.get_stats = aqr107_get_stats,
},
{
PHY_ID_MATCH_MODEL(PHY_ID_AQR113),
.name = "Aquantia AQR113",
.config_aneg = aqr_config_aneg,
-@@ -900,6 +926,8 @@ static struct mdio_device_id __maybe_unu
+@@ -945,6 +971,8 @@ static struct mdio_device_id __maybe_unu
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR106) },
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR107) },
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR112) },
#define QUECTEL_VENDOR_ID 0x2c7c
/* These Quectel products use Quectel's vendor ID */
-@@ -1140,6 +1142,11 @@ static const struct usb_device_id option
- { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG95, 0xff, 0, 0) },
+@@ -1143,6 +1145,11 @@ static const struct usb_device_id option
+ .driver_info = ZLP },
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
.driver_info = RSVD(4) },
+ /* Meiglink products using Qualcomm vendor ID */
+++ /dev/null
-From 53b5c5f559cc95fc676cb4cc9e5a8d9f0cb8f58c Mon Sep 17 00:00:00 2001
-Message-Id: <53b5c5f559cc95fc676cb4cc9e5a8d9f0cb8f58c.1659815468.git.chunkeey@gmail.com>
-From: Christian Lamparter <chunkeey@gmail.com>
-Date: Sat, 6 Aug 2022 21:22:01 +0200
-Subject: [PATCH v1 1/2] um: fix default console kernel parameter
-To: linux-um@lists.infradead.org
-Cc: Richard Weinberger <richard@nod.at>,
- Anton Ivanov <anton.ivanov@cambridgegreys.com>,
- Johannes Berg <johannes@sipsolutions.net>
-
-OpenWrt's UML with 5.15 was producing odd errors/warnings during preinit
-part of the early userspace portion:
-
-|[ 0.000000] Kernel command line: ubd0=root.img root=98:0 console=tty
-|[...]
-|[ 0.440000] random: jshn: uninitialized urandom read (4 bytes read)
-|[ 0.460000] random: jshn: uninitialized urandom read (4 bytes read)
-|/etc/preinit: line 47: can't create /dev/tty: No such device or address
-|/etc/preinit: line 48: can't create /dev/tty: No such device or address
-|/etc/preinit: line 58: can't open /dev/tty: No such device or address
-|[...] repeated many times
-
-That "/dev/tty" came from the command line (which is automatically
-added if no console= parameter was specified for the uml binary).
-
-The TLDP project tells the following about the /dev/tty:
-<https://tldp.org/HOWTO/Text-Terminal-HOWTO-7.html#ss7.3>
-| /dev/tty stands for the controlling terminal (if any) for the current
-| process.[...]
-| /dev/tty is something like a link to the actually terminal device[..]
-
-The "(if any)" is important here, since it's possible for processes to
-not have a controlling terminal.
-
-I think this was a simple typo and the author wanted tty0 there.
-
-CC: Thomas Meyer <thomas@m3y3r.de>
-Fixes: d7ffac33631b ("um: stdio_console: Make preferred console")
-Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
----
- arch/um/kernel/um_arch.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/arch/um/kernel/um_arch.c
-+++ b/arch/um/kernel/um_arch.c
-@@ -31,7 +31,7 @@
- #include <os.h>
-
- #define DEFAULT_COMMAND_LINE_ROOT "root=98:0"
--#define DEFAULT_COMMAND_LINE_CONSOLE "console=tty"
-+#define DEFAULT_COMMAND_LINE_CONSOLE "console=tty0"
-
- /* Changed in add_arg and setup_arch, which run before SMP is started */
- static char __initdata command_line[COMMAND_LINE_SIZE] = { 0 };