On Thu, 2015-08-06 at 13:16 +0800, Chen Yu wrote:
> Since Surface Pro 3 does not follow the specs of "Windows ACPI Design
> Guide for SoC Platform", code in drivers/input/misc/soc_array.c can
> not detect these buttons on it.

style trivia:

> diff --git a/drivers/platform/x86/surfacepro3_button.c 
> b/drivers/platform/x86/surfacepro3_button.c
[]
> +static void surface_button_notify(struct acpi_device *device, u32 event)
> +{
[]
> +     switch (event) {
> +     case SURFACE_BUTTON_NOTIFY_PRESS_POWER:
> +             pressed = true;
> +             /*go through*/

/* fall through */ is more common

> +     case SURFACE_BUTTON_NOTIFY_PRESS_HOME:
> +             pressed = true;
> +     case SURFACE_BUTTON_NOTIFY_RELEASE_HOME:
> +             key_code = KEY_LEFTMETA;
> +             break;

It may be better to add a comment about the style or
maybe add a macro like

#define HANDLE_SURFACE_BUTTON_NOTIFY(type, code)        \
        case SURFACE_BUTTON_NOTIFY_PRESS_##type:        \
                pressed = true; /* and fall-through */  \
        case SURFACE_BUTTON_NOTIFY_RELEASE_##type:      \
                key_code = code;                        \
                break;

> +     case SURFACE_BUTTON_NOTIFY_PRESS_VOLUME_UP:
> +             pressed = true;
> +     case SURFACE_BUTTON_NOTIFY_RELEASE_VOLUME_UP:
> +             key_code = KEY_VOLUMEUP;
> +             break;

> +     case SURFACE_BUTTON_NOTIFY_PRESS_VOLUME_DOWN:
> +             pressed = true;
> +     case SURFACE_BUTTON_NOTIFY_RELEASE_VOLUME_DOWN:
> +             key_code = KEY_VOLUMEDOWN;
> +             break;
> +     default:
> +             dev_info(&device->dev,
> +                               "Unsupported event [0x%x]\n", event);

It might be useful to ratelimit this


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to