On Fri, Mar 28, 2014 at 2:20 PM, Paul A. Tessier <phern...@gmail.com> wrote:
> From: "Paul A. Tessier" <phern...@gmail.com>
>
> adds new sysfs ro attribute dev_match to wireless interfaces
>
> This will be need by libwacom to know which actual tablet is connected
> to the wireless kit
>
> Changes since v1:
>  - fixed bad attribute permission DEV_ATTR_RO -> DEV_ATTR_RO_PERM
>

FYI on above Changes.   Its kinda a pain to do the right way but
convention is not to put a patch's changelog in the commit message
since it loses its value the minute its commited to repo.  Instead,
you need to hand edit the patch file and add the text after the "---"
below and before the next "---" that starts the patch.  Git ignores
all that text when you do a "git am" to apply the patch and so readers
can see it but it will not go into commit.

Sometimes people will instead put the change log in that 0/5 message
if they are resending the whole series.

> Signed-off-by: Paul A. Tessier <phern...@gmail.com>
> ---
>  3.7/wacom_sys.c | 36 ++++++++++++++++++++++++++++++++----
>  1 file changed, 32 insertions(+), 4 deletions(-)
>
> diff --git a/3.7/wacom_sys.c b/3.7/wacom_sys.c
> index 6c28e78..071ad1e 100644
> --- a/3.7/wacom_sys.c
> +++ b/3.7/wacom_sys.c
> @@ -999,6 +999,18 @@ static DEVICE_ATTR(name##_timer, DEV_ATTR_RW_PERM,       
>           \
>  DEVICE_WIRELESS_TIMER_ATTR(sleep, SLEEP);
>  DEVICE_WIRELESS_TIMER_ATTR(powersave, POWERSAVE);
>
> +static ssize_t wacom_wireless_dev_match_show(struct device *dev,
> +                                            struct device_attribute *attr,
> +                                            char *buf)
> +{
> +       struct wacom *wacom = dev_get_drvdata(dev);
> +       return scnprintf(buf, PAGE_SIZE, "%04x:%04x\n", USB_VENDOR_ID_WACOM,
> +                        wacom->wacom_wac.pid);
> +}
> +
> +static DEVICE_ATTR(dev_match, DEV_ATTR_RO_PERM, 
> wacom_wireless_dev_match_show,
> +                  NULL);
> +
>  static struct attribute *wireless_attrs[] = {
>         &dev_attr_sleep_timer.attr,
>         &dev_attr_powersave_timer.attr,
> @@ -1246,8 +1258,12 @@ static void wacom_unregister_wireless(struct wacom 
> *wacom)
>  {
>         struct wacom_features *wacom_features = &wacom->wacom_wac.features;
>
> -       if (!(wacom_features->quirks & WACOM_QUIRK_WIRELESS_KIT) ||
> -           wacom_features->device_type != BTN_TOOL_PEN)
> +       if (!(wacom_features->quirks & WACOM_QUIRK_WIRELESS_KIT))
> +               return;
> +
> +       device_remove_file(&wacom->intf->dev, &dev_attr_dev_match);
> +
> +       if (wacom_features->device_type != BTN_TOOL_PEN)
>                 return;
>
>         sysfs_remove_group(&wacom->intf->dev.kobj,
> @@ -1260,8 +1276,18 @@ static int wacom_register_wireless(struct wacom *wacom)
>         struct wacom_features *wacom_features = &wacom_wac->features;
>         int error;
>
> -       if (!(wacom_features->quirks & WACOM_QUIRK_WIRELESS_KIT) ||
> -           wacom_features->device_type != BTN_TOOL_PEN)
> +       if (!(wacom_features->quirks & WACOM_QUIRK_WIRELESS_KIT))
> +               return 0;
> +
> +       error = device_create_file(&wacom->intf->dev, &dev_attr_dev_match);
> +       if (error) {
> +               dev_err(&wacom->intf->dev,
> +                       "cannot create 'dev_match' sysfs file: err %d\n",
> +                       error);
> +               return error;
> +       }
> +
> +       if(wacom_features->device_type != BTN_TOOL_PEN)
>                 return 0;
>
>         wacom->wireless.sleep_timer = WWK_SLEEP_DEFAULT;
> @@ -1375,6 +1401,7 @@ static void wacom_wireless_work(struct work_struct 
> *work)
>                 wacom_wac1->shared->touch_max = 
> wacom_wac1->features.touch_max;
>                 wacom_wac1->shared->type = wacom_wac1->features.type;
>                 wacom_wac1->features.quirks |= WACOM_QUIRK_WIRELESS_KIT;
> +               wacom_wac1->pid = wacom_wac->pid;
>                 error = wacom_register(wacom1);
>                 if (error)
>                         goto fail;
> @@ -1394,6 +1421,7 @@ static void wacom_wireless_work(struct work_struct 
> *work)
>                                 snprintf(wacom_wac2->name, WACOM_NAME_MAX,
>                                          "%s (WL) 
> Pad",wacom_wac2->features.name);
>                         wacom_wac2->features.quirks |= 
> WACOM_QUIRK_WIRELESS_KIT;
> +                       wacom_wac2->pid = wacom_wac->pid;
>                         error = wacom_register(wacom2);
>                         if (error)
>                                 goto fail;
> --
> 1.8.3.2
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Linuxwacom-devel mailing list
> Linuxwacom-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

------------------------------------------------------------------------------
Put Bad Developers to Shame
Dominate Development with Jenkins Continuous Integration
Continuously Automate Build, Test & Deployment 
Start a new project now. Try Jenkins in the cloud.
http://p.sf.net/sfu/13600_Cloudbees_APR
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to