mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-28 16:53:49 +00:00
Merge branch 'acpi-bus'
Merge changes related to _OSC handling and updates eliminating the owner field from struct acpi_driver: - Make the kernel indicate support for several ACPI features that are in fact supported to the platform firmware through _OSC and fix the Generic Initiator Affinity _OSC bit (Armin Wolf). - Make the ACPI core set the owner value for ACPI drivers, drop the owner setting from a number of drivers and eliminate the owner field from struct acpi_driver (Krzysztof Kozlowski). * acpi-bus: (24 commits) ACPI: drop redundant owner from acpi_driver virt: vmgenid: drop owner assignment ptp: vmw: drop owner assignment platform/x86/wireless-hotkey: drop owner assignment platform/x86/toshiba_haps: drop owner assignment platform/x86/toshiba_bluetooth: drop owner assignment platform/x86/toshiba_acpi: drop owner assignment platform/x86/sony-laptop: drop owner assignment platform/x86/lg-laptop: drop owner assignment platform/x86/intel/smartconnect: drop owner assignment platform/x86/intel/rst: drop owner assignment platform/x86/eeepc: drop owner assignment platform/x86/dell: drop owner assignment platform: classmate-laptop: drop owner assignment platform: asus-laptop: drop owner assignment platform/chrome: wilco_ec: drop owner assignment net: fjes: drop owner assignment Input: atlas - drop owner assignment ACPI: store owner from modules with acpi_bus_register_driver() ACPI: bus: Indicate support for IRQ ResourceSource thru _OSC ...
This commit is contained in:
commit
82303dd304
@ -316,9 +316,14 @@ static void acpi_bus_osc_negotiate_platform_control(void)
|
||||
capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_PAD_SUPPORT;
|
||||
if (IS_ENABLED(CONFIG_ACPI_PROCESSOR))
|
||||
capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_PPC_OST_SUPPORT;
|
||||
if (IS_ENABLED(CONFIG_ACPI_THERMAL))
|
||||
capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_FAST_THERMAL_SAMPLING_SUPPORT;
|
||||
|
||||
capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_HOTPLUG_OST_SUPPORT;
|
||||
capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_PCLPI_SUPPORT;
|
||||
capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_OVER_16_PSTATES_SUPPORT;
|
||||
capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_GED_SUPPORT;
|
||||
capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_IRQ_RESOURCE_SOURCE_SUPPORT;
|
||||
if (IS_ENABLED(CONFIG_ACPI_PRMT))
|
||||
capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_PRM_SUPPORT;
|
||||
if (IS_ENABLED(CONFIG_ACPI_FFH))
|
||||
@ -990,25 +995,26 @@ EXPORT_SYMBOL_GPL(acpi_driver_match_device);
|
||||
-------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* acpi_bus_register_driver - register a driver with the ACPI bus
|
||||
* __acpi_bus_register_driver - register a driver with the ACPI bus
|
||||
* @driver: driver being registered
|
||||
* @owner: owning module/driver
|
||||
*
|
||||
* Registers a driver with the ACPI bus. Searches the namespace for all
|
||||
* devices that match the driver's criteria and binds. Returns zero for
|
||||
* success or a negative error status for failure.
|
||||
*/
|
||||
int acpi_bus_register_driver(struct acpi_driver *driver)
|
||||
int __acpi_bus_register_driver(struct acpi_driver *driver, struct module *owner)
|
||||
{
|
||||
if (acpi_disabled)
|
||||
return -ENODEV;
|
||||
driver->drv.name = driver->name;
|
||||
driver->drv.bus = &acpi_bus_type;
|
||||
driver->drv.owner = driver->owner;
|
||||
driver->drv.owner = owner;
|
||||
|
||||
return driver_register(&driver->drv);
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(acpi_bus_register_driver);
|
||||
EXPORT_SYMBOL(__acpi_bus_register_driver);
|
||||
|
||||
/**
|
||||
* acpi_bus_unregister_driver - unregisters a driver with the ACPI bus
|
||||
|
@ -127,7 +127,6 @@ MODULE_DEVICE_TABLE(acpi, atlas_device_ids);
|
||||
static struct acpi_driver atlas_acpi_driver = {
|
||||
.name = ACPI_ATLAS_NAME,
|
||||
.class = ACPI_ATLAS_CLASS,
|
||||
.owner = THIS_MODULE,
|
||||
.ids = atlas_device_ids,
|
||||
.ops = {
|
||||
.add = atlas_acpi_button_add,
|
||||
|
@ -156,7 +156,6 @@ static void fjes_acpi_remove(struct acpi_device *device)
|
||||
static struct acpi_driver fjes_acpi_driver = {
|
||||
.name = DRV_NAME,
|
||||
.class = DRV_NAME,
|
||||
.owner = THIS_MODULE,
|
||||
.ids = fjes_acpi_ids,
|
||||
.ops = {
|
||||
.add = fjes_acpi_add,
|
||||
|
@ -523,7 +523,6 @@ static struct acpi_driver event_driver = {
|
||||
.notify = event_device_notify,
|
||||
.remove = event_device_remove,
|
||||
},
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
static int __init event_module_init(void)
|
||||
|
@ -1925,7 +1925,6 @@ MODULE_DEVICE_TABLE(acpi, asus_device_ids);
|
||||
static struct acpi_driver asus_acpi_driver = {
|
||||
.name = ASUS_LAPTOP_NAME,
|
||||
.class = ASUS_LAPTOP_CLASS,
|
||||
.owner = THIS_MODULE,
|
||||
.ids = asus_device_ids,
|
||||
.flags = ACPI_DRIVER_ALL_NOTIFY_EVENTS,
|
||||
.ops = {
|
||||
|
@ -434,7 +434,6 @@ static const struct acpi_device_id cmpc_accel_device_ids_v4[] = {
|
||||
};
|
||||
|
||||
static struct acpi_driver cmpc_accel_acpi_driver_v4 = {
|
||||
.owner = THIS_MODULE,
|
||||
.name = "cmpc_accel_v4",
|
||||
.class = "cmpc_accel_v4",
|
||||
.ids = cmpc_accel_device_ids_v4,
|
||||
@ -660,7 +659,6 @@ static const struct acpi_device_id cmpc_accel_device_ids[] = {
|
||||
};
|
||||
|
||||
static struct acpi_driver cmpc_accel_acpi_driver = {
|
||||
.owner = THIS_MODULE,
|
||||
.name = "cmpc_accel",
|
||||
.class = "cmpc_accel",
|
||||
.ids = cmpc_accel_device_ids,
|
||||
@ -754,7 +752,6 @@ static const struct acpi_device_id cmpc_tablet_device_ids[] = {
|
||||
};
|
||||
|
||||
static struct acpi_driver cmpc_tablet_acpi_driver = {
|
||||
.owner = THIS_MODULE,
|
||||
.name = "cmpc_tablet",
|
||||
.class = "cmpc_tablet",
|
||||
.ids = cmpc_tablet_device_ids,
|
||||
@ -996,7 +993,6 @@ static const struct acpi_device_id cmpc_ipml_device_ids[] = {
|
||||
};
|
||||
|
||||
static struct acpi_driver cmpc_ipml_acpi_driver = {
|
||||
.owner = THIS_MODULE,
|
||||
.name = "cmpc",
|
||||
.class = "cmpc",
|
||||
.ids = cmpc_ipml_device_ids,
|
||||
@ -1064,7 +1060,6 @@ static const struct acpi_device_id cmpc_keys_device_ids[] = {
|
||||
};
|
||||
|
||||
static struct acpi_driver cmpc_keys_acpi_driver = {
|
||||
.owner = THIS_MODULE,
|
||||
.name = "cmpc_keys",
|
||||
.class = "cmpc_keys",
|
||||
.ids = cmpc_keys_device_ids,
|
||||
|
@ -295,7 +295,6 @@ static struct acpi_driver rbtn_driver = {
|
||||
.remove = rbtn_remove,
|
||||
.notify = rbtn_notify,
|
||||
},
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
|
||||
|
@ -1463,7 +1463,6 @@ MODULE_DEVICE_TABLE(acpi, eeepc_device_ids);
|
||||
static struct acpi_driver eeepc_acpi_driver = {
|
||||
.name = EEEPC_LAPTOP_NAME,
|
||||
.class = EEEPC_ACPI_CLASS,
|
||||
.owner = THIS_MODULE,
|
||||
.ids = eeepc_device_ids,
|
||||
.flags = ACPI_DRIVER_ALL_NOTIFY_EVENTS,
|
||||
.ops = {
|
||||
|
@ -125,7 +125,6 @@ static const struct acpi_device_id irst_ids[] = {
|
||||
};
|
||||
|
||||
static struct acpi_driver irst_driver = {
|
||||
.owner = THIS_MODULE,
|
||||
.name = "intel_rapid_start",
|
||||
.class = "intel_rapid_start",
|
||||
.ids = irst_ids,
|
||||
|
@ -32,7 +32,6 @@ static const struct acpi_device_id smartconnect_ids[] = {
|
||||
MODULE_DEVICE_TABLE(acpi, smartconnect_ids);
|
||||
|
||||
static struct acpi_driver smartconnect_driver = {
|
||||
.owner = THIS_MODULE,
|
||||
.name = "intel_smart_connect",
|
||||
.class = "intel_smart_connect",
|
||||
.ids = smartconnect_ids,
|
||||
|
@ -790,7 +790,6 @@ static struct acpi_driver acpi_driver = {
|
||||
.remove = acpi_remove,
|
||||
.notify = acpi_notify,
|
||||
},
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
static int __init acpi_init(void)
|
||||
|
@ -3303,7 +3303,6 @@ static struct acpi_driver sony_nc_driver = {
|
||||
.name = SONY_NC_DRIVER_NAME,
|
||||
.class = SONY_NC_CLASS,
|
||||
.ids = sony_nc_device_ids,
|
||||
.owner = THIS_MODULE,
|
||||
.ops = {
|
||||
.add = sony_nc_add,
|
||||
.remove = sony_nc_remove,
|
||||
@ -4844,7 +4843,6 @@ static struct acpi_driver sony_pic_driver = {
|
||||
.name = SONY_PIC_DRIVER_NAME,
|
||||
.class = SONY_PIC_CLASS,
|
||||
.ids = sony_pic_device_ids,
|
||||
.owner = THIS_MODULE,
|
||||
.ops = {
|
||||
.add = sony_pic_add,
|
||||
.remove = sony_pic_remove,
|
||||
|
@ -3583,7 +3583,6 @@ static SIMPLE_DEV_PM_OPS(toshiba_acpi_pm,
|
||||
|
||||
static struct acpi_driver toshiba_acpi_driver = {
|
||||
.name = "Toshiba ACPI driver",
|
||||
.owner = THIS_MODULE,
|
||||
.ids = toshiba_device_ids,
|
||||
.flags = ACPI_DRIVER_ALL_NOTIFY_EVENTS,
|
||||
.ops = {
|
||||
|
@ -59,7 +59,6 @@ static struct acpi_driver toshiba_bt_rfkill_driver = {
|
||||
.remove = toshiba_bt_rfkill_remove,
|
||||
.notify = toshiba_bt_rfkill_notify,
|
||||
},
|
||||
.owner = THIS_MODULE,
|
||||
.drv.pm = &toshiba_bt_pm,
|
||||
};
|
||||
|
||||
|
@ -251,7 +251,6 @@ MODULE_DEVICE_TABLE(acpi, haps_device_ids);
|
||||
|
||||
static struct acpi_driver toshiba_haps_driver = {
|
||||
.name = "Toshiba HAPS",
|
||||
.owner = THIS_MODULE,
|
||||
.ids = haps_device_ids,
|
||||
.flags = ACPI_DRIVER_ALL_NOTIFY_EVENTS,
|
||||
.ops = {
|
||||
|
@ -110,7 +110,6 @@ static void wl_remove(struct acpi_device *device)
|
||||
|
||||
static struct acpi_driver wl_driver = {
|
||||
.name = "wireless-hotkey",
|
||||
.owner = THIS_MODULE,
|
||||
.ids = wl_ids,
|
||||
.ops = {
|
||||
.add = wl_add,
|
||||
|
@ -120,7 +120,6 @@ static struct acpi_driver ptp_vmw_acpi_driver = {
|
||||
.add = ptp_vmw_acpi_add,
|
||||
.remove = ptp_vmw_acpi_remove
|
||||
},
|
||||
.owner = THIS_MODULE
|
||||
};
|
||||
|
||||
static int __init ptp_vmw_init(void)
|
||||
|
@ -86,7 +86,6 @@ static const struct acpi_device_id vmgenid_ids[] = {
|
||||
static struct acpi_driver vmgenid_driver = {
|
||||
.name = "vmgenid",
|
||||
.ids = vmgenid_ids,
|
||||
.owner = THIS_MODULE,
|
||||
.ops = {
|
||||
.add = vmgenid_add,
|
||||
.notify = vmgenid_notify
|
||||
|
@ -170,7 +170,6 @@ struct acpi_driver {
|
||||
unsigned int flags;
|
||||
struct acpi_device_ops ops;
|
||||
struct device_driver drv;
|
||||
struct module *owner;
|
||||
};
|
||||
|
||||
/*
|
||||
@ -656,7 +655,12 @@ void acpi_scan_lock_release(void);
|
||||
void acpi_lock_hp_context(void);
|
||||
void acpi_unlock_hp_context(void);
|
||||
int acpi_scan_add_handler(struct acpi_scan_handler *handler);
|
||||
int acpi_bus_register_driver(struct acpi_driver *driver);
|
||||
/*
|
||||
* use a macro to avoid include chaining to get THIS_MODULE
|
||||
*/
|
||||
#define acpi_bus_register_driver(drv) \
|
||||
__acpi_bus_register_driver(drv, THIS_MODULE)
|
||||
int __acpi_bus_register_driver(struct acpi_driver *driver, struct module *owner);
|
||||
void acpi_bus_unregister_driver(struct acpi_driver *driver);
|
||||
int acpi_bus_scan(acpi_handle handle);
|
||||
void acpi_bus_trim(struct acpi_device *start);
|
||||
|
@ -573,9 +573,13 @@ acpi_status acpi_run_osc(acpi_handle handle, struct acpi_osc_context *context);
|
||||
#define OSC_SB_CPCV2_SUPPORT 0x00000040
|
||||
#define OSC_SB_PCLPI_SUPPORT 0x00000080
|
||||
#define OSC_SB_OSLPI_SUPPORT 0x00000100
|
||||
#define OSC_SB_FAST_THERMAL_SAMPLING_SUPPORT 0x00000200
|
||||
#define OSC_SB_OVER_16_PSTATES_SUPPORT 0x00000400
|
||||
#define OSC_SB_GED_SUPPORT 0x00000800
|
||||
#define OSC_SB_CPC_DIVERSE_HIGH_SUPPORT 0x00001000
|
||||
#define OSC_SB_GENERIC_INITIATOR_SUPPORT 0x00002000
|
||||
#define OSC_SB_IRQ_RESOURCE_SOURCE_SUPPORT 0x00002000
|
||||
#define OSC_SB_CPC_FLEXIBLE_ADR_SPACE 0x00004000
|
||||
#define OSC_SB_GENERIC_INITIATOR_SUPPORT 0x00020000
|
||||
#define OSC_SB_NATIVE_USB4_SUPPORT 0x00040000
|
||||
#define OSC_SB_PRM_SUPPORT 0x00200000
|
||||
#define OSC_SB_FFH_OPR_SUPPORT 0x00400000
|
||||
|
Loading…
Reference in New Issue
Block a user