On Fri, Mar 28, 2014 at 11:37 AM, Paul A. Tessier wrote:
> From: "Paul A. Tessier"
>
> 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
> ---
> 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 000..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_Cl