Re: [PATCH 1/3 v3] mfd: Add LPC driver for Intel ICH chipsets

From: Jean Delvare
Date: Fri Feb 17 2012 - 16:22:07 EST


Hi Aaron,

On Fri, 17 Feb 2012 12:18:18 -0600 (CST), Aaron Sierra wrote:
> This driver currently creates resources for use by a forthcoming ICH
> chipset GPIO driver. It could be expanded to created the resources for
> converting the esb2rom (mtd) and iTCO_wdt (wdt), and potentially more,
> drivers to use the mfd model.
>
> Signed-off-by: Aaron Sierra <asierra@xxxxxxxxxxx>
> Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>

Tested-by: Jean Delvare <khali@xxxxxxxxxxxx>

> ---
> drivers/mfd/Kconfig | 9 +
> drivers/mfd/Makefile | 1 +
> drivers/mfd/lpc_ich.c | 513 +++++++++++++++++++++++++++++++++++++++++++
> include/linux/mfd/lpc_ich.h | 32 +++
> 4 files changed, 555 insertions(+), 0 deletions(-)
> create mode 100644 drivers/mfd/lpc_ich.c
> create mode 100644 include/linux/mfd/lpc_ich.h

Looks alright this time, except:

> +static void __devexit lpc_ich_remove(struct pci_dev *dev)
> +{
> + mfd_remove_devices(&dev->dev);
> +
> + if (lpc_ich_gpio_save > 0)
> + pci_write_config_byte(dev, GPIOCTRL, (u8)lpc_ich_gpio_save);
> + if (lpc_ich_acpi_save > 0)
> + pci_write_config_byte(dev, ACPICTRL, (u8)lpc_ich_acpi_save);

I think you really mean >= 0 above. And the casts aren't needed. You
should also reset lpc_ich_gpio_save and lpc_ich_acpi_save to -1 after
restoring the values, it matters if the device is removed and re-added
through sysfs.

This cleanup is missing from the error path in lpc_ich_probe, BTW. You
may want to move it to a separate function so that you can call it from
both lpc_ich_probe and lpc_ich_remove.

--
Jean Delvare
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/