[Linuxwacom-devel] [PATCH 3/3] HID: wacom: Add battery/ac reporting for Intuos4 WL

2012-03-19 Thread Przemo Firszt
This patch adds battery/ac reporting for Intuos4 WL. It uses existing
sysfs code, but the device reports battery capacity in more fine-grained way,
so there has to be a separate lookup table (called batcap_i4).

Signed-off-by: Przemo Firszt 
Reviewed-by: Chris Bagwell 
---
 drivers/hid/hid-wacom.c |   10 ++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/drivers/hid/hid-wacom.c b/drivers/hid/hid-wacom.c
index 9c15494..43a96d1 100644
--- a/drivers/hid/hid-wacom.c
+++ b/drivers/hid/hid-wacom.c
@@ -51,6 +51,8 @@ struct wacom_data {
 /*percent of battery capacity for Graphire
   8th value means AC online and show 100% capacity */
 static unsigned short batcap_gr[8] = { 1, 15, 25, 35, 50, 70, 100, 100 };
+/*percent of battery capacity for Intuos4 WL, AC has a separate bit*/
+static unsigned short batcap_i4[8] = { 1, 15, 30, 45, 60, 70, 85, 100 };
 
 static enum power_supply_property wacom_battery_props[] = {
POWER_SUPPLY_PROP_PRESENT,
@@ -449,6 +451,7 @@ static int wacom_raw_event(struct hid_device *hdev, struct 
hid_report *report,
struct input_dev *input;
unsigned char *data = (unsigned char *) raw_data;
int i;
+   __u8 power_raw;
 
if (!(hdev->claimed & HID_CLAIMED_INPUT))
return 0;
@@ -476,6 +479,13 @@ static int wacom_raw_event(struct hid_device *hdev, struct 
hid_report *report,
wacom_i4_parse_report(hdev, wdata, input, data + i);
i += 10;
wacom_i4_parse_report(hdev, wdata, input, data + i);
+   power_raw = data[i+10];
+   if (power_raw != wdata->power_raw) {
+   wdata->power_raw = power_raw;
+   wdata->battery_capacity = batcap_i4[power_raw & 
0x07];
+   wdata->ps_connected = power_raw & 0x08;
+   }
+
break;
default:
hid_err(hdev, "Unknown report: %d,%d size:%d\n",
-- 
1.7.6.4


--
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
___
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel


Re: [Linuxwacom-devel] [PATCH 3/3] HID: wacom: Add battery/ac reporting for Intuos4 WL

2012-03-19 Thread Chris Bagwell
Reviewed-by: Chris Bagwell 

On Mon, Mar 19, 2012 at 10:16 AM, Przemo Firszt  wrote:
> This patch adds battery/ac reporting for Intuos4 WL. It uses existing
> sysfs code, but the device reports battery capacity in more fine-grained way,
> so there has to be a separate lookup table (called batcap_i4).
>
> Signed-off-by: Przemo Firszt 
> ---
>  drivers/hid/hid-wacom.c |   10 ++
>  1 files changed, 10 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/hid/hid-wacom.c b/drivers/hid/hid-wacom.c
> index 9c15494..43a96d1 100644
> --- a/drivers/hid/hid-wacom.c
> +++ b/drivers/hid/hid-wacom.c
> @@ -51,6 +51,8 @@ struct wacom_data {
>  /*percent of battery capacity for Graphire
>   8th value means AC online and show 100% capacity */
>  static unsigned short batcap_gr[8] = { 1, 15, 25, 35, 50, 70, 100, 100 };
> +/*percent of battery capacity for Intuos4 WL, AC has a separate bit*/
> +static unsigned short batcap_i4[8] = { 1, 15, 30, 45, 60, 70, 85, 100 };
>
>  static enum power_supply_property wacom_battery_props[] = {
>        POWER_SUPPLY_PROP_PRESENT,
> @@ -449,6 +451,7 @@ static int wacom_raw_event(struct hid_device *hdev, 
> struct hid_report *report,
>        struct input_dev *input;
>        unsigned char *data = (unsigned char *) raw_data;
>        int i;
> +       __u8 power_raw;
>
>        if (!(hdev->claimed & HID_CLAIMED_INPUT))
>                return 0;
> @@ -476,6 +479,13 @@ static int wacom_raw_event(struct hid_device *hdev, 
> struct hid_report *report,
>                        wacom_i4_parse_report(hdev, wdata, input, data + i);
>                        i += 10;
>                        wacom_i4_parse_report(hdev, wdata, input, data + i);
> +                       power_raw = data[i+10];
> +                       if (power_raw != wdata->power_raw) {
> +                               wdata->power_raw = power_raw;
> +                               wdata->battery_capacity = batcap_i4[power_raw 
> & 0x07];
> +                               wdata->ps_connected = power_raw & 0x08;
> +                       }
> +
>                        break;
>                default:
>                        hid_err(hdev, "Unknown report: %d,%d size:%d\n",
> --
> 1.7.6.4
>

--
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
___
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel


[Linuxwacom-devel] [PATCH 3/3] HID: wacom: Add battery/ac reporting for Intuos4 WL

2012-03-19 Thread Przemo Firszt
This patch adds battery/ac reporting for Intuos4 WL. It uses existing
sysfs code, but the device reports battery capacity in more fine-grained way,
so there has to be a separate lookup table (called batcap_i4).

Signed-off-by: Przemo Firszt 
---
 drivers/hid/hid-wacom.c |   10 ++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/drivers/hid/hid-wacom.c b/drivers/hid/hid-wacom.c
index 9c15494..43a96d1 100644
--- a/drivers/hid/hid-wacom.c
+++ b/drivers/hid/hid-wacom.c
@@ -51,6 +51,8 @@ struct wacom_data {
 /*percent of battery capacity for Graphire
   8th value means AC online and show 100% capacity */
 static unsigned short batcap_gr[8] = { 1, 15, 25, 35, 50, 70, 100, 100 };
+/*percent of battery capacity for Intuos4 WL, AC has a separate bit*/
+static unsigned short batcap_i4[8] = { 1, 15, 30, 45, 60, 70, 85, 100 };
 
 static enum power_supply_property wacom_battery_props[] = {
POWER_SUPPLY_PROP_PRESENT,
@@ -449,6 +451,7 @@ static int wacom_raw_event(struct hid_device *hdev, struct 
hid_report *report,
struct input_dev *input;
unsigned char *data = (unsigned char *) raw_data;
int i;
+   __u8 power_raw;
 
if (!(hdev->claimed & HID_CLAIMED_INPUT))
return 0;
@@ -476,6 +479,13 @@ static int wacom_raw_event(struct hid_device *hdev, struct 
hid_report *report,
wacom_i4_parse_report(hdev, wdata, input, data + i);
i += 10;
wacom_i4_parse_report(hdev, wdata, input, data + i);
+   power_raw = data[i+10];
+   if (power_raw != wdata->power_raw) {
+   wdata->power_raw = power_raw;
+   wdata->battery_capacity = batcap_i4[power_raw & 
0x07];
+   wdata->ps_connected = power_raw & 0x08;
+   }
+
break;
default:
hid_err(hdev, "Unknown report: %d,%d size:%d\n",
-- 
1.7.6.4


--
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
___
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel