From 5c9ed5bedf973ab7f4e428f7418d1e72ba3bcbe4 Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Wed, 11 Jan 2012 23:22:36 +0100 Subject: Staging: quickstart: Some style, whitespaces and typos fixes Signed-off-by: Szymon Janc Signed-off-by: Greg Kroah-Hartman --- drivers/staging/quickstart/quickstart.c | 80 ++++++++++++++++----------------- 1 file changed, 39 insertions(+), 41 deletions(-) (limited to 'drivers/staging/quickstart/quickstart.c') diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c index c60911c6ab3f..d03b89d2c9a7 100644 --- a/drivers/staging/quickstart/quickstart.c +++ b/drivers/staging/quickstart/quickstart.c @@ -4,7 +4,7 @@ * * Copyright (C) 2007-2010 Angelo Arrifano * - * Information gathered from disassebled dsdt and from here: + * Information gathered from disassembled dsdt and from here: * * * This program is free software; you can redistribute it and/or modify @@ -37,21 +37,23 @@ MODULE_AUTHOR("Angelo Arrifano"); MODULE_DESCRIPTION("ACPI Direct App Launch driver"); MODULE_LICENSE("GPL"); -#define QUICKSTART_ACPI_DEVICE_NAME "quickstart" -#define QUICKSTART_ACPI_CLASS "quickstart" -#define QUICKSTART_ACPI_HID "PNP0C32" +#define QUICKSTART_ACPI_DEVICE_NAME "quickstart" +#define QUICKSTART_ACPI_CLASS "quickstart" +#define QUICKSTART_ACPI_HID "PNP0C32" -#define QUICKSTART_PF_DRIVER_NAME "quickstart" -#define QUICKSTART_PF_DEVICE_NAME "quickstart" -#define QUICKSTART_PF_DEVATTR_NAME "pressed_button" +#define QUICKSTART_PF_DRIVER_NAME "quickstart" +#define QUICKSTART_PF_DEVICE_NAME "quickstart" +#define QUICKSTART_PF_DEVATTR_NAME "pressed_button" -#define QUICKSTART_MAX_BTN_NAME_LEN 16 +#define QUICKSTART_MAX_BTN_NAME_LEN 16 -/* There will be two events: - * 0x02 - A hot button was pressed while device was off/sleeping. - * 0x80 - A hot button was pressed while device was up. */ -#define QUICKSTART_EVENT_WAKE 0x02 -#define QUICKSTART_EVENT_RUNTIME 0x80 +/* + * There will be two events: + * 0x02 - A hot button was pressed while device was off/sleeping. + * 0x80 - A hot button was pressed while device was up. + */ +#define QUICKSTART_EVENT_WAKE 0x02 +#define QUICKSTART_EVENT_RUNTIME 0x80 struct quickstart_btn { char *name; @@ -64,14 +66,14 @@ static struct quickstart_driver_data { struct quickstart_btn *pressed; } quickstart_data; -/* ACPI driver Structs */ +/* ACPI driver structs */ struct quickstart_acpi { struct acpi_device *device; struct quickstart_btn *btn; }; static int quickstart_acpi_add(struct acpi_device *device); static int quickstart_acpi_remove(struct acpi_device *device, int type); -static const struct acpi_device_id quickstart_device_ids[] = { +static const struct acpi_device_id quickstart_device_ids[] = { {QUICKSTART_ACPI_HID, 0}, {"", 0}, }; @@ -111,12 +113,10 @@ static struct platform_driver pf_driver = { } }; -/* - * Platform driver functions - */ +/* Platform driver functions */ static ssize_t buttons_show(struct device *dev, - struct device_attribute *attr, - char *buf) + struct device_attribute *attr, + char *buf) { int count = 0; struct quickstart_btn *ptr = quickstart_data.btn_lst; @@ -137,8 +137,8 @@ static ssize_t buttons_show(struct device *dev, } static ssize_t pressed_button_show(struct device *dev, - struct device_attribute *attr, - char *buf) + struct device_attribute *attr, + char *buf) { return snprintf(buf, PAGE_SIZE, "%s\n", (quickstart_data.pressed ? @@ -147,8 +147,8 @@ static ssize_t pressed_button_show(struct device *dev, static ssize_t pressed_button_store(struct device *dev, - struct device_attribute *attr, - const char *buf, size_t count) + struct device_attribute *attr, + const char *buf, size_t count) { if (count < 2) return -EINVAL; @@ -160,7 +160,7 @@ static ssize_t pressed_button_store(struct device *dev, return count; } -/* Hotstart Helper functions */ +/* Helper functions */ static int quickstart_btnlst_add(struct quickstart_btn **data) { struct quickstart_btn **ptr = &quickstart_data.btn_lst; @@ -240,22 +240,26 @@ static void quickstart_acpi_ghid(struct quickstart_acpi *quickstart) if (!quickstart) return; - /* This returns a buffer telling the button usage ID, - * and triggers pending notify events (The ones before booting). */ - status = acpi_evaluate_object(quickstart->device->handle, - "GHID", NULL, &buffer); + /* + * This returns a buffer telling the button usage ID, + * and triggers pending notify events (The ones before booting). + */ + status = acpi_evaluate_object(quickstart->device->handle, "GHID", NULL, + &buffer); if (ACPI_FAILURE(status) || !buffer.pointer) { printk(KERN_ERR "quickstart: %s GHID method failed.\n", - quickstart->btn->name); + quickstart->btn->name); return; } if (buffer.length < 8) return; - /* <> */ + * order (least significant byte first).>> + */ usageid = *((uint32_t *)(buffer.pointer + (buffer.length - 8))); quickstart->btn->id = usageid; @@ -339,20 +343,17 @@ static int quickstart_acpi_remove(struct acpi_device *device, int type) quickstart = acpi_driver_data(device); - status = acpi_remove_notify_handler(device->handle, - ACPI_ALL_NOTIFY, - quickstart_acpi_notify); + status = acpi_remove_notify_handler(device->handle, ACPI_ALL_NOTIFY, + quickstart_acpi_notify); if (ACPI_FAILURE(status)) printk(KERN_ERR "quickstart: Error removing notify handler\n"); - kfree(quickstart); return 0; } /* Module functions */ - static void quickstart_exit(void) { input_unregister_device(quickstart_input); @@ -367,8 +368,6 @@ static void quickstart_exit(void) acpi_bus_unregister_driver(&quickstart_acpi_driver); quickstart_btnlst_free(); - - return; } static int __init quickstart_init_input(void) @@ -444,14 +443,13 @@ static int __init quickstart_init(void) if (ret) goto fail_dev_file2; - /* Input device */ ret = quickstart_init_input(); if (ret) goto fail_input; printk(KERN_INFO "quickstart: ACPI Direct App Launch ver %s\n", - QUICKSTART_VERSION); + QUICKSTART_VERSION); return 0; fail_input: -- cgit v1.2.3-59-g8ed1b From 7267d2610a7ed3f56a1f20f58b9ee0d944025b01 Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Wed, 11 Jan 2012 23:22:37 +0100 Subject: Staging: quickstart: Prefix remaining functions names with quickstart_ Signed-off-by: Szymon Janc Signed-off-by: Greg Kroah-Hartman --- drivers/staging/quickstart/quickstart.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'drivers/staging/quickstart/quickstart.c') diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c index d03b89d2c9a7..adce56be2b92 100644 --- a/drivers/staging/quickstart/quickstart.c +++ b/drivers/staging/quickstart/quickstart.c @@ -92,19 +92,19 @@ static struct acpi_driver quickstart_acpi_driver = { struct input_dev *quickstart_input; /* Platform driver structs */ -static ssize_t buttons_show(struct device *dev, +static ssize_t quickstart_buttons_show(struct device *dev, struct device_attribute *attr, char *buf); -static ssize_t pressed_button_show(struct device *dev, +static ssize_t quickstart_pressed_button_show(struct device *dev, struct device_attribute *attr, char *buf); -static ssize_t pressed_button_store(struct device *dev, +static ssize_t quickstart_pressed_button_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count); -static DEVICE_ATTR(pressed_button, 0666, pressed_button_show, - pressed_button_store); -static DEVICE_ATTR(buttons, 0444, buttons_show, NULL); +static DEVICE_ATTR(pressed_button, 0666, quickstart_pressed_button_show, + quickstart_pressed_button_store); +static DEVICE_ATTR(buttons, 0444, quickstart_buttons_show, NULL); static struct platform_device *pf_device; static struct platform_driver pf_driver = { .driver = { @@ -114,7 +114,7 @@ static struct platform_driver pf_driver = { }; /* Platform driver functions */ -static ssize_t buttons_show(struct device *dev, +static ssize_t quickstart_buttons_show(struct device *dev, struct device_attribute *attr, char *buf) { @@ -136,7 +136,7 @@ static ssize_t buttons_show(struct device *dev, return count; } -static ssize_t pressed_button_show(struct device *dev, +static ssize_t quickstart_pressed_button_show(struct device *dev, struct device_attribute *attr, char *buf) { @@ -146,7 +146,7 @@ static ssize_t pressed_button_show(struct device *dev, } -static ssize_t pressed_button_store(struct device *dev, +static ssize_t quickstart_pressed_button_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { -- cgit v1.2.3-59-g8ed1b From 605926ef5a8a7f9d778b974c96e90e8f8368a595 Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Wed, 11 Jan 2012 23:22:38 +0100 Subject: Staging: quickstart: Move some code to avoid forward declarations Signed-off-by: Szymon Janc Signed-off-by: Greg Kroah-Hartman --- drivers/staging/quickstart/quickstart.c | 75 ++++++++++++++------------------- 1 file changed, 31 insertions(+), 44 deletions(-) (limited to 'drivers/staging/quickstart/quickstart.c') diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c index adce56be2b92..6617761f32f5 100644 --- a/drivers/staging/quickstart/quickstart.c +++ b/drivers/staging/quickstart/quickstart.c @@ -61,58 +61,18 @@ struct quickstart_btn { struct quickstart_btn *next; }; -static struct quickstart_driver_data { - struct quickstart_btn *btn_lst; - struct quickstart_btn *pressed; -} quickstart_data; - -/* ACPI driver structs */ struct quickstart_acpi { struct acpi_device *device; struct quickstart_btn *btn; }; -static int quickstart_acpi_add(struct acpi_device *device); -static int quickstart_acpi_remove(struct acpi_device *device, int type); -static const struct acpi_device_id quickstart_device_ids[] = { - {QUICKSTART_ACPI_HID, 0}, - {"", 0}, -}; -static struct acpi_driver quickstart_acpi_driver = { - .name = "quickstart", - .class = QUICKSTART_ACPI_CLASS, - .ids = quickstart_device_ids, - .ops = { - .add = quickstart_acpi_add, - .remove = quickstart_acpi_remove, - }, -}; +static struct quickstart_driver_data { + struct quickstart_btn *btn_lst; + struct quickstart_btn *pressed; +} quickstart_data; -/* Input device structs */ struct input_dev *quickstart_input; -/* Platform driver structs */ -static ssize_t quickstart_buttons_show(struct device *dev, - struct device_attribute *attr, - char *buf); -static ssize_t quickstart_pressed_button_show(struct device *dev, - struct device_attribute *attr, - char *buf); -static ssize_t quickstart_pressed_button_store(struct device *dev, - struct device_attribute *attr, - const char *buf, - size_t count); -static DEVICE_ATTR(pressed_button, 0666, quickstart_pressed_button_show, - quickstart_pressed_button_store); -static DEVICE_ATTR(buttons, 0444, quickstart_buttons_show, NULL); -static struct platform_device *pf_device; -static struct platform_driver pf_driver = { - .driver = { - .name = QUICKSTART_PF_DRIVER_NAME, - .owner = THIS_MODULE, - } -}; - /* Platform driver functions */ static ssize_t quickstart_buttons_show(struct device *dev, struct device_attribute *attr, @@ -353,6 +313,33 @@ static int quickstart_acpi_remove(struct acpi_device *device, int type) return 0; } +/* Platform driver structs */ +static DEVICE_ATTR(pressed_button, 0666, quickstart_pressed_button_show, + quickstart_pressed_button_store); +static DEVICE_ATTR(buttons, 0444, quickstart_buttons_show, NULL); +static struct platform_device *pf_device; +static struct platform_driver pf_driver = { + .driver = { + .name = QUICKSTART_PF_DRIVER_NAME, + .owner = THIS_MODULE, + } +}; + +static const struct acpi_device_id quickstart_device_ids[] = { + {QUICKSTART_ACPI_HID, 0}, + {"", 0}, +}; + +static struct acpi_driver quickstart_acpi_driver = { + .name = "quickstart", + .class = QUICKSTART_ACPI_CLASS, + .ids = quickstart_device_ids, + .ops = { + .add = quickstart_acpi_add, + .remove = quickstart_acpi_remove, + }, +}; + /* Module functions */ static void quickstart_exit(void) { -- cgit v1.2.3-59-g8ed1b From 1692caa949728d866238020fe2214bd48f825d62 Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Wed, 11 Jan 2012 23:22:39 +0100 Subject: Staging: quickstart: Make quickstart_input static Signed-off-by: Szymon Janc Signed-off-by: Greg Kroah-Hartman --- drivers/staging/quickstart/quickstart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/staging/quickstart/quickstart.c') diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c index 6617761f32f5..7b0deb65cf40 100644 --- a/drivers/staging/quickstart/quickstart.c +++ b/drivers/staging/quickstart/quickstart.c @@ -71,7 +71,7 @@ static struct quickstart_driver_data { struct quickstart_btn *pressed; } quickstart_data; -struct input_dev *quickstart_input; +static struct input_dev *quickstart_input; /* Platform driver functions */ static ssize_t quickstart_buttons_show(struct device *dev, -- cgit v1.2.3-59-g8ed1b From 2ac16967b8de55ec1cfb596717b3a68b0d5b42f7 Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Wed, 11 Jan 2012 23:22:40 +0100 Subject: Staging: quickstart: Cleanup quickstart_acpi_ghid Also fix memory leak (buffer.pointer) when returned buffer of length less than 8. Signed-off-by: Szymon Janc Signed-off-by: Greg Kroah-Hartman --- drivers/staging/quickstart/quickstart.c | 38 ++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 12 deletions(-) (limited to 'drivers/staging/quickstart/quickstart.c') diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c index 7b0deb65cf40..3bae5e756598 100644 --- a/drivers/staging/quickstart/quickstart.c +++ b/drivers/staging/quickstart/quickstart.c @@ -191,14 +191,11 @@ static void quickstart_acpi_notify(acpi_handle handle, u32 event, void *data) return; } -static void quickstart_acpi_ghid(struct quickstart_acpi *quickstart) +static int quickstart_acpi_ghid(struct quickstart_acpi *quickstart) { acpi_status status; struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; - uint32_t usageid = 0; - - if (!quickstart) - return; + int ret = 0; /* * This returns a buffer telling the button usage ID, @@ -206,24 +203,41 @@ static void quickstart_acpi_ghid(struct quickstart_acpi *quickstart) */ status = acpi_evaluate_object(quickstart->device->handle, "GHID", NULL, &buffer); - if (ACPI_FAILURE(status) || !buffer.pointer) { + if (ACPI_FAILURE(status)) { printk(KERN_ERR "quickstart: %s GHID method failed.\n", quickstart->btn->name); - return; + return -EINVAL; } - if (buffer.length < 8) - return; - /* * <> */ - usageid = *((uint32_t *)(buffer.pointer + (buffer.length - 8))); - quickstart->btn->id = usageid; + switch (buffer.length) { + case 1: + quickstart->btn->id = *(uint8_t *)buffer.pointer; + break; + case 2: + quickstart->btn->id = *(uint16_t *)buffer.pointer; + break; + case 4: + quickstart->btn->id = *(uint32_t *)buffer.pointer; + break; + case 8: + quickstart->btn->id = *(uint64_t *)buffer.pointer; + break; + default: + printk(KERN_ERR "quickstart: %s GHID method returned buffer " + "of unexpected length %u\n", + quickstart->btn->name, buffer.length); + ret = -EINVAL; + break; + } kfree(buffer.pointer); + + return ret; } static int quickstart_acpi_config(struct quickstart_acpi *quickstart, char *bid) -- cgit v1.2.3-59-g8ed1b From 60955f15d93198ef33081e01f46223c7bd534f1e Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Wed, 11 Jan 2012 23:22:41 +0100 Subject: Staging: quickstart: Cleanup quickstart_acpi_remove Signed-off-by: Szymon Janc Signed-off-by: Greg Kroah-Hartman --- drivers/staging/quickstart/quickstart.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'drivers/staging/quickstart/quickstart.c') diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c index 3bae5e756598..de98e18f9b4c 100644 --- a/drivers/staging/quickstart/quickstart.c +++ b/drivers/staging/quickstart/quickstart.c @@ -309,13 +309,15 @@ fail_config: static int quickstart_acpi_remove(struct acpi_device *device, int type) { - acpi_status status = 0; - struct quickstart_acpi *quickstart = NULL; + acpi_status status; + struct quickstart_acpi *quickstart; - if (!device || !acpi_driver_data(device)) + if (!device) return -EINVAL; quickstart = acpi_driver_data(device); + if (!quickstart) + return -EINVAL; status = acpi_remove_notify_handler(device->handle, ACPI_ALL_NOTIFY, quickstart_acpi_notify); -- cgit v1.2.3-59-g8ed1b From f27a551968bb8780c8a5255c0ea6c3a2fcaf4a47 Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Wed, 11 Jan 2012 23:22:42 +0100 Subject: Staging: quickstart: Cleanup quickstart_acpi_add Signed-off-by: Szymon Janc Signed-off-by: Greg Kroah-Hartman --- drivers/staging/quickstart/quickstart.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'drivers/staging/quickstart/quickstart.c') diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c index de98e18f9b4c..97e62e9faf60 100644 --- a/drivers/staging/quickstart/quickstart.c +++ b/drivers/staging/quickstart/quickstart.c @@ -262,29 +262,29 @@ static int quickstart_acpi_config(struct quickstart_acpi *quickstart, char *bid) static int quickstart_acpi_add(struct acpi_device *device) { - int ret = 0; - acpi_status status = AE_OK; - struct quickstart_acpi *quickstart = NULL; + int ret; + acpi_status status; + struct quickstart_acpi *quickstart; if (!device) return -EINVAL; - quickstart = kzalloc(sizeof(struct quickstart_acpi), GFP_KERNEL); + quickstart = kzalloc(sizeof(*quickstart), GFP_KERNEL); if (!quickstart) return -ENOMEM; quickstart->device = device; + strcpy(acpi_device_name(device), QUICKSTART_ACPI_DEVICE_NAME); strcpy(acpi_device_class(device), QUICKSTART_ACPI_CLASS); device->driver_data = quickstart; /* Add button to list and initialize some stuff */ ret = quickstart_acpi_config(quickstart, acpi_device_bid(device)); - if (ret) + if (ret < 0) goto fail_config; - status = acpi_install_notify_handler(device->handle, - ACPI_ALL_NOTIFY, + status = acpi_install_notify_handler(device->handle, ACPI_ALL_NOTIFY, quickstart_acpi_notify, quickstart); if (ACPI_FAILURE(status)) { @@ -293,10 +293,16 @@ static int quickstart_acpi_add(struct acpi_device *device) goto fail_installnotify; } - quickstart_acpi_ghid(quickstart); + ret = quickstart_acpi_ghid(quickstart); + if (ret < 0) + goto fail_ghid; return 0; +fail_ghid: + acpi_remove_notify_handler(device->handle, ACPI_ALL_NOTIFY, + quickstart_acpi_notify); + fail_installnotify: quickstart_btnlst_del(quickstart->btn); -- cgit v1.2.3-59-g8ed1b From ffe1c0565c27324f6e23a5b47ae5ff873553c62f Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Wed, 11 Jan 2012 23:22:43 +0100 Subject: Staging: quickstart: Cleanup quickstart_acpi_config Signed-off-by: Szymon Janc Signed-off-by: Greg Kroah-Hartman --- drivers/staging/quickstart/quickstart.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'drivers/staging/quickstart/quickstart.c') diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c index 97e62e9faf60..b183d215336e 100644 --- a/drivers/staging/quickstart/quickstart.c +++ b/drivers/staging/quickstart/quickstart.c @@ -240,21 +240,24 @@ static int quickstart_acpi_ghid(struct quickstart_acpi *quickstart) return ret; } -static int quickstart_acpi_config(struct quickstart_acpi *quickstart, char *bid) +static int quickstart_acpi_config(struct quickstart_acpi *quickstart) { - int len = strlen(bid); + char *bid = acpi_device_bid(quickstart->device); + char *name; int ret; + name = kmalloc(strlen(bid) + 1, GFP_KERNEL); + if (!name) + return -ENOMEM; + /* Add button to list */ ret = quickstart_btnlst_add(&quickstart->btn); - if (ret) + if (ret < 0) { + kfree(name); return ret; - - quickstart->btn->name = kzalloc(len + 1, GFP_KERNEL); - if (!quickstart->btn->name) { - quickstart_btnlst_free(); - return -ENOMEM; } + + quickstart->btn->name = name; strcpy(quickstart->btn->name, bid); return 0; @@ -280,7 +283,7 @@ static int quickstart_acpi_add(struct acpi_device *device) device->driver_data = quickstart; /* Add button to list and initialize some stuff */ - ret = quickstart_acpi_config(quickstart, acpi_device_bid(device)); + ret = quickstart_acpi_config(quickstart); if (ret < 0) goto fail_config; -- cgit v1.2.3-59-g8ed1b From 55e403698642fc39e37c2a8d30aa6fa55c9ae116 Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Wed, 11 Jan 2012 23:22:44 +0100 Subject: Staging: quickstart: Use switch-case in quickstart_acpi_notify Signed-off-by: Szymon Janc Signed-off-by: Greg Kroah-Hartman --- drivers/staging/quickstart/quickstart.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'drivers/staging/quickstart/quickstart.c') diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c index b183d215336e..17e57c037e00 100644 --- a/drivers/staging/quickstart/quickstart.c +++ b/drivers/staging/quickstart/quickstart.c @@ -180,15 +180,19 @@ static void quickstart_acpi_notify(acpi_handle handle, u32 event, void *data) if (!quickstart) return; - if (event == QUICKSTART_EVENT_WAKE) + switch (event) { + case QUICKSTART_EVENT_WAKE: quickstart_data.pressed = quickstart->btn; - else if (event == QUICKSTART_EVENT_RUNTIME) { + break; + case QUICKSTART_EVENT_RUNTIME: input_report_key(quickstart_input, quickstart->btn->id, 1); input_sync(quickstart_input); input_report_key(quickstart_input, quickstart->btn->id, 0); input_sync(quickstart_input); + break; + default: + break; } - return; } static int quickstart_acpi_ghid(struct quickstart_acpi *quickstart) -- cgit v1.2.3-59-g8ed1b From 4a0908322a916d15269f2ced8f548ebee9aebd28 Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Wed, 11 Jan 2012 23:22:45 +0100 Subject: Staging: quickstart: Remove unused defines Signed-off-by: Szymon Janc Signed-off-by: Greg Kroah-Hartman --- drivers/staging/quickstart/quickstart.c | 3 --- 1 file changed, 3 deletions(-) (limited to 'drivers/staging/quickstart/quickstart.c') diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c index 17e57c037e00..9d827f2850df 100644 --- a/drivers/staging/quickstart/quickstart.c +++ b/drivers/staging/quickstart/quickstart.c @@ -43,9 +43,6 @@ MODULE_LICENSE("GPL"); #define QUICKSTART_PF_DRIVER_NAME "quickstart" #define QUICKSTART_PF_DEVICE_NAME "quickstart" -#define QUICKSTART_PF_DEVATTR_NAME "pressed_button" - -#define QUICKSTART_MAX_BTN_NAME_LEN 16 /* * There will be two events: -- cgit v1.2.3-59-g8ed1b From 3991eae9437b14454881b64ba5627c3aef9a1ba5 Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Wed, 11 Jan 2012 23:22:46 +0100 Subject: Staging: quickstart: Get rid of quickstart_data struct Signed-off-by: Szymon Janc Signed-off-by: Greg Kroah-Hartman --- drivers/staging/quickstart/quickstart.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) (limited to 'drivers/staging/quickstart/quickstart.c') diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c index 9d827f2850df..03cb6752e062 100644 --- a/drivers/staging/quickstart/quickstart.c +++ b/drivers/staging/quickstart/quickstart.c @@ -63,10 +63,8 @@ struct quickstart_acpi { struct quickstart_btn *btn; }; -static struct quickstart_driver_data { - struct quickstart_btn *btn_lst; - struct quickstart_btn *pressed; -} quickstart_data; +static struct quickstart_btn *btn_list; +static struct quickstart_btn *pressed; static struct input_dev *quickstart_input; @@ -76,7 +74,7 @@ static ssize_t quickstart_buttons_show(struct device *dev, char *buf) { int count = 0; - struct quickstart_btn *ptr = quickstart_data.btn_lst; + struct quickstart_btn *ptr = btn_list; if (!ptr) return snprintf(buf, PAGE_SIZE, "none"); @@ -98,8 +96,7 @@ static ssize_t quickstart_pressed_button_show(struct device *dev, char *buf) { return snprintf(buf, PAGE_SIZE, "%s\n", - (quickstart_data.pressed ? - quickstart_data.pressed->name : "none")); + (pressed ? pressed->name : "none")); } @@ -113,14 +110,14 @@ static ssize_t quickstart_pressed_button_store(struct device *dev, if (strncasecmp(buf, "none", 4) != 0) return -EINVAL; - quickstart_data.pressed = NULL; + pressed = NULL; return count; } /* Helper functions */ static int quickstart_btnlst_add(struct quickstart_btn **data) { - struct quickstart_btn **ptr = &quickstart_data.btn_lst; + struct quickstart_btn **ptr = &btn_list; while (*ptr) ptr = &((*ptr)->next); @@ -137,7 +134,7 @@ static int quickstart_btnlst_add(struct quickstart_btn **data) static void quickstart_btnlst_del(struct quickstart_btn *data) { - struct quickstart_btn **ptr = &quickstart_data.btn_lst; + struct quickstart_btn **ptr = &btn_list; if (!data) return; @@ -156,7 +153,7 @@ static void quickstart_btnlst_del(struct quickstart_btn *data) static void quickstart_btnlst_free(void) { - struct quickstart_btn *ptr = quickstart_data.btn_lst; + struct quickstart_btn *ptr = btn_list; struct quickstart_btn *lptr = NULL; while (ptr) { @@ -179,7 +176,7 @@ static void quickstart_acpi_notify(acpi_handle handle, u32 event, void *data) switch (event) { case QUICKSTART_EVENT_WAKE: - quickstart_data.pressed = quickstart->btn; + pressed = quickstart->btn; break; case QUICKSTART_EVENT_RUNTIME: input_report_key(quickstart_input, quickstart->btn->id, 1); @@ -385,7 +382,7 @@ static void quickstart_exit(void) static int __init quickstart_init_input(void) { - struct quickstart_btn **ptr = &quickstart_data.btn_lst; + struct quickstart_btn **ptr = &btn_list; int count; int ret; @@ -427,7 +424,7 @@ static int __init quickstart_init(void) return ret; /* If existing bus with no devices */ - if (!quickstart_data.btn_lst) { + if (!btn_list) { ret = -ENODEV; goto fail_pfdrv_reg; } -- cgit v1.2.3-59-g8ed1b From 505d2ad2277950ee67e8ed4a12a349f18925c0f4 Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Wed, 11 Jan 2012 23:22:47 +0100 Subject: Staging: quickstart: Use list.h API for buttons list Signed-off-by: Szymon Janc Signed-off-by: Greg Kroah-Hartman --- drivers/staging/quickstart/quickstart.c | 95 +++++++++++++-------------------- 1 file changed, 36 insertions(+), 59 deletions(-) (limited to 'drivers/staging/quickstart/quickstart.c') diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c index 03cb6752e062..dbed79fefb8e 100644 --- a/drivers/staging/quickstart/quickstart.c +++ b/drivers/staging/quickstart/quickstart.c @@ -55,7 +55,7 @@ MODULE_LICENSE("GPL"); struct quickstart_btn { char *name; unsigned int id; - struct quickstart_btn *next; + struct list_head list; }; struct quickstart_acpi { @@ -63,7 +63,7 @@ struct quickstart_acpi { struct quickstart_btn *btn; }; -static struct quickstart_btn *btn_list; +static LIST_HEAD(buttons); static struct quickstart_btn *pressed; static struct input_dev *quickstart_input; @@ -74,18 +74,19 @@ static ssize_t quickstart_buttons_show(struct device *dev, char *buf) { int count = 0; - struct quickstart_btn *ptr = btn_list; + struct quickstart_btn *b; - if (!ptr) + if (list_empty(&buttons)) return snprintf(buf, PAGE_SIZE, "none"); - while (ptr && (count < PAGE_SIZE)) { - if (ptr->name) { - count += snprintf(buf + count, - PAGE_SIZE - count, - "%d\t%s\n", ptr->id, ptr->name); + list_for_each_entry(b, &buttons, list) { + count += snprintf(buf + count, PAGE_SIZE - count, "%d\t%s\n", + b->id, b->name); + + if (count >= PAGE_SIZE) { + count = PAGE_SIZE; + break; } - ptr = ptr->next; } return count; @@ -115,55 +116,35 @@ static ssize_t quickstart_pressed_button_store(struct device *dev, } /* Helper functions */ -static int quickstart_btnlst_add(struct quickstart_btn **data) +static struct quickstart_btn *quickstart_buttons_add(void) { - struct quickstart_btn **ptr = &btn_list; + struct quickstart_btn *b; - while (*ptr) - ptr = &((*ptr)->next); + b = kzalloc(sizeof(*b), GFP_KERNEL); + if (!b) + return NULL; - *ptr = kzalloc(sizeof(struct quickstart_btn), GFP_KERNEL); - if (!*ptr) { - *data = NULL; - return -ENOMEM; - } - *data = *ptr; + list_add_tail(&b->list, &buttons); - return 0; + return b; } -static void quickstart_btnlst_del(struct quickstart_btn *data) +static void quickstart_button_del(struct quickstart_btn *data) { - struct quickstart_btn **ptr = &btn_list; - if (!data) return; - while (*ptr) { - if (*ptr == data) { - *ptr = (*ptr)->next; - kfree(data); - return; - } - ptr = &((*ptr)->next); - } - - return; + list_del(&data->list); + kfree(data->name); + kfree(data); } -static void quickstart_btnlst_free(void) +static void quickstart_buttons_free(void) { - struct quickstart_btn *ptr = btn_list; - struct quickstart_btn *lptr = NULL; - - while (ptr) { - lptr = ptr; - ptr = ptr->next; - kfree(lptr->name); - kfree(lptr); - } + struct quickstart_btn *b, *n; - return; + list_for_each_entry_safe(b, n, &buttons, list) + quickstart_button_del(b); } /* ACPI Driver functions */ @@ -242,17 +223,16 @@ static int quickstart_acpi_config(struct quickstart_acpi *quickstart) { char *bid = acpi_device_bid(quickstart->device); char *name; - int ret; name = kmalloc(strlen(bid) + 1, GFP_KERNEL); if (!name) return -ENOMEM; - /* Add button to list */ - ret = quickstart_btnlst_add(&quickstart->btn); - if (ret < 0) { + /* Add new button to list */ + quickstart->btn = quickstart_buttons_add(); + if (!quickstart->btn) { kfree(name); - return ret; + return -ENOMEM; } quickstart->btn->name = name; @@ -305,7 +285,7 @@ fail_ghid: quickstart_acpi_notify); fail_installnotify: - quickstart_btnlst_del(quickstart->btn); + quickstart_button_del(quickstart->btn); fail_config: @@ -377,13 +357,12 @@ static void quickstart_exit(void) acpi_bus_unregister_driver(&quickstart_acpi_driver); - quickstart_btnlst_free(); + quickstart_buttons_free(); } static int __init quickstart_init_input(void) { - struct quickstart_btn **ptr = &btn_list; - int count; + struct quickstart_btn *b; int ret; quickstart_input = input_allocate_device(); @@ -394,11 +373,9 @@ static int __init quickstart_init_input(void) quickstart_input->name = "Quickstart ACPI Buttons"; quickstart_input->id.bustype = BUS_HOST; - while (*ptr) { - count++; + list_for_each_entry(b, &buttons, list) { set_bit(EV_KEY, quickstart_input->evbit); - set_bit((*ptr)->id, quickstart_input->keybit); - ptr = &((*ptr)->next); + set_bit(b->id, quickstart_input->keybit); } ret = input_register_device(quickstart_input); @@ -424,7 +401,7 @@ static int __init quickstart_init(void) return ret; /* If existing bus with no devices */ - if (!btn_list) { + if (list_empty(&buttons)) { ret = -ENODEV; goto fail_pfdrv_reg; } -- cgit v1.2.3-59-g8ed1b From 21c1ddf31415f5db34975760e847bf6033b4f9db Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Wed, 11 Jan 2012 23:22:48 +0100 Subject: Staging: quickstart: Use %u for printing button id Button id is of unsigned int type. Signed-off-by: Szymon Janc Signed-off-by: Greg Kroah-Hartman --- drivers/staging/quickstart/quickstart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/staging/quickstart/quickstart.c') diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c index dbed79fefb8e..9968a05eb2c1 100644 --- a/drivers/staging/quickstart/quickstart.c +++ b/drivers/staging/quickstart/quickstart.c @@ -80,7 +80,7 @@ static ssize_t quickstart_buttons_show(struct device *dev, return snprintf(buf, PAGE_SIZE, "none"); list_for_each_entry(b, &buttons, list) { - count += snprintf(buf + count, PAGE_SIZE - count, "%d\t%s\n", + count += snprintf(buf + count, PAGE_SIZE - count, "%u\t%s\n", b->id, b->name); if (count >= PAGE_SIZE) { -- cgit v1.2.3-59-g8ed1b From 3c92e38dc4d803a7f90a08277a9d59f920963e0c Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Wed, 11 Jan 2012 23:22:49 +0100 Subject: Staging: quickstart: Rename quickstart_btn to quickstart_button Signed-off-by: Szymon Janc Signed-off-by: Greg Kroah-Hartman --- drivers/staging/quickstart/quickstart.c | 46 ++++++++++++++++----------------- 1 file changed, 23 insertions(+), 23 deletions(-) (limited to 'drivers/staging/quickstart/quickstart.c') diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c index 9968a05eb2c1..a67b03a59955 100644 --- a/drivers/staging/quickstart/quickstart.c +++ b/drivers/staging/quickstart/quickstart.c @@ -52,7 +52,7 @@ MODULE_LICENSE("GPL"); #define QUICKSTART_EVENT_WAKE 0x02 #define QUICKSTART_EVENT_RUNTIME 0x80 -struct quickstart_btn { +struct quickstart_button { char *name; unsigned int id; struct list_head list; @@ -60,11 +60,11 @@ struct quickstart_btn { struct quickstart_acpi { struct acpi_device *device; - struct quickstart_btn *btn; + struct quickstart_button *button; }; static LIST_HEAD(buttons); -static struct quickstart_btn *pressed; +static struct quickstart_button *pressed; static struct input_dev *quickstart_input; @@ -74,7 +74,7 @@ static ssize_t quickstart_buttons_show(struct device *dev, char *buf) { int count = 0; - struct quickstart_btn *b; + struct quickstart_button *b; if (list_empty(&buttons)) return snprintf(buf, PAGE_SIZE, "none"); @@ -116,9 +116,9 @@ static ssize_t quickstart_pressed_button_store(struct device *dev, } /* Helper functions */ -static struct quickstart_btn *quickstart_buttons_add(void) +static struct quickstart_button *quickstart_buttons_add(void) { - struct quickstart_btn *b; + struct quickstart_button *b; b = kzalloc(sizeof(*b), GFP_KERNEL); if (!b) @@ -129,7 +129,7 @@ static struct quickstart_btn *quickstart_buttons_add(void) return b; } -static void quickstart_button_del(struct quickstart_btn *data) +static void quickstart_button_del(struct quickstart_button *data) { if (!data) return; @@ -141,7 +141,7 @@ static void quickstart_button_del(struct quickstart_btn *data) static void quickstart_buttons_free(void) { - struct quickstart_btn *b, *n; + struct quickstart_button *b, *n; list_for_each_entry_safe(b, n, &buttons, list) quickstart_button_del(b); @@ -157,12 +157,12 @@ static void quickstart_acpi_notify(acpi_handle handle, u32 event, void *data) switch (event) { case QUICKSTART_EVENT_WAKE: - pressed = quickstart->btn; + pressed = quickstart->button; break; case QUICKSTART_EVENT_RUNTIME: - input_report_key(quickstart_input, quickstart->btn->id, 1); + input_report_key(quickstart_input, quickstart->button->id, 1); input_sync(quickstart_input); - input_report_key(quickstart_input, quickstart->btn->id, 0); + input_report_key(quickstart_input, quickstart->button->id, 0); input_sync(quickstart_input); break; default: @@ -184,7 +184,7 @@ static int quickstart_acpi_ghid(struct quickstart_acpi *quickstart) &buffer); if (ACPI_FAILURE(status)) { printk(KERN_ERR "quickstart: %s GHID method failed.\n", - quickstart->btn->name); + quickstart->button->name); return -EINVAL; } @@ -195,21 +195,21 @@ static int quickstart_acpi_ghid(struct quickstart_acpi *quickstart) */ switch (buffer.length) { case 1: - quickstart->btn->id = *(uint8_t *)buffer.pointer; + quickstart->button->id = *(uint8_t *)buffer.pointer; break; case 2: - quickstart->btn->id = *(uint16_t *)buffer.pointer; + quickstart->button->id = *(uint16_t *)buffer.pointer; break; case 4: - quickstart->btn->id = *(uint32_t *)buffer.pointer; + quickstart->button->id = *(uint32_t *)buffer.pointer; break; case 8: - quickstart->btn->id = *(uint64_t *)buffer.pointer; + quickstart->button->id = *(uint64_t *)buffer.pointer; break; default: printk(KERN_ERR "quickstart: %s GHID method returned buffer " "of unexpected length %u\n", - quickstart->btn->name, buffer.length); + quickstart->button->name, buffer.length); ret = -EINVAL; break; } @@ -229,14 +229,14 @@ static int quickstart_acpi_config(struct quickstart_acpi *quickstart) return -ENOMEM; /* Add new button to list */ - quickstart->btn = quickstart_buttons_add(); - if (!quickstart->btn) { + quickstart->button = quickstart_buttons_add(); + if (!quickstart->button) { kfree(name); return -ENOMEM; } - quickstart->btn->name = name; - strcpy(quickstart->btn->name, bid); + quickstart->button->name = name; + strcpy(quickstart->button->name, bid); return 0; } @@ -285,7 +285,7 @@ fail_ghid: quickstart_acpi_notify); fail_installnotify: - quickstart_button_del(quickstart->btn); + quickstart_button_del(quickstart->button); fail_config: @@ -362,7 +362,7 @@ static void quickstart_exit(void) static int __init quickstart_init_input(void) { - struct quickstart_btn *b; + struct quickstart_button *b; int ret; quickstart_input = input_allocate_device(); -- cgit v1.2.3-59-g8ed1b From 74eabe4ca2f6cf0e7e60e73017206e963f6b170a Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Sun, 22 Jan 2012 19:50:13 +0100 Subject: Staging: quickstart: Use pr_err and pr_info for logs Signed-off-by: Szymon Janc Signed-off-by: Greg Kroah-Hartman --- drivers/staging/quickstart/quickstart.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'drivers/staging/quickstart/quickstart.c') diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c index a67b03a59955..88f8ff38662d 100644 --- a/drivers/staging/quickstart/quickstart.c +++ b/drivers/staging/quickstart/quickstart.c @@ -25,6 +25,8 @@ #define QUICKSTART_VERSION "1.03" +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + #include #include #include @@ -166,6 +168,7 @@ static void quickstart_acpi_notify(acpi_handle handle, u32 event, void *data) input_sync(quickstart_input); break; default: + pr_err("Unexpected ACPI event notify (%u)\n", event); break; } } @@ -183,8 +186,7 @@ static int quickstart_acpi_ghid(struct quickstart_acpi *quickstart) status = acpi_evaluate_object(quickstart->device->handle, "GHID", NULL, &buffer); if (ACPI_FAILURE(status)) { - printk(KERN_ERR "quickstart: %s GHID method failed.\n", - quickstart->button->name); + pr_err("%s GHID method failed\n", quickstart->button->name); return -EINVAL; } @@ -207,8 +209,7 @@ static int quickstart_acpi_ghid(struct quickstart_acpi *quickstart) quickstart->button->id = *(uint64_t *)buffer.pointer; break; default: - printk(KERN_ERR "quickstart: %s GHID method returned buffer " - "of unexpected length %u\n", + pr_err("%s GHID method returned buffer of unexpected length %u\n", quickstart->button->name, buffer.length); ret = -EINVAL; break; @@ -269,7 +270,7 @@ static int quickstart_acpi_add(struct acpi_device *device) quickstart_acpi_notify, quickstart); if (ACPI_FAILURE(status)) { - printk(KERN_ERR "quickstart: Notify handler install error\n"); + pr_err("Notify handler install error\n"); ret = -ENODEV; goto fail_installnotify; } @@ -309,7 +310,7 @@ static int quickstart_acpi_remove(struct acpi_device *device, int type) status = acpi_remove_notify_handler(device->handle, ACPI_ALL_NOTIFY, quickstart_acpi_notify); if (ACPI_FAILURE(status)) - printk(KERN_ERR "quickstart: Error removing notify handler\n"); + pr_err("Error removing notify handler\n"); kfree(quickstart); @@ -435,8 +436,7 @@ static int __init quickstart_init(void) if (ret) goto fail_input; - printk(KERN_INFO "quickstart: ACPI Direct App Launch ver %s\n", - QUICKSTART_VERSION); + pr_info("ACPI Direct App Launch ver %s\n", QUICKSTART_VERSION); return 0; fail_input: -- cgit v1.2.3-59-g8ed1b From e66912af2c205518b638321d466f6dcddba70e3a Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Fri, 10 Feb 2012 21:05:42 +0100 Subject: Staging: quickstart: Use scnprintf in quickstart_pressed_button_show Use scnprintf instead of snprintf in quickstart_pressed_button_show as suggested in Documentation/filesystems/sysfs.txt. Signed-off-by: Szymon Janc Signed-off-by: Greg Kroah-Hartman --- drivers/staging/quickstart/quickstart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/staging/quickstart/quickstart.c') diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c index 88f8ff38662d..f6ec8f23e86d 100644 --- a/drivers/staging/quickstart/quickstart.c +++ b/drivers/staging/quickstart/quickstart.c @@ -98,7 +98,7 @@ static ssize_t quickstart_pressed_button_show(struct device *dev, struct device_attribute *attr, char *buf) { - return snprintf(buf, PAGE_SIZE, "%s\n", + return scnprintf(buf, PAGE_SIZE, "%s\n", (pressed ? pressed->name : "none")); } -- cgit v1.2.3-59-g8ed1b From af5728e08afab1baeb97cc881e2d6158c69bae19 Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Fri, 10 Feb 2012 21:05:44 +0100 Subject: Staging: quickstart: Bump driver version to 1.04 Signed-off-by: Szymon Janc Signed-off-by: Greg Kroah-Hartman --- drivers/staging/quickstart/quickstart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/staging/quickstart/quickstart.c') diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c index f6ec8f23e86d..352b7ecd6cbb 100644 --- a/drivers/staging/quickstart/quickstart.c +++ b/drivers/staging/quickstart/quickstart.c @@ -23,7 +23,7 @@ * */ -#define QUICKSTART_VERSION "1.03" +#define QUICKSTART_VERSION "1.04" #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -- cgit v1.2.3-59-g8ed1b From 5f01f7f301db567a7a2b99d012db1c408ce0e9de Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Fri, 10 Feb 2012 21:05:43 +0100 Subject: Staging: quickstart: Fix compilation warning on 64 bit arch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit acpi_size is u32 or u64 depending on architecture. Cast it to unsigned long and use %lu for printing. This fix following build warning: drivers/staging/quickstart/quickstart.c: In function ‘quickstart_acpi_ghid’: drivers/staging/quickstart/quickstart.c:212:5: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 3 has type ‘acpi_size’ [-Wformat] Signed-off-by: Szymon Janc Signed-off-by: Greg Kroah-Hartman --- drivers/staging/quickstart/quickstart.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'drivers/staging/quickstart/quickstart.c') diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c index 352b7ecd6cbb..cac320738142 100644 --- a/drivers/staging/quickstart/quickstart.c +++ b/drivers/staging/quickstart/quickstart.c @@ -209,8 +209,9 @@ static int quickstart_acpi_ghid(struct quickstart_acpi *quickstart) quickstart->button->id = *(uint64_t *)buffer.pointer; break; default: - pr_err("%s GHID method returned buffer of unexpected length %u\n", - quickstart->button->name, buffer.length); + pr_err("%s GHID method returned buffer of unexpected length %lu\n", + quickstart->button->name, + (unsigned long)buffer.length); ret = -EINVAL; break; } -- cgit v1.2.3-59-g8ed1b