HID: pidff: Comment and code style update
[ Upstream commit e19675c2477491401b236ed939ad5a43ddc339af ] Update comments to fully conform to the Linux comment styling. Define Linux infinite effect duration (0) as FF_INFINITE Chanage Oleg's name order Signed-off-by: Tomasz Pakuła <tomasz.pakula.oficjalny@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
35ebc643af
commit
2d698115f9
@@ -3,13 +3,9 @@
|
|||||||
* Force feedback driver for USB HID PID compliant devices
|
* Force feedback driver for USB HID PID compliant devices
|
||||||
*
|
*
|
||||||
* Copyright (c) 2005, 2006 Anssi Hannula <anssi.hannula@gmail.com>
|
* Copyright (c) 2005, 2006 Anssi Hannula <anssi.hannula@gmail.com>
|
||||||
|
* Upgraded 2025 by Oleg Makarenko and Tomasz Pakuła
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* #define DEBUG */
|
|
||||||
|
|
||||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||||
|
|
||||||
#include "hid-pidff.h"
|
#include "hid-pidff.h"
|
||||||
@@ -25,9 +21,9 @@
|
|||||||
|
|
||||||
/* Linux Force Feedback API uses miliseconds as time unit */
|
/* Linux Force Feedback API uses miliseconds as time unit */
|
||||||
#define FF_TIME_EXPONENT -3
|
#define FF_TIME_EXPONENT -3
|
||||||
|
#define FF_INFINITE 0
|
||||||
|
|
||||||
/* Report usage table used to put reports into an array */
|
/* Report usage table used to put reports into an array */
|
||||||
|
|
||||||
#define PID_SET_EFFECT 0
|
#define PID_SET_EFFECT 0
|
||||||
#define PID_EFFECT_OPERATION 1
|
#define PID_EFFECT_OPERATION 1
|
||||||
#define PID_DEVICE_GAIN 2
|
#define PID_DEVICE_GAIN 2
|
||||||
@@ -48,12 +44,12 @@ static const u8 pidff_reports[] = {
|
|||||||
0x21, 0x77, 0x7d, 0x7f, 0x89, 0x90, 0x96, 0xab,
|
0x21, 0x77, 0x7d, 0x7f, 0x89, 0x90, 0x96, 0xab,
|
||||||
0x5a, 0x5f, 0x6e, 0x73, 0x74
|
0x5a, 0x5f, 0x6e, 0x73, 0x74
|
||||||
};
|
};
|
||||||
|
/*
|
||||||
/* device_control is really 0x95, but 0x96 specified as it is the usage of
|
* device_control is really 0x95, but 0x96 specified
|
||||||
the only field in that report */
|
* as it is the usage of the only field in that report.
|
||||||
|
*/
|
||||||
|
|
||||||
/* PID special fields */
|
/* PID special fields */
|
||||||
|
|
||||||
#define PID_EFFECT_TYPE 0x25
|
#define PID_EFFECT_TYPE 0x25
|
||||||
#define PID_DIRECTION 0x57
|
#define PID_DIRECTION 0x57
|
||||||
#define PID_EFFECT_OPERATION_ARRAY 0x78
|
#define PID_EFFECT_OPERATION_ARRAY 0x78
|
||||||
@@ -61,7 +57,6 @@ the only field in that report */
|
|||||||
#define PID_DEVICE_CONTROL_ARRAY 0x96
|
#define PID_DEVICE_CONTROL_ARRAY 0x96
|
||||||
|
|
||||||
/* Value usage tables used to put fields and values into arrays */
|
/* Value usage tables used to put fields and values into arrays */
|
||||||
|
|
||||||
#define PID_EFFECT_BLOCK_INDEX 0
|
#define PID_EFFECT_BLOCK_INDEX 0
|
||||||
|
|
||||||
#define PID_DURATION 1
|
#define PID_DURATION 1
|
||||||
@@ -119,7 +114,6 @@ static const u8 pidff_device_gain[] = { 0x7e };
|
|||||||
static const u8 pidff_pool[] = { 0x80, 0x83, 0xa9 };
|
static const u8 pidff_pool[] = { 0x80, 0x83, 0xa9 };
|
||||||
|
|
||||||
/* Special field key tables used to put special field keys into arrays */
|
/* Special field key tables used to put special field keys into arrays */
|
||||||
|
|
||||||
#define PID_ENABLE_ACTUATORS 0
|
#define PID_ENABLE_ACTUATORS 0
|
||||||
#define PID_DISABLE_ACTUATORS 1
|
#define PID_DISABLE_ACTUATORS 1
|
||||||
#define PID_STOP_ALL_EFFECTS 2
|
#define PID_STOP_ALL_EFFECTS 2
|
||||||
@@ -176,8 +170,10 @@ struct pidff_device {
|
|||||||
struct pidff_usage effect_operation[sizeof(pidff_effect_operation)];
|
struct pidff_usage effect_operation[sizeof(pidff_effect_operation)];
|
||||||
struct pidff_usage block_free[sizeof(pidff_block_free)];
|
struct pidff_usage block_free[sizeof(pidff_block_free)];
|
||||||
|
|
||||||
/* Special field is a field that is not composed of
|
/*
|
||||||
usage<->value pairs that pidff_usage values are */
|
* Special field is a field that is not composed of
|
||||||
|
* usage<->value pairs that pidff_usage values are
|
||||||
|
*/
|
||||||
|
|
||||||
/* Special field in create_new_effect */
|
/* Special field in create_new_effect */
|
||||||
struct hid_field *create_new_effect_type;
|
struct hid_field *create_new_effect_type;
|
||||||
@@ -222,7 +218,7 @@ static s32 pidff_clamp(s32 i, struct hid_field *field)
|
|||||||
static int pidff_rescale(int i, int max, struct hid_field *field)
|
static int pidff_rescale(int i, int max, struct hid_field *field)
|
||||||
{
|
{
|
||||||
return i * (field->logical_maximum - field->logical_minimum) / max +
|
return i * (field->logical_maximum - field->logical_minimum) / max +
|
||||||
field->logical_minimum;
|
field->logical_minimum;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -282,9 +278,8 @@ static void pidff_set_time(struct pidff_usage *usage, u16 time)
|
|||||||
|
|
||||||
static void pidff_set_duration(struct pidff_usage *usage, u16 duration)
|
static void pidff_set_duration(struct pidff_usage *usage, u16 duration)
|
||||||
{
|
{
|
||||||
/* Convert infinite length from Linux API (0)
|
/* Infinite value conversion from Linux API -> PID */
|
||||||
to PID standard (NULL) if needed */
|
if (duration == FF_INFINITE)
|
||||||
if (duration == 0)
|
|
||||||
duration = PID_INFINITE;
|
duration = PID_INFINITE;
|
||||||
|
|
||||||
if (duration == PID_INFINITE) {
|
if (duration == PID_INFINITE) {
|
||||||
@@ -302,16 +297,16 @@ static void pidff_set_envelope_report(struct pidff_device *pidff,
|
|||||||
struct ff_envelope *envelope)
|
struct ff_envelope *envelope)
|
||||||
{
|
{
|
||||||
pidff->set_envelope[PID_EFFECT_BLOCK_INDEX].value[0] =
|
pidff->set_envelope[PID_EFFECT_BLOCK_INDEX].value[0] =
|
||||||
pidff->block_load[PID_EFFECT_BLOCK_INDEX].value[0];
|
pidff->block_load[PID_EFFECT_BLOCK_INDEX].value[0];
|
||||||
|
|
||||||
pidff->set_envelope[PID_ATTACK_LEVEL].value[0] =
|
pidff->set_envelope[PID_ATTACK_LEVEL].value[0] =
|
||||||
pidff_rescale(envelope->attack_level >
|
pidff_rescale(envelope->attack_level >
|
||||||
S16_MAX ? S16_MAX : envelope->attack_level, S16_MAX,
|
S16_MAX ? S16_MAX : envelope->attack_level, S16_MAX,
|
||||||
pidff->set_envelope[PID_ATTACK_LEVEL].field);
|
pidff->set_envelope[PID_ATTACK_LEVEL].field);
|
||||||
pidff->set_envelope[PID_FADE_LEVEL].value[0] =
|
pidff->set_envelope[PID_FADE_LEVEL].value[0] =
|
||||||
pidff_rescale(envelope->fade_level >
|
pidff_rescale(envelope->fade_level >
|
||||||
S16_MAX ? S16_MAX : envelope->fade_level, S16_MAX,
|
S16_MAX ? S16_MAX : envelope->fade_level, S16_MAX,
|
||||||
pidff->set_envelope[PID_FADE_LEVEL].field);
|
pidff->set_envelope[PID_FADE_LEVEL].field);
|
||||||
|
|
||||||
pidff_set_time(&pidff->set_envelope[PID_ATTACK_TIME],
|
pidff_set_time(&pidff->set_envelope[PID_ATTACK_TIME],
|
||||||
envelope->attack_length);
|
envelope->attack_length);
|
||||||
@@ -702,9 +697,7 @@ static void pidff_playback_pid(struct pidff_device *pidff, int pid_id, int n)
|
|||||||
static int pidff_playback(struct input_dev *dev, int effect_id, int value)
|
static int pidff_playback(struct input_dev *dev, int effect_id, int value)
|
||||||
{
|
{
|
||||||
struct pidff_device *pidff = dev->ff->private;
|
struct pidff_device *pidff = dev->ff->private;
|
||||||
|
|
||||||
pidff_playback_pid(pidff, pidff->pid_id[effect_id], value);
|
pidff_playback_pid(pidff, pidff->pid_id[effect_id], value);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -732,8 +725,11 @@ static int pidff_erase_effect(struct input_dev *dev, int effect_id)
|
|||||||
|
|
||||||
hid_dbg(pidff->hid, "starting to erase %d/%d\n",
|
hid_dbg(pidff->hid, "starting to erase %d/%d\n",
|
||||||
effect_id, pidff->pid_id[effect_id]);
|
effect_id, pidff->pid_id[effect_id]);
|
||||||
/* Wait for the queue to clear. We do not want a full fifo to
|
|
||||||
prevent the effect removal. */
|
/*
|
||||||
|
* Wait for the queue to clear. We do not want
|
||||||
|
* a full fifo to prevent the effect removal.
|
||||||
|
*/
|
||||||
hid_hw_wait(pidff->hid);
|
hid_hw_wait(pidff->hid);
|
||||||
pidff_playback_pid(pidff, pid_id, 0);
|
pidff_playback_pid(pidff, pid_id, 0);
|
||||||
pidff_erase_pid(pidff, pid_id);
|
pidff_erase_pid(pidff, pid_id);
|
||||||
@@ -1239,7 +1235,6 @@ static int pidff_find_effects(struct pidff_device *pidff,
|
|||||||
set_bit(FF_FRICTION, dev->ffbit);
|
set_bit(FF_FRICTION, dev->ffbit);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#define PIDFF_FIND_FIELDS(name, report, strict) \
|
#define PIDFF_FIND_FIELDS(name, report, strict) \
|
||||||
@@ -1370,12 +1365,10 @@ static int pidff_check_autocenter(struct pidff_device *pidff,
|
|||||||
hid_notice(pidff->hid,
|
hid_notice(pidff->hid,
|
||||||
"device has unknown autocenter control method\n");
|
"device has unknown autocenter control method\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
pidff_erase_pid(pidff,
|
pidff_erase_pid(pidff,
|
||||||
pidff->block_load[PID_EFFECT_BLOCK_INDEX].value[0]);
|
pidff->block_load[PID_EFFECT_BLOCK_INDEX].value[0]);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user