Skip to content

Commit

Permalink
HID: uclogic: Make template placeholder IDs generic
Browse files Browse the repository at this point in the history
Up until now, the report descriptor template parameter IDs were only
used with pen report descriptors and they were named accordingly.

Rename the enum and the total number of IDs to make them interface
agnostic.

Refactor, no functional changes.

Signed-off-by: José Expósito <jose.exposito89@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
  • Loading branch information
José Expósito authored and Jiri Kosina committed Jun 15, 2022
1 parent aa051d3 commit 76e645b
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 14 deletions.
4 changes: 2 additions & 2 deletions drivers/hid/hid-uclogic-params.c
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ static int uclogic_params_pen_init_v1(struct uclogic_params_pen *pen,
const int len = 12;
s32 resolution;
/* Pen report descriptor template parameters */
s32 desc_params[UCLOGIC_RDESC_PEN_PH_ID_NUM];
s32 desc_params[UCLOGIC_RDESC_PH_ID_NUM];
__u8 *desc_ptr = NULL;

/* Check arguments */
Expand Down Expand Up @@ -379,7 +379,7 @@ static int uclogic_params_pen_init_v2(struct uclogic_params_pen *pen,
size_t i;
s32 resolution;
/* Pen report descriptor template parameters */
s32 desc_params[UCLOGIC_RDESC_PEN_PH_ID_NUM];
s32 desc_params[UCLOGIC_RDESC_PH_ID_NUM];
__u8 *desc_ptr = NULL;

/* Check arguments */
Expand Down
14 changes: 7 additions & 7 deletions drivers/hid/hid-uclogic-rdesc.c
Original file line number Diff line number Diff line change
Expand Up @@ -979,7 +979,7 @@ const size_t uclogic_rdesc_xppen_deco01_frame_size =
* uclogic_rdesc_template_apply() - apply report descriptor parameters to a
* report descriptor template, creating a report descriptor. Copies the
* template over to the new report descriptor and replaces every occurrence of
* UCLOGIC_RDESC_PH_HEAD, followed by an index byte, with the value from the
* UCLOGIC_RDESC_PEN_PH_HEAD, followed by an index byte, with the value from the
* parameter list at that index.
*
* @template_ptr: Pointer to the template buffer.
Expand All @@ -996,7 +996,7 @@ __u8 *uclogic_rdesc_template_apply(const __u8 *template_ptr,
const s32 *param_list,
size_t param_num)
{
static const __u8 head[] = {UCLOGIC_RDESC_PH_HEAD};
static const __u8 pen_head[] = {UCLOGIC_RDESC_PEN_PH_HEAD};
__u8 *rdesc_ptr;
__u8 *p;
s32 v;
Expand All @@ -1005,12 +1005,12 @@ __u8 *uclogic_rdesc_template_apply(const __u8 *template_ptr,
if (rdesc_ptr == NULL)
return NULL;

for (p = rdesc_ptr; p + sizeof(head) < rdesc_ptr + template_size;) {
if (memcmp(p, head, sizeof(head)) == 0 &&
p[sizeof(head)] < param_num) {
v = param_list[p[sizeof(head)]];
for (p = rdesc_ptr; p + sizeof(pen_head) < rdesc_ptr + template_size;) {
if (memcmp(p, pen_head, sizeof(pen_head)) == 0 &&
p[sizeof(pen_head)] < param_num) {
v = param_list[p[sizeof(pen_head)]];
put_unaligned(cpu_to_le32(v), (s32 *)p);
p += sizeof(head) + 1;
p += sizeof(pen_head) + 1;
} else {
p++;
}
Expand Down
10 changes: 5 additions & 5 deletions drivers/hid/hid-uclogic-rdesc.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,27 +81,27 @@ extern __u8 uclogic_rdesc_twha60_fixed1_arr[];
extern const size_t uclogic_rdesc_twha60_fixed1_size;

/* Report descriptor template placeholder head */
#define UCLOGIC_RDESC_PH_HEAD 0xFE, 0xED, 0x1D
#define UCLOGIC_RDESC_PEN_PH_HEAD 0xFE, 0xED, 0x1D

/* Apply report descriptor parameters to a report descriptor template */
extern __u8 *uclogic_rdesc_template_apply(const __u8 *template_ptr,
size_t template_size,
const s32 *param_list,
size_t param_num);

/* Pen report descriptor template placeholder IDs */
enum uclogic_rdesc_pen_ph_id {
/* Report descriptor template placeholder IDs */
enum uclogic_rdesc_ph_id {
UCLOGIC_RDESC_PEN_PH_ID_X_LM,
UCLOGIC_RDESC_PEN_PH_ID_X_PM,
UCLOGIC_RDESC_PEN_PH_ID_Y_LM,
UCLOGIC_RDESC_PEN_PH_ID_Y_PM,
UCLOGIC_RDESC_PEN_PH_ID_PRESSURE_LM,
UCLOGIC_RDESC_PEN_PH_ID_NUM
UCLOGIC_RDESC_PH_ID_NUM
};

/* Report descriptor pen template placeholder */
#define UCLOGIC_RDESC_PEN_PH(_ID) \
UCLOGIC_RDESC_PH_HEAD, UCLOGIC_RDESC_PEN_PH_ID_##_ID
UCLOGIC_RDESC_PEN_PH_HEAD, UCLOGIC_RDESC_PEN_PH_ID_##_ID

/* Report ID for v1 pen reports */
#define UCLOGIC_RDESC_V1_PEN_ID 0x07
Expand Down

0 comments on commit 76e645b

Please sign in to comment.