From: Linus Walleij Date: Thu, 13 Aug 2015 12:42:55 +0000 (+0200) Subject: Merge tag 'v4.2-rc4' into devel X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=5f6f02cd49d61e9856ff2c337578316a1a1b3f88;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git Merge tag 'v4.2-rc4' into devel Linux 4.2-rc4 --- 5f6f02cd49d61e9856ff2c337578316a1a1b3f88 diff --cc drivers/gpio/gpio-brcmstb.c index 113dc07fbfbe,4630a8133ea6..9ea86d2ac054 --- a/drivers/gpio/gpio-brcmstb.c +++ b/drivers/gpio/gpio-brcmstb.c @@@ -424,17 -164,6 +435,16 @@@ static int brcmstb_gpio_probe(struct pl priv->reg_base = reg_base; priv->pdev = pdev; + if (of_property_read_bool(np, "interrupt-controller")) { + priv->parent_irq = platform_get_irq(pdev, 0); + if (priv->parent_irq <= 0) { + dev_err(dev, "Couldn't get IRQ"); + return -ENOENT; + } + } else { + priv->parent_irq = -ENOENT; + } + - INIT_LIST_HEAD(&priv->bank_list); if (brcmstb_gpio_sanity_check_banks(dev, np, res)) return -EINVAL; @@@ -513,10 -229,8 +523,8 @@@ } dev_info(dev, "Registered %d banks (GPIO(s): %d-%d)\n", - priv->num_banks, priv->gpio_base, gpio_base - 1); + num_banks, priv->gpio_base, gpio_base - 1); - platform_set_drvdata(pdev, priv); - return 0; fail: diff --cc drivers/gpio/gpio-omap.c index a2ff0eec5b36,61a731ff9a07..dba67b230e98 --- a/drivers/gpio/gpio-omap.c +++ b/drivers/gpio/gpio-omap.c @@@ -498,13 -498,15 +498,15 @@@ static int omap_gpio_irq_type(struct ir if (!BANK_USED(bank)) pm_runtime_get_sync(bank->dev); - spin_lock_irqsave(&bank->lock, flags); + raw_spin_lock_irqsave(&bank->lock, flags); retval = omap_set_gpio_triggering(bank, offset, type); - if (retval) + if (retval) { + spin_unlock_irqrestore(&bank->lock, flags); goto error; + } omap_gpio_init_irq(bank, offset); if (!omap_gpio_is_input(bank, offset)) { - spin_unlock_irqrestore(&bank->lock, flags); + raw_spin_unlock_irqrestore(&bank->lock, flags); retval = -EINVAL; goto error; }