Re: [PATCH v3] gpio: add Intel Moorestown Platform Langwell chip gpio driver

Andrew Morton
2009-07-30T11:00:35Z

On Fri, 3 Jul 2009 21:07:06 +0800 Alek Du <alek.du@intel.com> wrote:

> Changes from v2:
> 1. Add missed MODULE_DEVICE_TABLE
>
> Changes from v1:
> 1. driver name changed from lnw.c ==> langwell_gpio.c
> 2. removed hard coded driver data, now we get it from PCI bar1 (platform init code fills it)
> 3. removed alternative function setting code, it should be called in platform init part.
> 4. misc. style clean
>
>
> >From 8eaad3aac8cffda193adcfc4b9fcbb7c461fd4b9 Mon Sep 17 00:00:00 2001
> From: Alek Du <alek.du@intel.com>
> Date: Tue, 30 Jun 2009 12:13:27 +0800
> Subject: [PATCH] gpio: add Intel Moorestown Platform Langwell chip gpio driver
>
> The Langwell chip is the IO hub for Intel Moorestown platform which has a
> 64-pin gpio block device inside. It is exposed as a dedicated PCI device.
> We use it to control outside peripheral as well as to do IRQ demuxing. The
> gpio block uses MSI to send level type interrupt to IOAPIC.

The driver breaks the x86-64 allmodconfig build:

ERROR: "irq_to_desc" [drivers/gpio/langwell_gpio.ko] undefined!
ERROR: "set_irq_chip_and_handler_name" [drivers/gpio/langwell_gpio.ko] undefined!
ERROR: "handle_simple_irq" [drivers/gpio/langwell_gpio.ko] undefined!

Does it make any sense to build this driver as a module? If not, it
should be changed to def_bool. If so...

kernel/irq/chip.c | 2 ++
kernel/irq/handle.c | 1 +
2 files changed, 3 insertions(+)

diff -puN kernel/irq/handle.c~kernel-irq-export-symbols-needed-by-gpio-add-intel-moorestown-platform-langwell-chip-gpio-driverpatch kernel/irq/handle.c
--- a/kernel/irq/handle.c~kernel-irq-export-symbols-needed-by-gpio-add-intel-moorestown-platform-langwell-chip-gpio-driverpatch
+++ a/kernel/irq/handle.c
@@ -192,6 +192,7 @@ struct irq_desc *irq_to_desc(unsigned in

return NULL;
}
+EXPORT_SYMBOL(irq_to_desc);

struct irq_desc * __ref irq_to_desc_alloc_node(unsigned int irq, int node)
{
diff -puN kernel/irq/chip.c~kernel-irq-export-symbols-needed-by-gpio-add-intel-moorestown-platform-langwell-chip-gpio-driverpatch kernel/irq/chip.c
--- a/kernel/irq/chip.c~kernel-irq-export-symbols-needed-by-gpio-add-intel-moorestown-platform-langwell-chip-gpio-driverpatch
+++ a/kernel/irq/chip.c
@@ -340,6 +340,7 @@ handle_simple_irq(unsigned int irq, stru
out_unlock:
spin_unlock(&desc->lock);
}
+EXPORT_SYMBOL(handle_simple_irq);

/**
* handle_level_irq - Level type irq handler
@@ -609,6 +610,7 @@ set_irq_chip_and_handler_name(unsigned i
set_irq_chip(irq, chip);
__set_irq_handler(irq, handle, 0, name);
}
+EXPORT_SYMBOL(set_irq_chip_and_handler_name);

void __init set_irq_noprobe(unsigned int irq)
{
_