platform/x86: wmi: Add an interface for subdrivers to access sibling devices
Some subdrivers need to access sibling devices. This gives them a clean way to do so. Signed-off-by: Andy Lutomirski <luto@kernel.org> Cc: Andy Lutomirski <luto@amacapital.net> Cc: Mario Limonciello <mario_limonciello@dell.com> Cc: Pali Rohár <pali.rohar@gmail.com> Cc: linux-kernel@vger.kernel.org Cc: platform-driver-x86@vger.kernel.org Cc: linux-acpi@vger.kernel.org Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
This commit is contained in:
parent
9599ed919f
commit
f63019861c
|
@ -344,6 +344,23 @@ union acpi_object *wmidev_block_query(struct wmi_device *wdev, u8 instance)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(wmidev_block_query);
|
EXPORT_SYMBOL_GPL(wmidev_block_query);
|
||||||
|
|
||||||
|
struct wmi_device *wmidev_get_other_guid(struct wmi_device *wdev,
|
||||||
|
const char *guid_string)
|
||||||
|
{
|
||||||
|
struct wmi_block *this_wb = container_of(wdev, struct wmi_block, dev);
|
||||||
|
struct wmi_block *other_wb;
|
||||||
|
|
||||||
|
if (!find_guid(guid_string, &other_wb))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
if (other_wb->acpi_device != this_wb->acpi_device)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
get_device(&other_wb->dev.dev);
|
||||||
|
return &other_wb->dev;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(wmidev_get_other_guid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wmi_set_block - Write to a WMI block
|
* wmi_set_block - Write to a WMI block
|
||||||
* @guid_string: 36 char string of the form fa50ff2b-f2e8-45de-83fa-65417f2f49ba
|
* @guid_string: 36 char string of the form fa50ff2b-f2e8-45de-83fa-65417f2f49ba
|
||||||
|
|
|
@ -33,6 +33,10 @@ struct wmi_device {
|
||||||
extern union acpi_object *wmidev_block_query(struct wmi_device *wdev,
|
extern union acpi_object *wmidev_block_query(struct wmi_device *wdev,
|
||||||
u8 instance);
|
u8 instance);
|
||||||
|
|
||||||
|
/* Gets another device on the same bus. Caller must put_device the result. */
|
||||||
|
extern struct wmi_device *wmidev_get_other_guid(struct wmi_device *wdev,
|
||||||
|
const char *guid_string);
|
||||||
|
|
||||||
struct wmi_device_id {
|
struct wmi_device_id {
|
||||||
const char *guid_string;
|
const char *guid_string;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue