mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
gpio: rename gpio_lock_as_irq to gpiochip_lock_as_irq
This function actually operates on a gpio_chip, so its prefix should reflect that fact for consistency with other functions defined in gpio/driver.h. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
ee2a9f7f06
commit
e3a2e87893
@ -158,12 +158,12 @@ Locking IRQ usage
|
||||
Input GPIOs can be used as IRQ signals. When this happens, a driver is requested
|
||||
to mark the GPIO as being used as an IRQ:
|
||||
|
||||
int gpio_lock_as_irq(struct gpio_chip *chip, unsigned int offset)
|
||||
int gpiochip_lock_as_irq(struct gpio_chip *chip, unsigned int offset)
|
||||
|
||||
This will prevent the use of non-irq related GPIO APIs until the GPIO IRQ lock
|
||||
is released:
|
||||
|
||||
void gpio_unlock_as_irq(struct gpio_chip *chip, unsigned int offset)
|
||||
void gpiochip_unlock_as_irq(struct gpio_chip *chip, unsigned int offset)
|
||||
|
||||
When implementing an irqchip inside a GPIO driver, these two functions should
|
||||
typically be called in the .startup() and .shutdown() callbacks from the
|
||||
|
@ -470,7 +470,7 @@ static int bcm_kona_gpio_irq_reqres(struct irq_data *d)
|
||||
{
|
||||
struct bcm_kona_gpio *kona_gpio = irq_data_get_irq_chip_data(d);
|
||||
|
||||
if (gpio_lock_as_irq(&kona_gpio->gpio_chip, d->hwirq)) {
|
||||
if (gpiochip_lock_as_irq(&kona_gpio->gpio_chip, d->hwirq)) {
|
||||
dev_err(kona_gpio->gpio_chip.dev,
|
||||
"unable to lock HW IRQ %lu for IRQ\n",
|
||||
d->hwirq);
|
||||
@ -483,7 +483,7 @@ static void bcm_kona_gpio_irq_relres(struct irq_data *d)
|
||||
{
|
||||
struct bcm_kona_gpio *kona_gpio = irq_data_get_irq_chip_data(d);
|
||||
|
||||
gpio_unlock_as_irq(&kona_gpio->gpio_chip, d->hwirq);
|
||||
gpiochip_unlock_as_irq(&kona_gpio->gpio_chip, d->hwirq);
|
||||
}
|
||||
|
||||
static struct irq_chip bcm_gpio_irq_chip = {
|
||||
|
@ -194,7 +194,7 @@ static int dwapb_irq_reqres(struct irq_data *d)
|
||||
struct dwapb_gpio *gpio = igc->private;
|
||||
struct bgpio_chip *bgc = &gpio->ports[0].bgc;
|
||||
|
||||
if (gpio_lock_as_irq(&bgc->gc, irqd_to_hwirq(d))) {
|
||||
if (gpiochip_lock_as_irq(&bgc->gc, irqd_to_hwirq(d))) {
|
||||
dev_err(gpio->dev, "unable to lock HW IRQ %lu for IRQ\n",
|
||||
irqd_to_hwirq(d));
|
||||
return -EINVAL;
|
||||
@ -208,7 +208,7 @@ static void dwapb_irq_relres(struct irq_data *d)
|
||||
struct dwapb_gpio *gpio = igc->private;
|
||||
struct bgpio_chip *bgc = &gpio->ports[0].bgc;
|
||||
|
||||
gpio_unlock_as_irq(&bgc->gc, irqd_to_hwirq(d));
|
||||
gpiochip_unlock_as_irq(&bgc->gc, irqd_to_hwirq(d));
|
||||
}
|
||||
|
||||
static int dwapb_irq_set_type(struct irq_data *d, u32 type)
|
||||
|
@ -103,7 +103,7 @@ static int em_gio_irq_reqres(struct irq_data *d)
|
||||
{
|
||||
struct em_gio_priv *p = irq_data_get_irq_chip_data(d);
|
||||
|
||||
if (gpio_lock_as_irq(&p->gpio_chip, irqd_to_hwirq(d))) {
|
||||
if (gpiochip_lock_as_irq(&p->gpio_chip, irqd_to_hwirq(d))) {
|
||||
dev_err(p->gpio_chip.dev,
|
||||
"unable to lock HW IRQ %lu for IRQ\n",
|
||||
irqd_to_hwirq(d));
|
||||
@ -116,7 +116,7 @@ static void em_gio_irq_relres(struct irq_data *d)
|
||||
{
|
||||
struct em_gio_priv *p = irq_data_get_irq_chip_data(d);
|
||||
|
||||
gpio_unlock_as_irq(&p->gpio_chip, irqd_to_hwirq(d));
|
||||
gpiochip_unlock_as_irq(&p->gpio_chip, irqd_to_hwirq(d));
|
||||
}
|
||||
|
||||
|
||||
|
@ -444,7 +444,7 @@ static int mcp23s08_irq_reqres(struct irq_data *data)
|
||||
{
|
||||
struct mcp23s08 *mcp = irq_data_get_irq_chip_data(data);
|
||||
|
||||
if (gpio_lock_as_irq(&mcp->chip, data->hwirq)) {
|
||||
if (gpiochip_lock_as_irq(&mcp->chip, data->hwirq)) {
|
||||
dev_err(mcp->chip.dev,
|
||||
"unable to lock HW IRQ %lu for IRQ usage\n",
|
||||
data->hwirq);
|
||||
@ -458,7 +458,7 @@ static void mcp23s08_irq_relres(struct irq_data *data)
|
||||
{
|
||||
struct mcp23s08 *mcp = irq_data_get_irq_chip_data(data);
|
||||
|
||||
gpio_unlock_as_irq(&mcp->chip, data->hwirq);
|
||||
gpiochip_unlock_as_irq(&mcp->chip, data->hwirq);
|
||||
}
|
||||
|
||||
static struct irq_chip mcp23s08_irq_chip = {
|
||||
|
@ -800,7 +800,7 @@ static void omap_gpio_irq_shutdown(struct irq_data *d)
|
||||
unsigned offset = GPIO_INDEX(bank, gpio);
|
||||
|
||||
spin_lock_irqsave(&bank->lock, flags);
|
||||
gpio_unlock_as_irq(&bank->chip, offset);
|
||||
gpiochip_unlock_as_irq(&bank->chip, offset);
|
||||
bank->irq_usage &= ~(BIT(offset));
|
||||
omap_disable_gpio_module(bank, offset);
|
||||
omap_reset_gpio(bank, gpio);
|
||||
|
@ -233,7 +233,7 @@ static int tegra_gpio_irq_set_type(struct irq_data *d, unsigned int type)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
ret = gpio_lock_as_irq(&tegra_gpio_chip, gpio);
|
||||
ret = gpiochip_lock_as_irq(&tegra_gpio_chip, gpio);
|
||||
if (ret) {
|
||||
dev_err(dev, "unable to lock Tegra GPIO %d as IRQ\n", gpio);
|
||||
return ret;
|
||||
@ -263,7 +263,7 @@ static void tegra_gpio_irq_shutdown(struct irq_data *d)
|
||||
{
|
||||
int gpio = d->hwirq;
|
||||
|
||||
gpio_unlock_as_irq(&tegra_gpio_chip, gpio);
|
||||
gpiochip_unlock_as_irq(&tegra_gpio_chip, gpio);
|
||||
}
|
||||
|
||||
static void tegra_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||
|
@ -138,7 +138,7 @@ static void unmask_giuint_low(struct irq_data *d)
|
||||
|
||||
static unsigned int startup_giuint(struct irq_data *data)
|
||||
{
|
||||
if (gpio_lock_as_irq(&vr41xx_gpio_chip, data->hwirq))
|
||||
if (gpiochip_lock_as_irq(&vr41xx_gpio_chip, data->hwirq))
|
||||
dev_err(vr41xx_gpio_chip.dev,
|
||||
"unable to lock HW IRQ %lu for IRQ\n",
|
||||
data->hwirq);
|
||||
@ -150,7 +150,7 @@ static unsigned int startup_giuint(struct irq_data *data)
|
||||
static void shutdown_giuint(struct irq_data *data)
|
||||
{
|
||||
mask_giuint_low(data);
|
||||
gpio_unlock_as_irq(&vr41xx_gpio_chip, data->hwirq);
|
||||
gpiochip_unlock_as_irq(&vr41xx_gpio_chip, data->hwirq);
|
||||
}
|
||||
|
||||
static struct irq_chip giuint_low_irq_chip = {
|
||||
|
@ -153,7 +153,7 @@ static acpi_status acpi_gpiochip_request_interrupt(struct acpi_resource *ares,
|
||||
|
||||
gpiod_direction_input(desc);
|
||||
|
||||
ret = gpio_lock_as_irq(chip, pin);
|
||||
ret = gpiochip_lock_as_irq(chip, pin);
|
||||
if (ret) {
|
||||
dev_err(chip->dev, "Failed to lock GPIO as interrupt\n");
|
||||
goto fail_free_desc;
|
||||
@ -209,7 +209,7 @@ static acpi_status acpi_gpiochip_request_interrupt(struct acpi_resource *ares,
|
||||
fail_free_event:
|
||||
kfree(event);
|
||||
fail_unlock_irq:
|
||||
gpio_unlock_as_irq(chip, pin);
|
||||
gpiochip_unlock_as_irq(chip, pin);
|
||||
fail_free_desc:
|
||||
gpiochip_free_own_desc(desc);
|
||||
|
||||
@ -280,7 +280,7 @@ void acpi_gpiochip_free_interrupts(struct gpio_chip *chip)
|
||||
desc = event->desc;
|
||||
if (WARN_ON(IS_ERR(desc)))
|
||||
continue;
|
||||
gpio_unlock_as_irq(chip, event->pin);
|
||||
gpiochip_unlock_as_irq(chip, event->pin);
|
||||
gpiochip_free_own_desc(desc);
|
||||
list_del(&event->node);
|
||||
kfree(event);
|
||||
|
@ -161,7 +161,7 @@ static int gpio_setup_irq(struct gpio_desc *desc, struct device *dev,
|
||||
desc->flags &= ~GPIO_TRIGGER_MASK;
|
||||
|
||||
if (!gpio_flags) {
|
||||
gpio_unlock_as_irq(desc->chip, gpio_chip_hwgpio(desc));
|
||||
gpiochip_unlock_as_irq(desc->chip, gpio_chip_hwgpio(desc));
|
||||
ret = 0;
|
||||
goto free_id;
|
||||
}
|
||||
@ -200,7 +200,7 @@ static int gpio_setup_irq(struct gpio_desc *desc, struct device *dev,
|
||||
if (ret < 0)
|
||||
goto free_id;
|
||||
|
||||
ret = gpio_lock_as_irq(desc->chip, gpio_chip_hwgpio(desc));
|
||||
ret = gpiochip_lock_as_irq(desc->chip, gpio_chip_hwgpio(desc));
|
||||
if (ret < 0) {
|
||||
gpiod_warn(desc, "failed to flag the GPIO for IRQ\n");
|
||||
goto free_id;
|
||||
|
@ -495,7 +495,7 @@ static int gpiochip_irq_reqres(struct irq_data *d)
|
||||
{
|
||||
struct gpio_chip *chip = irq_data_get_irq_chip_data(d);
|
||||
|
||||
if (gpio_lock_as_irq(chip, d->hwirq)) {
|
||||
if (gpiochip_lock_as_irq(chip, d->hwirq)) {
|
||||
chip_err(chip,
|
||||
"unable to lock HW IRQ %lu for IRQ\n",
|
||||
d->hwirq);
|
||||
@ -508,7 +508,7 @@ static void gpiochip_irq_relres(struct irq_data *d)
|
||||
{
|
||||
struct gpio_chip *chip = irq_data_get_irq_chip_data(d);
|
||||
|
||||
gpio_unlock_as_irq(chip, d->hwirq);
|
||||
gpiochip_unlock_as_irq(chip, d->hwirq);
|
||||
}
|
||||
|
||||
static int gpiochip_to_irq(struct gpio_chip *chip, unsigned offset)
|
||||
@ -1332,14 +1332,14 @@ int gpiod_to_irq(const struct gpio_desc *desc)
|
||||
EXPORT_SYMBOL_GPL(gpiod_to_irq);
|
||||
|
||||
/**
|
||||
* gpio_lock_as_irq() - lock a GPIO to be used as IRQ
|
||||
* gpiochip_lock_as_irq() - lock a GPIO to be used as IRQ
|
||||
* @chip: the chip the GPIO to lock belongs to
|
||||
* @offset: the offset of the GPIO to lock as IRQ
|
||||
*
|
||||
* This is used directly by GPIO drivers that want to lock down
|
||||
* a certain GPIO line to be used for IRQs.
|
||||
*/
|
||||
int gpio_lock_as_irq(struct gpio_chip *chip, unsigned int offset)
|
||||
int gpiochip_lock_as_irq(struct gpio_chip *chip, unsigned int offset)
|
||||
{
|
||||
if (offset >= chip->ngpio)
|
||||
return -EINVAL;
|
||||
@ -1354,24 +1354,24 @@ int gpio_lock_as_irq(struct gpio_chip *chip, unsigned int offset)
|
||||
set_bit(FLAG_USED_AS_IRQ, &chip->desc[offset].flags);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(gpio_lock_as_irq);
|
||||
EXPORT_SYMBOL_GPL(gpiochip_lock_as_irq);
|
||||
|
||||
/**
|
||||
* gpio_unlock_as_irq() - unlock a GPIO used as IRQ
|
||||
* gpiochip_unlock_as_irq() - unlock a GPIO used as IRQ
|
||||
* @chip: the chip the GPIO to lock belongs to
|
||||
* @offset: the offset of the GPIO to lock as IRQ
|
||||
*
|
||||
* This is used directly by GPIO drivers that want to indicate
|
||||
* that a certain GPIO is no longer used exclusively for IRQ.
|
||||
*/
|
||||
void gpio_unlock_as_irq(struct gpio_chip *chip, unsigned int offset)
|
||||
void gpiochip_unlock_as_irq(struct gpio_chip *chip, unsigned int offset)
|
||||
{
|
||||
if (offset >= chip->ngpio)
|
||||
return;
|
||||
|
||||
clear_bit(FLAG_USED_AS_IRQ, &chip->desc[offset].flags);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(gpio_unlock_as_irq);
|
||||
EXPORT_SYMBOL_GPL(gpiochip_unlock_as_irq);
|
||||
|
||||
/**
|
||||
* gpiod_get_raw_value_cansleep() - return a gpio's raw value
|
||||
|
@ -1472,7 +1472,7 @@ static unsigned int gpio_irq_startup(struct irq_data *d)
|
||||
unsigned pin = d->hwirq;
|
||||
int ret;
|
||||
|
||||
ret = gpio_lock_as_irq(&at91_gpio->chip, pin);
|
||||
ret = gpiochip_lock_as_irq(&at91_gpio->chip, pin);
|
||||
if (ret) {
|
||||
dev_err(at91_gpio->chip.dev, "unable to lock pind %lu IRQ\n",
|
||||
d->hwirq);
|
||||
@ -1488,7 +1488,7 @@ static void gpio_irq_shutdown(struct irq_data *d)
|
||||
unsigned pin = d->hwirq;
|
||||
|
||||
gpio_irq_mask(d);
|
||||
gpio_unlock_as_irq(&at91_gpio->chip, pin);
|
||||
gpiochip_unlock_as_irq(&at91_gpio->chip, pin);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
@ -180,7 +180,7 @@ static int exynos_irq_request_resources(struct irq_data *irqd)
|
||||
unsigned int con;
|
||||
int ret;
|
||||
|
||||
ret = gpio_lock_as_irq(&bank->gpio_chip, irqd->hwirq);
|
||||
ret = gpiochip_lock_as_irq(&bank->gpio_chip, irqd->hwirq);
|
||||
if (ret) {
|
||||
dev_err(bank->gpio_chip.dev, "unable to lock pin %s-%lu IRQ\n",
|
||||
bank->name, irqd->hwirq);
|
||||
@ -233,7 +233,7 @@ static void exynos_irq_release_resources(struct irq_data *irqd)
|
||||
|
||||
spin_unlock_irqrestore(&bank->slock, flags);
|
||||
|
||||
gpio_unlock_as_irq(&bank->gpio_chip, irqd->hwirq);
|
||||
gpiochip_unlock_as_irq(&bank->gpio_chip, irqd->hwirq);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -553,7 +553,7 @@ static int sunxi_pinctrl_irq_request_resources(struct irq_data *d)
|
||||
if (!func)
|
||||
return -EINVAL;
|
||||
|
||||
ret = gpio_lock_as_irq(pctl->chip,
|
||||
ret = gpiochip_lock_as_irq(pctl->chip,
|
||||
pctl->irq_array[d->hwirq] - pctl->desc->pin_base);
|
||||
if (ret) {
|
||||
dev_err(pctl->dev, "unable to lock HW IRQ %lu for IRQ\n",
|
||||
@ -571,8 +571,8 @@ static void sunxi_pinctrl_irq_release_resources(struct irq_data *d)
|
||||
{
|
||||
struct sunxi_pinctrl *pctl = irq_data_get_irq_chip_data(d);
|
||||
|
||||
gpio_unlock_as_irq(pctl->chip,
|
||||
pctl->irq_array[d->hwirq] - pctl->desc->pin_base);
|
||||
gpiochip_unlock_as_irq(pctl->chip,
|
||||
pctl->irq_array[d->hwirq] - pctl->desc->pin_base);
|
||||
}
|
||||
|
||||
static int sunxi_pinctrl_irq_set_type(struct irq_data *d, unsigned int type)
|
||||
|
@ -216,14 +216,15 @@ static inline int gpio_to_irq(unsigned gpio)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static inline int gpio_lock_as_irq(struct gpio_chip *chip, unsigned int offset)
|
||||
static inline int gpiochip_lock_as_irq(struct gpio_chip *chip,
|
||||
unsigned int offset)
|
||||
{
|
||||
WARN_ON(1);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static inline void gpio_unlock_as_irq(struct gpio_chip *chip,
|
||||
unsigned int offset)
|
||||
static inline void gpiochip_unlock_as_irq(struct gpio_chip *chip,
|
||||
unsigned int offset)
|
||||
{
|
||||
WARN_ON(1);
|
||||
}
|
||||
|
@ -149,8 +149,8 @@ extern struct gpio_chip *gpiochip_find(void *data,
|
||||
int (*match)(struct gpio_chip *chip, void *data));
|
||||
|
||||
/* lock/unlock as IRQ */
|
||||
int gpio_lock_as_irq(struct gpio_chip *chip, unsigned int offset);
|
||||
void gpio_unlock_as_irq(struct gpio_chip *chip, unsigned int offset);
|
||||
int gpiochip_lock_as_irq(struct gpio_chip *chip, unsigned int offset);
|
||||
void gpiochip_unlock_as_irq(struct gpio_chip *chip, unsigned int offset);
|
||||
|
||||
struct gpio_chip *gpiod_to_chip(const struct gpio_desc *desc);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user