From: "Pali Rohár" <pali.rohar@gmail.com>
To: Hans de Goede <hdegoede@redhat.com>
Cc: Darren Hart <dvhart@infradead.org>,
Matthew Garrett <mjg59@srcf.ucam.org>,
Richard Purdie <rpurdie@rpsys.net>,
Jacek Anaszewski <j.anaszewski@samsung.com>,
platform-driver-x86@vger.kernel.org, linux-leds@vger.kernel.org
Subject: Re: [PATCH v2 2/4] platform: x86: dell-smbios: Add a generic dell-smbios notifier chain
Date: Mon, 24 Oct 2016 15:31:05 +0200 [thread overview]
Message-ID: <20161024133105.GC12154@pali> (raw)
In-Reply-To: <20161023194652.24335-2-hdegoede@redhat.com>
On Sunday 23 October 2016 21:46:50 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_smbios_register_notifier()
> dell_smbios_unregister_notifier()
> dell_smbios_call_notifier()
>
> It currently only defines 1 action:
> dell_smbios_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).
>
> This is only somewhat dell smbios related, 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.
>
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
> Changes in v2:
> -This is a new patch in v2 of this patch-set
> ---
> 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..8b96bdf 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 ATOMIC_NOTIFIER_HEAD(dell_smbios_chain_head);
> +
> +int dell_smbios_register_notifier(struct notifier_block *nb)
> +{
> + return atomic_notifier_chain_register(&dell_smbios_chain_head, nb);
> +}
> +EXPORT_SYMBOL_GPL(dell_smbios_register_notifier);
> +
> +int dell_smbios_unregister_notifier(struct notifier_block *nb)
> +{
> + return atomic_notifier_chain_unregister(&dell_smbios_chain_head, nb);
> +}
> +EXPORT_SYMBOL_GPL(dell_smbios_unregister_notifier);
> +
> +void dell_smbios_call_notifier(unsigned long action, void *data)
> +{
> + atomic_notifier_call_chain(&dell_smbios_chain_head, action, data);
> +}
> +EXPORT_SYMBOL_GPL(dell_smbios_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..e91f13f 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_smbios_notifier_actions {
> + dell_smbios_kbd_backlight_brightness_changed,
> +};
> +
> +int dell_smbios_register_notifier(struct notifier_block *nb);
> +int dell_smbios_unregister_notifier(struct notifier_block *nb);
> +void dell_smbios_call_notifier(unsigned long action, void *data);
> +
> #endif
That is better but technically speaking those notifiers do not have
nothing common with dell-smbios :-( Driver dell-smbios.ko provides API
for sending SMBIOS requests via SMM. Maybe move those functions into
separate module (and built statically into kernel)? Just speculation, do
not have something useful in my mind.
--
Pali Rohár
pali.rohar@gmail.com
next prev parent reply other threads:[~2016-10-24 13:31 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-23 19:46 [PATCH v2 1/4] leds: core: Add support for poll()ing the sysfs brightness attr for changes Hans de Goede
2016-10-23 19:46 ` [PATCH v2 2/4] platform: x86: dell-smbios: Add a generic dell-smbios notifier chain Hans de Goede
2016-10-24 13:31 ` Pali Rohár [this message]
2016-10-24 13:37 ` Hans de Goede
2016-10-24 13:43 ` Pali Rohár
2016-10-24 13:45 ` Hans de Goede
2016-10-27 10:32 ` Pali Rohár
2016-10-27 12:45 ` Hans de Goede
2016-10-27 12:51 ` Pali Rohár
2016-10-27 12:54 ` Hans de Goede
2016-10-27 12:57 ` Pali Rohár
2016-10-23 19:46 ` [PATCH v2 3/4] platform: x86: dell-*: Call led_notify_brightness_change on kbd brightness change Hans de Goede
2016-10-24 13:34 ` Pali Rohár
2016-10-24 13:43 ` Hans de Goede
2016-10-24 13:51 ` Pali Rohár
2016-10-24 13:57 ` Hans de Goede
2016-10-24 14:10 ` Pali Rohár
2016-10-23 19:46 ` [PATCH v2 4/4] platform: x86: dell-*: Simplify dell-rbtn integration with dell-laptop [untested] Hans de Goede
2016-10-24 20:43 ` [PATCH v2 1/4] leds: core: Add support for poll()ing the sysfs brightness attr for changes Jacek Anaszewski
2016-10-26 15:18 ` Hans de Goede
2016-10-27 6:58 ` Jacek Anaszewski
2016-10-27 7:33 ` Hans de Goede
2016-10-27 8:03 ` Jacek Anaszewski
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=20161024133105.GC12154@pali \
--to=pali.rohar@gmail.com \
--cc=dvhart@infradead.org \
--cc=hdegoede@redhat.com \
--cc=j.anaszewski@samsung.com \
--cc=linux-leds@vger.kernel.org \
--cc=mjg59@srcf.ucam.org \
--cc=platform-driver-x86@vger.kernel.org \
--cc=rpurdie@rpsys.net \
/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.