Browse Source

gpio-exar/8250-exar: Rearrange gpiochip parenthood

Set the parent of the exar gpiochip to its platform device, like other
gpiochips are doing it. In order to keep the relationship discoverable
for ACPI systems, set the platform device companion to the PCI device.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Jan Kiszka 8 years ago
parent
commit
4076cf08ac
2 changed files with 3 additions and 1 deletions
  1. 1 1
      drivers/gpio/gpio-exar.c
  2. 2 0
      drivers/tty/serial/8250/8250_exar.c

+ 1 - 1
drivers/gpio/gpio-exar.c

@@ -142,7 +142,7 @@ static int gpio_exar_probe(struct platform_device *pdev)
 
 
 	sprintf(exar_gpio->name, "exar_gpio%d", index);
 	sprintf(exar_gpio->name, "exar_gpio%d", index);
 	exar_gpio->gpio_chip.label = exar_gpio->name;
 	exar_gpio->gpio_chip.label = exar_gpio->name;
-	exar_gpio->gpio_chip.parent = &pcidev->dev;
+	exar_gpio->gpio_chip.parent = &pdev->dev;
 	exar_gpio->gpio_chip.direction_output = exar_direction_output;
 	exar_gpio->gpio_chip.direction_output = exar_direction_output;
 	exar_gpio->gpio_chip.direction_input = exar_direction_input;
 	exar_gpio->gpio_chip.direction_input = exar_direction_input;
 	exar_gpio->gpio_chip.get_direction = exar_get_direction;
 	exar_gpio->gpio_chip.get_direction = exar_get_direction;

+ 2 - 0
drivers/tty/serial/8250/8250_exar.c

@@ -9,6 +9,7 @@
  * it under the terms of the GNU General Public License as published by
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License.
  * the Free Software Foundation; either version 2 of the License.
  */
  */
+#include <linux/acpi.h>
 #include <linux/io.h>
 #include <linux/io.h>
 #include <linux/kernel.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/module.h>
@@ -197,6 +198,7 @@ xr17v35x_register_gpio(struct pci_dev *pcidev)
 		return NULL;
 		return NULL;
 
 
 	pdev->dev.parent = &pcidev->dev;
 	pdev->dev.parent = &pcidev->dev;
+	ACPI_COMPANION_SET(&pdev->dev, ACPI_COMPANION(&pcidev->dev));
 
 
 	if (platform_device_add(pdev) < 0) {
 	if (platform_device_add(pdev) < 0) {
 		platform_device_put(pdev);
 		platform_device_put(pdev);