An error occurred fetching the project authors.
- 20 Nov, 2014 1 commit
-
-
Frank Praznik authored
Add vid/pid for the SMK branded third-party PS3 Bluetooth remote and enable support in the hid-sony driver. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
- 19 Nov, 2014 1 commit
-
-
Frank Praznik authored
Replace stack buffers with kernel allocated buffers for sending and receiving HID reports to prevent issues with DMA transfers on certain hardware. Output report buffers are allocated at initialization time to avoid excessive calls to kmalloc and kfree. Link: https://bugzilla.kernel.org/show_bug.cgi?id=87991Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Reviewed-by:
Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
- 25 Sep, 2014 1 commit
-
-
Frank Praznik authored
The DualShock 4 touchpad has been measured to have a resolution of 44.86 dots/mm which equates to 1920x942. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
- 22 Sep, 2014 1 commit
-
-
Frank Praznik authored
Set the DualShock4 touchpad bits in the input_configured callback so that they are registered properly for any input devices created during hid_hw_start. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
- 15 Sep, 2014 2 commits
-
-
Frank Praznik authored
Update the file header and correct an outdated comment block. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Frank Praznik authored
Fix a few minor issues in the HID descriptor: - A 6 bit entry had a logical maximum of 255 when the largest it can be is 63. - A logical max value was incorrectly being set to -1 instead of 255. - Set the min/max of the gyroscopes to -8192/8191 as that is the range of values which represent the true controller orientation. Any values beyond those extents are just noise. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
- 01 Sep, 2014 1 commit
-
-
Frank Praznik authored
Bit 3 in byte 31 of the Sixaxis report indicates whether the battery is charging or not charging as opposed to whether or not the cable is plugged in. As a result, when connected via USB and fully charged, the power_supply status is wrongly reported as 'Discharging' instead of 'Full'. Use the battery level value to set the cable state so that the power status is reported correctly as that seems to be the only reliable way to determine the cable status on the Sixaxis. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
- 30 Jul, 2014 1 commit
-
-
Frank Praznik authored
Previously only the first element of the array was initialized to 1 leading to potential incorrect max brightness values for the LEDs on the Dualshock 3 and buzzer controllers. Use a designated initializer to initialize the whole array to the correct value. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
- 25 Jun, 2014 4 commits
-
-
Antonio Ospite authored
Remove an old redundant comment before sony_report_fixup(), it must have been a leftover from the first version of the driver: sony_report_fixup() now handles all the supported devices, not only the Sony Vaio VGX. The comment is also redundant as the same information provided by it is also present in the body of the function. Signed-off-by:
Antonio Ospite <ao2@ao2.it> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Antonio Ospite authored
Reformat sixaxis_rdesc to reflect its HID structure, and comment each field. This will make it easier to validate changes to the descriptor in the future. No functional changes are introduced, the descriptor is exactly the same as before byte by byte. The heavy lifting has been done with the help of hidrd-convert: https://github.com/DIGImend/hidrdSigned-off-by:
Antonio Ospite <ao2@ao2.it> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Antonio Ospite authored
Simplify the logic of overriding the Sixaxis HID descriptor, this will make it easier to amend the descriptor in future commits. The current code does this: if (original sixaxis via USB or BT) fixup only a part of the descriptor else if (sixaxis compatible controller) override the _whole_ descriptor but the end result is exactly the same, except for the trailing zero in the case of original BT controllers. So let's just regularize the process, and always override the HID descriptor. Always overriding the descriptor changes the current semantic a little bit, before this change the BT descriptor still had the trailing zero byte, while now it is exactly the same as the descriptor of the controller via USB, but that does not affect proper operation of the device. Note that overriding the whole descriptor for original devices is not strictly necessary for now, but it simplifies the code and in the future the report descriptor will be patched further and keys will be remapped, so it's handy to have only one place to patch. Signed-off-by:
Antonio Ospite <ao2@ao2.it> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Antonio Ospite authored
Instead of checking for SIXAXIS_CONTROLLER_USB and SIXAXIS_CONTROLLER_BT separately, a check on SIXAXIS_CONTROLLER can be used when setting connect_mask. Signed-off-by:
Antonio Ospite <ao2@ao2.it> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
- 24 Apr, 2014 7 commits
-
-
Simon Wood authored
Without this patch the 3rd party INTEC (PS3) controller will blink all leds when user turns them off, it appears to require an extra flag set. Signed-off-by:
Simon Wood <simon@mungewell.org> Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Frank Praznik authored
Add support for setting the blink rate of the LEDs. The Sixaxis allows control over each individual LED, but the Dualshock 4 only has one global control for controlling the hardware blink rate so individual colors will fall back to software timers. Setting the brightness cancels the blinking as per the LED class specifications. The Sixaxis and Dualshock 4 controllers accept delays in decisecond increments from 0 to 255 (2550 milliseconds). The value at index 1 of the DualShock 4 USB output report must be 0xFF or the light bar won't blink. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Frank Praznik authored
Add an IDA id allocator to assign unique, sequential device ids to Sixaxis and DualShock 4 controllers. Use the device ID to initialize the Sixaxis and DualShock 4 controller LEDs to default values. The number or color of the controller is set relative to other connected Sony controllers. Set the LED class brightness values to the initial values and add the new led to the array before calling led_classdev_register so that the correct brightness value shows up in the LED sysfs entry. Use explicit module init and exit functions since the IDA allocator must be manually destroyed when the module is unloaded. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Frank Praznik authored
Use the controller Bluetooth MAC address as the unique identifier in the battery name string instead of the atomic integer that was used before. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Frank Praznik authored
Convert all of the local initialization and shutdown functions to take a parameter type of struct sony_sc* instead of using a mix of struct sony_sc* and struct hid_device*. Allows for the removal of some calls to hid_get_drvdata(). Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Frank Praznik authored
Use a struct for the Sixaxis output report that uses named members to set the report fields. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Frank Praznik authored
Use inliners to make sure that the work queue initialization flag is always checked and set correctly when initializing or cancelling the work queue. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
- 03 Apr, 2014 1 commit
-
-
Frank Praznik authored
Remove redundant cancel_work_sync() call caused by mismerge. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
- 01 Apr, 2014 3 commits
-
-
Jiri Kosina authored
Fix unfortunate mismerge between the fixes and sony branch causing code duplication and unterminated basic block. Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Frank Praznik authored
The Sixaxis and DualShock 4 want HID output reports sent on the control endpoint when connected via Bluetooth. Set the HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP flag for these devices so hidraw write() works properly. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Frank Praznik authored
Byte 31 of the Sixaxis report can change depending on whether or not the controller is rumbling. Using bit 3 is the only reliable way to detect the state of the cable regardless of rumble activity. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
- 14 Mar, 2014 1 commit
-
-
Benjamin Tissoires authored
hid_out_raw_report is going to be obsoleted as it is not part of the unified HID low level transport documentation (Documentation/hid/hid-transport.txt) To do so, we need to introduce two new quirks: * HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP: this quirks prevents the transport driver to use the interrupt channel to send output report (and thus force to use HID_REQ_SET_REPORT command) * HID_QUIRK_SKIP_OUTPUT_REPORT_ID: this one forces usbhid to not include the report ID in the buffer it sends to the device through HID_REQ_SET_REPORT in case of an output report This also fixes a regression introduced in commit 3a75b249 (HID: hidraw: replace hid_output_raw_report() calls by appropriates ones). The hidraw API was not able to communicate with the PS3 SixAxis controllers in USB mode. Reviewed-by:
David Herrmann <dh.herrmann@gmail.com> Signed-off-by:
Benjamin Tissoires <benjamin.tissoires@redhat.com> Tested-by:
Antonio Ospite <ao2@ao2.it> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
- 24 Feb, 2014 4 commits
-
-
Frank Praznik authored
If a Sixaxis or Dualshock 4 controller is connected via USB while already connected via Bluetooth it will cause duplicate devices to be added to the input device list. To prevent this a global list of controllers and their MAC addresses is maintained and new controllers are checked against this list. If a duplicate is found, the probe function will exit with -EEXIST. On USB the MAC is retrieved via a feature report. On Bluetooth neither controller reports the MAC address in a feature report so the MAC is parsed from the uniq string. As uniq cannot be guaranteed to be a MAC address in every case (uHID or the behavior of HIDP changing) a parsing failure will not prevent the connection. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Reviewed-by:
David Herrmann <dh.herrmann@gmail.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Frank Praznik authored
Make sure that an out-of-bounds read doesn't occur in the Sixaxis battery level lookup table in the event that the controller sends an invalid battery status value in the report. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Reviewed-by:
David Herrmann <dh.herrmann@gmail.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Frank Praznik authored
Only initialize force feedback for devices that actually support it (Sixaxis and Dualshock 4) to prevent calls to schedule_work() with an uninitialized work queue. Move the cancel_work_sync() call out of sony_destroy_ff() since the state worker is used for the LEDs even when force-feedback is disabled. Remove the sony_destroy_ff() function since it is no longer used. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Reviewed-by:
David Herrmann <dh.herrmann@gmail.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Frank Praznik authored
Convert multi-line comments to comply with the kernel coding style. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Reviewed-by:
David Herrmann <dh.herrmann@gmail.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
- 20 Feb, 2014 2 commits
-
-
Frank Praznik authored
Don't initialize force-feedback for devices that don't support it to avoid calls to schedule_work() with an uninitialized work_struct. Move the cancel_work_sync() call out of sony_destroy_ff() since the state worker is used for the LEDs even when force-feedback is disabled. Remove sony_destroy_ff() to avoid a compiler warning since it is no longer used. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Frank Praznik authored
Add a SIXAXIS_CONTROLLER macro to simplify conditionals where the connection type is irrelevant. Enable the LED and force feedback controls for Sixaxis controllers connected via Bluetooth. Send Sixaxis Bluetooth output reports on the control channel. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Reviewed-by:
David Herrmann <dh.herrmann@gmail.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
- 17 Feb, 2014 10 commits
-
-
Frank Praznik authored
The battery_charging and cable_state flags were backwards on the Sixaxis. The low bit of report byte 30 is 0 when charging and 1 when not. Bit 5 of byte 31 is 0 when a USB cable is connected and 1 when not. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Benjamin Tissoires authored
ret = hid_output_raw_report(A, B, C, HID_FEATURE_REPORT); is equivalent to ret = hid_hw_raw_request(A, B[0], B, C, HID_FEATURE_REPORT, HID_REQ_SET_REPORT); whatever the transport layer is. So use the new API where available Signed-off-by:
Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Frank Praznik authored
Add the conditionals to enable rumble, battery reporting, LED and touchpad support for the Dualshock 4 in Bluetooth mode. Add dualshock4_set_operational_bt to initialize the controller to the proper operational state. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Reviewed-by:
David Herrmann <dh.herrmann@gmail.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Frank Praznik authored
Set the initial battery level to 100% to avoid false low battery warnings if the battery state is polled before a report with the actual battery level is received. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Reviewed-by:
David Herrmann <dh.herrmann@gmail.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Frank Praznik authored
Add Dualshock 4 battery and touchpad parsing for Bluetooth reports. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Reviewed-by:
David Herrmann <dh.herrmann@gmail.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Frank Praznik authored
Add formating for the Dualshock 4 output report data in Bluetooth mode. In Bluetooth mode the Dualshock 4 wants output reports sent on the control channel. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Reviewed-by:
David Herrmann <dh.herrmann@gmail.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Frank Praznik authored
By default, the Dualshock 4 sends controller data via report 1. Once a valid output report 0x11 is received or a feature report of type 0x02 is requested the controller changes from sending data in report 1 to sending data in report 17, which is unmapped in the default descriptor. The mappings have to be moved to report 17 to let the HID driver properly process the incoming reports. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Reviewed-by:
David Herrmann <dh.herrmann@gmail.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Frank Praznik authored
Switch to the low-level transport driver functions. sony_set_output_report is removed since it is no longer used. Signed-off-by:
Frank Praznik <frank.praznik@oh.rr.com> Reviewed-by:
David Herrmann <dh.herrmann@gmail.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Benjamin Tissoires authored
Add a helper to access hdev->hid_output_raw_report(). To convert the drivers, use the following snippets: for i in drivers/hid/*.c do sed -i.bak "s/[^ \t]*->hid_output_raw_report(/hid_output_raw_report(/g" $i done Then manually fix for checkpatch.pl Reviewed-by:
David Herrmann <dh.herrmann@gmail.com> Signed-off-by:
Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
Benjamin Tissoires authored
dev->hid_get_raw_report(X) and hid_hw_raw_request(X, HID_REQ_GET_REPORT) are strictly equivalent. Switch the hid subsystem to the hid_hw notation and remove the field .hid_get_raw_report in struct hid_device. Reviewed-by:
David Herrmann <dh.herrmann@gmail.com> Signed-off-by:
Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-