On Fri, Mar 28, 2014 at 11:37 AM, Paul A. Tessier <phern...@gmail.com> wrote:
> From: "Paul A. Tessier" <phern...@gmail.com>
>
> adds sysfs attribute wacom_led/crop_marks_luminance
> adds support for crop marks in led control message
> adds script to exercise LEDs
>
> Signed-off-by: Paul A. Tessier <phern...@gmail.com>
> ---
>  3.7/wacom.h     |  1 +
>  3.7/wacom_sys.c |  5 +++-
>  test/cycle-leds | 71 
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++

This test script is probably a good thing to have in input-wacom but
for the future patch to linux-input to merge into kernel, I'm sure
they will not want that script submitted.

Just an FYI.

Chris

>  3 files changed, 76 insertions(+), 1 deletion(-)
>  create mode 100755 test/cycle-leds
>
> diff --git a/3.7/wacom.h b/3.7/wacom.h
> index b79d451..19ab360 100644
> --- a/3.7/wacom.h
> +++ b/3.7/wacom.h
> @@ -121,6 +121,7 @@ struct wacom {
>                 u8 llv;       /* status led brightness no button (1..127) */
>                 u8 hlv;       /* status led brightness button pressed 
> (1..127) */
>                 u8 img_lum;   /* OLED matrix display brightness */
> +               u8 crop_lum;  /* crop marks led brightness (1..127) */
>         } led;
>         struct power_supply battery;
>  };
> diff --git a/3.7/wacom_sys.c b/3.7/wacom_sys.c
> index 255a398..e0311a5 100644
> --- a/3.7/wacom_sys.c
> +++ b/3.7/wacom_sys.c
> @@ -732,7 +732,7 @@ static int wacom_led_control(struct wacom *wacom)
>                  */
>                 int ring_led = wacom->led.select[0] & 0x03;
>                 int ring_lum = (((wacom->led.llv & 0x60) >> 5) - 1) & 0x03;
> -               int crop_lum = 0;
> +               int crop_lum = (((wacom->led.crop_lum & 0x60) >> 5) - 1) & 
> 0x03;
>
>                 buf[0] = WAC_CMD_LED_CONTROL;
>                 buf[1] = (crop_lum << 4) | (ring_lum << 2) | (ring_led);
> @@ -880,6 +880,7 @@ static DEVICE_ATTR(name##_luminance, DEV_ATTR_RW_PERM,    
>                   \
>
>  DEVICE_LUMINANCE_ATTR(status0, llv);
>  DEVICE_LUMINANCE_ATTR(status1, hlv);
> +DEVICE_LUMINANCE_ATTR(crop_marks, crop_lum);
>  DEVICE_LUMINANCE_ATTR(buttons, img_lum);
>
>  static ssize_t wacom_button_image_store(struct device *dev, int button_id,
> @@ -952,6 +953,7 @@ static struct attribute_group intuos4_led_attr_group = {
>
>  static struct attribute *intuos5_led_attrs[] = {
>         &dev_attr_status0_luminance.attr,
> +       &dev_attr_crop_marks_luminance.attr,
>         &dev_attr_status_led0_select.attr,
>         NULL
>  };
> @@ -1002,6 +1004,7 @@ static int wacom_initialize_leds(struct wacom *wacom)
>                         wacom->led.select[1] = 0;
>                         wacom->led.llv = 32;
>                         wacom->led.hlv = 0;
> +                       wacom->led.crop_lum = 32;
>                         wacom->led.img_lum = 0;
>
>                         error = sysfs_create_group(&wacom->intf->dev.kobj,
> diff --git a/test/cycle-leds b/test/cycle-leds
> new file mode 100755
> index 0000000..89b46cd
> --- /dev/null
> +++ b/test/cycle-leds
> @@ -0,0 +1,71 @@
> +#!/bin/bash
> +err()
> +{
> +  echo "$@" >&2
> +  exit 1
> +}
> +
> +set_led()
> +{
> +  echo $1 > "$led_sel"
> +}
> +set_rng()
> +{
> +#  echo $(expr $1 \* 32 ) > "$rng_lum"
> +  echo $1 > "$rng_lum"
> +}
> +set_crp()
> +{
> +#  echo $(expr $1 \* 32 ) > "$crp_lum"
> +  echo $1 > "$crp_lum"
> +}
> +
> +if [ -z "$1" ]; then
> +       loc="$(find /sys/ -name wacom_led)"
> +       [ ! -d "$loc" ] && err "no wacom_led found in /sys/"
> +else
> +       loc="$1"
> +       [ ! -d "$loc" ] && err "not a folder: $1"
> +fi
> +
> +led_sel="$loc/status_led0_select"
> +rng_lum="$loc/status0_luminance"
> +crp_lum="$loc/crop_marks_luminance"
> +
> +[ ! -f "$led_sel" ] && err "no led selector found: $led_sel"
> +[ ! -f "$rng_lum" ] && err "no ring leds found: $rng_lum"
> +[ ! -f "$crp_lum" ] && err "no crop leds found: $crp_lum"
> +
> +old_led=$(cat "$led_sel")
> +old_rng=$(cat "$rng_lum")
> +old_crp=$(cat "$crp_lum")
> +
> +set_led 0
> +set_crp 0
> +set_rng 0
> +
> +for j in {0..1}; do
> +  for i in {1..127}; do
> +    set_crp $i
> +  done
> +  for i in {126..0}; do
> +    set_crp $i
> +  done
> +done
> +
> +for k in {0..3}; do
> +  set_led $k
> +  for j in {0..1}; do
> +    for i in {1..127}; do
> +      set_rng $i
> +    done
> +    for i in {126..0}; do
> +      set_rng $i
> +    done
> +  done
> +done
> +
> +set_led $old_led
> +set_crp $old_crp
> +set_rng $old_rng
> +
> --
> 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