All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pavel Machek <pavel@ucw.cz>
To: Frank Praznik <frank.praznik@oh.rr.com>
Cc: linux-input@vger.kernel.org, jkosina@suse.cz
Subject: Re: [PATCH 2/5] hid: sony: Add support for the Sony Motion Controller
Date: Tue, 5 May 2015 23:36:06 +0200	[thread overview]
Message-ID: <20150505213606.GB15218@amd> (raw)
In-Reply-To: <20150505211640.GA10272@amd>

On Tue 2015-05-05 23:16:40, Pavel Machek wrote:
> Hi!
> 
> > Add a fixed-up HID descriptor for the Sony motion controller and enable
> > controls for the LED light as well as force-feedback.
> > 
> > The LED is multi-colored (red, green, blue) and has a 'global' control to
> > allow it to be flashed or switched on an off atomically.

Ok, I spoke too fast. It does work, somehow, as long as I keep the
global control on (with the kmalloc fix).

But for example this does not produce the desired result:

root@duo:/sys/class/leds/0003:054C:03D5.0002:global# echo hearbeat >
trigger
root@duo:/sys/class/leds/0003:054C:03D5.0002:global# cd ..
root@duo:/sys/class/leds# cd 0003\:054C\:03D5.0002\:red
root@duo:/sys/class/leds/0003:054C:03D5.0002:red# cat brightness
255
root@duo:/sys/class/leds/0003:054C:03D5.0002:red#

(Hm. It sometimes works somehow. Weird.)

Yes, I believe we should eventually support RGB ways in some nice way,
but no, having "global" LED "and-ed" with the color LEDs does not seem
like a good way to me. The "global" brightness is ignored, only zero /
non zero matters. It is not a real LED.

RGB support should really be done at LED core, as more than one driver
needs it.

> > The motion controller has a single rumble motor so the higher of the left and
> > right values is used to set the speed.

Not sure how this is expected to work. I tried: (and did not get any
vibrations).

Thanks,
									Pavel

root@duo:/sys/class/leds/0003:054C:03D5.0002:red# evtest /dev/input/event8 
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x54c product 0x3d5 version 0x110
Input device name: "Sony Computer Entertainment Motion Controller"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 288 (BTN_TRIGGER)
    Event code 289 (BTN_THUMB)
    Event code 290 (BTN_THUMB2)
    Event code 291 (BTN_TOP)
    Event code 292 (BTN_TOP2)
    Event code 293 (BTN_PINKIE)
    Event code 294 (BTN_BASE)
    Event code 295 (BTN_BASE2)
    Event code 296 (BTN_BASE3)
    Event code 297 (BTN_BASE4)
    Event code 298 (BTN_BASE5)
    Event code 299 (BTN_BASE6)
    Event code 300 (?)
    Event code 301 (?)
    Event code 302 (?)
    Event code 303 (BTN_DEAD)
    Event code 704 (BTN_TRIGGER_HAPPY1)
    Event code 705 (BTN_TRIGGER_HAPPY2)
    Event code 706 (BTN_TRIGGER_HAPPY3)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 1 (ABS_Y)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 2 (ABS_Z)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 5 (ABS_RZ)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 40 (ABS_MISC)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 41 (?)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 42 (?)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 43 (?)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 44 (?)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 45 (?)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 46 (?)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 47 (ABS_MT_SLOT)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 48 (ABS_MT_TOUCH_MAJOR)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 49 (ABS_MT_TOUCH_MINOR)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 50 (ABS_MT_WIDTH_MAJOR)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 51 (ABS_MT_WIDTH_MINOR)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 52 (ABS_MT_ORIENTATION)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 53 (ABS_MT_POSITION_X)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 54 (ABS_MT_POSITION_Y)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 55 (ABS_MT_TOOL_TYPE)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 56 (ABS_MT_BLOB_ID)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 57 (ABS_MT_TRACKING_ID)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 58 (ABS_MT_PRESSURE)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 59 (ABS_MT_DISTANCE)
      Value      0
      Min        0
      Max     1023
      Fuzz       3
      Flat      63
    Event code 60 (ABS_MT_TOOL_X)
      Value      0
      Min        0
      Max     1023
      Fuzz       3
      Flat      63
    Event code 61 (ABS_MT_TOOL_Y)
      Value      0
      Min        0
      Max     1023
      Fuzz       3
      Flat      63
    Event code 62 (?)
      Value      0
      Min        0
      Max     1023
      Fuzz       3
      Flat      63
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)
  Event type 21 (EV_FF)
    Event code 80 (FF_RUMBLE)
    Event code 81 (FF_PERIODIC)
    Event code 88 (FF_SQUARE)
    Event code 89 (FF_TRIANGLE)
    Event code 90 (FF_SINE)
    Event code 96 (FF_GAIN)
Properties:
Testing ... (interrupt to exit)

^C
root@duo:/sys/class/leds/0003:054C:03D5.0002:red# echo 5 | fftest /dev/input/event2
Force feedback test program.
HOLD FIRMLY YOUR WHEEL OR JOYSTICK TO PREVENT DAMAGES

Device /dev/input/event2 opened
Features:
  * Absolute axes: 
    [00 00 00 00 00 00 00 00 ]
  * Relative axes: 
    [00 00 ]
  * Force feedback effects types: 
    Force feedback periodic effects: 
    [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]
  * Number of simultaneous effects: 0

Uploading effect #0 (Periodic sinusoidal) ... Error:: Function not implemented
Uploading effect #1 (Constant) ... Error: Function not implemented
Uploading effect #2 (Spring) ... Error: Function not implemented
Uploading effect #3 (Damper) ... Error: Function not implemented
Uploading effect #4 (Strong rumble, with heavy motor) ... Error: Function not implemented
Uploading effect #5 (Weak rumble, with light motor) ... Error: Function not implemented
Enter effect number, -1 to exit
Now Playing: Weak Rumble
Enter effect number, -1 to exit
Read error
Stopping effects
root@duo:/sys/class/leds/0003:054C:03D5.0002:red# 


> > Signed-off-by: Pavel Machek <pavel@ucw.cz>
> > Signed-off-by: Frank Praznik <frank.praznik@oh.rr.com>
> > ---
> > 
> >  Pavel, can you please test this and make sure it works?  
> 
> I tried (on 4.1-rc2), and got this (full dmesg in attachment)
> 
> Best regards,
> 										Pavel
> 
> 
> [ 1036.146757] perf interrupt took too long (2508 > 2500), lowering kernel.perf_event_max_sample_rate to 50000
> [12720.492126] usb 4-1: new full-speed USB device number 2 using uhci_hcd
> [12720.659184] usb 4-1: New USB device found, idVendor=054c, idProduct=03d5
> [12720.659194] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
> [12720.659199] usb 4-1: Product: Motion Controller
> [12720.659205] usb 4-1: Manufacturer: Sony Computer Entertainment
> [12739.603968] input: Sony Computer Entertainment Motion Controller as /devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0/0003:054C:03D5.0001/input/input9
> [12739.605801] sony 0003:054C:03D5.0001: input,hidraw0: USB HID v1.10 Joystick [Sony Computer Entertainment Motion Controller] on usb-0000:00:1d.2-1/input0
> [12739.605810] sony 0003:054C:03D5.0001: failed to allocate the output report buffer
> [12739.605814] ------------[ cut here ]------------
> [12739.605827] WARNING: CPU: 1 PID: 10116 at lib/idr.c:1051 ida_remove+0xc7/0x100()
> [12739.605830] ida_remove called for id=0 which is not allocated.
> [12739.605832] Modules linked in: hid_sony(+)
> [12739.605841] CPU: 1 PID: 10116 Comm: insmod Tainted: G        W       4.1.0-rc2+ #71
> [12739.605844] Hardware name: LENOVO 17097HU/17097HU, BIOS 7BETD8WW (2.19 ) 03/31/2011
> [12739.605848]  00000001 00000000 c1051c70 c489988f c1051c9c c1051c8c c403da7b 0000041b
> [12739.605861]  c42be347 00000000 00000000 f85b20c0 c1051ca4 c403dad6 00000009 c1051c9c
> [12739.605873]  c4b040dc c1051cb8 c1051cd0 c42be347 c4b04063 0000041b c4b040dc 00000000
> [12739.605885] Call Trace:
> [12739.605892]  [<c489988f>] dump_stack+0x41/0x52
> [12739.605900]  [<c403da7b>] warn_slowpath_common+0x6b/0xa0
> [12739.605905]  [<c42be347>] ? ida_remove+0xc7/0x100
> [12739.605909]  [<c403dad6>] warn_slowpath_fmt+0x26/0x30
> [12739.605914]  [<c42be347>] ida_remove+0xc7/0x100
> [12739.605918]  [<c42becf3>] ida_simple_remove+0x23/0x40
> [12739.605926]  [<f85b00ea>] sony_probe+0x45a/0xdc0 [hid_sony]
> [12739.605933]  [<c4645668>] ? hid_match_device+0x68/0x80
> [12739.605938]  [<c4645676>] ? hid_match_device+0x76/0x80
> [12739.605944]  [<f85afc90>] ? sony_led_set_brightness+0xb0/0xb0 [hid_sony]
> [12739.605948]  [<c464572b>] hid_device_probe+0xab/0x120
> [12739.605954]  [<c44610de>] driver_probe_device+0x11e/0x400
> [12739.605958]  [<c4645676>] ? hid_match_device+0x76/0x80
> [12739.605962]  [<c4461479>] __driver_attach+0x79/0x80
> [12739.605966]  [<c4461479>] ? __driver_attach+0x79/0x80
> [12739.605970]  [<c4461400>] ? __device_attach+0x40/0x40
> [12739.605975]  [<c445f4ff>] bus_for_each_dev+0x4f/0x80
> [12739.605980]  [<c4460b44>] driver_attach+0x14/0x20
> [12739.605983]  [<c4461400>] ? __device_attach+0x40/0x40
> [12739.605987]  [<c44607bf>] bus_add_driver+0x14f/0x220
> [12739.605991]  [<c42bf9dd>] ? kset_find_obj+0x4d/0xa0
> [12739.605995]  [<c44619e1>] driver_register+0x51/0xd0
> [12739.605998]  [<f85bd000>] ? 0xf85bd000
> [12739.606002]  [<c44619e1>] ? driver_register+0x51/0xd0
> [12739.606006]  [<c46433fe>] __hid_register_driver+0x3e/0x80
> [12739.606012]  [<f85bd037>] sony_init+0x37/0x1000 [hid_sony]
> [12739.606017]  [<c4000442>] do_one_initcall+0xc2/0x1c0
> [12739.606024]  [<c40f948f>] ? cache_free_debugcheck+0xff/0x340
> [12739.606029]  [<c40f8609>] ? cache_alloc_debugcheck_after.isra.62+0x59/0x270
> [12739.606035]  [<c4898eaf>] ? do_init_module+0x17/0x190
> [12739.606039]  [<c4898eaf>] ? do_init_module+0x17/0x190
> [12739.606044]  [<c4898ede>] do_init_module+0x46/0x190
> [12739.606048]  [<c4898ede>] ? do_init_module+0x46/0x190
> [12739.606055]  [<c40ac9b3>] load_module+0x1813/0x1f30
> [12739.606060]  [<c40ad276>] SyS_finit_module+0x86/0xb0
> [12739.606065]  [<c40ad276>] ? SyS_finit_module+0x86/0xb0
> [12739.606071]  [<c4076f76>] ? up_write+0x16/0x40
> [12739.606077]  [<c48a205e>] syscall_call+0x7/0x7
> [12739.606081]  [<c48a205e>] ? syscall_call+0x7/0x7
> [12739.606084] ---[ end trace ea8932ed620e4999 ]---
> [12739.637922] sony: probe of 0003:054C:03D5.0001 failed with error -12
> 
> 
> 

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

  parent reply	other threads:[~2015-05-05 21:36 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-05  2:34 [PATCH 0/5] Support for the Sony Motion Controller and other cleanups Frank Praznik
2015-05-05  2:34 ` [PATCH 1/5] hid: sony: Add the product ID for the Sony Motion Controller Frank Praznik
2015-05-05  2:34 ` [PATCH 2/5] hid: sony: Add support " Frank Praznik
2015-05-05 21:16   ` Pavel Machek
2015-05-05 21:24     ` Pavel Machek
2015-05-05 21:36     ` Pavel Machek [this message]
2015-05-05 21:47       ` Pavel Machek
2015-05-05 21:55         ` Pavel Machek
2015-05-05 23:37         ` Frank Praznik
2015-05-06  9:31           ` Pavel Machek
2015-05-05 23:28     ` Frank Praznik
2015-05-05  2:34 ` [PATCH 3/5] hid: sony: Correct Sony device ordering Frank Praznik
2015-05-05  2:34 ` [PATCH 4/5] hid: sony: Simplify LED initialization and eliminate redundant copies when updating LED states Frank Praznik
2015-05-05  2:34 ` [PATCH 5/5] hid: sony: Correct a typo in a HID descriptor comment and explain the odd Sixaxis axis mapping Frank Praznik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150505213606.GB15218@amd \
    --to=pavel@ucw.cz \
    --cc=frank.praznik@oh.rr.com \
    --cc=jkosina@suse.cz \
    --cc=linux-input@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.