diff options
9 files changed, 54 insertions, 57 deletions
diff --git a/target/linux/ramips/patches-3.14/0017-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch b/target/linux/ramips/patches-3.14/0017-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch index 1423a3a..a3b4e4a 100644 --- a/target/linux/ramips/patches-3.14/0017-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch +++ b/target/linux/ramips/patches-3.14/0017-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch @@ -24,7 +24,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> DEFINE_PER_CPU(struct clock_event_device, mips_clockevent_device); int cp0_timer_irq_installed; -@@ -90,9 +84,38 @@ struct irqaction c0_compare_irqaction = +@@ -90,9 +84,38 @@ struct irqaction c0_compare_irqaction = .name = "timer", }; diff --git a/target/linux/ramips/patches-3.14/0021-MIPS-ralink-add-cpu-frequency-scaling.patch b/target/linux/ramips/patches-3.14/0021-MIPS-ralink-add-cpu-frequency-scaling.patch index ea1d03a..0e567cb 100644 --- a/target/linux/ramips/patches-3.14/0021-MIPS-ralink-add-cpu-frequency-scaling.patch +++ b/target/linux/ramips/patches-3.14/0021-MIPS-ralink-add-cpu-frequency-scaling.patch @@ -55,7 +55,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> static void systick_set_clock_mode(enum clock_event_mode mode, struct clock_event_device *evt) { -@@ -101,9 +122,13 @@ static void systick_set_clock_mode(enum +@@ -101,9 +122,13 @@ static void systick_set_clock_mode(enum sdev->irq_requested = 1; iowrite32(CFG_EXT_STK_EN | CFG_CNT_EN, systick.membase + SYSTICK_CONFIG); @@ -69,7 +69,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> if (sdev->irq_requested) free_irq(systick.dev.irq, &systick_irqaction); sdev->irq_requested = 0; -@@ -116,12 +141,23 @@ static void systick_set_clock_mode(enum +@@ -116,12 +141,23 @@ static void systick_set_clock_mode(enum } } diff --git a/target/linux/ramips/patches-3.14/0030-pinctrl-ralink-add-pinctrl-driver.patch b/target/linux/ramips/patches-3.14/0030-pinctrl-ralink-add-pinctrl-driver.patch index b9fb54f..4d3843f 100644 --- a/target/linux/ramips/patches-3.14/0030-pinctrl-ralink-add-pinctrl-driver.patch +++ b/target/linux/ramips/patches-3.14/0030-pinctrl-ralink-add-pinctrl-driver.patch @@ -330,7 +330,25 @@ Signed-off-by: John Crispin <blogic@openwrt.org> - .gpio_first = 72, - .gpio_last = 72, - }, {0} --}; ++static struct rt2880_pmx_func i2c_grp[] = { FUNC("i2c", 0, 1, 2) }; ++static struct rt2880_pmx_func spi_grp[] = { FUNC("spi", 0, 3, 4) }; ++static struct rt2880_pmx_func uartlite_grp[] = { FUNC("uartlite", 0, 15, 2) }; ++static struct rt2880_pmx_func mdio_grp[] = { FUNC("mdio", 0, 22, 2) }; ++static struct rt2880_pmx_func rgmii1_grp[] = { FUNC("rgmii1", 0, 24, 12) }; ++static struct rt2880_pmx_func refclk_grp[] = { FUNC("spi refclk", 0, 37, 3) }; ++static struct rt2880_pmx_func ephy_grp[] = { FUNC("ephy", 0, 40, 5) }; ++static struct rt2880_pmx_func rgmii2_grp[] = { FUNC("rgmii2", 0, 60, 12) }; ++static struct rt2880_pmx_func wled_grp[] = { FUNC("wled", 0, 72, 1) }; ++static struct rt2880_pmx_func pa_grp[] = { FUNC("pa", 0, 18, 4) }; ++static struct rt2880_pmx_func uartf_grp[] = { ++ FUNC("uartf", MT7620_GPIO_MODE_UARTF, 7, 8), ++ FUNC("pcm uartf", MT7620_GPIO_MODE_PCM_UARTF, 7, 8), ++ FUNC("pcm i2s", MT7620_GPIO_MODE_PCM_I2S, 7, 8), ++ FUNC("i2s uartf", MT7620_GPIO_MODE_I2S_UARTF, 7, 8), ++ FUNC("pcm gpio", MT7620_GPIO_MODE_PCM_GPIO, 11, 4), ++ FUNC("gpio uartf", MT7620_GPIO_MODE_GPIO_UARTF, 7, 4), ++ FUNC("gpio i2s", MT7620_GPIO_MODE_GPIO_I2S, 7, 4), + }; - -static struct ralink_pinmux_grp uart_mux[] = { - { @@ -372,32 +390,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org> - .name = "gpio", - .mask = MT7620_GPIO_MODE_GPIO, - }, {0} --}; -- --struct ralink_pinmux rt_gpio_pinmux = { -- .mode = mode_mux, -- .uart = uart_mux, -- .uart_shift = MT7620_GPIO_MODE_UART0_SHIFT, -- .uart_mask = MT7620_GPIO_MODE_UART0_MASK, -+static struct rt2880_pmx_func i2c_grp[] = { FUNC("i2c", 0, 1, 2) }; -+static struct rt2880_pmx_func spi_grp[] = { FUNC("spi", 0, 3, 4) }; -+static struct rt2880_pmx_func uartlite_grp[] = { FUNC("uartlite", 0, 15, 2) }; -+static struct rt2880_pmx_func mdio_grp[] = { FUNC("mdio", 0, 22, 2) }; -+static struct rt2880_pmx_func rgmii1_grp[] = { FUNC("rgmii1", 0, 24, 12) }; -+static struct rt2880_pmx_func refclk_grp[] = { FUNC("spi refclk", 0, 37, 3) }; -+static struct rt2880_pmx_func ephy_grp[] = { FUNC("ephy", 0, 40, 5) }; -+static struct rt2880_pmx_func rgmii2_grp[] = { FUNC("rgmii2", 0, 60, 12) }; -+static struct rt2880_pmx_func wled_grp[] = { FUNC("wled", 0, 72, 1) }; -+static struct rt2880_pmx_func pa_grp[] = { FUNC("pa", 0, 18, 4) }; -+static struct rt2880_pmx_func uartf_grp[] = { -+ FUNC("uartf", MT7620_GPIO_MODE_UARTF, 7, 8), -+ FUNC("pcm uartf", MT7620_GPIO_MODE_PCM_UARTF, 7, 8), -+ FUNC("pcm i2s", MT7620_GPIO_MODE_PCM_I2S, 7, 8), -+ FUNC("i2s uartf", MT7620_GPIO_MODE_I2S_UARTF, 7, 8), -+ FUNC("pcm gpio", MT7620_GPIO_MODE_PCM_GPIO, 11, 4), -+ FUNC("gpio uartf", MT7620_GPIO_MODE_GPIO_UARTF, 7, 4), -+ FUNC("gpio i2s", MT7620_GPIO_MODE_GPIO_I2S, 7, 4), -+}; +static struct rt2880_pmx_func wdt_grp[] = { + FUNC("wdt rst", 0, 17, 1), + FUNC("wdt refclk", 0, 17, 1), @@ -409,8 +401,13 @@ Signed-off-by: John Crispin <blogic@openwrt.org> +static struct rt2880_pmx_func nd_sd_grp[] = { + FUNC("nand", MT7620_GPIO_MODE_NAND, 45, 15), + FUNC("sd", MT7620_GPIO_MODE_SD, 45, 15) -+}; -+ + }; + +-struct ralink_pinmux rt_gpio_pinmux = { +- .mode = mode_mux, +- .uart = uart_mux, +- .uart_shift = MT7620_GPIO_MODE_UART0_SHIFT, +- .uart_mask = MT7620_GPIO_MODE_UART0_MASK, +static struct rt2880_pmx_group mt7620a_pinmux_data[] = { + GRP("i2c", i2c_grp, 1, MT7620_GPIO_MODE_I2C), + GRP("uartf", uartf_grp, MT7620_GPIO_MODE_UART0_MASK, diff --git a/target/linux/ramips/patches-3.14/0040-USB-add-mt7621-xhci-support.patch b/target/linux/ramips/patches-3.14/0040-USB-add-mt7621-xhci-support.patch index 38397ff..e18b91f 100644 --- a/target/linux/ramips/patches-3.14/0040-USB-add-mt7621-xhci-support.patch +++ b/target/linux/ramips/patches-3.14/0040-USB-add-mt7621-xhci-support.patch @@ -5143,7 +5143,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> return 1; } -@@ -2970,6 +2973,7 @@ static int prepare_ring(struct xhci_hcd +@@ -2970,6 +2973,7 @@ static int prepare_ring(struct xhci_hcd next = ring->enqueue; while (last_trb(xhci, ring, ring->enq_seg, next)) { @@ -5151,7 +5151,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> /* If we're not dealing with 0.95 hardware or isoc rings * on AMD 0.96 host, clear the chain bit. */ -@@ -2979,7 +2983,9 @@ static int prepare_ring(struct xhci_hcd +@@ -2979,7 +2983,9 @@ static int prepare_ring(struct xhci_hcd next->link.control &= cpu_to_le32(~TRB_CHAIN); else next->link.control |= cpu_to_le32(TRB_CHAIN); @@ -5627,7 +5627,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> ctrl_ctx->add_flags |= cpu_to_le32(added_ctxs); new_add_flags = le32_to_cpu(ctrl_ctx->add_flags); -@@ -2766,7 +2910,7 @@ int xhci_check_bandwidth(struct usb_hcd +@@ -2766,7 +2910,7 @@ int xhci_check_bandwidth(struct usb_hcd if (ctrl_ctx->add_flags == cpu_to_le32(SLOT_FLAG) && ctrl_ctx->drop_flags == 0) return 0; @@ -5651,7 +5651,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> return xhci_calculate_intel_u2_timeout(udev, desc); } -@@ -4758,7 +4906,9 @@ int xhci_gen_setup(struct usb_hcd *hcd, +@@ -4758,7 +4906,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 :| */ @@ -5661,7 +5661,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> if (usb_hcd_is_primary_hcd(hcd)) { xhci = kzalloc(sizeof(struct xhci_hcd), GFP_KERNEL); -@@ -4821,6 +4971,10 @@ int xhci_gen_setup(struct usb_hcd *hcd, +@@ -4821,6 +4971,10 @@ int xhci_gen_setup(struct usb_hcd *hcd, goto error; xhci_dbg(xhci, "Reset complete\n"); @@ -5777,7 +5777,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> }; /* convert between an HCD pointer and the corresponding EHCI_HCD */ -@@ -1726,7 +1745,7 @@ void xhci_urb_free_priv(struct xhci_hcd +@@ -1726,7 +1745,7 @@ void xhci_urb_free_priv(struct xhci_hcd void xhci_free_command(struct xhci_hcd *xhci, struct xhci_command *command); diff --git a/target/linux/ramips/patches-3.14/0044-mtd-add-chunked-read-io-to-m25p80.patch b/target/linux/ramips/patches-3.14/0044-mtd-add-chunked-read-io-to-m25p80.patch index 4031335..6aee4ad 100644 --- a/target/linux/ramips/patches-3.14/0044-mtd-add-chunked-read-io-to-m25p80.patch +++ b/target/linux/ramips/patches-3.14/0044-mtd-add-chunked-read-io-to-m25p80.patch @@ -109,7 +109,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> /* * Write an address range to the flash chip. Data must be written in * FLASH_PAGESIZE chunks. The address range may be any size provided -@@ -596,11 +680,8 @@ static int m25p80_write(struct mtd_info +@@ -596,11 +680,8 @@ static int m25p80_write(struct mtd_info return 1; } @@ -121,7 +121,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> page_offset = to & (flash->page_size - 1); -@@ -608,9 +689,7 @@ static int m25p80_write(struct mtd_info +@@ -608,9 +689,7 @@ static int m25p80_write(struct mtd_info if (page_offset + len <= flash->page_size) { t[1].len = len; @@ -132,7 +132,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> } else { u32 i; -@@ -618,9 +697,7 @@ static int m25p80_write(struct mtd_info +@@ -618,9 +697,7 @@ static int m25p80_write(struct mtd_info page_size = flash->page_size - page_offset; t[1].len = page_size; @@ -143,7 +143,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> /* write everything in flash->page_size chunks */ for (i = page_size; i < len; i += page_size) { -@@ -628,19 +705,12 @@ static int m25p80_write(struct mtd_info +@@ -628,19 +705,12 @@ static int m25p80_write(struct mtd_info if (page_size > flash->page_size) page_size = flash->page_size; @@ -164,7 +164,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> } } -@@ -1105,6 +1175,7 @@ static int m25p_probe(struct spi_device +@@ -1105,6 +1175,7 @@ static int m25p_probe(struct spi_device struct mtd_part_parser_data ppdata; struct device_node *np = spi->dev.of_node; int ret; @@ -172,7 +172,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> /* Platform data helps sort out which chip type we have, as * well as how this board partitions it. If we don't have -@@ -1187,6 +1258,12 @@ static int m25p_probe(struct spi_device +@@ -1187,6 +1258,12 @@ static int m25p_probe(struct spi_device flash->mtd._erase = m25p80_erase; flash->mtd._read = m25p80_read; diff --git a/target/linux/ramips/patches-3.14/0051-rt5350-spi-second-device.patch b/target/linux/ramips/patches-3.14/0051-rt5350-spi-second-device.patch index 82f08b4..2da8151 100644 --- a/target/linux/ramips/patches-3.14/0051-rt5350-spi-second-device.patch +++ b/target/linux/ramips/patches-3.14/0051-rt5350-spi-second-device.patch @@ -189,7 +189,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> unsigned count = 0; u8 *rx = xfer->rx_buf; const u8 *tx = xfer->tx_buf; -@@ -213,9 +280,9 @@ rt2880_spi_write_read(struct spi_device +@@ -213,9 +280,9 @@ rt2880_spi_write_read(struct spi_device if (tx) { for (count = 0; count < xfer->len; count++) { @@ -202,7 +202,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> if (err) { dev_err(&spi->dev, "TX failed, err=%d\n", err); goto out; -@@ -225,13 +292,13 @@ rt2880_spi_write_read(struct spi_device +@@ -225,13 +292,13 @@ rt2880_spi_write_read(struct spi_device if (rx) { for (count = 0; count < xfer->len; count++) { diff --git a/target/linux/ramips/patches-3.14/0057-uvc-add-iPassion-iP2970-support.patch b/target/linux/ramips/patches-3.14/0057-uvc-add-iPassion-iP2970-support.patch index 4576c8a..f423de5 100644 --- a/target/linux/ramips/patches-3.14/0057-uvc-add-iPassion-iP2970-support.patch +++ b/target/linux/ramips/patches-3.14/0057-uvc-add-iPassion-iP2970-support.patch @@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c -@@ -2476,6 +2476,20 @@ static struct usb_device_id uvc_ids[] = +@@ -2476,6 +2476,20 @@ static struct usb_device_id uvc_ids[] = .bInterfaceProtocol = 0, .driver_info = UVC_QUIRK_PROBE_MINMAX | UVC_QUIRK_IGNORE_SELECTOR_UNIT }, diff --git a/target/linux/ramips/patches-3.14/0058-GPIO-add-named-gpio-exports.patch b/target/linux/ramips/patches-3.14/0058-GPIO-add-named-gpio-exports.patch index 9c2b39d..c59153c 100644 --- a/target/linux/ramips/patches-3.14/0058-GPIO-add-named-gpio-exports.patch +++ b/target/linux/ramips/patches-3.14/0058-GPIO-add-named-gpio-exports.patch @@ -22,7 +22,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> struct gpio_desc; -@@ -296,3 +298,69 @@ void of_gpiochip_remove(struct gpio_chip +@@ -302,3 +304,69 @@ void of_gpiochip_remove(struct gpio_chip if (chip->of_node) of_node_put(chip->of_node); } @@ -94,7 +94,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> +device_initcall(of_gpio_export_init); --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c -@@ -803,7 +803,7 @@ static struct class gpio_class = { +@@ -798,7 +798,7 @@ static struct class gpio_class = { * * Returns zero on success, else an error. */ @@ -103,17 +103,17 @@ Signed-off-by: John Crispin <blogic@openwrt.org> { unsigned long flags; int status; -@@ -843,7 +843,8 @@ int gpiod_export(struct gpio_desc *desc, - offset = gpio_chip_hwgpio(desc); +@@ -839,6 +839,9 @@ int gpiod_export(struct gpio_desc *desc, if (desc->chip->names && desc->chip->names[offset]) ioname = desc->chip->names[offset]; -- + + if (name) + ioname = name; - dev = device_create(&gpio_class, desc->chip->dev, MKDEV(0, 0), - desc, ioname ? ioname : "gpio%u", - desc_to_gpio(desc)); -@@ -880,6 +881,12 @@ fail_unlock: ++ + dev = device_create_with_groups(&gpio_class, desc->chip->dev, + MKDEV(0, 0), desc, gpio_groups, + ioname ? ioname : "gpio%u", +@@ -874,6 +877,12 @@ fail_unlock: gpiod_dbg(desc, "%s: status %d\n", __func__, status); return status; } diff --git a/target/linux/ramips/patches-3.14/999-gpi_irq.patch b/target/linux/ramips/patches-3.14/999-gpi_irq.patch index c4b3e57..698aff9 100644 --- a/target/linux/ramips/patches-3.14/999-gpi_irq.patch +++ b/target/linux/ramips/patches-3.14/999-gpi_irq.patch @@ -20,7 +20,7 @@ spin_unlock_irqrestore(&rg->lock, flags); } -@@ -163,14 +164,15 @@ static void ralink_gpio_irq_mask(struct +@@ -163,14 +164,15 @@ static void ralink_gpio_irq_mask(struct { struct ralink_gpio_chip *rg; unsigned long flags; |