CC: kernel: update kernel 3.18 to version 3.18.23

Changelog:
 * https://cdn.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.22
 * https://cdn.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.23

backport of r47334.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@47335 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Hauke Mehrtens 2015-11-01 13:48:26 +00:00
parent 0625aaa6f3
commit 2f99e562e0
58 changed files with 204 additions and 269 deletions

View File

@ -2,9 +2,9 @@
LINUX_RELEASE?=1
LINUX_VERSION-3.18 = .21
LINUX_VERSION-3.18 = .23
LINUX_KERNEL_MD5SUM-3.18.21 = e4248caaa4cef318c04657e971b37298
LINUX_KERNEL_MD5SUM-3.18.23 = dc6d265ab38716be3676ac294b481ad8
ifdef KERNEL_PATCHVER
LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))

View File

@ -1,6 +1,6 @@
--- a/include/linux/spi/spi.h
+++ b/include/linux/spi/spi.h
@@ -620,6 +620,8 @@ struct spi_transfer {
@@ -622,6 +622,8 @@ struct spi_transfer {
unsigned cs_change:1;
unsigned tx_nbits:3;
unsigned rx_nbits:3;
@ -9,7 +9,7 @@
#define SPI_NBITS_SINGLE 0x01 /* 1bit transfer */
#define SPI_NBITS_DUAL 0x02 /* 2bits transfer */
#define SPI_NBITS_QUAD 0x04 /* 4bits transfer */
@@ -665,6 +667,7 @@ struct spi_message {
@@ -667,6 +669,7 @@ struct spi_message {
struct spi_device *spi;
unsigned is_dma_mapped:1;

View File

@ -1,6 +1,6 @@
--- a/include/linux/spi/spi.h
+++ b/include/linux/spi/spi.h
@@ -508,6 +508,12 @@ extern struct spi_master *spi_busnum_to_
@@ -510,6 +510,12 @@ extern struct spi_master *spi_busnum_to_
/*---------------------------------------------------------------------------*/
@ -13,7 +13,7 @@
/*
* I/O INTERFACE between SPI controller and protocol drivers
*
@@ -628,6 +634,7 @@ struct spi_transfer {
@@ -630,6 +636,7 @@ struct spi_transfer {
u8 bits_per_word;
u16 delay_usecs;
u32 speed_hz;

View File

@ -25,7 +25,7 @@
while (len--) {
--- a/include/linux/spi/spi.h
+++ b/include/linux/spi/spi.h
@@ -635,6 +635,7 @@ struct spi_transfer {
@@ -637,6 +637,7 @@ struct spi_transfer {
u16 delay_usecs;
u32 speed_hz;
enum spi_transfer_type type;

View File

@ -22,7 +22,7 @@ meaning of the bits CPUCLK_FROM_CPUPLL and DDRCLK_FROM_DDRPLL is reversed.
--- a/arch/mips/ath79/Kconfig
+++ b/arch/mips/ath79/Kconfig
@@ -1228,6 +1228,10 @@ config SOC_AR934X
@@ -1248,6 +1248,10 @@ config SOC_AR934X
select PCI_AR724X if PCI
def_bool n
@ -33,7 +33,7 @@ meaning of the bits CPUCLK_FROM_CPUPLL and DDRCLK_FROM_DDRPLL is reversed.
config SOC_QCA955X
select HW_HAS_PCI
select PCI_AR724X if PCI
@@ -1270,7 +1274,7 @@ config ATH79_DEV_USB
@@ -1290,7 +1294,7 @@ config ATH79_DEV_USB
def_bool n
config ATH79_DEV_WMAC

View File

@ -20,7 +20,7 @@
select SOC_QCA955X
--- a/arch/mips/ath79/Makefile
+++ b/arch/mips/ath79/Makefile
@@ -71,6 +71,7 @@ obj-$(CONFIG_ATH79_MACH_EAP300V2) += mac
@@ -72,6 +72,7 @@ obj-$(CONFIG_ATH79_MACH_EAP300V2) += mac
obj-$(CONFIG_ATH79_MACH_EAP7660D) += mach-eap7660d.o
obj-$(CONFIG_ATH79_MACH_EL_M150) += mach-el-m150.o
obj-$(CONFIG_ATH79_MACH_EL_MINI) += mach-el-mini.o
@ -30,7 +30,7 @@
obj-$(CONFIG_ATH79_MACH_GL_INET) += mach-gl-inet.o
--- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h
@@ -61,6 +61,7 @@ enum ath79_mach_type {
@@ -62,6 +62,7 @@ enum ath79_mach_type {
ATH79_MACH_EL_M150, /* EasyLink EL-M150 */
ATH79_MACH_EL_MINI, /* EasyLink EL-MINI */
ATH79_MACH_ESR1750, /* EnGenius ESR1750 */

View File

@ -445,7 +445,7 @@
}
--- a/arch/mips/ath79/Kconfig
+++ b/arch/mips/ath79/Kconfig
@@ -1248,6 +1248,12 @@ config SOC_QCA955X
@@ -1268,6 +1268,12 @@ config SOC_QCA955X
select PCI_AR724X if PCI
def_bool n
@ -458,7 +458,7 @@
config ATH79_DEV_M25P80
select ATH79_DEV_SPI
def_bool n
@@ -1285,7 +1291,7 @@ config ATH79_DEV_USB
@@ -1305,7 +1311,7 @@ config ATH79_DEV_USB
def_bool n
config ATH79_DEV_WMAC

View File

@ -1,6 +1,6 @@
--- a/arch/mips/ath79/Kconfig
+++ b/arch/mips/ath79/Kconfig
@@ -579,6 +579,16 @@ config ATH79_MACH_R6100
@@ -590,6 +590,16 @@ config ATH79_MACH_R6100
select ATH79_DEV_USB
select ATH79_DEV_WMAC
@ -19,7 +19,7 @@
select SOC_AR71XX
--- a/arch/mips/ath79/Makefile
+++ b/arch/mips/ath79/Makefile
@@ -80,6 +80,7 @@ obj-$(CONFIG_ATH79_MACH_HIWIFI_HC6361) +
@@ -81,6 +81,7 @@ obj-$(CONFIG_ATH79_MACH_HIWIFI_HC6361) +
obj-$(CONFIG_ATH79_MACH_JA76PF) += mach-ja76pf.o
obj-$(CONFIG_ATH79_MACH_JWAP003) += mach-jwap003.o
obj-$(CONFIG_ATH79_MACH_HORNET_UB) += mach-hornet-ub.o
@ -29,7 +29,7 @@
obj-$(CONFIG_ATH79_MACH_MYNET_N600) += mach-mynet-n600.o
--- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h
@@ -120,6 +120,7 @@ enum ath79_mach_type {
@@ -121,6 +121,7 @@ enum ath79_mach_type {
ATH79_MACH_TEW_673GRU, /* TRENDnet TEW-673GRU */
ATH79_MACH_TEW_712BR, /* TRENDnet TEW-712BR */
ATH79_MACH_TEW_732BR, /* TRENDnet TEW-732BR */

View File

@ -1,6 +1,6 @@
--- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h
@@ -86,6 +86,7 @@ enum ath79_mach_type {
@@ -87,6 +87,7 @@ enum ath79_mach_type {
ATH79_MACH_OM2P_LC, /* OpenMesh OM2P-LC */
ATH79_MACH_OM2Pv2, /* OpenMesh OM2Pv2 */
ATH79_MACH_OM2P, /* OpenMesh OM2P */
@ -10,7 +10,7 @@
ATH79_MACH_PB42, /* Atheros PB42 */
--- a/arch/mips/ath79/Kconfig
+++ b/arch/mips/ath79/Kconfig
@@ -732,6 +732,7 @@ config ATH79_MACH_OM2P
@@ -743,6 +743,7 @@ config ATH79_MACH_OM2P
config ATH79_MACH_OM5P
bool "OpenMesh OM5P board support"
select SOC_AR934X

View File

@ -1,6 +1,6 @@
--- a/arch/mips/ath79/Kconfig
+++ b/arch/mips/ath79/Kconfig
@@ -749,6 +749,26 @@ config ATH79_MACH_ONION_OMEGA
@@ -760,6 +760,26 @@ config ATH79_MACH_ONION_OMEGA
select ATH79_DEV_USB
select ATH79_DEV_WMAC
@ -29,7 +29,7 @@
select SOC_AR934X
--- a/arch/mips/ath79/Makefile
+++ b/arch/mips/ath79/Makefile
@@ -81,6 +81,8 @@ obj-$(CONFIG_ATH79_MACH_JA76PF) += mach
@@ -82,6 +82,8 @@ obj-$(CONFIG_ATH79_MACH_JA76PF) += mach
obj-$(CONFIG_ATH79_MACH_JWAP003) += mach-jwap003.o
obj-$(CONFIG_ATH79_MACH_HORNET_UB) += mach-hornet-ub.o
obj-$(CONFIG_ATH79_MACH_MC_MAC1200R) += mach-mc-mac1200r.o
@ -40,7 +40,7 @@
obj-$(CONFIG_ATH79_MACH_MYNET_N600) += mach-mynet-n600.o
--- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h
@@ -70,6 +70,8 @@ enum ath79_mach_type {
@@ -71,6 +71,8 @@ enum ath79_mach_type {
ATH79_MACH_JA76PF2, /* jjPlus JA76PF2 */
ATH79_MACH_JWAP003, /* jjPlus JWAP003 */
ATH79_MACH_HORNET_UB, /* ALFA Networks Hornet-UB */

View File

@ -1,19 +1,19 @@
--- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h
@@ -64,6 +64,7 @@ enum ath79_mach_type {
ATH79_MACH_EPG5000, /* EnGenius EPG5000 */
ATH79_MACH_F9K1115V2, /* Belkin AC1750DB */
ATH79_MACH_GL_INET, /* GL-CONNECT GL-INET */
@@ -65,6 +65,7 @@ enum ath79_mach_type {
ATH79_MACH_EPG5000, /* EnGenius EPG5000 */
ATH79_MACH_F9K1115V2, /* Belkin AC1750DB */
ATH79_MACH_GL_INET, /* GL-CONNECT GL-INET */
+ ATH79_MACH_GS_MINIBOX_V1, /* Gainstrong MiniBox V1.0 */
ATH79_MACH_GS_OOLITE, /* GS OOLITE V1.0 */
ATH79_MACH_HIWIFI_HC6361, /* HiWiFi HC6361 */
ATH79_MACH_JA76PF, /* jjPlus JA76PF */
ATH79_MACH_GS_OOLITE, /* GS OOLITE V1.0 */
ATH79_MACH_HIWIFI_HC6361, /* HiWiFi HC6361 */
ATH79_MACH_JA76PF, /* jjPlus JA76PF */
--- a/arch/mips/ath79/Kconfig
+++ b/arch/mips/ath79/Kconfig
@@ -511,6 +511,16 @@
select ATH79_DEV_M25P80
select ATH79_DEV_WMAC
@@ -522,6 +522,16 @@ config ATH79_MACH_EAP300V2
select ATH79_DEV_M25P80
select ATH79_DEV_WMAC
+config ATH79_MACH_GS_MINIBOX_V1
+ bool "Gainstrong MiniBox V1.0 support"
+ select SOC_AR933X
@ -27,9 +27,9 @@
config ATH79_MACH_GS_OOLITE
bool "GS Oolite V1 support"
select SOC_AR933X
--- a/arch/mips/ath79/Makefile 2015-08-10 23:27:44.599500173 +0200
+++ b/arch/mips/ath79/Makefile 2015-08-10 23:29:25.090929262 +0200
@@ -75,6 +75,7 @@
--- a/arch/mips/ath79/Makefile
+++ b/arch/mips/ath79/Makefile
@@ -76,6 +76,7 @@ obj-$(CONFIG_ATH79_MACH_EPG5000) += mach
obj-$(CONFIG_ATH79_MACH_ESR1750) += mach-esr1750.o
obj-$(CONFIG_ATH79_MACH_F9K1115V2) += mach-f9k1115v2.o
obj-$(CONFIG_ATH79_MACH_GL_INET) += mach-gl-inet.o

View File

@ -1,6 +1,6 @@
--- a/arch/mips/ath79/Kconfig
+++ b/arch/mips/ath79/Kconfig
@@ -614,6 +614,16 @@ config ATH79_MACH_RB91X
@@ -635,6 +635,16 @@ config ATH79_MACH_RB91X
select ATH79_DEV_USB
select ATH79_ROUTERBOOT
@ -19,7 +19,7 @@
select SOC_AR934X
--- a/arch/mips/ath79/Makefile
+++ b/arch/mips/ath79/Makefile
@@ -102,6 +102,7 @@ obj-$(CONFIG_ATH79_MACH_R6100) += mach-
@@ -104,6 +104,7 @@ obj-$(CONFIG_ATH79_MACH_R6100) += mach-
obj-$(CONFIG_ATH79_MACH_RB4XX) += mach-rb4xx.o
obj-$(CONFIG_ATH79_MACH_RB750) += mach-rb750.o
obj-$(CONFIG_ATH79_MACH_RB91X) += mach-rb91x.o
@ -29,7 +29,7 @@
obj-$(CONFIG_ATH79_MACH_RBSXTLITE) += mach-rbsxtlite.o
--- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h
@@ -109,6 +109,7 @@ enum ath79_mach_type {
@@ -111,6 +111,7 @@ enum ath79_mach_type {
ATH79_MACH_RB_750G_R3, /* MikroTik RouterBOARD 750GL */
ATH79_MACH_RB_751, /* MikroTik RouterBOARD 751 */
ATH79_MACH_RB_751G, /* Mikrotik RouterBOARD 751G */

View File

@ -237,7 +237,7 @@
*/
--- a/net/ipv6/datagram.c
+++ b/net/ipv6/datagram.c
@@ -374,7 +374,7 @@ int ipv6_recv_error(struct sock *sk, str
@@ -384,7 +384,7 @@ int ipv6_recv_error(struct sock *sk, str
ipv6_iface_scope_id(&sin->sin6_addr,
IP6CB(skb)->iif);
} else {
@ -246,7 +246,7 @@
&sin->sin6_addr);
sin->sin6_scope_id = 0;
}
@@ -708,12 +708,12 @@ int ip6_datagram_send_ctl(struct net *ne
@@ -718,12 +718,12 @@ int ip6_datagram_send_ctl(struct net *ne
}
if (fl6->flowlabel&IPV6_FLOWINFO_MASK) {

View File

@ -1,6 +1,6 @@
--- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h
@@ -175,6 +175,7 @@ enum ath79_mach_type {
@@ -177,6 +177,7 @@ enum ath79_mach_type {
ATH79_MACH_UBNT_NANO_M, /* Ubiquiti NanoStation M */
ATH79_MACH_UBNT_NANO_M_XW, /* Ubiquiti NanoStation M XW */
ATH79_MACH_UBNT_ROCKET_M, /* Ubiquiti Rocket M */

View File

@ -32,7 +32,7 @@
@@ -22,6 +22,7 @@ enum ath79_mach_type {
ATH79_MACH_ALL0305, /* Allnet ALL0305 */
ATH79_MACH_ALL0315N, /* Allnet ALL0315N */
ATH79_MACH_ANTMINER_S1, /* Antminer-S1 */
ATH79_MACH_ANTMINER_S1, /* Antminer-S1 */
+ ATH79_MACH_ANTMINER_S3, /* Antminer-S3 */
ATH79_MACH_AP113, /* Atheros AP113 reference board */
ATH79_MACH_AP121, /* Atheros AP121 reference board */

View File

@ -1,6 +1,6 @@
--- a/arch/mips/ath79/Kconfig
+++ b/arch/mips/ath79/Kconfig
@@ -866,6 +866,16 @@ config ATH79_MACH_EAP7660D
@@ -887,6 +887,16 @@ config ATH79_MACH_EAP7660D
select ATH79_DEV_LEDS_GPIO
select ATH79_DEV_M25P80

View File

@ -21,8 +21,6 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts b/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
index aedf3c4..8ade7de 100644
--- a/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
+++ b/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
@@ -10,6 +10,7 @@

View File

@ -90,5 +90,5 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
+#endif /* CONFIG_ARCH_BCM_5301X */
+
if (!ret)
xhci->xhc_state &= ~XHCI_STATE_HALTED;
return ret;
xhci->xhc_state &= ~(XHCI_STATE_HALTED | XHCI_STATE_DYING);

View File

@ -135,7 +135,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
config DEBUG_EXYNOS_UART
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -151,6 +151,7 @@ textofs-$(CONFIG_ARCH_AXXIA) := 0x003080
@@ -159,6 +159,7 @@ textofs-$(CONFIG_ARCH_AXXIA) := 0x003080
machine-$(CONFIG_ARCH_AT91) += at91
machine-$(CONFIG_ARCH_AXXIA) += axxia
machine-$(CONFIG_ARCH_BCM) += bcm

View File

@ -211,7 +211,7 @@ snd-bcm2708: Fix dmesg spam for non-error case
EXPORT_SYMBOL(vchi_service_create);
--- a/sound/arm/Kconfig
+++ b/sound/arm/Kconfig
@@ -39,5 +39,12 @@ config SND_PXA2XX_AC97
@@ -40,5 +40,12 @@ config SND_PXA2XX_AC97
Say Y or M if you want to support any AC97 codec attached to
the PXA2xx AC97 interface.

View File

@ -157,7 +157,7 @@ Subject: [PATCH 089/114] Add 2709 platform for Raspberry Pi 2
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -152,6 +152,7 @@ machine-$(CONFIG_ARCH_AT91) += at91
@@ -160,6 +160,7 @@ machine-$(CONFIG_ARCH_AT91) += at91
machine-$(CONFIG_ARCH_AXXIA) += axxia
machine-$(CONFIG_ARCH_BCM) += bcm
machine-$(CONFIG_ARCH_BCM2708) += bcm2708
@ -9448,7 +9448,7 @@ Subject: [PATCH 089/114] Add 2709 platform for Raspberry Pi 2
--- a/sound/arm/Kconfig
+++ b/sound/arm/Kconfig
@@ -41,7 +41,7 @@ config SND_PXA2XX_AC97
@@ -42,7 +42,7 @@ config SND_PXA2XX_AC97
config SND_BCM2835
tristate "BCM2835 ALSA driver"

View File

@ -39,7 +39,7 @@
if (status > 0)
--- a/include/linux/spi/spi.h
+++ b/include/linux/spi/spi.h
@@ -628,6 +628,13 @@ struct spi_transfer {
@@ -630,6 +630,13 @@ struct spi_transfer {
u32 speed_hz;
struct list_head transfer_list;

View File

@ -88,7 +88,7 @@ Miklos
err = PTR_ERR(opaquedir);
--- a/fs/overlayfs/super.c
+++ b/fs/overlayfs/super.c
@@ -740,9 +740,15 @@ static int ovl_fill_super(struct super_b
@@ -741,9 +741,15 @@ static int ovl_fill_super(struct super_b
ufs->workdir = ovl_workdir_create(ufs->upper_mnt, workpath.dentry);
err = PTR_ERR(ufs->workdir);
if (IS_ERR(ufs->workdir)) {

View File

@ -116,7 +116,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
static int spi_master_initialize_queue(struct spi_master *master)
{
int ret;
@@ -2105,19 +2128,46 @@ static int __spi_sync(struct spi_device
@@ -2104,19 +2127,46 @@ static int __spi_sync(struct spi_device
DECLARE_COMPLETION_ONSTACK(done);
int status;
struct spi_master *master = spi->master;

View File

@ -72,7 +72,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
static int spi_init_queue(struct spi_master *master)
{
struct sched_param param = { .sched_priority = MAX_RT_PRIO - 1 };
@@ -2166,7 +2186,7 @@ static int __spi_sync(struct spi_device
@@ -2165,7 +2185,7 @@ static int __spi_sync(struct spi_device
* can.
*/
if (master->transfer == spi_queued_transfer)

View File

@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
@@ -2809,6 +2811,7 @@ static int packet_create(struct net *net
@@ -2807,6 +2809,7 @@ static int packet_create(struct net *net
spin_lock_init(&po->bind_lock);
mutex_init(&po->pg_vec_lock);
po->prot_hook.func = packet_rcv;
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
@@ -3389,6 +3392,16 @@ packet_setsockopt(struct socket *sock, i
@@ -3387,6 +3390,16 @@ packet_setsockopt(struct socket *sock, i
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
return 0;
}
@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
default:
return -ENOPROTOOPT;
}
@@ -3440,6 +3453,13 @@ static int packet_getsockopt(struct sock
@@ -3438,6 +3451,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR:
val = po->has_vnet_hdr;
break;

View File

@ -1,6 +1,6 @@
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -1690,27 +1690,7 @@ void netlink_detachskb(struct sock *sk,
@@ -1721,27 +1721,7 @@ void netlink_detachskb(struct sock *sk,
static struct sk_buff *netlink_trim(struct sk_buff *skb, gfp_t allocation)
{

View File

@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4001,6 +4001,9 @@ static enum gro_result dev_gro_receive(s
@@ -4002,6 +4002,9 @@ static enum gro_result dev_gro_receive(s
enum gro_result ret;
int grow;
@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
if (!(skb->dev->features & NETIF_F_GRO))
goto normal;
@@ -5064,6 +5067,48 @@ static void __netdev_adjacent_dev_unlink
@@ -5067,6 +5070,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master,
void *private)
@@ -5124,6 +5169,7 @@ static int __netdev_upper_dev_link(struc
@@ -5127,6 +5172,7 @@ static int __netdev_upper_dev_link(struc
goto rollback_lower_mesh;
}
@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
call_netdevice_notifiers(NETDEV_CHANGEUPPER, dev);
return 0;
@@ -5241,6 +5287,7 @@ void netdev_upper_dev_unlink(struct net_
@@ -5244,6 +5290,7 @@ void netdev_upper_dev_unlink(struct net_
list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
__netdev_adjacent_dev_unlink(dev, i->dev);
@ -92,7 +92,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
call_netdevice_notifiers(NETDEV_CHANGEUPPER, dev);
}
EXPORT_SYMBOL(netdev_upper_dev_unlink);
@@ -5760,6 +5807,7 @@ int dev_set_mac_address(struct net_devic
@@ -5763,6 +5810,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;
@ -102,7 +102,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
return 0;
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1548,6 +1548,8 @@ struct net_device {
@@ -1556,6 +1556,8 @@ struct net_device {
struct netdev_hw_addr_list mc;
struct netdev_hw_addr_list dev_addrs;

View File

@ -1,6 +1,6 @@
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1220,6 +1220,7 @@ enum netdev_priv_flags {
@@ -1228,6 +1228,7 @@ enum netdev_priv_flags {
IFF_LIVE_ADDR_CHANGE = 1<<20,
IFF_MACVLAN = 1<<21,
IFF_XMIT_DST_RELEASE_PERM = 1<<22,
@ -8,7 +8,7 @@
};
#define IFF_802_1Q_VLAN IFF_802_1Q_VLAN
@@ -1245,6 +1246,7 @@ enum netdev_priv_flags {
@@ -1253,6 +1254,7 @@ enum netdev_priv_flags {
#define IFF_LIVE_ADDR_CHANGE IFF_LIVE_ADDR_CHANGE
#define IFF_MACVLAN IFF_MACVLAN
#define IFF_XMIT_DST_RELEASE_PERM IFF_XMIT_DST_RELEASE_PERM
@ -16,7 +16,7 @@
/**
* struct net_device - The DEVICE structure.
@@ -1515,6 +1517,11 @@ struct net_device {
@@ -1523,6 +1525,11 @@ struct net_device {
const struct ethtool_ops *ethtool_ops;
const struct forwarding_accel_ops *fwd_ops;
@ -28,7 +28,7 @@
const struct header_ops *header_ops;
unsigned int flags;
@@ -1579,6 +1586,10 @@ struct net_device {
@@ -1587,6 +1594,10 @@ struct net_device {
void *ax25_ptr;
struct wireless_dev *ieee80211_ptr;

View File

@ -113,8 +113,6 @@ Date: Fri Sep 18 00:19:08 2015 +0100
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
diff --git a/drivers/net/ethernet/realtek/8139cp.c b/drivers/net/ethernet/realtek/8139cp.c
index d79e33b..686334f 100644
--- a/drivers/net/ethernet/realtek/8139cp.c
+++ b/drivers/net/ethernet/realtek/8139cp.c
@@ -157,6 +157,7 @@ enum {
@ -133,7 +131,7 @@ index d79e33b..686334f 100644
unsigned rx_buf_sz;
unsigned wol_enabled : 1; /* Is Wake-on-LAN enabled? */
@@ -665,7 +667,7 @@ static void cp_tx (struct cp_private *cp)
@@ -665,7 +667,7 @@ static void cp_tx (struct cp_private *cp
BUG_ON(!skb);
dma_unmap_single(&cp->pdev->dev, le64_to_cpu(txd->addr),
@ -142,7 +140,7 @@ index d79e33b..686334f 100644
PCI_DMA_TODEVICE);
if (status & LastFrag) {
@@ -733,7 +735,7 @@ static netdev_tx_t cp_start_xmit (struct sk_buff *skb,
@@ -733,7 +735,7 @@ static netdev_tx_t cp_start_xmit (struct
{
struct cp_private *cp = netdev_priv(dev);
unsigned entry;
@ -151,7 +149,7 @@ index d79e33b..686334f 100644
unsigned long intr_flags;
__le32 opts2;
int mss = 0;
@@ -753,6 +755,21 @@ static netdev_tx_t cp_start_xmit (struct sk_buff *skb,
@@ -753,6 +755,21 @@ static netdev_tx_t cp_start_xmit (struct
mss = skb_shinfo(skb)->gso_size;
opts2 = cpu_to_le32(cp_tx_vlan_tag(skb));
@ -173,7 +171,7 @@ index d79e33b..686334f 100644
if (skb_shinfo(skb)->nr_frags == 0) {
struct cp_desc *txd = &cp->tx_ring[entry];
@@ -768,31 +785,20 @@ static netdev_tx_t cp_start_xmit (struct sk_buff *skb,
@@ -768,31 +785,20 @@ static netdev_tx_t cp_start_xmit (struct
txd->addr = cpu_to_le64(mapping);
wmb();
@ -211,7 +209,7 @@ index d79e33b..686334f 100644
/* We must give this initial chunk to the device last.
* Otherwise we could race with the device.
@@ -805,14 +811,14 @@ static netdev_tx_t cp_start_xmit (struct sk_buff *skb,
@@ -805,14 +811,14 @@ static netdev_tx_t cp_start_xmit (struct
goto out_dma_error;
cp->tx_skb[entry] = skb;
@ -228,7 +226,7 @@ index d79e33b..686334f 100644
len = skb_frag_size(this_frag);
mapping = dma_map_single(&cp->pdev->dev,
skb_frag_address(this_frag),
@@ -824,19 +830,7 @@ static netdev_tx_t cp_start_xmit (struct sk_buff *skb,
@@ -824,19 +830,7 @@ static netdev_tx_t cp_start_xmit (struct
eor = (entry == (CP_TX_RING_SIZE - 1)) ? RingEnd : 0;
@ -249,7 +247,7 @@ index d79e33b..686334f 100644
if (frag == skb_shinfo(skb)->nr_frags - 1)
ctrl |= LastFrag;
@@ -849,8 +843,8 @@ static netdev_tx_t cp_start_xmit (struct sk_buff *skb,
@@ -849,8 +843,8 @@ static netdev_tx_t cp_start_xmit (struct
txd->opts1 = cpu_to_le32(ctrl);
wmb();
@ -259,7 +257,7 @@ index d79e33b..686334f 100644
}
txd = &cp->tx_ring[first_entry];
@@ -858,27 +852,17 @@ static netdev_tx_t cp_start_xmit (struct sk_buff *skb,
@@ -858,27 +852,17 @@ static netdev_tx_t cp_start_xmit (struct
txd->addr = cpu_to_le64(first_mapping);
wmb();
@ -294,7 +292,7 @@ index d79e33b..686334f 100644
if (TX_BUFFS_AVAIL(cp) <= (MAX_SKB_FRAGS + 1))
netif_stop_queue(dev);
@@ -1115,6 +1099,7 @@ static int cp_init_rings (struct cp_private *cp)
@@ -1115,6 +1099,7 @@ static int cp_init_rings (struct cp_priv
{
memset(cp->tx_ring, 0, sizeof(struct cp_desc) * CP_TX_RING_SIZE);
cp->tx_ring[CP_TX_RING_SIZE - 1].opts1 = cpu_to_le32(RingEnd);
@ -302,7 +300,7 @@ index d79e33b..686334f 100644
cp_init_rings_index(cp);
@@ -1151,7 +1136,7 @@ static void cp_clean_rings (struct cp_private *cp)
@@ -1151,7 +1136,7 @@ static void cp_clean_rings (struct cp_pr
desc = cp->rx_ring + i;
dma_unmap_single(&cp->pdev->dev,le64_to_cpu(desc->addr),
cp->rx_buf_sz, PCI_DMA_FROMDEVICE);
@ -311,7 +309,7 @@ index d79e33b..686334f 100644
}
}
@@ -1164,7 +1149,7 @@ static void cp_clean_rings (struct cp_private *cp)
@@ -1164,7 +1149,7 @@ static void cp_clean_rings (struct cp_pr
le32_to_cpu(desc->opts1) & 0xffff,
PCI_DMA_TODEVICE);
if (le32_to_cpu(desc->opts1) & LastFrag)
@ -320,7 +318,7 @@ index d79e33b..686334f 100644
cp->dev->stats.tx_dropped++;
}
}
@@ -1172,6 +1157,7 @@ static void cp_clean_rings (struct cp_private *cp)
@@ -1172,6 +1157,7 @@ static void cp_clean_rings (struct cp_pr
memset(cp->rx_ring, 0, sizeof(struct cp_desc) * CP_RX_RING_SIZE);
memset(cp->tx_ring, 0, sizeof(struct cp_desc) * CP_TX_RING_SIZE);
@ -328,7 +326,7 @@ index d79e33b..686334f 100644
memset(cp->rx_skb, 0, sizeof(struct sk_buff *) * CP_RX_RING_SIZE);
memset(cp->tx_skb, 0, sizeof(struct sk_buff *) * CP_TX_RING_SIZE);
@@ -1249,7 +1235,7 @@ static void cp_tx_timeout(struct net_device *dev)
@@ -1249,7 +1235,7 @@ static void cp_tx_timeout(struct net_dev
{
struct cp_private *cp = netdev_priv(dev);
unsigned long flags;
@ -337,7 +335,7 @@ index d79e33b..686334f 100644
netdev_warn(dev, "Transmit timeout, status %2x %4x %4x %4x\n",
cpr8(Cmd), cpr16(CpCmd),
@@ -1257,13 +1243,26 @@ static void cp_tx_timeout(struct net_device *dev)
@@ -1257,13 +1243,26 @@ static void cp_tx_timeout(struct net_dev
spin_lock_irqsave(&cp->lock, flags);

View File

@ -23,7 +23,7 @@
/* The Mellanox Tavor device gives false positive parity errors
* Mark this device with a broken_parity_status, to allow
* PCI scanning code to "skip" this now blacklisted device.
@@ -2905,6 +2906,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
@@ -2908,6 +2909,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata);
@ -31,7 +31,7 @@
/*
* Ivytown NTB BAR sizes are misreported by the hardware due to an erratum. To
@@ -2961,6 +2963,8 @@ static void fixup_debug_report(struct pc
@@ -2964,6 +2966,8 @@ static void fixup_debug_report(struct pc
}
}
@ -40,7 +40,7 @@
/*
* Some BIOS implementations leave the Intel GPU interrupts enabled,
* even though no one is handling them (f.e. i915 driver is never loaded).
@@ -2995,6 +2999,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
@@ -2998,6 +3002,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);

View File

@ -69,7 +69,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
/**
* ata_build_rw_tf - Build ATA taskfile for given read/write request
* @tf: Target ATA taskfile
@@ -4798,6 +4811,9 @@ static struct ata_queued_cmd *ata_qc_new
@@ -4800,6 +4813,9 @@ static struct ata_queued_cmd *ata_qc_new
break;
}
}
@ -79,7 +79,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
return qc;
}
@@ -5708,6 +5724,9 @@ struct ata_port *ata_port_alloc(struct a
@@ -5710,6 +5726,9 @@ struct ata_port *ata_port_alloc(struct a
ap->stats.unhandled_irq = 1;
ap->stats.idle_irq = 1;
#endif
@ -89,7 +89,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
ata_sff_port_init(ap);
return ap;
@@ -5729,6 +5748,12 @@ static void ata_host_release(struct devi
@@ -5731,6 +5750,12 @@ static void ata_host_release(struct devi
kfree(ap->pmp_link);
kfree(ap->slave_link);
@ -102,7 +102,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
kfree(ap);
host->ports[i] = NULL;
}
@@ -6175,7 +6200,23 @@ int ata_host_register(struct ata_host *h
@@ -6177,7 +6202,23 @@ int ata_host_register(struct ata_host *h
host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
host->ports[i]->local_port_no = i + 1;
}

View File

@ -79,17 +79,17 @@
}
--- a/kernel/irq/proc.c
+++ b/kernel/irq/proc.c
@@ -328,6 +328,9 @@ void register_irq_proc(unsigned int irq,
{
@@ -330,6 +330,9 @@ void register_irq_proc(unsigned int irq,
static DEFINE_MUTEX(register_lock);
char name [MAX_NAMELEN];
+ if (IS_ENABLED(CONFIG_PROC_STRIPPED) && !IS_ENABLED(CONFIG_SMP))
+ return;
+
if (!root_irq_dir || (desc->irq_data.chip == &no_irq_chip) || desc->dir)
if (!root_irq_dir || (desc->irq_data.chip == &no_irq_chip))
return;
@@ -364,6 +367,9 @@ void unregister_irq_proc(unsigned int ir
@@ -379,6 +382,9 @@ void unregister_irq_proc(unsigned int ir
{
char name [MAX_NAMELEN];
@ -99,7 +99,7 @@
if (!root_irq_dir || !desc->dir)
return;
#ifdef CONFIG_SMP
@@ -399,6 +405,9 @@ void init_irq_proc(void)
@@ -414,6 +420,9 @@ void init_irq_proc(void)
unsigned int irq;
struct irq_desc *desc;

View File

@ -26,7 +26,7 @@
endif
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -2530,12 +2530,25 @@ enum {
@@ -2528,12 +2528,25 @@ enum {
DIO_ASYNC_EXTEND = 0x04,
};

View File

@ -94,7 +94,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/ip.h>
@@ -2231,6 +2232,126 @@ static s32 igb_init_i2c(struct igb_adapt
@@ -2237,6 +2238,126 @@ static s32 igb_init_i2c(struct igb_adapt
return status;
}
@ -221,7 +221,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
/**
* igb_probe - Device Initialization Routine
* @pdev: PCI device information struct
@@ -2653,6 +2774,13 @@ static int igb_probe(struct pci_dev *pde
@@ -2659,6 +2780,13 @@ static int igb_probe(struct pci_dev *pde
}
}
pm_runtime_put_noidle(&pdev->dev);
@ -235,7 +235,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
return 0;
err_register:
@@ -2796,6 +2924,10 @@ static void igb_remove(struct pci_dev *p
@@ -2802,6 +2930,10 @@ static void igb_remove(struct pci_dev *p
struct e1000_hw *hw = &adapter->hw;
pm_runtime_get_noresume(&pdev->dev);
@ -246,7 +246,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
#ifdef CONFIG_IGB_HWMON
igb_sysfs_exit(adapter);
#endif
@@ -3101,6 +3233,12 @@ static int __igb_open(struct net_device
@@ -3115,6 +3247,12 @@ static int __igb_open(struct net_device
if (!resuming)
pm_runtime_put(&pdev->dev);
@ -259,7 +259,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
/* start the watchdog. */
hw->mac.get_link_status = 1;
schedule_work(&adapter->watchdog_task);
@@ -7097,21 +7235,41 @@ void igb_alloc_rx_buffers(struct igb_rin
@@ -7111,21 +7249,41 @@ void igb_alloc_rx_buffers(struct igb_rin
static int igb_mii_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
{
struct igb_adapter *adapter = netdev_priv(netdev);

View File

@ -43,7 +43,7 @@
source "arch/arm/mach-qcom/Kconfig"
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -172,6 +172,7 @@ machine-$(CONFIG_ARCH_IXP4XX) += ixp4xx
@@ -180,6 +180,7 @@ machine-$(CONFIG_ARCH_IXP4XX) += ixp4xx
machine-$(CONFIG_ARCH_KEYSTONE) += keystone
machine-$(CONFIG_ARCH_KS8695) += ks8695
machine-$(CONFIG_ARCH_LPC32XX) += lpc32xx

View File

@ -29,7 +29,7 @@
source "arch/arm/mach-pxa/Kconfig"
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -187,6 +187,7 @@ machine-$(CONFIG_ARCH_NSPIRE) += nspire
@@ -195,6 +195,7 @@ machine-$(CONFIG_ARCH_NSPIRE) += nspire
machine-$(CONFIG_ARCH_OMAP1) += omap1
machine-$(CONFIG_ARCH_OMAP2PLUS) += omap2
machine-$(CONFIG_ARCH_ORION5X) += orion5x

View File

@ -15,7 +15,7 @@
/* initialize internal qc */
/* XXX: Tag 0 is used for drivers with legacy EH as some
@@ -4794,6 +4802,9 @@ static struct ata_queued_cmd *ata_qc_new
@@ -4796,6 +4804,9 @@ static struct ata_queued_cmd *ata_qc_new
if (unlikely(ap->pflags & ATA_PFLAG_FROZEN))
return NULL;
@ -25,7 +25,7 @@
for (i = 0, tag = ap->last_tag + 1; i < max_queue; i++, tag++) {
if (ap->flags & ATA_FLAG_LOWTAG)
tag = i;
@@ -4866,6 +4877,8 @@ void ata_qc_free(struct ata_queued_cmd *
@@ -4868,6 +4879,8 @@ void ata_qc_free(struct ata_queued_cmd *
if (likely(ata_tag_valid(tag))) {
qc->tag = ATA_TAG_POISON;
clear_bit(tag, &ap->qc_allocated);

View File

@ -50,7 +50,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
static inline void uart_w32(u32 val, unsigned reg)
{
@@ -38,11 +43,46 @@
@@ -38,11 +43,46 @@ static inline u32 uart_r32(unsigned reg)
return __raw_readl(uart_membase + reg);
}

View File

@ -264,7 +264,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
/*
* When the CPU goes into sleep mode, the BUS clock will be too low for
* USB to function properly
@@ -367,6 +500,52 @@ void __init ralink_of_remap(void)
@@ -367,6 +502,52 @@ void __init ralink_of_remap(void)
panic("Failed to remap core resources");
}
@ -317,7 +317,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
void prom_soc_init(struct ralink_soc_info *soc_info)
{
void __iomem *sysc = (void __iomem *) KSEG1ADDR(MT7620_SYSC_BASE);
@@ -384,18 +563,25 @@ void prom_soc_init(struct ralink_soc_inf
@@ -384,18 +565,25 @@ void prom_soc_init(struct ralink_soc_inf
rev = __raw_readl(sysc + SYSC_REG_CHIP_REV);
bga = (rev >> CHIP_REV_PKG_SHIFT) & CHIP_REV_PKG_MASK;
@ -353,7 +353,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
}
snprintf(soc_info->sys_type, RAMIPS_SYS_TYPE_LEN,
@@ -407,28 +593,11 @@ void prom_soc_init(struct ralink_soc_inf
@@ -407,28 +595,11 @@ void prom_soc_init(struct ralink_soc_inf
cfg0 = __raw_readl(sysc + SYSC_REG_SYSTEM_CONFIG0);
dram_type = (cfg0 >> SYSCFG0_DRAM_TYPE_SHIFT) & SYSCFG0_DRAM_TYPE_MASK;
@ -386,7 +386,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
pmu0 = __raw_readl(sysc + PMU0_CFG);
pmu1 = __raw_readl(sysc + PMU1_CFG);
@@ -437,4 +606,9 @@ void prom_soc_init(struct ralink_soc_inf
@@ -437,4 +608,9 @@ void prom_soc_init(struct ralink_soc_inf
(pmu0 & PMU_SW_SET) ? ("sw") : ("hw"));
pr_info("Digital PMU set to %s control\n",
(pmu1 & DIG_SW_SEL) ? ("sw") : ("hw"));

View File

@ -24,7 +24,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -453,6 +453,8 @@
@@ -453,6 +453,8 @@ config RALINK
select CLKDEV_LOOKUP
select ARCH_HAS_RESET_CONTROLLER
select RESET_CONTROLLER
@ -35,7 +35,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
bool "SGI IP22 (Indy/Indigo2)"
--- a/arch/mips/include/asm/mach-ralink/mt7620.h
+++ b/arch/mips/include/asm/mach-ralink/mt7620.h
@@ -90,7 +90,6 @@
@@ -90,7 +90,6 @@ enum mt762x_soc_type {
#define MT7620_DDR2_SIZE_MIN 32
#define MT7620_DDR2_SIZE_MAX 256
@ -43,7 +43,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
#define MT7620_GPIO_MODE_UART0_SHIFT 2
#define MT7620_GPIO_MODE_UART0_MASK 0x7
#define MT7620_GPIO_MODE_UART0(x) ((x) << MT7620_GPIO_MODE_UART0_SHIFT)
@@ -102,16 +101,36 @@
@@ -102,16 +101,36 @@ enum mt762x_soc_type {
#define MT7620_GPIO_MODE_GPIO_UARTF 0x5
#define MT7620_GPIO_MODE_GPIO_I2S 0x6
#define MT7620_GPIO_MODE_GPIO 0x7
@ -148,7 +148,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+#endif
--- a/arch/mips/include/asm/mach-ralink/rt305x.h
+++ b/arch/mips/include/asm/mach-ralink/rt305x.h
@@ -125,24 +125,29 @@
@@ -125,24 +125,29 @@ static inline int soc_is_rt5350(void)
#define RT305X_GPIO_GE0_TXD0 40
#define RT305X_GPIO_GE0_RXCLK 51
@ -263,7 +263,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
#include "common.h"
@@ -47,118 +48,58 @@
@@ -47,118 +48,58 @@ enum mt762x_soc_type mt762x_soc;
/* does the board have sdram or ddram */
static int dram_type;
@ -498,7 +498,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
};
static void rt288x_wdt_reset(void)
@@ -69,11 +50,6 @@
@@ -69,11 +50,6 @@ static void rt288x_wdt_reset(void)
rt_sysc_w32(t, SYSC_REG_CLKCFG);
}
@ -510,7 +510,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
void __init ralink_clk_init(void)
{
unsigned long cpu_rate, wmac_rate = 40000000;
@@ -141,4 +117,6 @@
@@ -141,4 +117,6 @@ void prom_soc_init(struct ralink_soc_inf
soc_info->mem_base = RT2880_SDRAM_BASE;
soc_info->mem_size_min = RT2880_MEM_SIZE_MIN;
soc_info->mem_size_max = RT2880_MEM_SIZE_MAX;
@ -673,7 +673,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
};
static void rt305x_wdt_reset(void)
@@ -114,14 +100,6 @@
@@ -114,14 +100,6 @@ static void rt305x_wdt_reset(void)
rt_sysc_w32(t, SYSC_REG_SYSTEM_CONFIG);
}
@ -688,7 +688,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
static unsigned long rt5350_get_mem_size(void)
{
void __iomem *sysc = (void __iomem *) KSEG1ADDR(RT305X_SYSC_BASE);
@@ -290,11 +268,14 @@
@@ -290,11 +268,14 @@ void prom_soc_init(struct ralink_soc_inf
soc_info->mem_base = RT305X_SDRAM_BASE;
if (soc_is_rt5350()) {
soc_info->mem_size = rt5350_get_mem_size();
@ -876,7 +876,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
};
static void rt3883_wdt_reset(void)
@@ -155,17 +73,6 @@
@@ -155,17 +73,6 @@ static void rt3883_wdt_reset(void)
rt_sysc_w32(t, RT3883_SYSC_REG_SYSCFG1);
}
@ -894,7 +894,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
void __init ralink_clk_init(void)
{
unsigned long cpu_rate, sys_rate;
@@ -244,4 +151,6 @@
@@ -244,4 +151,6 @@ void prom_soc_init(struct ralink_soc_inf
soc_info->mem_base = RT3883_SDRAM_BASE;
soc_info->mem_size_min = RT3883_MEM_SIZE_MIN;
soc_info->mem_size_max = RT3883_MEM_SIZE_MAX;
@ -903,7 +903,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
}
--- a/drivers/pinctrl/Kconfig
+++ b/drivers/pinctrl/Kconfig
@@ -103,6 +103,11 @@
@@ -103,6 +103,11 @@ config PINCTRL_LANTIQ
select PINMUX
select PINCONF
@ -917,7 +917,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
depends on SOC_FALCON
--- a/drivers/pinctrl/Makefile
+++ b/drivers/pinctrl/Makefile
@@ -20,6 +20,7 @@
@@ -20,6 +20,7 @@ obj-$(CONFIG_PINCTRL_BCM281XX) += pinctr
obj-$(CONFIG_PINCTRL_FALCON) += pinctrl-falcon.o
obj-$(CONFIG_PINCTRL_PALMAS) += pinctrl-palmas.o
obj-$(CONFIG_PINCTRL_ROCKCHIP) += pinctrl-rockchip.o

View File

@ -1,6 +1,6 @@
--- a/drivers/phy/Kconfig
+++ b/drivers/phy/Kconfig
@@ -239,6 +239,11 @@
@@ -239,6 +239,11 @@ config PHY_XGENE
help
This option enables support for APM X-Gene SoC multi-purpose PHY.
@ -14,7 +14,7 @@
depends on RESET_CONTROLLER
--- a/drivers/phy/Makefile
+++ b/drivers/phy/Makefile
@@ -31,3 +31,4 @@
@@ -31,3 +31,4 @@ obj-$(CONFIG_PHY_ST_SPEAR1340_MIPHY) +=
obj-$(CONFIG_PHY_XGENE) += phy-xgene.o
obj-$(CONFIG_PHY_STIH407_USB) += phy-stih407-usb.o
obj-$(CONFIG_PHY_STIH41X_USB) += phy-stih41x-usb.o

View File

@ -14,7 +14,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -455,6 +455,9 @@
@@ -455,6 +455,9 @@ config RALINK
select RESET_CONTROLLER
select PINCTRL
select PINCTRL_RT2880
@ -26,7 +26,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
bool "SGI IP22 (Indy/Indigo2)"
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -898,6 +898,12 @@
@@ -898,6 +898,12 @@ config GPIO_BCM_KONA
help
Turn on GPIO support for Broadcom "Kona" chips.
@ -41,7 +41,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
config GPIO_VIPERBOARD
--- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile
@@ -107,3 +107,5 @@
@@ -107,3 +107,5 @@ obj-$(CONFIG_GPIO_XILINX) += gpio-xilinx
obj-$(CONFIG_GPIO_XTENSA) += gpio-xtensa.o
obj-$(CONFIG_GPIO_ZEVIO) += gpio-zevio.o
obj-$(CONFIG_GPIO_ZYNQ) += gpio-zynq.o

View File

@ -25,7 +25,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
--- a/drivers/mmc/host/Kconfig
+++ b/drivers/mmc/host/Kconfig
@@ -773,3 +773,5 @@
@@ -773,3 +773,5 @@ config MMC_SUNXI
help
This selects support for the SD/MMC Host Controller on
Allwinner sunxi SoCs.

View File

@ -110,8 +110,8 @@
if (xtal_rate == MHZ(40))
cpu_rate = MHZ(580);
else
@@ -418,7 +416,7 @@ void __init ralink_clk_init(void)
ralink_clk_add("10000c00.uartlite", periph_rate);
@@ -420,7 +418,7 @@ void __init ralink_clk_init(void)
ralink_clk_add("10000e00.uart2", periph_rate);
ralink_clk_add("10180000.wmac", xtal_rate);
- if (IS_ENABLED(CONFIG_USB) && mt762x_soc != MT762X_SOC_MT7628AN) {
@ -119,7 +119,7 @@
/*
* When the CPU goes into sleep mode, the BUS clock will be too low for
* USB to function properly
@@ -506,11 +504,11 @@ void prom_soc_init(struct ralink_soc_inf
@@ -508,11 +506,11 @@ void prom_soc_init(struct ralink_soc_inf
if (n0 == MT7620_CHIP_NAME0 && n1 == MT7620_CHIP_NAME1) {
if (bga) {
@ -133,7 +133,7 @@
name = "MT7620N";
soc_info->compatible = "ralink,mt7620n-soc";
#ifdef CONFIG_PCI
@@ -518,7 +516,7 @@ void prom_soc_init(struct ralink_soc_inf
@@ -520,7 +518,7 @@ void prom_soc_init(struct ralink_soc_inf
#endif
}
} else if (n0 == MT7620_CHIP_NAME0 && n1 == MT7628_CHIP_NAME1) {
@ -142,7 +142,7 @@
name = "MT7628AN";
soc_info->compatible = "ralink,mt7628an-soc";
} else {
@@ -535,7 +533,7 @@ void prom_soc_init(struct ralink_soc_inf
@@ -537,7 +535,7 @@ void prom_soc_init(struct ralink_soc_inf
dram_type = (cfg0 >> SYSCFG0_DRAM_TYPE_SHIFT) & SYSCFG0_DRAM_TYPE_MASK;
soc_info->mem_base = MT7620_DRAM_BASE;
@ -151,7 +151,7 @@
mt7628_dram_init(soc_info);
else
mt7620_dram_init(soc_info);
@@ -548,7 +546,7 @@ void prom_soc_init(struct ralink_soc_inf
@@ -550,7 +548,7 @@ void prom_soc_init(struct ralink_soc_inf
pr_info("Digital PMU set to %s control\n",
(pmu1 & DIG_SW_SEL) ? ("sw") : ("hw"));

View File

@ -1,6 +1,6 @@
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -439,6 +439,12 @@
@@ -439,6 +439,12 @@ config SPI_RT2880
help
This selects a driver for the Ralink RT288x/RT305x SPI Controller.
@ -15,7 +15,7 @@
depends on ARCH_S3C24XX
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
@@ -46,6 +46,7 @@
@@ -46,6 +46,7 @@ obj-$(CONFIG_SPI_LM70_LLP) += spi-lm70l
obj-$(CONFIG_SPI_MPC512x_PSC) += spi-mpc512x-psc.o
obj-$(CONFIG_SPI_MPC52xx_PSC) += spi-mpc52xx-psc.o
obj-$(CONFIG_SPI_MPC52xx) += spi-mpc52xx.o

View File

@ -5145,7 +5145,7 @@
/*
* For xHCI 1.0 host controllers, TD size is the number of max packet sized
* packets remaining in the TD (*not* including this TRB).
@@ -3141,6 +3175,7 @@ static int queue_bulk_sg_tx(struct xhci_
@@ -3161,6 +3195,7 @@ static int queue_bulk_sg_tx(struct xhci_
}
/* Set the TRB length, TD size, and interrupter fields. */
@ -5153,7 +5153,7 @@
if (xhci->hci_version < 0x100) {
remainder = xhci_td_remainder(
urb->transfer_buffer_length -
@@ -3150,6 +3185,12 @@ static int queue_bulk_sg_tx(struct xhci_
@@ -3170,6 +3205,12 @@ static int queue_bulk_sg_tx(struct xhci_
trb_buff_len, total_packet_count, urb,
num_trbs - 1);
}
@ -5166,7 +5166,7 @@
length_field = TRB_LEN(trb_buff_len) |
remainder |
TRB_INTR_TARGET(0);
@@ -3212,6 +3253,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
@@ -3234,6 +3275,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
int running_total, trb_buff_len, ret;
unsigned int total_packet_count;
u64 addr;
@ -5176,10 +5176,10 @@
if (urb->num_sgs)
return queue_bulk_sg_tx(xhci, mem_flags, urb, slot_id, ep_index);
@@ -3237,6 +3281,25 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
@@ -3258,6 +3302,25 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
num_trbs++;
running_total += TRB_MAX_BUFF_SIZE;
}
/* FIXME: this doesn't deal with URB_ZERO_PACKET - need one more */
+#if defined (CONFIG_USB_MT7621_XHCI_PLATFORM)
+ switch(urb->dev->speed){
+ case USB_SPEED_SUPER:
@ -5202,7 +5202,7 @@
ret = prepare_transfer(xhci, xhci->devs[slot_id],
ep_index, urb->stream_id,
@@ -3296,6 +3359,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
@@ -3334,6 +3397,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
field |= TRB_ISP;
/* Set the TRB length, TD size, and interrupter fields. */
@ -5210,7 +5210,7 @@
if (xhci->hci_version < 0x100) {
remainder = xhci_td_remainder(
urb->transfer_buffer_length -
@@ -3305,6 +3369,10 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
@@ -3343,6 +3407,10 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
trb_buff_len, total_packet_count, urb,
num_trbs - 1);
}
@ -5221,19 +5221,19 @@
length_field = TRB_LEN(trb_buff_len) |
remainder |
TRB_INTR_TARGET(0);
@@ -3394,7 +3462,11 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
@@ -3432,7 +3500,11 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
field |= 0x1;
/* xHCI 1.0 6.4.1.2.1: Transfer Type field */
/* xHCI 1.0/1.1 6.4.1.2.1: Transfer Type field */
+#if defined (CONFIG_USB_MT7621_XHCI_PLATFORM)
+ if (1) {
+#else
if (xhci->hci_version == 0x100) {
if (xhci->hci_version >= 0x100) {
+#endif
if (urb->transfer_buffer_length > 0) {
if (setup->bRequestType & USB_DIR_IN)
field |= TRB_TX_TYPE(TRB_DATA_IN);
@@ -3418,7 +3490,12 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
@@ -3456,7 +3528,12 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
field = TRB_TYPE(TRB_DATA);
length_field = TRB_LEN(urb->transfer_buffer_length) |
@ -5246,7 +5246,7 @@
TRB_INTR_TARGET(0);
if (urb->transfer_buffer_length > 0) {
if (setup->bRequestType & USB_DIR_IN)
@@ -3541,6 +3618,9 @@ static int xhci_queue_isoc_tx(struct xhc
@@ -3579,6 +3656,9 @@ static int xhci_queue_isoc_tx(struct xhc
u64 start_addr, addr;
int i, j;
bool more_trbs_coming;
@ -5256,7 +5256,7 @@
ep_ring = xhci->devs[slot_id]->eps[ep_index].ring;
@@ -3554,6 +3634,21 @@ static int xhci_queue_isoc_tx(struct xhc
@@ -3592,6 +3672,21 @@ static int xhci_queue_isoc_tx(struct xhc
start_trb = &ep_ring->enqueue->generic;
start_cycle = ep_ring->cycle_state;
@ -5278,7 +5278,7 @@
urb_priv = urb->hcpriv;
/* Queue the first TRB, even if it's zero-length */
for (i = 0; i < num_tds; i++) {
@@ -3625,9 +3720,13 @@ static int xhci_queue_isoc_tx(struct xhc
@@ -3663,9 +3758,13 @@ static int xhci_queue_isoc_tx(struct xhc
} else {
td->last_trb = ep_ring->enqueue;
field |= TRB_IOC;
@ -5292,7 +5292,7 @@
/* Set BEI bit except for the last td */
if (i < num_tds - 1)
field |= TRB_BEI;
@@ -3642,6 +3741,7 @@ static int xhci_queue_isoc_tx(struct xhc
@@ -3680,6 +3779,7 @@ static int xhci_queue_isoc_tx(struct xhc
trb_buff_len = td_remain_len;
/* Set the TRB length, TD size, & interrupter fields. */
@ -5300,7 +5300,7 @@
if (xhci->hci_version < 0x100) {
remainder = xhci_td_remainder(
td_len - running_total);
@@ -3651,6 +3751,10 @@ static int xhci_queue_isoc_tx(struct xhc
@@ -3689,6 +3789,10 @@ static int xhci_queue_isoc_tx(struct xhc
total_packet_count, urb,
(trbs_per_td - j - 1));
}
@ -5349,7 +5349,7 @@
/* TODO: copied from ehci-hcd.c - can this be refactored? */
/*
* xhci_handshake - spin reading hc until handshake completes or fails
@@ -198,7 +220,7 @@ int xhci_reset(struct xhci_hcd *xhci)
@@ -199,7 +221,7 @@ int xhci_reset(struct xhci_hcd *xhci)
return ret;
}
@ -5358,7 +5358,7 @@
static int xhci_free_msi(struct xhci_hcd *xhci)
{
int i;
@@ -448,6 +470,11 @@ static void compliance_mode_recovery(uns
@@ -449,6 +471,11 @@ static void compliance_mode_recovery(uns
"Attempting compliance mode recovery");
hcd = xhci->shared_hcd;
@ -5370,7 +5370,7 @@
if (hcd->state == HC_STATE_SUSPENDED)
usb_hcd_resume_root_hub(hcd);
@@ -497,6 +524,9 @@ static bool xhci_compliance_mode_recover
@@ -498,6 +525,9 @@ static bool xhci_compliance_mode_recover
{
const char *dmi_product_name, *dmi_sys_vendor;
@ -5380,7 +5380,7 @@
dmi_product_name = dmi_get_system_info(DMI_PRODUCT_NAME);
dmi_sys_vendor = dmi_get_system_info(DMI_SYS_VENDOR);
if (!dmi_product_name || !dmi_sys_vendor)
@@ -542,6 +572,10 @@ int xhci_init(struct usb_hcd *hcd)
@@ -543,6 +573,10 @@ int xhci_init(struct usb_hcd *hcd)
xhci_dbg_trace(xhci, trace_xhci_dbg_init,
"xHCI doesn't need link TRB QUIRK");
}
@ -5391,7 +5391,7 @@
retval = xhci_mem_init(xhci, GFP_KERNEL);
xhci_dbg_trace(xhci, trace_xhci_dbg_init, "Finished xhci_init");
@@ -626,7 +660,11 @@ int xhci_run(struct usb_hcd *hcd)
@@ -627,7 +661,11 @@ int xhci_run(struct usb_hcd *hcd)
"// Set the interrupt modulation register");
temp = readl(&xhci->ir_set->irq_control);
temp &= ~ER_IRQ_INTERVAL_MASK;
@ -5403,7 +5403,7 @@
writel(temp, &xhci->ir_set->irq_control);
/* Set the HCD state before we enable the irqs */
@@ -651,6 +689,9 @@ int xhci_run(struct usb_hcd *hcd)
@@ -652,6 +690,9 @@ int xhci_run(struct usb_hcd *hcd)
xhci_queue_vendor_command(xhci, command, 0, 0, 0,
TRB_TYPE(TRB_NEC_GET_FW));
}
@ -5413,7 +5413,7 @@
xhci_dbg_trace(xhci, trace_xhci_dbg_init,
"Finished xhci_run for USB2 roothub");
return 0;
@@ -1642,6 +1683,14 @@ int xhci_drop_endpoint(struct usb_hcd *h
@@ -1648,6 +1689,14 @@ int xhci_drop_endpoint(struct usb_hcd *h
u32 drop_flag;
u32 new_add_flags, new_drop_flags;
int ret;
@ -5428,7 +5428,7 @@
ret = xhci_check_args(hcd, udev, ep, 1, true, __func__);
if (ret <= 0)
@@ -1689,6 +1738,40 @@ int xhci_drop_endpoint(struct usb_hcd *h
@@ -1695,6 +1744,40 @@ int xhci_drop_endpoint(struct usb_hcd *h
xhci_endpoint_zero(xhci, xhci->devs[udev->slot_id], ep);
@ -5469,7 +5469,7 @@
xhci_dbg(xhci, "drop ep 0x%x, slot id %d, new drop flags = %#x, new add flags = %#x\n",
(unsigned int) ep->desc.bEndpointAddress,
udev->slot_id,
@@ -1721,6 +1804,19 @@ int xhci_add_endpoint(struct usb_hcd *hc
@@ -1727,6 +1810,19 @@ int xhci_add_endpoint(struct usb_hcd *hc
u32 new_add_flags, new_drop_flags;
struct xhci_virt_device *virt_dev;
int ret = 0;
@ -5489,7 +5489,7 @@
ret = xhci_check_args(hcd, udev, ep, 1, true, __func__);
if (ret <= 0) {
@@ -1787,6 +1883,56 @@ int xhci_add_endpoint(struct usb_hcd *hc
@@ -1793,6 +1889,56 @@ int xhci_add_endpoint(struct usb_hcd *hc
return -ENOMEM;
}
@ -5546,7 +5546,7 @@
ctrl_ctx->add_flags |= cpu_to_le32(added_ctxs);
new_add_flags = le32_to_cpu(ctrl_ctx->add_flags);
@@ -4454,8 +4600,14 @@ static u16 xhci_call_host_update_timeout
@@ -4463,8 +4609,14 @@ static u16 xhci_call_host_update_timeout
u16 *timeout)
{
if (state == USB3_LPM_U1)
@ -5561,7 +5561,7 @@
return xhci_calculate_u2_timeout(xhci, udev, desc);
return USB3_LPM_DISABLED;
@@ -4840,7 +4992,9 @@ int xhci_gen_setup(struct usb_hcd *hcd,
@@ -4849,7 +5001,9 @@ int xhci_gen_setup(struct usb_hcd *hcd,
hcd->self.no_sg_constraint = 1;
/* XHCI controllers don't stop the ep queue on short packets :| */
@ -5571,7 +5571,7 @@
if (usb_hcd_is_primary_hcd(hcd)) {
xhci = kzalloc(sizeof(struct xhci_hcd), GFP_KERNEL);
@@ -4903,6 +5057,10 @@ int xhci_gen_setup(struct usb_hcd *hcd,
@@ -4912,6 +5066,10 @@ int xhci_gen_setup(struct usb_hcd *hcd,
goto error;
xhci_dbg(xhci, "Reset complete\n");
@ -5582,7 +5582,7 @@
/* Set dma_mask and coherent_dma_mask to 64-bits,
* if xHC supports 64-bit addressing */
if (HCC_64BIT_ADDR(xhci->hcc_params) &&
@@ -4997,8 +5155,57 @@ MODULE_DESCRIPTION(DRIVER_DESC);
@@ -5006,8 +5164,57 @@ MODULE_DESCRIPTION(DRIVER_DESC);
MODULE_AUTHOR(DRIVER_AUTHOR);
MODULE_LICENSE("GPL");

View File

@ -1,6 +1,6 @@
--- a/drivers/pwm/Kconfig
+++ b/drivers/pwm/Kconfig
@@ -177,6 +177,15 @@
@@ -177,6 +177,15 @@ config PWM_LPSS_PLATFORM
To compile this driver as a module, choose M here: the module
will be called pwm-lpss-platform.
@ -18,7 +18,7 @@
depends on ARCH_MXS && OF
--- a/drivers/pwm/Makefile
+++ b/drivers/pwm/Makefile
@@ -15,6 +15,7 @@
@@ -15,6 +15,7 @@ obj-$(CONFIG_PWM_LPC32XX) += pwm-lpc32xx
obj-$(CONFIG_PWM_LPSS) += pwm-lpss.o
obj-$(CONFIG_PWM_LPSS_PCI) += pwm-lpss-pci.o
obj-$(CONFIG_PWM_LPSS_PLATFORM) += pwm-lpss-platform.o

View File

@ -1,6 +1,6 @@
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -56,3 +56,4 @@
@@ -56,3 +56,4 @@ obj-$(CONFIG_GENWQE) += genwqe/
obj-$(CONFIG_ECHO) += echo/
obj-$(CONFIG_VEXPRESS_SYSCFG) += vexpress-syscfg.o
obj-$(CONFIG_CXL_BASE) += cxl/

View File

@ -1,6 +1,6 @@
--- a/arch/mips/ralink/mt7620.c
+++ b/arch/mips/ralink/mt7620.c
@@ -101,28 +101,28 @@
@@ -101,28 +101,28 @@ static struct rt2880_pmx_group mt7620a_p
};
static struct rt2880_pmx_func pwm1_grp_mt7628[] = {
@ -35,7 +35,7 @@
FUNC("pwm", 2, 45, 2),
FUNC("gpio", 1, 45, 2),
FUNC("uart1", 0, 45, 2),
@@ -165,7 +165,7 @@
@@ -165,7 +165,7 @@ static struct rt2880_pmx_func spi_cs1_gr
FUNC("-", 3, 6, 1),
FUNC("refclk", 2, 6, 1),
FUNC("gpio", 1, 6, 1),
@ -44,7 +44,7 @@
};
static struct rt2880_pmx_func spis_grp_mt7628[] = {
@@ -182,27 +182,43 @@
@@ -182,27 +182,43 @@ static struct rt2880_pmx_func gpio_grp_m
FUNC("gpio", 0, 11, 1),
};
@ -107,7 +107,7 @@
GRP_G("uart2", uart2_grp_mt7628, MT7628_GPIO_MODE_MASK, 1, MT7628_GPIO_MODE_UART2),
GRP_G("uart1", uart1_grp_mt7628, MT7628_GPIO_MODE_MASK, 1, MT7628_GPIO_MODE_UART1),
GRP_G("i2c", i2c_grp_mt7628, MT7628_GPIO_MODE_MASK, 1, MT7628_GPIO_MODE_I2C),
@@ -216,6 +232,8 @@
@@ -216,6 +232,8 @@ static struct rt2880_pmx_group mt7628an_
GRP_G("spi cs1", spi_cs1_grp_mt7628, MT7628_GPIO_MODE_MASK, 1, MT7628_GPIO_MODE_CS1),
GRP_G("spis", spis_grp_mt7628, MT7628_GPIO_MODE_MASK, 1, MT7628_GPIO_MODE_SPIS),
GRP_G("gpio", gpio_grp_mt7628, MT7628_GPIO_MODE_MASK, 1, MT7628_GPIO_MODE_GPIO),
@ -116,7 +116,7 @@
{ 0 }
};
@@ -529,7 +547,11 @@
@@ -532,7 +550,11 @@ void prom_soc_init(struct ralink_soc_inf
(rev & CHIP_REV_ECO_MASK));
cfg0 = __raw_readl(sysc + SYSC_REG_SYSTEM_CONFIG0);

View File

@ -20,7 +20,7 @@
/* does the board have sdram or ddram */
static int dram_type;
@@ -391,7 +394,7 @@
@@ -391,7 +394,7 @@ void __init ralink_clk_init(void)
#define RINT(x) ((x) / 1000000)
#define RFRAC(x) (((x) / 1000) % 1000)
@ -29,7 +29,7 @@
if (xtal_rate == MHZ(40))
cpu_rate = MHZ(580);
else
@@ -436,7 +439,8 @@
@@ -436,7 +439,8 @@ void __init ralink_clk_init(void)
ralink_clk_add("10000e00.uart2", periph_rate);
ralink_clk_add("10180000.wmac", xtal_rate);
@ -39,7 +39,7 @@
/*
* When the CPU goes into sleep mode, the BUS clock will be too low for
* USB to function properly
@@ -536,8 +540,15 @@
@@ -536,8 +540,15 @@ void prom_soc_init(struct ralink_soc_inf
#endif
}
} else if (n0 == MT7620_CHIP_NAME0 && n1 == MT7628_CHIP_NAME1) {
@ -57,7 +57,7 @@
soc_info->compatible = "ralink,mt7628an-soc";
} else {
panic("mt762x: unknown SoC, n0:%08x n1:%08x\n", n0, n1);
@@ -551,13 +562,13 @@
@@ -551,13 +562,13 @@ void prom_soc_init(struct ralink_soc_inf
cfg0 = __raw_readl(sysc + SYSC_REG_SYSTEM_CONFIG0);
@ -73,7 +73,7 @@
mt7628_dram_init(soc_info);
else
mt7620_dram_init(soc_info);
@@ -570,7 +581,7 @@
@@ -570,7 +581,7 @@ void prom_soc_init(struct ralink_soc_inf
pr_info("Digital PMU set to %s control\n",
(pmu1 & DIG_SW_SEL) ? ("sw") : ("hw"));
@ -84,7 +84,7 @@
rt2880_pinmux_data = mt7620a_pinmux_data;
--- a/arch/mips/include/asm/mach-ralink/ralink_regs.h
+++ b/arch/mips/include/asm/mach-ralink/ralink_regs.h
@@ -24,6 +24,7 @@
@@ -24,6 +24,7 @@ enum ralink_soc_type {
MT762X_SOC_MT7620N,
MT762X_SOC_MT7621AT,
MT762X_SOC_MT7628AN,
@ -94,7 +94,7 @@
--- a/drivers/net/ethernet/ralink/esw_rt3052.c
+++ b/drivers/net/ethernet/ralink/esw_rt3052.c
@@ -611,7 +611,7 @@
@@ -611,7 +611,7 @@ static void esw_hw_init(struct rt305x_es
rt305x_mii_write(esw, 0, 29, 0x598b);
/* select local register */
rt305x_mii_write(esw, 0, 31, 0x8000);
@ -103,7 +103,7 @@
int i;
// u32 phy_val;
u32 val;
@@ -1042,7 +1042,7 @@
@@ -1042,7 +1042,7 @@ esw_get_port_tr_badgood(struct switch_de
int shift = attr->id == RT5350_ESW_ATTR_PORT_TR_GOOD ? 0 : 16;
u32 reg;

View File

@ -1,6 +1,6 @@
--- a/arch/mips/ralink/mt7620.c
+++ b/arch/mips/ralink/mt7620.c
@@ -555,7 +555,7 @@
@@ -555,7 +555,7 @@ void prom_soc_init(struct ralink_soc_inf
}
snprintf(soc_info->sys_type, RAMIPS_SYS_TYPE_LEN,
@ -11,7 +11,7 @@
(rev & CHIP_REV_ECO_MASK));
--- a/arch/mips/ralink/mt7621.c
+++ b/arch/mips/ralink/mt7621.c
@@ -168,7 +168,7 @@
@@ -168,7 +168,7 @@ void prom_soc_init(struct ralink_soc_inf
rev = __raw_readl(sysc + SYSC_REG_CHIP_REV);
snprintf(soc_info->sys_type, RAMIPS_SYS_TYPE_LEN,

View File

@ -1,6 +1,6 @@
--- a/sound/soc/Kconfig
+++ b/sound/soc/Kconfig
@@ -56,6 +56,7 @@
@@ -56,6 +56,7 @@ source "sound/soc/spear/Kconfig"
source "sound/soc/tegra/Kconfig"
source "sound/soc/txx9/Kconfig"
source "sound/soc/ux500/Kconfig"
@ -10,14 +10,14 @@
source "sound/soc/codecs/Kconfig"
--- a/sound/soc/Makefile
+++ b/sound/soc/Makefile
@@ -33,3 +33,4 @@
@@ -33,3 +33,4 @@ obj-$(CONFIG_SND_SOC) += spear/
obj-$(CONFIG_SND_SOC) += tegra/
obj-$(CONFIG_SND_SOC) += txx9/
obj-$(CONFIG_SND_SOC) += ux500/
+obj-$(CONFIG_SND_SOC) += mtk/
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -725,7 +725,7 @@
@@ -725,7 +725,7 @@ config SND_SOC_WM8955
tristate
config SND_SOC_WM8960
@ -7371,7 +7371,7 @@
+#endif
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1851,7 +1851,8 @@
@@ -1851,7 +1851,8 @@ static int soc_probe(struct platform_dev
/* Bodge while we unpick instantiation */
card->dev = &pdev->dev;
@ -8107,7 +8107,7 @@
{ 0x4, 0x0000 },
{ 0x5, 0x0008 },
{ 0x6, 0x0000 },
@@ -88,8 +89,8 @@
@@ -88,8 +89,8 @@ static const struct reg_default wm8960_r
{ 0x25, 0x0050 },
{ 0x26, 0x0000 },
{ 0x27, 0x0000 },
@ -8118,7 +8118,7 @@
{ 0x2a, 0x0040 },
{ 0x2b, 0x0000 },
{ 0x2c, 0x0000 },
@@ -127,8 +128,15 @@
@@ -127,8 +128,15 @@ struct wm8960_priv {
int playback_fs;
};
@ -8135,7 +8135,7 @@
/* enumerated controls */
static const char *wm8960_polarity[] = {"No Inversion", "Left Inverted",
"Right Inverted", "Stereo Inversion"};
@@ -181,8 +189,8 @@
@@ -181,8 +189,8 @@ static int wm8960_get_deemph(struct snd_
struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec);
@ -8146,7 +8146,7 @@
}
static int wm8960_put_deemph(struct snd_kcontrol *kcontrol,
@@ -200,6 +208,70 @@
@@ -200,6 +208,70 @@ static int wm8960_put_deemph(struct snd_
return wm8960_set_deemph(codec);
}
@ -8217,7 +8217,7 @@
static const DECLARE_TLV_DB_SCALE(adc_tlv, -9700, 50, 0);
static const DECLARE_TLV_DB_SCALE(dac_tlv, -12700, 50, 1);
static const DECLARE_TLV_DB_SCALE(bypass_tlv, -2100, 300, 0);
@@ -542,6 +614,7 @@
@@ -542,6 +614,7 @@ static int wm8960_set_dai_fmt(struct snd
/* set iface */
snd_soc_write(codec, WM8960_IFACE1, iface);
@ -8225,7 +8225,7 @@
return 0;
}
@@ -623,11 +696,16 @@
@@ -623,11 +696,16 @@ static int wm8960_set_bias_level_out3(st
break;
case SND_SOC_BIAS_PREPARE:
@ -8242,7 +8242,7 @@
if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) {
regcache_sync(wm8960->regmap);
@@ -650,9 +728,13 @@
@@ -650,9 +728,13 @@ static int wm8960_set_bias_level_out3(st
/* Set VMID to 2x250k */
snd_soc_update_bits(codec, WM8960_POWER1, 0x180, 0x100);
@ -8256,7 +8256,7 @@
/* Enable anti-pop features */
snd_soc_write(codec, WM8960_APOP1,
WM8960_POBCTRL | WM8960_SOFT_ST |
@@ -661,6 +743,7 @@
@@ -661,6 +743,7 @@ static int wm8960_set_bias_level_out3(st
/* Disable VMID and VREF, let them discharge */
snd_soc_write(codec, WM8960_POWER1, 0);
msleep(600);
@ -8264,7 +8264,7 @@
break;
}
@@ -853,10 +936,15 @@
@@ -853,10 +936,15 @@ static int wm8960_set_dai_pll(struct snd
if (pll_div.k) {
reg |= 0x20;
@ -8281,7 +8281,7 @@
}
snd_soc_write(codec, WM8960_PLL1, reg);
@@ -888,7 +976,11 @@
@@ -888,7 +976,11 @@ static int wm8960_set_dai_clkdiv(struct
snd_soc_write(codec, WM8960_PLL1, reg | div);
break;
case WM8960_DCLKDIV:
@ -8293,7 +8293,7 @@
snd_soc_write(codec, WM8960_CLOCK2, reg | div);
break;
case WM8960_TOCLKSEL:
@@ -962,7 +1054,7 @@
@@ -962,7 +1054,7 @@ static int wm8960_probe(struct snd_soc_c
{
struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec);
struct wm8960_data *pdata = dev_get_platdata(codec->dev);
@ -8302,7 +8302,7 @@
wm8960->set_bias_level = wm8960_set_bias_level_out3;
@@ -973,11 +1065,7 @@
@@ -973,11 +1065,7 @@ static int wm8960_probe(struct snd_soc_c
wm8960->set_bias_level = wm8960_set_bias_level_capless;
}

View File

@ -1,6 +1,6 @@
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
@@ -356,6 +356,9 @@
@@ -356,6 +356,9 @@ uart_get_baud_rate(struct uart_port *por
else if (flags == UPF_SPD_WARP)
altbaud = 460800;

View File

@ -1,6 +1,6 @@
--- a/arch/mips/ralink/mt7620.c
+++ b/arch/mips/ralink/mt7620.c
@@ -511,9 +511,6 @@ void prom_soc_init(struct ralink_soc_inf
@@ -535,9 +535,6 @@ void prom_soc_init(struct ralink_soc_inf
ralink_soc = MT762X_SOC_MT7620N;
name = "MT7620N";
soc_info->compatible = "ralink,mt7620n-soc";
@ -9,4 +9,4 @@
-#endif
}
} else if (n0 == MT7620_CHIP_NAME0 && n1 == MT7628_CHIP_NAME1) {
ralink_soc = MT762X_SOC_MT7628AN;
u32 efuse = __raw_readl(sysc + SYSC_REG_EFUSE_CFG);

View File

@ -49,7 +49,7 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
put_device(&card->dev);
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -1205,6 +1205,34 @@ EXPORT_SYMBOL(mmc_of_parse_voltage);
@@ -1207,6 +1207,34 @@ EXPORT_SYMBOL(mmc_of_parse_voltage);
#endif /* CONFIG_OF */

View File

@ -1,61 +0,0 @@
From: David Woodhouse <dwmw2@infradead.org>
Date: Thu, 17 Sep 2015 10:16:54 +0100
Subject: [PATCH] x86/platform: Fix Geode LX timekeeping in the generic x86
build
In 2007, commit 07190a08eef36 ("Mark TSC on GeodeLX reliable")
bypassed verification of the TSC on Geode LX. However, this code
(now in the check_system_tsc_reliable() function in
arch/x86/kernel/tsc.c) was only present if CONFIG_MGEODE_LX was
set.
OpenWRT has recently started building its generic Geode target
for Geode GX, not LX, to include support for additional
platforms. This broke the timekeeping on LX-based devices,
because the TSC wasn't marked as reliable:
https://dev.openwrt.org/ticket/20531
By adding a runtime check on is_geode_lx(), we can also include
the fix if CONFIG_MGEODEGX1 or CONFIG_X86_GENERIC are set, thus
fixing the problem.
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Closes #20531
---
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -21,6 +21,7 @@
#include <asm/hypervisor.h>
#include <asm/nmi.h>
#include <asm/x86_init.h>
+#include <asm/geode.h>
unsigned int __read_mostly cpu_khz; /* TSC clocks / usec, not used here */
EXPORT_SYMBOL(cpu_khz);
@@ -1004,15 +1005,17 @@ EXPORT_SYMBOL_GPL(mark_tsc_unstable);
static void __init check_system_tsc_reliable(void)
{
-#ifdef CONFIG_MGEODE_LX
- /* RTSC counts during suspend */
+#if defined(CONFIG_MGEODEGX1) || defined(CONFIG_MGEODE_LX) || defined(CONFIG_X86_GENERIC)
+ if (is_geode_lx()) {
+ /* RTSC counts during suspend */
#define RTSC_SUSP 0x100
- unsigned long res_low, res_high;
+ unsigned long res_low, res_high;
- rdmsr_safe(MSR_GEODE_BUSCONT_CONF0, &res_low, &res_high);
- /* Geode_LX - the OLPC CPU has a very reliable TSC */
- if (res_low & RTSC_SUSP)
- tsc_clocksource_reliable = 1;
+ rdmsr_safe(MSR_GEODE_BUSCONT_CONF0, &res_low, &res_high);
+ /* Geode_LX - the OLPC CPU has a very reliable TSC */
+ if (res_low & RTSC_SUSP)
+ tsc_clocksource_reliable = 1;
+ }
#endif
if (boot_cpu_has(X86_FEATURE_TSC_RELIABLE))
tsc_clocksource_reliable = 1;

View File

@ -9,7 +9,7 @@ Subject: [PATCH 1/7] ubi: Read only the vid header instead of the whole page
--- a/drivers/mtd/ubi/io.c
+++ b/drivers/mtd/ubi/io.c
@@ -1009,7 +1009,7 @@ int ubi_io_read_vid_hdr(struct ubi_devic
@@ -1014,7 +1014,7 @@ int ubi_io_read_vid_hdr(struct ubi_devic
p = (char *)vid_hdr - ubi->vid_hdr_shift;
read_err = ubi_io_read(ubi, p, pnum, ubi->vid_hdr_aloffset,