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
7474static 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
9391int 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
128126int 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
176171int 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 ;
0 commit comments