mfd: lpc_ich: Only configure watchdog or GPIO when present
[deliverable/linux.git] / drivers / mfd / lpc_ich.c
index be93fa261dedb4c808955c1830932f84a48b7524..cffa8367ddcfdbea7898e4503d8b3aa5058fe9f9 100644 (file)
@@ -58,7 +58,6 @@
 
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
-#include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/errno.h>
@@ -500,6 +499,7 @@ static struct lpc_ich_info lpc_chipset_info[] = {
        [LPC_AVN] = {
                .name = "Avoton SoC",
                .iTCO_version = 1,
+               .gpio_version = AVOTON_GPIO,
        },
        [LPC_COLETO] = {
                .name = "Coleto Creek",
@@ -759,7 +759,7 @@ static void lpc_ich_enable_acpi_space(struct pci_dev *dev)
        u8 reg_save;
 
        pci_read_config_byte(dev, priv->acpi.ctrl, &reg_save);
-       pci_write_config_byte(dev, priv->acpi.ctrl, reg_save | 0x10);
+       pci_write_config_byte(dev, priv->acpi.ctrl, reg_save | 0x80);
        priv->acpi.save = reg_save;
 }
 
@@ -967,13 +967,17 @@ static int lpc_ich_probe(struct pci_dev *dev,
 
        pci_set_drvdata(dev, priv);
 
-       ret = lpc_ich_init_wdt(dev);
-       if (!ret)
-               cell_added = true;
+       if (lpc_chipset_info[priv->chipset].iTCO_version) {
+               ret = lpc_ich_init_wdt(dev);
+               if (!ret)
+                       cell_added = true;
+       }
 
-       ret = lpc_ich_init_gpio(dev);
-       if (!ret)
-               cell_added = true;
+       if (lpc_chipset_info[priv->chipset].gpio_version) {
+               ret = lpc_ich_init_gpio(dev);
+               if (!ret)
+                       cell_added = true;
+       }
 
        /*
         * We only care if at least one or none of the cells registered
This page took 0.024901 seconds and 5 git commands to generate.