Skip to content

Commit dabc153

Browse files
EvenxfJiri Kosina
authored andcommitted
HID: Intel-thc-hid: Intel-quicki2c: Use size_t for all length variables
Convert all length-related variables in the QuickI2C protocol layer to use size_t type to follow kernel coding conventions. This includes: - All buffer length parameters and variables - Return values of quicki2c_encode_cmd() function which represents encoded command buffer size. - Return values of quicki2c_init_write_buf() function which represents process result: either prepared output buffer size or error code. This change improves type consistency and aligns with standard kernel practices for memory size representation, reducing potential issues with size calculations and comparisons. Signed-off-by: Even Xu <even.xu@intel.com> Signed-off-by: Jiri Kosina <jkosina@suse.com>
1 parent fde4ce0 commit dabc153

3 files changed

Lines changed: 28 additions & 33 deletions

File tree

drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-dev.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ struct quicki2c_device {
213213
u8 *report_descriptor;
214214
u8 *input_buf;
215215
u8 *report_buf;
216-
u32 report_len;
216+
size_t report_len;
217217

218218
wait_queue_head_t reset_ack_wq;
219219
bool reset_ack;

drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-protocol.c

Lines changed: 25 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
#include "quicki2c-hid.h"
1414
#include "quicki2c-protocol.h"
1515

16-
static int quicki2c_init_write_buf(struct quicki2c_device *qcdev, u32 cmd, int cmd_len,
17-
bool append_data_reg, u8 *data, int data_len,
18-
u8 *write_buf, int write_buf_len)
16+
static ssize_t quicki2c_init_write_buf(struct quicki2c_device *qcdev, u32 cmd, size_t cmd_len,
17+
bool append_data_reg, u8 *data, size_t data_len,
18+
u8 *write_buf, size_t write_buf_len)
1919
{
20-
int buf_len, offset = 0;
20+
size_t buf_len, offset = 0;
2121

2222
buf_len = HIDI2C_REG_LEN + cmd_len;
2323

@@ -51,10 +51,10 @@ static int quicki2c_init_write_buf(struct quicki2c_device *qcdev, u32 cmd, int c
5151
return buf_len;
5252
}
5353

54-
static int quicki2c_encode_cmd(struct quicki2c_device *qcdev, u32 *cmd_buf,
55-
u8 opcode, u8 report_type, u8 report_id)
54+
static size_t quicki2c_encode_cmd(struct quicki2c_device *qcdev, u32 *cmd_buf,
55+
u8 opcode, u8 report_type, u8 report_id)
5656
{
57-
int cmd_len;
57+
size_t cmd_len;
5858

5959
*cmd_buf = FIELD_PREP(HIDI2C_CMD_OPCODE, opcode) |
6060
FIELD_PREP(HIDI2C_CMD_REPORT_TYPE, report_type);
@@ -72,22 +72,20 @@ static int quicki2c_encode_cmd(struct quicki2c_device *qcdev, u32 *cmd_buf,
7272
}
7373

7474
static int write_cmd_to_txdma(struct quicki2c_device *qcdev, int opcode,
75-
int report_type, int report_id, u8 *buf, int buf_len)
75+
int report_type, int report_id, u8 *buf, size_t buf_len)
7676
{
77-
size_t write_buf_len;
78-
int cmd_len, ret;
77+
size_t cmd_len;
78+
ssize_t len;
7979
u32 cmd;
8080

8181
cmd_len = quicki2c_encode_cmd(qcdev, &cmd, opcode, report_type, report_id);
8282

83-
ret = quicki2c_init_write_buf(qcdev, cmd, cmd_len, buf ? true : false, buf,
83+
len = quicki2c_init_write_buf(qcdev, cmd, cmd_len, buf ? true : false, buf,
8484
buf_len, qcdev->report_buf, qcdev->report_len);
85-
if (ret < 0)
86-
return ret;
87-
88-
write_buf_len = ret;
85+
if (len < 0)
86+
return len;
8987

90-
return thc_dma_write(qcdev->thc_hw, qcdev->report_buf, write_buf_len);
88+
return thc_dma_write(qcdev->thc_hw, qcdev->report_buf, len);
9189
}
9290

9391
int quicki2c_set_power(struct quicki2c_device *qcdev, enum hidi2c_power_state power_state)
@@ -126,13 +124,13 @@ int quicki2c_get_report_descriptor(struct quicki2c_device *qcdev)
126124
}
127125

128126
int quicki2c_get_report(struct quicki2c_device *qcdev, u8 report_type,
129-
unsigned int reportnum, void *buf, u32 buf_len)
127+
unsigned int reportnum, void *buf, size_t buf_len)
130128
{
131129
struct hidi2c_report_packet *rpt;
132-
size_t write_buf_len, read_len = 0;
133-
int cmd_len, rep_type;
130+
size_t cmd_len, read_len = 0;
131+
int rep_type, ret;
132+
ssize_t len;
134133
u32 cmd;
135-
int ret;
136134

137135
if (report_type == HID_INPUT_REPORT) {
138136
rep_type = HIDI2C_INPUT;
@@ -145,25 +143,22 @@ int quicki2c_get_report(struct quicki2c_device *qcdev, u8 report_type,
145143

146144
cmd_len = quicki2c_encode_cmd(qcdev, &cmd, HIDI2C_GET_REPORT, rep_type, reportnum);
147145

148-
ret = quicki2c_init_write_buf(qcdev, cmd, cmd_len, true, NULL, 0,
146+
len = quicki2c_init_write_buf(qcdev, cmd, cmd_len, true, NULL, 0,
149147
qcdev->report_buf, qcdev->report_len);
150-
if (ret < 0)
151-
return ret;
152-
153-
write_buf_len = ret;
148+
if (len < 0)
149+
return len;
154150

155151
rpt = (struct hidi2c_report_packet *)qcdev->input_buf;
156152

157-
ret = thc_swdma_read(qcdev->thc_hw, qcdev->report_buf, write_buf_len,
158-
NULL, rpt, &read_len);
153+
ret = thc_swdma_read(qcdev->thc_hw, qcdev->report_buf, len, NULL, rpt, &read_len);
159154
if (ret) {
160-
dev_err_once(qcdev->dev, "Get report failed, ret %d, read len (%zu vs %d)\n",
155+
dev_err_once(qcdev->dev, "Get report failed, ret %d, read len (%zu vs %zu)\n",
161156
ret, read_len, buf_len);
162157
return ret;
163158
}
164159

165160
if (HIDI2C_DATA_LEN(le16_to_cpu(rpt->len)) != buf_len || rpt->data[0] != reportnum) {
166-
dev_err_once(qcdev->dev, "Invalid packet, len (%d vs %d) report id (%d vs %d)\n",
161+
dev_err_once(qcdev->dev, "Invalid packet, len (%d vs %zu) report id (%d vs %d)\n",
167162
le16_to_cpu(rpt->len), buf_len, rpt->data[0], reportnum);
168163
return -EINVAL;
169164
}
@@ -174,7 +169,7 @@ int quicki2c_get_report(struct quicki2c_device *qcdev, u8 report_type,
174169
}
175170

176171
int quicki2c_set_report(struct quicki2c_device *qcdev, u8 report_type,
177-
unsigned int reportnum, void *buf, u32 buf_len)
172+
unsigned int reportnum, void *buf, size_t buf_len)
178173
{
179174
int rep_type;
180175
int ret;

drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-protocol.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ struct quicki2c_device;
1010

1111
int quicki2c_set_power(struct quicki2c_device *qcdev, enum hidi2c_power_state power_state);
1212
int quicki2c_get_report(struct quicki2c_device *qcdev, u8 report_type,
13-
unsigned int reportnum, void *buf, u32 buf_len);
13+
unsigned int reportnum, void *buf, size_t buf_len);
1414
int quicki2c_set_report(struct quicki2c_device *qcdev, u8 report_type,
15-
unsigned int reportnum, void *buf, u32 buf_len);
15+
unsigned int reportnum, void *buf, size_t buf_len);
1616
int quicki2c_get_device_descriptor(struct quicki2c_device *qcdev);
1717
int quicki2c_get_report_descriptor(struct quicki2c_device *qcdev);
1818
int quicki2c_reset(struct quicki2c_device *qcdev);

0 commit comments

Comments
 (0)