Merge Mainline
This commit is contained in:
commit
102ed1c668
@ -6,14 +6,14 @@ ifdef CONFIG_TESTING_KERNEL
|
||||
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
||||
endif
|
||||
|
||||
LINUX_VERSION-4.9 = .230
|
||||
LINUX_VERSION-4.14 = .188
|
||||
LINUX_VERSION-4.19 = .133
|
||||
LINUX_VERSION-4.9 = .231
|
||||
LINUX_VERSION-4.14 = .189
|
||||
LINUX_VERSION-4.19 = .134
|
||||
LINUX_VERSION-5.4 = .53
|
||||
|
||||
LINUX_KERNEL_HASH-4.9.230 = d5ba9256e3ebf1cead127f323acc8124965d89cc88e75eca377fcca3bd6c037c
|
||||
LINUX_KERNEL_HASH-4.14.188 = 766fe01387b1d1b7bd37ca45a5048cdad13e3a51c6c43746dbb657a0ba67064b
|
||||
LINUX_KERNEL_HASH-4.19.133 = b933e5fe7d09af623809b96fd26119381e71c8994af5f9f7a644b78ede77dbc4
|
||||
LINUX_KERNEL_HASH-4.9.231 = 4f843ba02fda5217942225afdce020d5f2f9b24f4210bf71a7c4fb63ceece8eb
|
||||
LINUX_KERNEL_HASH-4.14.189 = a7e521457bc553848762c201d7ec5015b043c9dc447db2553eb193701634f9e1
|
||||
LINUX_KERNEL_HASH-4.19.134 = 7d7da84f65d31546911283c36478b548bc78c4139061a7a0241feca8318e3a6f
|
||||
LINUX_KERNEL_HASH-5.4.53 = faa7b6f99220d5726f0eaee74a6394f0a3b89be1a75254f3804630211f3d6d21
|
||||
|
||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||
|
||||
@ -8,14 +8,14 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=v2ray-plugin
|
||||
PKG_VERSION:=1.3.3
|
||||
PKG_VERSION:=1.3.4
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)?
|
||||
PKG_HASH:=913c6e1b6f8c57bca07685eb854ff0e00de4fd09f42b88c3b399880934410cc1
|
||||
PKG_HASH:=59f91575953e8289d0f6d007836eab169b8ee62e44b31b1a3eef61525db1e69c
|
||||
|
||||
PKG_LICENSE:=MIT
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
@ -13,7 +13,7 @@ FEATURES:=usbgadget
|
||||
CPU_TYPE:=24kc
|
||||
SUBTARGETS:=generic tiny nand mikrotik
|
||||
|
||||
KERNEL_PATCHVER:=4.14
|
||||
KERNEL_PATCHVER:=4.9
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
|
||||
|
||||
@ -578,7 +578,7 @@
|
||||
#include <net/if_inet6.h>
|
||||
--- a/include/net/inet_ecn.h
|
||||
+++ b/include/net/inet_ecn.h
|
||||
@@ -125,9 +125,9 @@ static inline int IP6_ECN_set_ce(struct
|
||||
@@ -126,9 +126,9 @@ static inline int IP6_ECN_set_ce(struct
|
||||
if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph)))
|
||||
return 0;
|
||||
|
||||
|
||||
@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
#define USB_VENDOR_ID_BELKIN 0x050d
|
||||
#define USB_DEVICE_ID_FLIP_KVM 0x3201
|
||||
|
||||
@@ -1205,6 +1208,9 @@
|
||||
@@ -1208,6 +1211,9 @@
|
||||
#define USB_VENDOR_ID_XAT 0x2505
|
||||
#define USB_DEVICE_ID_XAT_CSR 0x0220
|
||||
|
||||
@ -53,7 +53,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL },
|
||||
@@ -177,6 +178,7 @@ static const struct hid_device_id hid_qu
|
||||
@@ -178,6 +179,7 @@ static const struct hid_device_id hid_qu
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_WALTOP, USB_DEVICE_ID_WALTOP_SIRIUS_BATTERY_FREE_TABLET), HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD2, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
|
||||
|
||||
@ -65,7 +65,7 @@ Cc: Kir Kolyshkin <kir@openvz.org>
|
||||
* Before updating sk_refcnt, we must commit prior changes to memory
|
||||
--- a/net/ipv4/tcp_output.c
|
||||
+++ b/net/ipv4/tcp_output.c
|
||||
@@ -1697,7 +1697,7 @@ u32 tcp_tso_autosize(const struct sock *
|
||||
@@ -1699,7 +1699,7 @@ u32 tcp_tso_autosize(const struct sock *
|
||||
{
|
||||
u32 bytes, segs;
|
||||
|
||||
@ -74,7 +74,7 @@ Cc: Kir Kolyshkin <kir@openvz.org>
|
||||
sk->sk_gso_max_size - 1 - MAX_TCP_HEADER);
|
||||
|
||||
/* Goal is to send at least one packet per ms,
|
||||
@@ -2215,7 +2215,7 @@ static bool tcp_small_queue_check(struct
|
||||
@@ -2217,7 +2217,7 @@ static bool tcp_small_queue_check(struct
|
||||
{
|
||||
unsigned int limit;
|
||||
|
||||
|
||||
@ -30,7 +30,7 @@ Signed-off-by: Johan Hovold <johan@kernel.org>
|
||||
|
||||
--- a/drivers/usb/serial/option.c
|
||||
+++ b/drivers/usb/serial/option.c
|
||||
@@ -1987,7 +1987,8 @@ static const struct usb_device_id option
|
||||
@@ -1990,7 +1990,8 @@ static const struct usb_device_id option
|
||||
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) }, /* D-Link DWM-156 (variant) */
|
||||
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
|
||||
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },
|
||||
|
||||
@ -67,7 +67,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
||||
+ bool rev = !skb->_nfct, upd = false;
|
||||
+ __be32 ip;
|
||||
|
||||
if (tc_skb_protocol(skb) != htons(ETH_P_IP))
|
||||
if (skb_protocol(skb, true) != htons(ETH_P_IP))
|
||||
- return;
|
||||
+ return false;
|
||||
|
||||
|
||||
@ -51,7 +51,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
.link_down = phylink_sfp_link_down,
|
||||
--- a/drivers/net/phy/sfp-bus.c
|
||||
+++ b/drivers/net/phy/sfp-bus.c
|
||||
@@ -350,7 +350,7 @@ static int sfp_register_bus(struct sfp_b
|
||||
@@ -425,7 +425,7 @@ static int sfp_register_bus(struct sfp_b
|
||||
bus->socket_ops->attach(bus->sfp);
|
||||
if (bus->started)
|
||||
bus->socket_ops->start(bus->sfp);
|
||||
@ -60,7 +60,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
bus->registered = true;
|
||||
return 0;
|
||||
}
|
||||
@@ -359,8 +359,8 @@ static void sfp_unregister_bus(struct sf
|
||||
@@ -434,8 +434,8 @@ static void sfp_unregister_bus(struct sf
|
||||
{
|
||||
const struct sfp_upstream_ops *ops = bus->upstream_ops;
|
||||
|
||||
|
||||
@ -30,7 +30,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
|
||||
--- a/drivers/net/phy/sfp-bus.c
|
||||
+++ b/drivers/net/phy/sfp-bus.c
|
||||
@@ -23,7 +23,6 @@ struct sfp_bus {
|
||||
@@ -30,7 +30,6 @@ struct sfp_bus {
|
||||
|
||||
const struct sfp_upstream_ops *upstream_ops;
|
||||
void *upstream;
|
||||
@ -38,7 +38,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
struct phy_device *phydev;
|
||||
|
||||
bool registered;
|
||||
@@ -442,13 +441,11 @@ static void sfp_upstream_clear(struct sf
|
||||
@@ -517,13 +516,11 @@ static void sfp_upstream_clear(struct sf
|
||||
{
|
||||
bus->upstream_ops = NULL;
|
||||
bus->upstream = NULL;
|
||||
@ -52,7 +52,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
* @upstream: the upstream private data
|
||||
* @ops: the upstream's &struct sfp_upstream_ops
|
||||
*
|
||||
@@ -459,7 +456,7 @@ static void sfp_upstream_clear(struct sf
|
||||
@@ -534,7 +531,7 @@ static void sfp_upstream_clear(struct sf
|
||||
* On error, returns %NULL.
|
||||
*/
|
||||
struct sfp_bus *sfp_register_upstream(struct fwnode_handle *fwnode,
|
||||
@ -61,7 +61,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
const struct sfp_upstream_ops *ops)
|
||||
{
|
||||
struct sfp_bus *bus = sfp_bus_get(fwnode);
|
||||
@@ -469,7 +466,6 @@ struct sfp_bus *sfp_register_upstream(st
|
||||
@@ -544,7 +541,6 @@ struct sfp_bus *sfp_register_upstream(st
|
||||
rtnl_lock();
|
||||
bus->upstream_ops = ops;
|
||||
bus->upstream = upstream;
|
||||
@ -69,7 +69,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
|
||||
if (bus->sfp) {
|
||||
ret = sfp_register_bus(bus);
|
||||
@@ -591,7 +587,7 @@ struct sfp_bus *sfp_register_socket(stru
|
||||
@@ -670,7 +666,7 @@ struct sfp_bus *sfp_register_socket(stru
|
||||
bus->sfp = sfp;
|
||||
bus->socket_ops = ops;
|
||||
|
||||
@ -78,7 +78,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
ret = sfp_register_bus(bus);
|
||||
if (ret)
|
||||
sfp_socket_clear(bus);
|
||||
@@ -611,7 +607,7 @@ EXPORT_SYMBOL_GPL(sfp_register_socket);
|
||||
@@ -690,7 +686,7 @@ EXPORT_SYMBOL_GPL(sfp_register_socket);
|
||||
void sfp_unregister_socket(struct sfp_bus *bus)
|
||||
{
|
||||
rtnl_lock();
|
||||
|
||||
@ -59,7 +59,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
#include <linux/rtnetlink.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
@@ -444,45 +445,63 @@ static void sfp_upstream_clear(struct sf
|
||||
@@ -519,45 +520,63 @@ static void sfp_upstream_clear(struct sf
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -53,7 +53,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
|
||||
--- a/drivers/net/phy/sfp-bus.c
|
||||
+++ b/drivers/net/phy/sfp-bus.c
|
||||
@@ -328,10 +328,19 @@ static void sfp_bus_release(struct kref
|
||||
@@ -403,10 +403,19 @@ static void sfp_bus_release(struct kref
|
||||
kfree(bus);
|
||||
}
|
||||
|
||||
@ -75,7 +75,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
|
||||
static int sfp_register_bus(struct sfp_bus *bus)
|
||||
{
|
||||
@@ -347,11 +356,11 @@ static int sfp_register_bus(struct sfp_b
|
||||
@@ -422,11 +431,11 @@ static int sfp_register_bus(struct sfp_b
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
@ -88,7 +88,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -445,13 +454,12 @@ static void sfp_upstream_clear(struct sf
|
||||
@@ -520,13 +529,12 @@ static void sfp_upstream_clear(struct sf
|
||||
}
|
||||
|
||||
/**
|
||||
@ -106,7 +106,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
*
|
||||
* Returns: on success, a pointer to the sfp_bus structure,
|
||||
* %NULL if no SFP is specified,
|
||||
@@ -461,9 +469,7 @@ static void sfp_upstream_clear(struct sf
|
||||
@@ -536,9 +544,7 @@ static void sfp_upstream_clear(struct sf
|
||||
* %-ENOMEM if we failed to allocate the bus.
|
||||
* an error from the upstream's connect_phy() method.
|
||||
*/
|
||||
@ -117,7 +117,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
{
|
||||
struct fwnode_reference_args ref;
|
||||
struct sfp_bus *bus;
|
||||
@@ -481,7 +487,39 @@ struct sfp_bus *sfp_register_upstream_no
|
||||
@@ -556,7 +562,39 @@ struct sfp_bus *sfp_register_upstream_no
|
||||
if (!bus)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
@ -157,7 +157,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
bus->upstream_ops = ops;
|
||||
bus->upstream = upstream;
|
||||
|
||||
@@ -494,33 +532,33 @@ struct sfp_bus *sfp_register_upstream_no
|
||||
@@ -569,33 +607,33 @@ struct sfp_bus *sfp_register_upstream_no
|
||||
}
|
||||
rtnl_unlock();
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
|
||||
--- a/drivers/net/phy/sfp-bus.c
|
||||
+++ b/drivers/net/phy/sfp-bus.c
|
||||
@@ -330,7 +330,7 @@ static void sfp_bus_release(struct kref
|
||||
@@ -405,7 +405,7 @@ static void sfp_bus_release(struct kref
|
||||
|
||||
/**
|
||||
* sfp_bus_put() - put a reference on the &struct sfp_bus
|
||||
|
||||
@ -1,111 +0,0 @@
|
||||
From 8df5dd55cef48c0769379e04dbc085a899b106d4 Mon Sep 17 00:00:00 2001
|
||||
From: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
Date: Fri, 8 Mar 2019 14:02:25 +0000
|
||||
Subject: [PATCH 640/660] net: sfp: add support for module quirks
|
||||
|
||||
Add support for applying module quirks to the list of supported
|
||||
ethtool link modes.
|
||||
|
||||
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
---
|
||||
drivers/net/phy/sfp-bus.c | 54 +++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 54 insertions(+)
|
||||
|
||||
--- a/drivers/net/phy/sfp-bus.c
|
||||
+++ b/drivers/net/phy/sfp-bus.c
|
||||
@@ -9,6 +9,12 @@
|
||||
|
||||
#include "sfp.h"
|
||||
|
||||
+struct sfp_quirk {
|
||||
+ const char *vendor;
|
||||
+ const char *part;
|
||||
+ void (*modes)(const struct sfp_eeprom_id *id, unsigned long *modes);
|
||||
+};
|
||||
+
|
||||
/**
|
||||
* struct sfp_bus - internal representation of a sfp bus
|
||||
*/
|
||||
@@ -21,6 +27,7 @@ struct sfp_bus {
|
||||
const struct sfp_socket_ops *socket_ops;
|
||||
struct device *sfp_dev;
|
||||
struct sfp *sfp;
|
||||
+ const struct sfp_quirk *sfp_quirk;
|
||||
|
||||
const struct sfp_upstream_ops *upstream_ops;
|
||||
void *upstream;
|
||||
@@ -30,6 +37,46 @@ struct sfp_bus {
|
||||
bool started;
|
||||
};
|
||||
|
||||
+static const struct sfp_quirk sfp_quirks[] = {
|
||||
+};
|
||||
+
|
||||
+static size_t sfp_strlen(const char *str, size_t maxlen)
|
||||
+{
|
||||
+ size_t size, i;
|
||||
+
|
||||
+ /* Trailing characters should be filled with space chars */
|
||||
+ for (i = 0, size = 0; i < maxlen; i++)
|
||||
+ if (str[i] != ' ')
|
||||
+ size = i + 1;
|
||||
+
|
||||
+ return size;
|
||||
+}
|
||||
+
|
||||
+static bool sfp_match(const char *qs, const char *str, size_t len)
|
||||
+{
|
||||
+ if (!qs)
|
||||
+ return true;
|
||||
+ if (strlen(qs) != len)
|
||||
+ return false;
|
||||
+ return !strncmp(qs, str, len);
|
||||
+}
|
||||
+
|
||||
+static const struct sfp_quirk *sfp_lookup_quirk(const struct sfp_eeprom_id *id)
|
||||
+{
|
||||
+ const struct sfp_quirk *q;
|
||||
+ unsigned int i;
|
||||
+ size_t vs, ps;
|
||||
+
|
||||
+ vs = sfp_strlen(id->base.vendor_name, ARRAY_SIZE(id->base.vendor_name));
|
||||
+ ps = sfp_strlen(id->base.vendor_pn, ARRAY_SIZE(id->base.vendor_pn));
|
||||
+
|
||||
+ for (i = 0, q = sfp_quirks; i < ARRAY_SIZE(sfp_quirks); i++, q++)
|
||||
+ if (sfp_match(q->vendor, id->base.vendor_name, vs) &&
|
||||
+ sfp_match(q->part, id->base.vendor_pn, ps))
|
||||
+ return q;
|
||||
+
|
||||
+ return NULL;
|
||||
+}
|
||||
/**
|
||||
* sfp_parse_port() - Parse the EEPROM base ID, setting the port type
|
||||
* @bus: a pointer to the &struct sfp_bus structure for the sfp module
|
||||
@@ -233,6 +280,9 @@ void sfp_parse_support(struct sfp_bus *b
|
||||
phylink_set(modes, 1000baseX_Full);
|
||||
}
|
||||
|
||||
+ if (bus->sfp_quirk)
|
||||
+ bus->sfp_quirk->modes(id, modes);
|
||||
+
|
||||
bitmap_or(support, support, modes, __ETHTOOL_LINK_MODE_MASK_NBITS);
|
||||
|
||||
phylink_set(support, Autoneg);
|
||||
@@ -609,6 +659,8 @@ int sfp_module_insert(struct sfp_bus *bu
|
||||
const struct sfp_upstream_ops *ops = sfp_get_upstream_ops(bus);
|
||||
int ret = 0;
|
||||
|
||||
+ bus->sfp_quirk = sfp_lookup_quirk(id);
|
||||
+
|
||||
if (ops && ops->module_insert)
|
||||
ret = ops->module_insert(bus->upstream, id);
|
||||
|
||||
@@ -622,6 +674,8 @@ void sfp_module_remove(struct sfp_bus *b
|
||||
|
||||
if (ops && ops->module_remove)
|
||||
ops->module_remove(bus->upstream);
|
||||
+
|
||||
+ bus->sfp_quirk = NULL;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(sfp_module_remove);
|
||||
|
||||
@ -1,52 +0,0 @@
|
||||
From ecaa542cfed078dbc356dadff0bad4b6a8e704a0 Mon Sep 17 00:00:00 2001
|
||||
From: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
Date: Fri, 17 May 2019 10:14:45 +0100
|
||||
Subject: [PATCH 641/660] net: sfp: add some quirks for GPON modules
|
||||
|
||||
Marc Micalizzi reports that Huawei MA5671A and Alcatel/Lucent G-010S-P
|
||||
modules are capable of 2500base-X, but incorrectly report their
|
||||
capabilities in the EEPROM. It seems rather common that GPON modules
|
||||
mis-report.
|
||||
|
||||
Let's fix these modules by adding some quirks.
|
||||
|
||||
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
---
|
||||
drivers/net/phy/sfp-bus.c | 25 +++++++++++++++++++++++++
|
||||
1 file changed, 25 insertions(+)
|
||||
|
||||
--- a/drivers/net/phy/sfp-bus.c
|
||||
+++ b/drivers/net/phy/sfp-bus.c
|
||||
@@ -37,7 +37,32 @@ struct sfp_bus {
|
||||
bool started;
|
||||
};
|
||||
|
||||
+static void sfp_quirk_2500basex(const struct sfp_eeprom_id *id,
|
||||
+ unsigned long *modes)
|
||||
+{
|
||||
+ phylink_set(modes, 2500baseX_Full);
|
||||
+}
|
||||
+
|
||||
static const struct sfp_quirk sfp_quirks[] = {
|
||||
+ {
|
||||
+ // Alcatel Lucent G-010S-P can operate at 2500base-X, but
|
||||
+ // incorrectly report 2500MBd NRZ in their EEPROM
|
||||
+ .vendor = "ALCATELLUCENT",
|
||||
+ .part = "G010SP",
|
||||
+ .modes = sfp_quirk_2500basex,
|
||||
+ }, {
|
||||
+ // Alcatel Lucent G-010S-A can operate at 2500base-X, but
|
||||
+ // report 3.2GBd NRZ in their EEPROM
|
||||
+ .vendor = "ALCATELLUCENT",
|
||||
+ .part = "3FE46541AA",
|
||||
+ .modes = sfp_quirk_2500basex,
|
||||
+ }, {
|
||||
+ // Huawei MA5671A can operate at 2500base-X, but report 1.2GBd
|
||||
+ // NRZ in their EEPROM
|
||||
+ .vendor = "HUAWEI",
|
||||
+ .part = "MA5671A",
|
||||
+ .modes = sfp_quirk_2500basex,
|
||||
+ },
|
||||
};
|
||||
|
||||
static size_t sfp_strlen(const char *str, size_t maxlen)
|
||||
@ -45,7 +45,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
return (struct tcp_sock *)sk;
|
||||
--- a/net/ipv4/tcp_output.c
|
||||
+++ b/net/ipv4/tcp_output.c
|
||||
@@ -790,10 +790,10 @@ static void tcp_tasklet_func(unsigned lo
|
||||
@@ -792,10 +792,10 @@ static void tcp_tasklet_func(unsigned lo
|
||||
}
|
||||
}
|
||||
|
||||
@ -60,7 +60,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
/**
|
||||
* tcp_release_cb - tcp release_sock() callback
|
||||
* @sk: socket
|
||||
@@ -814,7 +814,7 @@ void tcp_release_cb(struct sock *sk)
|
||||
@@ -816,7 +816,7 @@ void tcp_release_cb(struct sock *sk)
|
||||
nflags = flags & ~TCP_DEFERRED_ALL;
|
||||
} while (cmpxchg(&tp->tsq_flags, flags, nflags) != flags);
|
||||
|
||||
@ -69,7 +69,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
tcp_tsq_handler(sk);
|
||||
|
||||
/* Here begins the tricky part :
|
||||
@@ -828,15 +828,15 @@ void tcp_release_cb(struct sock *sk)
|
||||
@@ -830,15 +830,15 @@ void tcp_release_cb(struct sock *sk)
|
||||
*/
|
||||
sock_release_ownership(sk);
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/net/ipv4/tcp_output.c
|
||||
+++ b/net/ipv4/tcp_output.c
|
||||
@@ -866,6 +866,7 @@ void tcp_wfree(struct sk_buff *skb)
|
||||
@@ -868,6 +868,7 @@ void tcp_wfree(struct sk_buff *skb)
|
||||
{
|
||||
struct sock *sk = skb->sk;
|
||||
struct tcp_sock *tp = tcp_sk(sk);
|
||||
@ -25,7 +25,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
int wmem;
|
||||
|
||||
/* Keep one reference on sk_wmem_alloc.
|
||||
@@ -883,11 +884,17 @@ void tcp_wfree(struct sk_buff *skb)
|
||||
@@ -885,11 +886,17 @@ void tcp_wfree(struct sk_buff *skb)
|
||||
if (wmem >= SKB_TRUESIZE(1) && this_cpu_ksoftirqd() == current)
|
||||
goto out;
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/net/ipv4/tcp_output.c
|
||||
+++ b/net/ipv4/tcp_output.c
|
||||
@@ -773,19 +773,19 @@ static void tcp_tasklet_func(unsigned lo
|
||||
@@ -775,19 +775,19 @@ static void tcp_tasklet_func(unsigned lo
|
||||
list_for_each_safe(q, n, &list) {
|
||||
tp = list_entry(q, struct tcp_sock, tsq_node);
|
||||
list_del(&tp->tsq_node);
|
||||
@ -51,7 +51,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
sk_free(sk);
|
||||
}
|
||||
}
|
||||
@@ -890,7 +890,7 @@ void tcp_wfree(struct sk_buff *skb)
|
||||
@@ -892,7 +892,7 @@ void tcp_wfree(struct sk_buff *skb)
|
||||
if (!(oval & TSQF_THROTTLED) || (oval & TSQF_QUEUED))
|
||||
goto out;
|
||||
|
||||
@ -60,7 +60,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
nval = cmpxchg(&tp->tsq_flags, oval, nval);
|
||||
if (nval != oval)
|
||||
continue;
|
||||
@@ -2237,6 +2237,8 @@ static bool tcp_write_xmit(struct sock *
|
||||
@@ -2239,6 +2239,8 @@ static bool tcp_write_xmit(struct sock *
|
||||
unlikely(tso_fragment(sk, skb, limit, mss_now, gfp)))
|
||||
break;
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/net/ipv4/tcp_output.c
|
||||
+++ b/net/ipv4/tcp_output.c
|
||||
@@ -886,6 +886,7 @@ void tcp_wfree(struct sk_buff *skb)
|
||||
@@ -888,6 +888,7 @@ void tcp_wfree(struct sk_buff *skb)
|
||||
|
||||
for (oval = READ_ONCE(tp->tsq_flags);; oval = nval) {
|
||||
struct tsq_tasklet *tsq;
|
||||
@ -24,7 +24,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
if (!(oval & TSQF_THROTTLED) || (oval & TSQF_QUEUED))
|
||||
goto out;
|
||||
@@ -898,8 +899,10 @@ void tcp_wfree(struct sk_buff *skb)
|
||||
@@ -900,8 +901,10 @@ void tcp_wfree(struct sk_buff *skb)
|
||||
/* queue this socket to tasklet queue */
|
||||
local_irq_save(flags);
|
||||
tsq = this_cpu_ptr(&tsq_tasklet);
|
||||
|
||||
@ -19,7 +19,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/net/ipv4/tcp_output.c
|
||||
+++ b/net/ipv4/tcp_output.c
|
||||
@@ -2142,6 +2142,15 @@ static bool tcp_small_queue_check(struct
|
||||
@@ -2144,6 +2144,15 @@ static bool tcp_small_queue_check(struct
|
||||
limit <<= factor;
|
||||
|
||||
if (atomic_read(&sk->sk_wmem_alloc) > limit) {
|
||||
|
||||
@ -17,7 +17,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/net/ipv4/tcp_output.c
|
||||
+++ b/net/ipv4/tcp_output.c
|
||||
@@ -1974,26 +1974,26 @@ static bool tcp_can_coalesce_send_queue_
|
||||
@@ -1976,26 +1976,26 @@ static bool tcp_can_coalesce_send_queue_
|
||||
*/
|
||||
static int tcp_mtu_probe(struct sock *sk)
|
||||
{
|
||||
|
||||
@ -58,7 +58,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
goto out;
|
||||
--- a/net/ipv4/tcp_output.c
|
||||
+++ b/net/ipv4/tcp_output.c
|
||||
@@ -773,14 +773,15 @@ static void tcp_tasklet_func(unsigned lo
|
||||
@@ -775,14 +775,15 @@ static void tcp_tasklet_func(unsigned lo
|
||||
list_for_each_safe(q, n, &list) {
|
||||
tp = list_entry(q, struct tcp_sock, tsq_node);
|
||||
list_del(&tp->tsq_node);
|
||||
@ -77,7 +77,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
tcp_tsq_handler(sk);
|
||||
}
|
||||
bh_unlock_sock(sk);
|
||||
@@ -803,16 +804,15 @@ static void tcp_tasklet_func(unsigned lo
|
||||
@@ -805,16 +806,15 @@ static void tcp_tasklet_func(unsigned lo
|
||||
*/
|
||||
void tcp_release_cb(struct sock *sk)
|
||||
{
|
||||
@ -96,7 +96,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
if (flags & TCPF_TSQ_DEFERRED)
|
||||
tcp_tsq_handler(sk);
|
||||
@@ -884,7 +884,7 @@ void tcp_wfree(struct sk_buff *skb)
|
||||
@@ -886,7 +886,7 @@ void tcp_wfree(struct sk_buff *skb)
|
||||
if (wmem >= SKB_TRUESIZE(1) && this_cpu_ksoftirqd() == current)
|
||||
goto out;
|
||||
|
||||
@ -105,7 +105,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
struct tsq_tasklet *tsq;
|
||||
bool empty;
|
||||
|
||||
@@ -892,7 +892,7 @@ void tcp_wfree(struct sk_buff *skb)
|
||||
@@ -894,7 +894,7 @@ void tcp_wfree(struct sk_buff *skb)
|
||||
goto out;
|
||||
|
||||
nval = (oval & ~TSQF_THROTTLED) | TSQF_QUEUED | TCPF_TSQ_DEFERRED;
|
||||
@ -114,7 +114,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
if (nval != oval)
|
||||
continue;
|
||||
|
||||
@@ -2151,7 +2151,7 @@ static bool tcp_small_queue_check(struct
|
||||
@@ -2153,7 +2153,7 @@ static bool tcp_small_queue_check(struct
|
||||
skb->prev == sk->sk_write_queue.next)
|
||||
return false;
|
||||
|
||||
@ -123,7 +123,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
/* It is possible TX completion already happened
|
||||
* before we set TSQ_THROTTLED, so we must
|
||||
* test again the condition.
|
||||
@@ -2249,8 +2249,8 @@ static bool tcp_write_xmit(struct sock *
|
||||
@@ -2251,8 +2251,8 @@ static bool tcp_write_xmit(struct sock *
|
||||
unlikely(tso_fragment(sk, skb, limit, mss_now, gfp)))
|
||||
break;
|
||||
|
||||
@ -134,7 +134,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
if (tcp_small_queue_check(sk, skb, 0))
|
||||
break;
|
||||
|
||||
@@ -3569,8 +3569,6 @@ void __tcp_send_ack(struct sock *sk, u32
|
||||
@@ -3571,8 +3571,6 @@ void __tcp_send_ack(struct sock *sk, u32
|
||||
/* We do not want pure acks influencing TCP Small Queues or fq/pacing
|
||||
* too much.
|
||||
* SKB_TRUESIZE(max(1 .. 66, MAX_TCP_HEADER)) is unfortunately ~784
|
||||
|
||||
@ -30,7 +30,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/net/ipv4/tcp_output.c
|
||||
+++ b/net/ipv4/tcp_output.c
|
||||
@@ -775,6 +775,7 @@ static void tcp_tasklet_func(unsigned lo
|
||||
@@ -777,6 +777,7 @@ static void tcp_tasklet_func(unsigned lo
|
||||
list_del(&tp->tsq_node);
|
||||
|
||||
sk = (struct sock *)tp;
|
||||
|
||||
@ -65,7 +65,7 @@ Cc: Kir Kolyshkin <kir@openvz.org>
|
||||
* Before updating sk_refcnt, we must commit prior changes to memory
|
||||
--- a/net/ipv4/tcp_output.c
|
||||
+++ b/net/ipv4/tcp_output.c
|
||||
@@ -1607,7 +1607,7 @@ u32 tcp_tso_autosize(const struct sock *
|
||||
@@ -1609,7 +1609,7 @@ u32 tcp_tso_autosize(const struct sock *
|
||||
{
|
||||
u32 bytes, segs;
|
||||
|
||||
@ -74,7 +74,7 @@ Cc: Kir Kolyshkin <kir@openvz.org>
|
||||
sk->sk_gso_max_size - 1 - MAX_TCP_HEADER);
|
||||
|
||||
/* Goal is to send at least one packet per ms,
|
||||
@@ -2138,7 +2138,7 @@ static bool tcp_small_queue_check(struct
|
||||
@@ -2140,7 +2140,7 @@ static bool tcp_small_queue_check(struct
|
||||
{
|
||||
unsigned int limit;
|
||||
|
||||
|
||||
@ -98,7 +98,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
||||
bool rev = !skb->_nfct, upd = false;
|
||||
__be32 ip;
|
||||
|
||||
- if (tc_skb_protocol(skb) != htons(ETH_P_IP))
|
||||
- if (skb_protocol(skb, true) != htons(ETH_P_IP))
|
||||
+ if (cake_skb_proto(skb) != htons(ETH_P_IP))
|
||||
return false;
|
||||
|
||||
@ -107,7 +107,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
||||
u16 *buf, buf_;
|
||||
u8 dscp;
|
||||
|
||||
- switch (tc_skb_protocol(skb)) {
|
||||
- switch (skb_protocol(skb, true)) {
|
||||
+ switch (cake_skb_proto(skb)) {
|
||||
case htons(ETH_P_IP):
|
||||
buf = skb_header_pointer(skb, offset, sizeof(buf_), &buf_);
|
||||
|
||||
@ -1,76 +0,0 @@
|
||||
From: Alexey Brodkin <abrodkin@synopsys.com>
|
||||
Subject: usb: Remove annoying warning about bogus URB
|
||||
|
||||
When ath9k-htc Wi-Fi dongle is used with generic OHCI controller
|
||||
infinite stream of warnings appears in debug console like this:
|
||||
-------------------------->8----------------------
|
||||
usb 1-1: new full-speed USB device number 2 using ohci-platform
|
||||
usb 1-1: ath9k_htc: Firmware ath9k_htc/htc_9271-1.4.0.fw requested
|
||||
usb 1-1: ath9k_htc: Transferred FW: ath9k_htc/htc_9271-1.4.0.fw, size:
|
||||
51008
|
||||
------------[ cut here ]------------
|
||||
WARNING: CPU: 0 PID: 19 at drivers/usb/core/urb.c:449
|
||||
usb_submit_urb+0x1b4/0x498()
|
||||
usb 1-1: BOGUS urb xfer, pipe 1 != type 3
|
||||
Modules linked in:
|
||||
CPU: 0 PID: 19 Comm: kworker/0:1 Not tainted
|
||||
4.4.0-rc4-00017-g00e2d79-dirty #3
|
||||
Workqueue: events request_firmware_work_func
|
||||
|
||||
Stack Trace:
|
||||
arc_unwind_core.constprop.1+0xa4/0x110
|
||||
---[ end trace 649ef8c342817fc2 ]---
|
||||
------------[ cut here ]------------
|
||||
WARNING: CPU: 0 PID: 19 at drivers/usb/core/urb.c:449
|
||||
usb_submit_urb+0x1b4/0x498()
|
||||
usb 1-1: BOGUS urb xfer, pipe 1 != type 3
|
||||
Modules linked in:
|
||||
CPU: 0 PID: 19 Comm: kworker/0:1 Tainted: G W
|
||||
4.4.0-rc4-00017-g00e2d79-dirty #3
|
||||
Workqueue: events request_firmware_work_func
|
||||
|
||||
Stack Trace:
|
||||
arc_unwind_core.constprop.1+0xa4/0x110
|
||||
---[ end trace 649ef8c342817fc3 ]---
|
||||
------------[ cut here ]------------
|
||||
-------------------------->8----------------------
|
||||
|
||||
There're some discussions in mailing lists proposing to disable
|
||||
that particular check alltogether and magically all seem to work
|
||||
fine with muted warning.
|
||||
|
||||
Anyways new thread on that regard could be found here:
|
||||
http://lists.infradead.org/pipermail/linux-snps-arc/2016-July/001310.html
|
||||
|
||||
Let's see what comes out of that new discussion, hopefully patching
|
||||
of generic USB stuff won't be required then.
|
||||
|
||||
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
|
||||
---
|
||||
drivers/usb/core/urb.c | 5 -----
|
||||
1 file changed, 5 deletions(-)
|
||||
|
||||
--- a/drivers/usb/core/urb.c
|
||||
+++ b/drivers/usb/core/urb.c
|
||||
@@ -322,9 +322,6 @@ EXPORT_SYMBOL_GPL(usb_unanchor_urb);
|
||||
*/
|
||||
int usb_submit_urb(struct urb *urb, gfp_t mem_flags)
|
||||
{
|
||||
- static int pipetypes[4] = {
|
||||
- PIPE_CONTROL, PIPE_ISOCHRONOUS, PIPE_BULK, PIPE_INTERRUPT
|
||||
- };
|
||||
int xfertype, max;
|
||||
struct usb_device *dev;
|
||||
struct usb_host_endpoint *ep;
|
||||
@@ -442,11 +439,6 @@ int usb_submit_urb(struct urb *urb, gfp_
|
||||
* cause problems in HCDs if they get it wrong.
|
||||
*/
|
||||
|
||||
- /* Check that the pipe's type matches the endpoint's type */
|
||||
- if (usb_pipetype(urb->pipe) != pipetypes[xfertype])
|
||||
- dev_WARN(&dev->dev, "BOGUS urb xfer, pipe %x != type %x\n",
|
||||
- usb_pipetype(urb->pipe), pipetypes[xfertype]);
|
||||
-
|
||||
/* Check against a simple/standard policy */
|
||||
allowed = (URB_NO_TRANSFER_DMA_MAP | URB_NO_INTERRUPT | URB_DIR_MASK |
|
||||
URB_FREE_BUFFER);
|
||||
@ -7,10 +7,10 @@
|
||||
+ {QMI_FIXED_INTF(0x1c9e, 0x9b3c, 4)}, /* LONGSUNG_U9300 */
|
||||
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0121, 4)}, /* Quectel EC21 Mini PCIe */
|
||||
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0191, 4)}, /* Quectel EG91 */
|
||||
{QMI_FIXED_INTF(0x2c7c, 0x0296, 4)}, /* Quectel BG96 */
|
||||
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0195, 4)}, /* Quectel EG95 */
|
||||
--- a/drivers/usb/serial/option.c
|
||||
+++ b/drivers/usb/serial/option.c
|
||||
@@ -384,6 +384,7 @@ static void option_instat_callback(struc
|
||||
@@ -385,6 +385,7 @@ static void option_instat_callback(struc
|
||||
* Mobidata, etc sell under their own brand names.
|
||||
*/
|
||||
#define LONGCHEER_VENDOR_ID 0x1c9e
|
||||
@ -18,7 +18,7 @@
|
||||
|
||||
/* 4G Systems products */
|
||||
/* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick *
|
||||
@@ -574,6 +575,16 @@ static void option_instat_callback(struc
|
||||
@@ -575,6 +576,16 @@ static void option_instat_callback(struc
|
||||
/* Device needs ZLP */
|
||||
#define ZLP BIT(17)
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
|
||||
static const struct usb_device_id option_ids[] = {
|
||||
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
|
||||
@@ -608,6 +619,8 @@ static const struct usb_device_id option
|
||||
@@ -609,6 +620,8 @@ static const struct usb_device_id option
|
||||
{ USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) },
|
||||
{ USB_DEVICE(QUANTA_VENDOR_ID, 0xea42),
|
||||
.driver_info = RSVD(4) },
|
||||
|
||||
@ -7,10 +7,10 @@
|
||||
+ {QMI_FIXED_INTF(0x1c9e, 0x9b3c, 4)}, /* LONGSUNG_U9300 */
|
||||
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0121, 4)}, /* Quectel EC21 Mini PCIe */
|
||||
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0191, 4)}, /* Quectel EG91 */
|
||||
{QMI_FIXED_INTF(0x2c7c, 0x0296, 4)}, /* Quectel BG96 */
|
||||
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0195, 4)}, /* Quectel EG95 */
|
||||
--- a/drivers/usb/serial/option.c
|
||||
+++ b/drivers/usb/serial/option.c
|
||||
@@ -381,6 +381,7 @@ static void option_instat_callback(struc
|
||||
@@ -382,6 +382,7 @@ static void option_instat_callback(struc
|
||||
* Mobidata, etc sell under their own brand names.
|
||||
*/
|
||||
#define LONGCHEER_VENDOR_ID 0x1c9e
|
||||
@ -18,7 +18,7 @@
|
||||
|
||||
/* 4G Systems products */
|
||||
/* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick *
|
||||
@@ -571,6 +572,16 @@ static void option_instat_callback(struc
|
||||
@@ -572,6 +573,16 @@ static void option_instat_callback(struc
|
||||
/* Device needs ZLP */
|
||||
#define ZLP BIT(17)
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
|
||||
static const struct usb_device_id option_ids[] = {
|
||||
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
|
||||
@@ -605,6 +616,8 @@ static const struct usb_device_id option
|
||||
@@ -606,6 +617,8 @@ static const struct usb_device_id option
|
||||
{ USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) },
|
||||
{ USB_DEVICE(QUANTA_VENDOR_ID, 0xea42),
|
||||
.driver_info = RSVD(4) },
|
||||
|
||||
@ -7,10 +7,10 @@
|
||||
+ {QMI_FIXED_INTF(0x1c9e, 0x9b3c, 4)}, /* LONGSUNG_U9300 */
|
||||
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0121, 4)}, /* Quectel EC21 Mini PCIe */
|
||||
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0191, 4)}, /* Quectel EG91 */
|
||||
{QMI_FIXED_INTF(0x2c7c, 0x0296, 4)}, /* Quectel BG96 */
|
||||
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0195, 4)}, /* Quectel EG95 */
|
||||
--- a/drivers/usb/serial/option.c
|
||||
+++ b/drivers/usb/serial/option.c
|
||||
@@ -384,6 +384,7 @@ static void option_instat_callback(struc
|
||||
@@ -385,6 +385,7 @@ static void option_instat_callback(struc
|
||||
* Mobidata, etc sell under their own brand names.
|
||||
*/
|
||||
#define LONGCHEER_VENDOR_ID 0x1c9e
|
||||
@ -18,7 +18,7 @@
|
||||
|
||||
/* 4G Systems products */
|
||||
/* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick *
|
||||
@@ -574,6 +575,16 @@ static void option_instat_callback(struc
|
||||
@@ -575,6 +576,16 @@ static void option_instat_callback(struc
|
||||
/* Device needs ZLP */
|
||||
#define ZLP BIT(17)
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
|
||||
static const struct usb_device_id option_ids[] = {
|
||||
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
|
||||
@@ -608,6 +619,8 @@ static const struct usb_device_id option
|
||||
@@ -609,6 +620,8 @@ static const struct usb_device_id option
|
||||
{ USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) },
|
||||
{ USB_DEVICE(QUANTA_VENDOR_ID, 0xea42),
|
||||
.driver_info = RSVD(4) },
|
||||
|
||||
@ -7,10 +7,10 @@
|
||||
+ {QMI_FIXED_INTF(0x1c9e, 0x9b3c, 4)}, /* LONGSUNG_U9300 */
|
||||
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0121, 4)}, /* Quectel EC21 Mini PCIe */
|
||||
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0191, 4)}, /* Quectel EG91 */
|
||||
{QMI_FIXED_INTF(0x2c7c, 0x0296, 4)}, /* Quectel BG96 */
|
||||
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0195, 4)}, /* Quectel EG95 */
|
||||
--- a/drivers/usb/serial/option.c
|
||||
+++ b/drivers/usb/serial/option.c
|
||||
@@ -381,6 +381,7 @@ static void option_instat_callback(struc
|
||||
@@ -382,6 +382,7 @@ static void option_instat_callback(struc
|
||||
* Mobidata, etc sell under their own brand names.
|
||||
*/
|
||||
#define LONGCHEER_VENDOR_ID 0x1c9e
|
||||
@ -18,7 +18,7 @@
|
||||
|
||||
/* 4G Systems products */
|
||||
/* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick *
|
||||
@@ -571,6 +572,16 @@ static void option_instat_callback(struc
|
||||
@@ -572,6 +573,16 @@ static void option_instat_callback(struc
|
||||
/* Device needs ZLP */
|
||||
#define ZLP BIT(17)
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
|
||||
static const struct usb_device_id option_ids[] = {
|
||||
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
|
||||
@@ -605,6 +616,8 @@ static const struct usb_device_id option
|
||||
@@ -606,6 +617,8 @@ static const struct usb_device_id option
|
||||
{ USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) },
|
||||
{ USB_DEVICE(QUANTA_VENDOR_ID, 0xea42),
|
||||
.driver_info = RSVD(4) },
|
||||
|
||||
@ -40,7 +40,7 @@ Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
|
||||
struct mtk_thermal;
|
||||
|
||||
struct thermal_bank_cfg {
|
||||
@@ -767,7 +760,7 @@ static struct platform_driver mtk_therma
|
||||
@@ -765,7 +758,7 @@ static struct platform_driver mtk_therma
|
||||
.probe = mtk_thermal_probe,
|
||||
.remove = mtk_thermal_remove,
|
||||
.driver = {
|
||||
|
||||
@ -68,7 +68,7 @@ Signed-off-by: Shunli Wang <shunli.wang@mediatek.com>
|
||||
/**
|
||||
* raw_to_mcelsius - convert a raw ADC value to mcelsius
|
||||
* @mt: The thermal controller
|
||||
@@ -633,6 +664,10 @@ static const struct of_device_id mtk_the
|
||||
@@ -631,6 +662,10 @@ static const struct of_device_id mtk_the
|
||||
{
|
||||
.compatible = "mediatek,mt2712-thermal",
|
||||
.data = (void *)&mt2712_thermal_data,
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/drivers/usb/dwc2/platform.c
|
||||
+++ b/drivers/usb/dwc2/platform.c
|
||||
@@ -406,6 +406,12 @@ static int dwc2_driver_probe(struct plat
|
||||
@@ -407,6 +407,12 @@ static int dwc2_driver_probe(struct plat
|
||||
if (retval)
|
||||
return retval;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user