From: "Pali Rohár" <pali.rohar@gmail.com>
To: Hans de Goede <hdegoede@redhat.com>
Cc: Darren Hart <dvhart@infradead.org>,
Andy Shevchenko <andy@infradead.org>,
Henrique de Moraes Holschuh <ibm-acpi@hmh.eng.br>,
Jacek Anaszewski <jacek.anaszewski@gmail.com>,
Pavel Machek <pavel@ucw.cz>,
platform-driver-x86@vger.kernel.org, linux-leds@vger.kernel.org
Subject: Re: [PATCH v8 4/7] platform/x86/dell-*: Add a generic dell-laptop notifier chain
Date: Tue, 21 Feb 2017 15:18:02 +0100 [thread overview]
Message-ID: <20170221141802.GH9795@pali> (raw)
In-Reply-To: <20170209154417.19040-5-hdegoede@redhat.com>
On Thursday 09 February 2017 16:44:14 Hans de Goede wrote:
> There are several cases where events handled in one of the dell-* drivers
> need to be propagated to another dell-* driver.
>
> This commits add 3 generic functions:
> dell_laptop_register_notifier()
> dell_laptop_unregister_notifier()
> dell_laptop_call_notifier()
>
> It currently only defines 1 action:
> DELL_LAPTOP_KBD_BACKLIGHT_BRIGHTNESS_CHANGED
>
> Which is intended to propagate kbd_backlight_brightness_changed wmi
> events from dell-wmi to dell-laptop (which contains the actual kbd
> backlight driver).
>
> These functions are put in dell-smbios as both dell-wmi and dell-laptop
> use smbios functions and I do not want to put the notifier head in
> either driver, as that will make the 2 drivers depend on each other.
As wrote in previous emails I do not like adding some totally
SMBIOS-unrelated functions to SMBIOS driver. Basically dell-smbios.ko is
driver for sending smbios calls and this new laptop notifier is for
sending events between other dell drivers.
But I remember that we have not find any clean or better solution yet.
So I will let this patch open for other people...
If somebody has better idea how to solve this problem let us know.
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
> Changes in v2:
> -This is a new patch in v2 of this patch-set
> Changes in v3:
> -No changes
> Changes in v4:
> -Rename functions from dell_smbios_*_notifier to dell_laptop_*_notifier
> Changes in v5:
> -Dropped due to new led-trigger based approach making this unnecessary
> Changes in v6:
> -Re-introduced as led-trigger based approach got nacked
> Changes in v8:
> -Change from atomic to blocking notifier as some of the called notifier
> callbacks may take a mutex
> ---
> drivers/platform/x86/dell-smbios.c | 20 ++++++++++++++++++++
> drivers/platform/x86/dell-smbios.h | 11 +++++++++++
> 2 files changed, 31 insertions(+)
>
> diff --git a/drivers/platform/x86/dell-smbios.c b/drivers/platform/x86/dell-smbios.c
> index d2412ab..0a57234 100644
> --- a/drivers/platform/x86/dell-smbios.c
> +++ b/drivers/platform/x86/dell-smbios.c
> @@ -105,6 +105,26 @@ struct calling_interface_token *dell_smbios_find_token(int tokenid)
> }
> EXPORT_SYMBOL_GPL(dell_smbios_find_token);
>
> +static BLOCKING_NOTIFIER_HEAD(dell_laptop_chain_head);
> +
> +int dell_laptop_register_notifier(struct notifier_block *nb)
> +{
> + return blocking_notifier_chain_register(&dell_laptop_chain_head, nb);
> +}
> +EXPORT_SYMBOL_GPL(dell_laptop_register_notifier);
> +
> +int dell_laptop_unregister_notifier(struct notifier_block *nb)
> +{
> + return blocking_notifier_chain_unregister(&dell_laptop_chain_head, nb);
> +}
> +EXPORT_SYMBOL_GPL(dell_laptop_unregister_notifier);
> +
> +void dell_laptop_call_notifier(unsigned long action, void *data)
> +{
> + blocking_notifier_call_chain(&dell_laptop_chain_head, action, data);
> +}
> +EXPORT_SYMBOL_GPL(dell_laptop_call_notifier);
> +
> static void __init parse_da_table(const struct dmi_header *dm)
> {
> /* Final token is a terminator, so we don't want to copy it */
> diff --git a/drivers/platform/x86/dell-smbios.h b/drivers/platform/x86/dell-smbios.h
> index ec7d40a..45cbc22 100644
> --- a/drivers/platform/x86/dell-smbios.h
> +++ b/drivers/platform/x86/dell-smbios.h
> @@ -16,6 +16,8 @@
> #ifndef _DELL_SMBIOS_H_
> #define _DELL_SMBIOS_H_
>
> +struct notifier_block;
> +
> /* This structure will be modified by the firmware when we enter
> * system management mode, hence the volatiles */
>
> @@ -43,4 +45,13 @@ void dell_smbios_release_buffer(void);
> void dell_smbios_send_request(int class, int select);
>
> struct calling_interface_token *dell_smbios_find_token(int tokenid);
> +
> +enum dell_laptop_notifier_actions {
> + DELL_LAPTOP_KBD_BACKLIGHT_BRIGHTNESS_CHANGED,
> +};
> +
> +int dell_laptop_register_notifier(struct notifier_block *nb);
> +int dell_laptop_unregister_notifier(struct notifier_block *nb);
> +void dell_laptop_call_notifier(unsigned long action, void *data);
> +
> #endif
--
Pali Rohár
pali.rohar@gmail.com
next prev parent reply other threads:[~2017-02-21 14:18 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-09 15:44 [PATCH v8 0/7] platform/x86: Notify userspace about hotkeys changing kbd-backlight brightness Hans de Goede
2017-02-09 15:44 ` [PATCH v8 1/7] platform/x86/thinkpad_acpi: Stop setting led_classdev brightness directly Hans de Goede
2017-02-09 18:09 ` Henrique de Moraes Holschuh
2017-03-01 11:27 ` Pali Rohár
2017-03-01 11:57 ` Hans de Goede
2017-03-01 12:00 ` Pali Rohár
2017-03-01 12:04 ` Hans de Goede
2017-03-01 14:24 ` Marco Trevisan (Treviño)
2017-02-09 15:44 ` [PATCH v8 2/7] platform/x86/thinkpad_acpi: Use brightness_set_blocking callback for LEDs Hans de Goede
2017-02-09 18:00 ` Henrique de Moraes Holschuh
2017-02-09 15:44 ` [PATCH v8 3/7] platform/x86/thinkpad: Call led_classdev_notify_brightness_hw_changed on kbd brightness change Hans de Goede
2017-02-09 18:08 ` Henrique de Moraes Holschuh
2017-02-13 22:52 ` Andy Shevchenko
2017-02-14 9:25 ` Hans de Goede
2017-02-14 9:33 ` Andy Shevchenko
2017-02-17 3:45 ` Darren Hart
2017-02-14 9:36 ` Pali Rohár
2017-02-09 15:44 ` [PATCH v8 4/7] platform/x86/dell-*: Add a generic dell-laptop notifier chain Hans de Goede
2017-02-21 14:18 ` Pali Rohár [this message]
2017-02-09 15:44 ` [PATCH v8 5/7] platform/x86/dell-laptop: Refactor kbd_led_triggers_store() Hans de Goede
2017-02-21 14:02 ` Pali Rohár
2017-02-09 15:44 ` [PATCH v8 6/7] platform/x86/dell-laptop: Protect kbd_state against races Hans de Goede
2017-02-21 14:06 ` Pali Rohár
2017-02-21 14:18 ` Hans de Goede
2017-02-21 14:25 ` Pali Rohár
2017-02-21 14:42 ` Hans de Goede
2017-02-21 14:53 ` Pali Rohár
2017-02-09 15:44 ` [PATCH v8 7/7] platform/x86/dell-*: Call led_classdev_notify_brightness_hw_changed on kbd brightness change Hans de Goede
2017-02-21 14:11 ` Pali Rohár
2017-02-21 14:40 ` Hans de Goede
2017-02-21 14:50 ` Pali Rohár
2017-02-21 14:56 ` Hans de Goede
2017-02-21 15:13 ` Pali Rohár
2017-02-21 16:14 ` Hans de Goede
2017-02-21 17:08 ` Pali Rohár
2017-02-22 8:36 ` Hans de Goede
2017-02-22 8:49 ` Pali Rohár
2017-02-22 10:24 ` Hans de Goede
2017-02-22 12:01 ` Pali Rohár
2017-02-22 12:20 ` Hans de Goede
2017-03-01 11:15 ` Pali Rohár
2017-03-01 12:02 ` Hans de Goede
2017-03-01 12:55 ` Pali Rohár
2017-03-01 13:58 ` Hans de Goede
2017-03-03 12:00 ` Pali Rohár
2017-03-06 13:39 ` Hans de Goede
2017-03-16 10:11 ` Hans de Goede
2017-02-21 20:47 ` Jacek Anaszewski
2017-02-09 20:21 ` [PATCH v8 0/7] platform/x86: Notify userspace about hotkeys changing kbd-backlight brightness Jacek Anaszewski
2017-02-11 20:08 ` Pavel Machek
2017-03-01 23:10 ` Andy Shevchenko
2017-03-02 14:12 ` Hans de Goede
2017-03-02 14:22 ` Pali Rohár
2017-03-02 14:30 ` Hans de Goede
2017-03-02 14:34 ` Pali Rohár
2017-03-02 15:27 ` Andy Shevchenko
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=20170221141802.GH9795@pali \
--to=pali.rohar@gmail.com \
--cc=andy@infradead.org \
--cc=dvhart@infradead.org \
--cc=hdegoede@redhat.com \
--cc=ibm-acpi@hmh.eng.br \
--cc=jacek.anaszewski@gmail.com \
--cc=linux-leds@vger.kernel.org \
--cc=pavel@ucw.cz \
--cc=platform-driver-x86@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.