ramips: fix patches after 3.14.32 bump
Signed-off-by: Luka Perkov <luka@openwrt.org> SVN-Revision: 44324
This commit is contained in:
parent
6b8f598ca6
commit
4b0fbf3072
9 changed files with 54 additions and 57 deletions
|
@ -24,7 +24,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
DEFINE_PER_CPU(struct clock_event_device, mips_clockevent_device);
|
DEFINE_PER_CPU(struct clock_event_device, mips_clockevent_device);
|
||||||
int cp0_timer_irq_installed;
|
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",
|
.name = "timer",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
static void systick_set_clock_mode(enum clock_event_mode mode,
|
static void systick_set_clock_mode(enum clock_event_mode mode,
|
||||||
struct clock_event_device *evt)
|
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;
|
sdev->irq_requested = 1;
|
||||||
iowrite32(CFG_EXT_STK_EN | CFG_CNT_EN,
|
iowrite32(CFG_EXT_STK_EN | CFG_CNT_EN,
|
||||||
systick.membase + SYSTICK_CONFIG);
|
systick.membase + SYSTICK_CONFIG);
|
||||||
|
@ -69,7 +69,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
if (sdev->irq_requested)
|
if (sdev->irq_requested)
|
||||||
free_irq(systick.dev.irq, &systick_irqaction);
|
free_irq(systick.dev.irq, &systick_irqaction);
|
||||||
sdev->irq_requested = 0;
|
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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -330,7 +330,25 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
- .gpio_first = 72,
|
- .gpio_first = 72,
|
||||||
- .gpio_last = 72,
|
- .gpio_last = 72,
|
||||||
- }, {0}
|
- }, {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[] = {
|
-static struct ralink_pinmux_grp uart_mux[] = {
|
||||||
- {
|
- {
|
||||||
|
@ -372,32 +390,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
- .name = "gpio",
|
- .name = "gpio",
|
||||||
- .mask = MT7620_GPIO_MODE_GPIO,
|
- .mask = MT7620_GPIO_MODE_GPIO,
|
||||||
- }, {0}
|
- }, {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[] = {
|
+static struct rt2880_pmx_func wdt_grp[] = {
|
||||||
+ FUNC("wdt rst", 0, 17, 1),
|
+ FUNC("wdt rst", 0, 17, 1),
|
||||||
+ FUNC("wdt refclk", 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[] = {
|
+static struct rt2880_pmx_func nd_sd_grp[] = {
|
||||||
+ FUNC("nand", MT7620_GPIO_MODE_NAND, 45, 15),
|
+ FUNC("nand", MT7620_GPIO_MODE_NAND, 45, 15),
|
||||||
+ FUNC("sd", MT7620_GPIO_MODE_SD, 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[] = {
|
+static struct rt2880_pmx_group mt7620a_pinmux_data[] = {
|
||||||
+ GRP("i2c", i2c_grp, 1, MT7620_GPIO_MODE_I2C),
|
+ GRP("i2c", i2c_grp, 1, MT7620_GPIO_MODE_I2C),
|
||||||
+ GRP("uartf", uartf_grp, MT7620_GPIO_MODE_UART0_MASK,
|
+ GRP("uartf", uartf_grp, MT7620_GPIO_MODE_UART0_MASK,
|
||||||
|
|
|
@ -5143,7 +5143,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
|
|
||||||
return 1;
|
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;
|
next = ring->enqueue;
|
||||||
|
|
||||||
while (last_trb(xhci, ring, ring->enq_seg, next)) {
|
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
|
/* If we're not dealing with 0.95 hardware or isoc rings
|
||||||
* on AMD 0.96 host, clear the chain bit.
|
* 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);
|
next->link.control &= cpu_to_le32(~TRB_CHAIN);
|
||||||
else
|
else
|
||||||
next->link.control |= cpu_to_le32(TRB_CHAIN);
|
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);
|
ctrl_ctx->add_flags |= cpu_to_le32(added_ctxs);
|
||||||
new_add_flags = le32_to_cpu(ctrl_ctx->add_flags);
|
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) &&
|
if (ctrl_ctx->add_flags == cpu_to_le32(SLOT_FLAG) &&
|
||||||
ctrl_ctx->drop_flags == 0)
|
ctrl_ctx->drop_flags == 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -5651,7 +5651,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
return xhci_calculate_intel_u2_timeout(udev, desc);
|
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;
|
hcd->self.no_sg_constraint = 1;
|
||||||
|
|
||||||
/* XHCI controllers don't stop the ep queue on short packets :| */
|
/* 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)) {
|
if (usb_hcd_is_primary_hcd(hcd)) {
|
||||||
xhci = kzalloc(sizeof(struct xhci_hcd), GFP_KERNEL);
|
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;
|
goto error;
|
||||||
xhci_dbg(xhci, "Reset complete\n");
|
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 */
|
/* 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,
|
void xhci_free_command(struct xhci_hcd *xhci,
|
||||||
struct xhci_command *command);
|
struct xhci_command *command);
|
||||||
|
|
||||||
|
|
|
@ -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
|
* Write an address range to the flash chip. Data must be written in
|
||||||
* FLASH_PAGESIZE chunks. The address range may be any size provided
|
* 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;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,7 +121,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||||
|
|
||||||
page_offset = to & (flash->page_size - 1);
|
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) {
|
if (page_offset + len <= flash->page_size) {
|
||||||
t[1].len = len;
|
t[1].len = len;
|
||||||
|
|
||||||
|
@ -132,7 +132,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||||
} else {
|
} else {
|
||||||
u32 i;
|
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;
|
page_size = flash->page_size - page_offset;
|
||||||
|
|
||||||
t[1].len = page_size;
|
t[1].len = page_size;
|
||||||
|
@ -143,7 +143,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||||
|
|
||||||
/* write everything in flash->page_size chunks */
|
/* write everything in flash->page_size chunks */
|
||||||
for (i = page_size; i < len; i += page_size) {
|
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)
|
if (page_size > flash->page_size)
|
||||||
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 mtd_part_parser_data ppdata;
|
||||||
struct device_node *np = spi->dev.of_node;
|
struct device_node *np = spi->dev.of_node;
|
||||||
int ret;
|
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
|
/* Platform data helps sort out which chip type we have, as
|
||||||
* well as how this board partitions it. If we don't have
|
* 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._erase = m25p80_erase;
|
||||||
flash->mtd._read = m25p80_read;
|
flash->mtd._read = m25p80_read;
|
||||||
|
|
||||||
|
|
|
@ -189,7 +189,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||||
unsigned count = 0;
|
unsigned count = 0;
|
||||||
u8 *rx = xfer->rx_buf;
|
u8 *rx = xfer->rx_buf;
|
||||||
const u8 *tx = xfer->tx_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) {
|
if (tx) {
|
||||||
for (count = 0; count < xfer->len; count++) {
|
for (count = 0; count < xfer->len; count++) {
|
||||||
|
@ -202,7 +202,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(&spi->dev, "TX failed, err=%d\n", err);
|
dev_err(&spi->dev, "TX failed, err=%d\n", err);
|
||||||
goto out;
|
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) {
|
if (rx) {
|
||||||
for (count = 0; count < xfer->len; count++) {
|
for (count = 0; count < xfer->len; count++) {
|
||||||
|
|
|
@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
|
|
||||||
--- a/drivers/media/usb/uvc/uvc_driver.c
|
--- a/drivers/media/usb/uvc/uvc_driver.c
|
||||||
+++ b/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,
|
.bInterfaceProtocol = 0,
|
||||||
.driver_info = UVC_QUIRK_PROBE_MINMAX
|
.driver_info = UVC_QUIRK_PROBE_MINMAX
|
||||||
| UVC_QUIRK_IGNORE_SELECTOR_UNIT },
|
| UVC_QUIRK_IGNORE_SELECTOR_UNIT },
|
||||||
|
|
|
@ -22,7 +22,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
|
|
||||||
struct gpio_desc;
|
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)
|
if (chip->of_node)
|
||||||
of_node_put(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);
|
+device_initcall(of_gpio_export_init);
|
||||||
--- a/drivers/gpio/gpiolib.c
|
--- a/drivers/gpio/gpiolib.c
|
||||||
+++ b/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.
|
* Returns zero on success, else an error.
|
||||||
*/
|
*/
|
||||||
|
@ -103,17 +103,17 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
int status;
|
int status;
|
||||||
@@ -843,7 +843,8 @@ int gpiod_export(struct gpio_desc *desc,
|
@@ -839,6 +839,9 @@ int gpiod_export(struct gpio_desc *desc,
|
||||||
offset = gpio_chip_hwgpio(desc);
|
|
||||||
if (desc->chip->names && desc->chip->names[offset])
|
if (desc->chip->names && desc->chip->names[offset])
|
||||||
ioname = desc->chip->names[offset];
|
ioname = desc->chip->names[offset];
|
||||||
-
|
|
||||||
+ if (name)
|
+ if (name)
|
||||||
+ ioname = name;
|
+ ioname = name;
|
||||||
dev = device_create(&gpio_class, desc->chip->dev, MKDEV(0, 0),
|
+
|
||||||
desc, ioname ? ioname : "gpio%u",
|
dev = device_create_with_groups(&gpio_class, desc->chip->dev,
|
||||||
desc_to_gpio(desc));
|
MKDEV(0, 0), desc, gpio_groups,
|
||||||
@@ -880,6 +881,12 @@ fail_unlock:
|
ioname ? ioname : "gpio%u",
|
||||||
|
@@ -874,6 +877,12 @@ fail_unlock:
|
||||||
gpiod_dbg(desc, "%s: status %d\n", __func__, status);
|
gpiod_dbg(desc, "%s: status %d\n", __func__, status);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
spin_unlock_irqrestore(&rg->lock, flags);
|
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;
|
struct ralink_gpio_chip *rg;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
Loading…
Reference in a new issue