Subject: [PATCH] [acpi ec] Add skeleton poll and intr interfaces for EC driver - Create drivers/acpi/drivers/ec/{poll,intr}.c and add init functions to each - Call the appropriate init from ec_add(), depending on the value of ec_poll_mode. Signed-off-by: Patrick Mochel --- drivers/acpi/drivers/ec/Makefile | 2 +- drivers/acpi/drivers/ec/driver.c | 5 +++++ drivers/acpi/drivers/ec/ec.h | 6 ++++++ drivers/acpi/drivers/ec/intr.c | 21 +++++++++++++++++++++ drivers/acpi/drivers/ec/poll.c | 20 ++++++++++++++++++++ 5 files changed, 53 insertions(+), 1 deletions(-) create mode 100644 drivers/acpi/drivers/ec/intr.c create mode 100644 drivers/acpi/drivers/ec/poll.c applies-to: 7fa46954959c08ae74acf639482fe3f3b43d24e8 d0734644036ea22c9106e4d03a44cde8eb11d445 diff --git a/drivers/acpi/drivers/ec/Makefile b/drivers/acpi/drivers/ec/Makefile index e38b77a..6afe4ad 100644 --- a/drivers/acpi/drivers/ec/Makefile +++ b/drivers/acpi/drivers/ec/Makefile @@ -1,6 +1,6 @@ obj-$(CONFIG_ACPI_EC) += ec.o -ec-y := driver.o device.o event.o +ec-y := driver.o device.o event.o poll.o intr.o ec-y += setup.o ec-y += resource.o diff --git a/drivers/acpi/drivers/ec/driver.c b/drivers/acpi/drivers/ec/driver.c index ad53ace..7559ea7 100644 --- a/drivers/acpi/drivers/ec/driver.c +++ b/drivers/acpi/drivers/ec/driver.c @@ -43,6 +43,11 @@ static int ec_add(struct acpi_dev * ad) dev_set_drvdata(&ad->dev, ae); + if (ec_poll_mode == EC_MODE_INTR) + ec_intr_init(ae); + else + ec_poll_init(ae); + printk(KERN_INFO PREFIX "ec [%s] (gpe %ld)\n", acpi_dev_bid(ad), ae->e_gpe_bit); return ret; diff --git a/drivers/acpi/drivers/ec/ec.h b/drivers/acpi/drivers/ec/ec.h index e46990a..08c5470 100644 --- a/drivers/acpi/drivers/ec/ec.h +++ b/drivers/acpi/drivers/ec/ec.h @@ -47,3 +47,9 @@ extern int ec_init(struct acpi_ec * ec); */ extern int ec_resource_init(struct acpi_ec * ec); +/* + * poll / intr drivers + */ +extern int ec_poll_init(struct acpi_ec * ec); +extern int ec_intr_init(struct acpi_ec * ec); + diff --git a/drivers/acpi/drivers/ec/intr.c b/drivers/acpi/drivers/ec/intr.c new file mode 100644 index 0000000..a4bf075 --- /dev/null +++ b/drivers/acpi/drivers/ec/intr.c @@ -0,0 +1,21 @@ +/*** + * drivers/acpi/drivers/ec/intr.c - Interrupt-driven EC driver + * + * Copyright (C) 2006 Patrick Mochel + * + * Based on drivers/acpi/ec.c, which was + * + * Copyright (C) 2004 Luming Yu + * Copyright (C) 2001, 2002 Andy Grover + * Copyright (C) 2001, 2002 Paul Diefenbaugh + * + * This file is released under the GPLv2. + */ + +#include "ec.h" + + +int ec_intr_init(struct acpi_ec * ec) +{ + return 0; +} diff --git a/drivers/acpi/drivers/ec/poll.c b/drivers/acpi/drivers/ec/poll.c new file mode 100644 index 0000000..0ecabcb --- /dev/null +++ b/drivers/acpi/drivers/ec/poll.c @@ -0,0 +1,20 @@ +/*** + * drivers/acpi/drivers/ec/poll.c - Polling-driven EC driver + * + * Copyright (C) 2006 Patrick Mochel + * + * Based on drivers/acpi/ec.c, which was + * + * Copyright (C) 2004 Luming Yu + * Copyright (C) 2001, 2002 Andy Grover + * Copyright (C) 2001, 2002 Paul Diefenbaugh + * + * This file is released under the GPLv2. + */ + +#include "ec.h" + +int ec_poll_init(struct acpi_ec * ec) +{ + return 0; +} --- 0.99.9.GIT