Late GPIO fixes:

- Syscon GPIO fix for Keystone DSP GPIOs
 - Pin number translation fix for ACPI GPIO
 - A smallish compiler warning fix on the mpc8xxx driver
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJVGQHEAAoJEEEQszewGV1zFUwQAMofHNFAtoP80OYsJMktOsaO
 u5e+YYaLXgrFc5kE3V5gI8DBDRZRkw4SeNsBosIP3tUU8dmY/z5A8cvlwdeD5nsy
 StAWXcBHNlbAZA2AVHI04Q8+A05NMAOPR1Qq5HVmcsm9fFvTIbvfJgxICxPHbRN5
 6UNhdSwbdynLH8SUUdDx0/9Yq7xIXVReZX+pS5ksC1TC5nYSGU3txOSEODyHnsRL
 S3SNtCKBMTqp7twbpsMf15xff6xtM0I+c7bga+XoY+qydDD0fXkUaiLAAVW/zfUh
 ep/8kJiqzL0SgquP7/XunB9b4QejonqzYo2GUxKOw7B+gHmmICFrEMozQ1/w2vTc
 jjMAvRkI4jm209KragBK/vI23cMXNfphzW/WTJ39j9TKy25uQ2G/ZvD9c+Q2/RWN
 IuN5MFJm/OcVWPWv1GafheMFBQilRRKkl9PTVKScm4hFCbysnikj4++VdkZF9qZz
 CAc+waZld2yEX45Xu7zEyMRQPGoUVNJm321WMO9YC5WkYZTZbYPtt9VNgYiBQ2ZR
 LK0aQDlaviduujRqPxFv0bA6E6MmlJEWhQfIdFCPFkXfalUIpxgge3JBvuSG09w/
 pwVDMr2eGkeDqIHMcyC+upHMZvuJD6+Sw+0c+T4smTtlOt4JOQO74ysyqfzM/795
 25xx9hYMSlOzWvsq5WqW
 =02eY
 -----END PGP SIGNATURE-----

Merge tag 'gpio-v4.0-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio

Pull late GPIO fixes from Linus Walleij:
 "Here are the (hopefully) last GPIO fixes for v4.0.  Nothing
  controversial whatsoever, just fixes:

   - syscon GPIO fix for Keystone DSP GPIOs

   - pin number translation fix for ACPI GPIO

   - a smallish compiler warning fix on the mpc8xxx driver"

* tag 'gpio-v4.0-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
  gpio: syscon: reduce message level when direction reg offset not in dt
  gpiolib: translate pin number in GPIO ACPI callbacks
  gpio: mpc8xxx: remove __initdata annotation for mpc8xxx_gpio_ids[]
This commit is contained in:
Linus Torvalds 2015-03-30 09:14:41 -07:00
commit 29059af3f2
3 changed files with 12 additions and 2 deletions

View File

@ -334,7 +334,7 @@ static struct irq_domain_ops mpc8xxx_gpio_irq_ops = {
.xlate = irq_domain_xlate_twocell, .xlate = irq_domain_xlate_twocell,
}; };
static struct of_device_id mpc8xxx_gpio_ids[] __initdata = { static struct of_device_id mpc8xxx_gpio_ids[] = {
{ .compatible = "fsl,mpc8349-gpio", }, { .compatible = "fsl,mpc8349-gpio", },
{ .compatible = "fsl,mpc8572-gpio", }, { .compatible = "fsl,mpc8572-gpio", },
{ .compatible = "fsl,mpc8610-gpio", }, { .compatible = "fsl,mpc8610-gpio", },

View File

@ -219,7 +219,7 @@ static int syscon_gpio_probe(struct platform_device *pdev)
ret = of_property_read_u32_index(np, "gpio,syscon-dev", 2, ret = of_property_read_u32_index(np, "gpio,syscon-dev", 2,
&priv->dir_reg_offset); &priv->dir_reg_offset);
if (ret) if (ret)
dev_err(dev, "can't read the dir register offset!\n"); dev_dbg(dev, "can't read the dir register offset!\n");
priv->dir_reg_offset <<= 3; priv->dir_reg_offset <<= 3;
} }

View File

@ -201,6 +201,10 @@ static acpi_status acpi_gpiochip_request_interrupt(struct acpi_resource *ares,
if (!handler) if (!handler)
return AE_BAD_PARAMETER; return AE_BAD_PARAMETER;
pin = acpi_gpiochip_pin_to_gpio_offset(chip, pin);
if (pin < 0)
return AE_BAD_PARAMETER;
desc = gpiochip_request_own_desc(chip, pin, "ACPI:Event"); desc = gpiochip_request_own_desc(chip, pin, "ACPI:Event");
if (IS_ERR(desc)) { if (IS_ERR(desc)) {
dev_err(chip->dev, "Failed to request GPIO\n"); dev_err(chip->dev, "Failed to request GPIO\n");
@ -551,6 +555,12 @@ acpi_gpio_adr_space_handler(u32 function, acpi_physical_address address,
struct gpio_desc *desc; struct gpio_desc *desc;
bool found; bool found;
pin = acpi_gpiochip_pin_to_gpio_offset(chip, pin);
if (pin < 0) {
status = AE_BAD_PARAMETER;
goto out;
}
mutex_lock(&achip->conn_lock); mutex_lock(&achip->conn_lock);
found = false; found = false;