diff options
author | Hauke Mehrtens <hauke@hauke-m.de> | 2015-11-01 13:45:57 +0000 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2015-11-01 13:45:57 +0000 |
commit | 55a912f43e9762638e3b3d0fc640d903f29ba8b7 (patch) | |
tree | 80f32338e0470a97524f0617bf835586004d810c /target/linux/ramips/patches-3.18 | |
parent | 9130e4dc3267e4d1f25e22cddf798991bc6197cf (diff) | |
download | upstream-55a912f43e9762638e3b3d0fc640d903f29ba8b7.tar.gz upstream-55a912f43e9762638e3b3d0fc640d903f29ba8b7.tar.bz2 upstream-55a912f43e9762638e3b3d0fc640d903f29ba8b7.zip |
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
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 47334
Diffstat (limited to 'target/linux/ramips/patches-3.18')
14 files changed, 101 insertions, 101 deletions
diff --git a/target/linux/ramips/patches-3.18/0015-MIPS-ralink-cleanup-early_printk.patch b/target/linux/ramips/patches-3.18/0015-MIPS-ralink-cleanup-early_printk.patch index 3fffa804cf..1e5c90b6c8 100644 --- a/target/linux/ramips/patches-3.18/0015-MIPS-ralink-cleanup-early_printk.patch +++ b/target/linux/ramips/patches-3.18/0015-MIPS-ralink-cleanup-early_printk.patch @@ -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); } diff --git a/target/linux/ramips/patches-3.18/0030-pinctrl-ralink-add-pinctrl-driver.patch b/target/linux/ramips/patches-3.18/0030-pinctrl-ralink-add-pinctrl-driver.patch index 0387a8ee10..63e84019d9 100644 --- a/target/linux/ramips/patches-3.18/0030-pinctrl-ralink-add-pinctrl-driver.patch +++ b/target/linux/ramips/patches-3.18/0030-pinctrl-ralink-add-pinctrl-driver.patch @@ -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 diff --git a/target/linux/ramips/patches-3.18/0048-GPIO-ralink-add-mt7621-gpio-controller.patch b/target/linux/ramips/patches-3.18/0048-GPIO-ralink-add-mt7621-gpio-controller.patch index cb58e16a06..429af73b39 100644 --- a/target/linux/ramips/patches-3.18/0048-GPIO-ralink-add-mt7621-gpio-controller.patch +++ b/target/linux/ramips/patches-3.18/0048-GPIO-ralink-add-mt7621-gpio-controller.patch @@ -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 diff --git a/target/linux/ramips/patches-3.18/0053-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch b/target/linux/ramips/patches-3.18/0053-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch index a3688138f8..2932eb6b07 100644 --- a/target/linux/ramips/patches-3.18/0053-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch +++ b/target/linux/ramips/patches-3.18/0053-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch @@ -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. diff --git a/target/linux/ramips/patches-3.18/0061-SPI-ralink-add-mt7621-SoC-spi-driver.patch b/target/linux/ramips/patches-3.18/0061-SPI-ralink-add-mt7621-SoC-spi-driver.patch index 589c67e707..5aa119e1df 100644 --- a/target/linux/ramips/patches-3.18/0061-SPI-ralink-add-mt7621-SoC-spi-driver.patch +++ b/target/linux/ramips/patches-3.18/0061-SPI-ralink-add-mt7621-SoC-spi-driver.patch @@ -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 diff --git a/target/linux/ramips/patches-3.18/0062-mt7621-add-ECHI-OCHI-XCHI-support.patch b/target/linux/ramips/patches-3.18/0062-mt7621-add-ECHI-OCHI-XCHI-support.patch index 98e8ca5a49..f407578762 100644 --- a/target/linux/ramips/patches-3.18/0062-mt7621-add-ECHI-OCHI-XCHI-support.patch +++ b/target/linux/ramips/patches-3.18/0062-mt7621-add-ECHI-OCHI-XCHI-support.patch @@ -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"); diff --git a/target/linux/ramips/patches-3.18/0065-mt7628-pww.patch b/target/linux/ramips/patches-3.18/0065-mt7628-pww.patch index 4b82a7ef9e..dc2ca95e4d 100644 --- a/target/linux/ramips/patches-3.18/0065-mt7628-pww.patch +++ b/target/linux/ramips/patches-3.18/0065-mt7628-pww.patch @@ -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 diff --git a/target/linux/ramips/patches-3.18/0066-cevt.patch b/target/linux/ramips/patches-3.18/0066-cevt.patch index 01cb588cd9..9eb6cb612b 100644 --- a/target/linux/ramips/patches-3.18/0066-cevt.patch +++ b/target/linux/ramips/patches-3.18/0066-cevt.patch @@ -3,7 +3,7 @@ @@ -45,18 +45,33 @@ static void (*systick_freq_scaling)(stru static void systick_set_clock_mode(enum clock_event_mode mode, struct clock_event_device *evt); - + +static inline unsigned int read_count(struct systick_device *sdev) +{ + return ioread32(sdev->membase + SYSTICK_COUNT); @@ -25,7 +25,7 @@ struct systick_device *sdev; - u32 count; + int res; - + sdev = container_of(evt, struct systick_device, dev); - count = ioread32(sdev->membase + SYSTICK_COUNT); - count = (count + delta) % SYSTICK_FREQ; @@ -33,21 +33,21 @@ + delta += read_count(sdev); + write_compare(sdev, delta); + res = ((int)(read_count(sdev) - delta) >= 0) ? -ETIME : 0; - + - return 0; + return res; } - + static void systick_event_handler(struct clock_event_device *dev) @@ -66,20 +81,25 @@ static void systick_event_handler(struct - + static irqreturn_t systick_interrupt(int irq, void *dev_id) { - struct clock_event_device *dev = (struct clock_event_device *) dev_id; + int ret = 0; + struct clock_event_device *cdev; + struct systick_device *sdev; - + - dev->event_handler(dev); + if (read_c0_cause() & STATUSF_IP7) { + cdev = (struct clock_event_device *) dev_id; @@ -58,11 +58,11 @@ + cdev->event_handler(cdev); + ret = 1; + } - + - return IRQ_HANDLED; + return IRQ_RETVAL(ret); } - + static struct systick_device systick = { .dev = { - /* @@ -76,7 +76,7 @@ @@ -126,13 +146,14 @@ static void systick_set_clock_mode(enum systick_freq_scaling(sdev, 1); break; - + + case CLOCK_EVT_MODE_UNUSED: case CLOCK_EVT_MODE_SHUTDOWN: if (systick_freq_scaling) @@ -88,26 +88,26 @@ - iowrite32(0, systick.membase + SYSTICK_CONFIG); + iowrite32(CFG_CNT_EN, systick.membase + SYSTICK_CONFIG); break; - + default: @@ -142,38 +163,45 @@ static void systick_set_clock_mode(enum } - + static const struct of_device_id systick_match[] = { - { .compatible = "ralink,mt7620-systick", .data = mt7620_freq_scaling}, + { .compatible = "ralink,mt7620a-systick", .data = mt7620_freq_scaling}, {}, }; - + static void __init ralink_systick_init(struct device_node *np) { const struct of_device_id *match; + int rating = 200; - + systick.membase = of_iomap(np, 0); if (!systick.membase) return; - + match = of_match_node(systick_match, np); - if (match) + if (match) { @@ -118,7 +118,7 @@ + */ + rating = 310; + } - + - systick_irqaction.name = np->name; - systick.dev.name = np->name; - clockevents_calc_mult_shift(&systick.dev, SYSTICK_FREQ, 60); diff --git a/target/linux/ramips/patches-3.18/0200-linkit_bootstrap.patch b/target/linux/ramips/patches-3.18/0200-linkit_bootstrap.patch index 1471c7d329..70e8170c44 100644 --- a/target/linux/ramips/patches-3.18/0200-linkit_bootstrap.patch +++ b/target/linux/ramips/patches-3.18/0200-linkit_bootstrap.patch @@ -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/ diff --git a/target/linux/ramips/patches-3.18/0300-mt7628_fixes.patch b/target/linux/ramips/patches-3.18/0300-mt7628_fixes.patch index 1a5a0ba1a2..443e07afed 100644 --- a/target/linux/ramips/patches-3.18/0300-mt7628_fixes.patch +++ b/target/linux/ramips/patches-3.18/0300-mt7628_fixes.patch @@ -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 @@ +@@ -529,7 +547,11 @@ void prom_soc_init(struct ralink_soc_inf (rev & CHIP_REV_ECO_MASK)); cfg0 = __raw_readl(sysc + SYSC_REG_SYSTEM_CONFIG0); diff --git a/target/linux/ramips/patches-3.18/0301-mt7688-detect.patch b/target/linux/ramips/patches-3.18/0301-mt7688-detect.patch index fc05a981a1..1fddf11dc3 100644 --- a/target/linux/ramips/patches-3.18/0301-mt7688-detect.patch +++ b/target/linux/ramips/patches-3.18/0301-mt7688-detect.patch @@ -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,8 +39,8 @@ /* * When the CPU goes into sleep mode, the BUS clock will be too low for * USB to function properly -@@ -536,8 +540,15 @@ - #endif +@@ -533,8 +537,15 @@ void prom_soc_init(struct ralink_soc_inf + soc_info->compatible = "ralink,mt7620n-soc"; } } else if (n0 == MT7620_CHIP_NAME0 && n1 == MT7628_CHIP_NAME1) { - ralink_soc = MT762X_SOC_MT7628AN; @@ -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 @@ +@@ -548,13 +559,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 @@ +@@ -567,7 +578,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; diff --git a/target/linux/ramips/patches-3.18/0302-mt762x-vendor-id.patch b/target/linux/ramips/patches-3.18/0302-mt762x-vendor-id.patch index 6b05a13abd..ca56f5cb49 100644 --- a/target/linux/ramips/patches-3.18/0302-mt762x-vendor-id.patch +++ b/target/linux/ramips/patches-3.18/0302-mt762x-vendor-id.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ralink/mt7620.c +++ b/arch/mips/ralink/mt7620.c -@@ -555,7 +555,7 @@ +@@ -552,7 +552,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 @@ +@@ -185,7 +185,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, diff --git a/target/linux/ramips/patches-3.18/0303-alsa.patch b/target/linux/ramips/patches-3.18/0303-alsa.patch index a35d7a9480..d6d489249f 100644 --- a/target/linux/ramips/patches-3.18/0303-alsa.patch +++ b/target/linux/ramips/patches-3.18/0303-alsa.patch @@ -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; } diff --git a/target/linux/ramips/patches-3.18/0304-baud_250000.patch b/target/linux/ramips/patches-3.18/0304-baud_250000.patch index eebe31c918..6a364c06c6 100644 --- a/target/linux/ramips/patches-3.18/0304-baud_250000.patch +++ b/target/linux/ramips/patches-3.18/0304-baud_250000.patch @@ -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; |