From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Andrew Duggan <aduggan@synaptics.com>,
Christopher Heiny <cheiny@synaptics.com>,
Allie Xiong <axiong@synaptics.com>
Cc: Stephen Chandler Paul <cpaul@redhat.com>,
benjamin.tissoires@gmail.com, linux-input@vger.kernel.org,
linux-kernel@vger.kernel.org,
Benjamin Tissoires <benjamin.tissoires@redhat.com>
Subject: [PATCH 01/11] Input: synaptics-rmi4 - embed the function modules in rmi_core
Date: Tue, 23 Jun 2015 15:17:20 -0400 [thread overview]
Message-ID: <1435087050-11444-2-git-send-email-benjamin.tissoires@redhat.com> (raw)
In-Reply-To: <1435087050-11444-1-git-send-email-benjamin.tissoires@redhat.com>
the function modules can not be auto-loaded by udev. So at boot, the
functions are not there and the device is not properly populated.
Force the functions to be embedded in rmi_core so that when the touchpad
is there, the functions are there too.
There is not much use of having the functions separate anyway
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
---
drivers/input/rmi4/Kconfig | 5 +----
drivers/input/rmi4/Makefile | 2 +-
drivers/input/rmi4/rmi_bus.c | 11 ++++++++++-
drivers/input/rmi4/rmi_driver.h | 8 ++++++++
drivers/input/rmi4/rmi_f11.c | 10 +++++++++-
5 files changed, 29 insertions(+), 7 deletions(-)
diff --git a/drivers/input/rmi4/Kconfig b/drivers/input/rmi4/Kconfig
index d0c7b6e..5e3890e 100644
--- a/drivers/input/rmi4/Kconfig
+++ b/drivers/input/rmi4/Kconfig
@@ -37,7 +37,7 @@ config RMI4_I2C
This feature is not currently available as a loadable module.
config RMI4_F11
- tristate "RMI4 Function 11 (2D pointing)"
+ bool "RMI4 Function 11 (2D pointing)"
depends on RMI4_CORE
help
Say Y here if you want to add support for RMI4 function 11.
@@ -46,9 +46,6 @@ config RMI4_F11
touchpads. For sensors that support relative pointing, F11 also
provides mouse input.
- To compile this driver as a module, choose M here: the
- module will be called rmi-f11.
-
config RMI4_F11_PEN
bool "RMI4 F11 Pen Support"
depends on RMI4_F11
diff --git a/drivers/input/rmi4/Makefile b/drivers/input/rmi4/Makefile
index 5c6bad5..63bc595 100644
--- a/drivers/input/rmi4/Makefile
+++ b/drivers/input/rmi4/Makefile
@@ -2,7 +2,7 @@ obj-$(CONFIG_RMI4_CORE) += rmi_core.o
rmi_core-y := rmi_bus.o rmi_driver.o rmi_f01.o
# Function drivers
-obj-$(CONFIG_RMI4_F11) += rmi_f11.o
+rmi_core-$(CONFIG_RMI4_F11) += rmi_f11.o
# Transports
obj-$(CONFIG_RMI4_I2C) += rmi_i2c.o
diff --git a/drivers/input/rmi4/rmi_bus.c b/drivers/input/rmi4/rmi_bus.c
index 6e0454a..ef2078a 100644
--- a/drivers/input/rmi4/rmi_bus.c
+++ b/drivers/input/rmi4/rmi_bus.c
@@ -383,15 +383,24 @@ static int __init rmi_bus_init(void)
goto err_unregister_bus;
}
+ error = rmi_register_f11_handler();
+ if (error) {
+ pr_err("%s: error registering the RMI F11 handler: %d\n",
+ __func__, error);
+ goto err_unregister_f01;
+ }
+
error = rmi_register_physical_driver();
if (error) {
pr_err("%s: error registering the RMI physical driver: %d\n",
__func__, error);
- goto err_unregister_f01;
+ goto err_unregister_f11;
}
return 0;
+err_unregister_f11:
+ rmi_unregister_f11_handler();
err_unregister_f01:
rmi_unregister_f01_handler();
err_unregister_bus:
diff --git a/drivers/input/rmi4/rmi_driver.h b/drivers/input/rmi4/rmi_driver.h
index 34f7a7d..dda564f 100644
--- a/drivers/input/rmi4/rmi_driver.h
+++ b/drivers/input/rmi4/rmi_driver.h
@@ -113,4 +113,12 @@ void rmi_unregister_physical_driver(void);
int rmi_register_f01_handler(void);
void rmi_unregister_f01_handler(void);
+#ifdef CONFIG_RMI4_F11
+int rmi_register_f11_handler(void);
+void rmi_unregister_f11_handler(void);
+#else
+static inline int rmi_register_f11_handler(void) { return 0; }
+static inline void rmi_unregister_f11_handler(void) {}
+#endif
+
#endif
diff --git a/drivers/input/rmi4/rmi_f11.c b/drivers/input/rmi4/rmi_f11.c
index 7af4f68..4bdf4a5 100644
--- a/drivers/input/rmi4/rmi_f11.c
+++ b/drivers/input/rmi4/rmi_f11.c
@@ -1537,7 +1537,15 @@ static struct rmi_function_handler rmi_f11_handler = {
.attention = rmi_f11_attention,
};
-module_rmi_driver(rmi_f11_handler);
+int __init rmi_register_f11_handler(void)
+{
+ return rmi_register_function_handler(&rmi_f11_handler);
+}
+
+void rmi_unregister_f11_handler(void)
+{
+ rmi_unregister_function_handler(&rmi_f11_handler);
+}
MODULE_AUTHOR("Christopher Heiny <cheiny@synaptics.com");
MODULE_AUTHOR("Andrew Duggan <aduggan@synaptics.com");
--
2.4.3
next prev parent reply other threads:[~2015-06-23 19:17 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-23 19:17 [PATCH 00/11] Input: synaptics-rmi4: various fixes for the existing rmi4 branch Benjamin Tissoires
2015-06-23 19:17 ` Benjamin Tissoires [this message]
2015-06-24 9:51 ` [PATCH 01/11] Input: synaptics-rmi4 - embed the function modules in rmi_core Paul Bolle
2015-06-24 14:10 ` Benjamin Tissoires
2015-07-02 17:49 ` Andrew Duggan
2015-06-23 19:17 ` [PATCH 02/11] Input: synaptics-rmi4 - add a common input device in rmi_driver Benjamin Tissoires
2015-07-02 17:49 ` Andrew Duggan
2015-06-23 19:17 ` [PATCH 03/11] Input: synaptics-rmi4 - explicitly request polling when needed Benjamin Tissoires
2015-07-02 17:50 ` Andrew Duggan
2015-06-23 19:17 ` [PATCH 04/11] Input: synaptics-rmi4 - prevent oopses when irq arrives while the device is not bound Benjamin Tissoires
2015-07-02 17:50 ` Andrew Duggan
2015-06-23 19:17 ` [PATCH 05/11] Input: synaptics-rmi4 - call rmi_driver_process_config_requests in enable_sensor Benjamin Tissoires
2015-07-02 17:50 ` Andrew Duggan
2015-06-23 19:17 ` [PATCH 06/11] Input: synaptics-rmi4 - add a reset callback Benjamin Tissoires
2015-06-23 19:17 ` [PATCH 07/11] Input: synaptics-rmi4 - f11: fix bitmap irq check Benjamin Tissoires
2015-07-02 17:50 ` Andrew Duggan
2015-06-23 19:17 ` [PATCH 08/11] Input: synaptics-rmi4 - f11: use the unified input node if available Benjamin Tissoires
2015-07-02 17:50 ` Andrew Duggan
2015-06-23 19:17 ` [PATCH 09/11] Input: synaptics-rmi4 - f11: clean up rmi_f11_finger_handler Benjamin Tissoires
2015-07-02 17:51 ` Andrew Duggan
2015-06-23 19:17 ` [PATCH 10/11] Input: synaptics-rmi4 - f11: allow the top software button property to be set Benjamin Tissoires
2015-07-02 17:51 ` Andrew Duggan
2015-06-23 19:17 ` [PATCH 11/11] Input: synaptics-rmi4 - f11: add support for kernel tracking Benjamin Tissoires
2015-07-02 17:51 ` Andrew Duggan
2015-07-23 17:10 ` [PATCH 00/11] Input: synaptics-rmi4: various fixes for the existing rmi4 branch Benjamin Tissoires
2015-10-31 20:41 ` Linus Walleij
2015-11-02 22:14 ` Andrew Duggan
2015-11-03 10:29 ` Linus Walleij
2015-11-03 14:01 ` Linus Walleij
2015-11-04 0:38 ` Andrew Duggan
2015-11-04 8:28 ` Benjamin Tissoires
2015-11-04 13:55 ` Linus Walleij
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1435087050-11444-2-git-send-email-benjamin.tissoires@redhat.com \
--to=benjamin.tissoires@redhat.com \
--cc=aduggan@synaptics.com \
--cc=axiong@synaptics.com \
--cc=benjamin.tissoires@gmail.com \
--cc=cheiny@synaptics.com \
--cc=cpaul@redhat.com \
--cc=dmitry.torokhov@gmail.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).