Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ef07a5ab authored by Henrique de Moraes Holschuh's avatar Henrique de Moraes Holschuh
Browse files

thinkpad-acpi: clean up ACPI handles handling



1. Remove <handle>_path, as its only user was already removed in
   a previous commit

2. Move all handle initialization, as well as <handle>_parent and
   <handle>_paths to __init.* sections.  This reduces the driver's
   runtime footprint nicely.

Signed-off-by: default avatarHenrique de Moraes Holschuh <hmh@hmh.eng.br>
parent 2cbb5c8f
Loading
Loading
Loading
Loading
+8 −9
Original line number Original line Diff line number Diff line
@@ -516,9 +516,9 @@ static acpi_handle ec_handle;


#define TPACPI_HANDLE(object, parent, paths...)			\
#define TPACPI_HANDLE(object, parent, paths...)			\
	static acpi_handle  object##_handle;			\
	static acpi_handle  object##_handle;			\
	static acpi_handle *object##_parent = &parent##_handle;	\
	static const acpi_handle *object##_parent __initdata =	\
	static char        *object##_path;			\
						&parent##_handle; \
	static char        *object##_paths[] = { paths }
	static char *object##_paths[] __initdata = { paths }


TPACPI_HANDLE(ecrd, ec, "ECRD");	/* 570 */
TPACPI_HANDLE(ecrd, ec, "ECRD");	/* 570 */
TPACPI_HANDLE(ecwr, ec, "ECWR");	/* 570 */
TPACPI_HANDLE(ecwr, ec, "ECWR");	/* 570 */
@@ -673,11 +673,11 @@ static int issue_thinkpad_cmos_command(int cmos_cmd)


#define TPACPI_ACPIHANDLE_INIT(object) \
#define TPACPI_ACPIHANDLE_INIT(object) \
	drv_acpi_handle_init(#object, &object##_handle, *object##_parent, \
	drv_acpi_handle_init(#object, &object##_handle, *object##_parent, \
		object##_paths, ARRAY_SIZE(object##_paths), &object##_path)
		object##_paths, ARRAY_SIZE(object##_paths))


static void drv_acpi_handle_init(char *name,
static void __init drv_acpi_handle_init(const char *name,
			   acpi_handle *handle, acpi_handle parent,
			   acpi_handle *handle, const acpi_handle parent,
			   char **paths, int num_paths, char **path)
			   char **paths, const int num_paths)
{
{
	int i;
	int i;
	acpi_status status;
	acpi_status status;
@@ -688,10 +688,9 @@ static void drv_acpi_handle_init(char *name,
	for (i = 0; i < num_paths; i++) {
	for (i = 0; i < num_paths; i++) {
		status = acpi_get_handle(parent, paths[i], handle);
		status = acpi_get_handle(parent, paths[i], handle);
		if (ACPI_SUCCESS(status)) {
		if (ACPI_SUCCESS(status)) {
			*path = paths[i];
			dbg_printk(TPACPI_DBG_INIT,
			dbg_printk(TPACPI_DBG_INIT,
				   "Found ACPI handle %s for %s\n",
				   "Found ACPI handle %s for %s\n",
				   *path, name);
				   paths[i], name);
			return;
			return;
		}
		}
	}
	}