Skip to content

Commit 8f7c925

Browse files
committed
pibridge-serdev: Relax data type of send and receive buffers
Forcing callers to pass u8 * pointers to the pibridge API is cumbersome as it results in plenty of type casts. Avoid by switching to void * pointers. Signed-off-by: Lukas Wunner <lukas@wunner.de>
1 parent dd4c702 commit 8f7c925

2 files changed

Lines changed: 31 additions & 31 deletions

File tree

drivers/tty/serdev/pibridge.c

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,12 @@ struct pibridge_pkthdr_io {
4141

4242
static struct pibridge *pibridge_s; /* unique instance of the pibridge */
4343

44-
static u8 pibridge_crc8(u8 base, u8 *data, u16 len)
44+
static u8 pibridge_crc8(u8 base, void *data, u16 len)
4545
{
4646
u8 ret = base;
4747

4848
while (len--)
49-
ret = ret ^ data[len];
49+
ret = ret ^ ((u8 *)data)[len];
5050
return ret;
5151
}
5252

@@ -153,7 +153,7 @@ static void pibridge_remove(struct serdev_device *serdev)
153153

154154
/*****************/
155155

156-
int pibridge_send(u8 *buf, u8 len)
156+
int pibridge_send(void *buf, u8 len)
157157
{
158158
struct pibridge *pi = pibridge_s;
159159
struct serdev_device *serdev = pi->serdev;
@@ -174,7 +174,7 @@ void pibridge_clear_fifo(void)
174174
}
175175
EXPORT_SYMBOL(pibridge_clear_fifo);
176176

177-
int pibridge_recv_timeout(u8 *buf, u8 len, u16 timeout)
177+
int pibridge_recv_timeout(void *buf, u8 len, u16 timeout)
178178
{
179179
struct pibridge *pi = pibridge_s;
180180
int ret;
@@ -194,14 +194,14 @@ int pibridge_recv_timeout(u8 *buf, u8 len, u16 timeout)
194194
}
195195
EXPORT_SYMBOL(pibridge_recv_timeout);
196196

197-
int pibridge_recv(u8 *buf, u8 len)
197+
int pibridge_recv(void *buf, u8 len)
198198
{
199199
/* using default timeout PIBRIDGE_IO_TIMEOUT */
200200
return pibridge_recv_timeout(buf, len, PIBRIDGE_IO_TIMEOUT);
201201
}
202202
EXPORT_SYMBOL(pibridge_recv);
203203

204-
int pibridge_req_send_gate(u8 dst, u16 cmd, u8 *snd_buf, u8 snd_len)
204+
int pibridge_req_send_gate(u8 dst, u16 cmd, void *snd_buf, u8 snd_len)
205205
{
206206
struct pibridge_pkthdr_gate pkthdr;
207207
u8 crc;
@@ -212,7 +212,7 @@ int pibridge_req_send_gate(u8 dst, u16 cmd, u8 *snd_buf, u8 snd_len)
212212
pkthdr.cmd = cmd;
213213
pkthdr.len = snd_len;
214214

215-
if (pibridge_send((u8 *) &pkthdr, sizeof(pkthdr)) < 0) {
215+
if (pibridge_send(&pkthdr, sizeof(pkthdr)) < 0) {
216216
dev_warn_ratelimited(&pibridge_s->serdev->dev,
217217
"send head error in gate-send\n");
218218
return -EIO;
@@ -226,7 +226,7 @@ int pibridge_req_send_gate(u8 dst, u16 cmd, u8 *snd_buf, u8 snd_len)
226226

227227
}
228228

229-
crc = pibridge_crc8(0, (u8 *) &pkthdr, sizeof(pkthdr));
229+
crc = pibridge_crc8(0, &pkthdr, sizeof(pkthdr));
230230
if (snd_len != 0)
231231
crc = pibridge_crc8(crc, snd_buf, snd_len);
232232

@@ -240,8 +240,8 @@ int pibridge_req_send_gate(u8 dst, u16 cmd, u8 *snd_buf, u8 snd_len)
240240
}
241241
EXPORT_SYMBOL(pibridge_req_send_gate);
242242

243-
int pibridge_req_gate_tmt(u8 dst, u16 cmd, u8 *snd_buf, u8 snd_len,
244-
u8 *rcv_buf, u8 rcv_len, u16 tmt)
243+
int pibridge_req_gate_tmt(u8 dst, u16 cmd, void *snd_buf, u8 snd_len,
244+
void *rcv_buf, u8 rcv_len, u16 tmt)
245245
{
246246
struct pibridge_pkthdr_gate pkthdr;
247247
u8 to_receive;
@@ -262,15 +262,15 @@ int pibridge_req_gate_tmt(u8 dst, u16 cmd, u8 *snd_buf, u8 snd_len,
262262
if (dst == PIBRIDGE_BC_ADDR)
263263
return 0;
264264

265-
if (pibridge_recv_timeout((u8 *) &pkthdr, sizeof(pkthdr), tmt) !=
265+
if (pibridge_recv_timeout(&pkthdr, sizeof(pkthdr), tmt) !=
266266
sizeof(pkthdr)) {
267267
dev_warn_ratelimited(&pibridge_s->serdev->dev,
268268
"receive head error in gate-req(hdr_len: %zd, timeout: %d, data0: %c)\n",
269-
sizeof(pkthdr), tmt, snd_buf ? snd_buf[0] : 0);
269+
sizeof(pkthdr), tmt, snd_buf ? ((u8 *)snd_buf)[0] : 0);
270270
return -EIO;
271271
}
272272

273-
crc = pibridge_crc8(0, (u8 *) &pkthdr, sizeof(pkthdr));
273+
crc = pibridge_crc8(0, &pkthdr, sizeof(pkthdr));
274274

275275
to_receive = min(pkthdr.len, rcv_len);
276276
to_discard = pkthdr.len - to_receive;
@@ -345,15 +345,15 @@ int pibridge_req_gate_tmt(u8 dst, u16 cmd, u8 *snd_buf, u8 snd_len,
345345
}
346346
EXPORT_SYMBOL(pibridge_req_gate_tmt);
347347

348-
int pibridge_req_gate(u8 dst, u16 cmd, u8 *snd_buf, u8 snd_len,
349-
u8 *rcv_buf, u8 rcv_len)
348+
int pibridge_req_gate(u8 dst, u16 cmd, void *snd_buf, u8 snd_len,
349+
void *rcv_buf, u8 rcv_len)
350350
{
351351
return pibridge_req_gate_tmt(dst, cmd, snd_buf, snd_len, rcv_buf,
352352
rcv_len, PIBRIDGE_IO_TIMEOUT);
353353
}
354354
EXPORT_SYMBOL(pibridge_req_gate);
355355

356-
int pibridge_req_send_io(u8 addr, u8 cmd, u8 *snd_buf, u8 snd_len)
356+
int pibridge_req_send_io(u8 addr, u8 cmd, void *snd_buf, u8 snd_len)
357357
{
358358
struct pibridge_pkthdr_io pkthdr;
359359
u8 crc;
@@ -365,7 +365,7 @@ int pibridge_req_send_io(u8 addr, u8 cmd, u8 *snd_buf, u8 snd_len)
365365
pkthdr.cmd = cmd;
366366
pkthdr.len = snd_len;
367367

368-
if (pibridge_send((u8 *) &pkthdr, sizeof(pkthdr)) < 0) {
368+
if (pibridge_send(&pkthdr, sizeof(pkthdr)) < 0) {
369369
dev_warn_ratelimited(&pibridge_s->serdev->dev,
370370
"send head error in io-send(len: %zd)\n", sizeof(pkthdr));
371371
return -EIO;
@@ -379,7 +379,7 @@ int pibridge_req_send_io(u8 addr, u8 cmd, u8 *snd_buf, u8 snd_len)
379379
return -EIO;
380380
}
381381
}
382-
crc = pibridge_crc8(0, (u8 *) &pkthdr, sizeof(pkthdr));
382+
crc = pibridge_crc8(0, &pkthdr, sizeof(pkthdr));
383383
crc = pibridge_crc8(crc, snd_buf, snd_len);
384384

385385
if (pibridge_send(&crc, sizeof(u8)) < 0) {
@@ -392,7 +392,7 @@ int pibridge_req_send_io(u8 addr, u8 cmd, u8 *snd_buf, u8 snd_len)
392392
}
393393
EXPORT_SYMBOL(pibridge_req_send_io);
394394

395-
int pibridge_req_io(u8 addr, u8 cmd, u8 *snd_buf, u8 snd_len, u8 *rcv_buf,
395+
int pibridge_req_io(u8 addr, u8 cmd, void *snd_buf, u8 snd_len, void *rcv_buf,
396396
u8 rcv_len)
397397
{
398398
struct pibridge_pkthdr_io pkthdr;
@@ -411,12 +411,12 @@ int pibridge_req_io(u8 addr, u8 cmd, u8 *snd_buf, u8 snd_len, u8 *rcv_buf,
411411
return -EIO;
412412
}
413413

414-
if (pibridge_recv((u8 *) &pkthdr, sizeof(pkthdr)) != sizeof(pkthdr)) {
414+
if (pibridge_recv(&pkthdr, sizeof(pkthdr)) != sizeof(pkthdr)) {
415415
dev_warn_ratelimited(&pibridge_s->serdev->dev,
416416
"receive head error in io-req\n");
417417
return -EIO;
418418
}
419-
crc = pibridge_crc8(0, (u8 *) &pkthdr, sizeof(pkthdr));
419+
crc = pibridge_crc8(0, &pkthdr, sizeof(pkthdr));
420420

421421
to_receive = min((u8) pkthdr.len, rcv_len);
422422
to_discard = pkthdr.len - to_receive;

include/linux/pibridge_comm.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22
#ifndef _PIBRIDGE_COMM_H
33
#define _PIBRIDGE_COMM_H
44

5-
int pibridge_req_io(u8 addr, u8 cmd, u8 *snd_buf, u8 snd_len, u8 *rcv_buf,
5+
int pibridge_req_io(u8 addr, u8 cmd, void *snd_buf, u8 snd_len, void *rcv_buf,
66
u8 rcv_len);
7-
int pibridge_req_send_io(u8 addr, u8 cmd, u8 *snd_buf, u8 snd_len);
8-
int pibridge_req_gate(u8 dst, u16 cmd, u8 *snd_buf, u8 snd_len,
9-
u8 *rcv_buf, u8 rcv_len);
10-
int pibridge_req_gate_tmt(u8 dst, u16 cmd, u8 *snd_buf, u8 snd_len,
11-
u8 *rcv_buf, u8 rcv_len, u16 tmt);
12-
int pibridge_req_send_gate(u8 dst, u16 cmd, u8 *snd_buf, u8 snd_len);
13-
int pibridge_recv(u8 *buf, u8 len);
14-
int pibridge_recv_timeout(u8 *buf, u8 len, u16 timeout);
15-
int pibridge_send(u8 *buf, u8 len);
7+
int pibridge_req_send_io(u8 addr, u8 cmd, void *snd_buf, u8 snd_len);
8+
int pibridge_req_gate(u8 dst, u16 cmd, void *snd_buf, u8 snd_len,
9+
void *rcv_buf, u8 rcv_len);
10+
int pibridge_req_gate_tmt(u8 dst, u16 cmd, void *snd_buf, u8 snd_len,
11+
void *rcv_buf, u8 rcv_len, u16 tmt);
12+
int pibridge_req_send_gate(u8 dst, u16 cmd, void *snd_buf, u8 snd_len);
13+
int pibridge_recv(void *buf, u8 len);
14+
int pibridge_recv_timeout(void *buf, u8 len, u16 timeout);
15+
int pibridge_send(void *buf, u8 len);
1616
void pibridge_clear_fifo(void);
1717
#endif /* _PIBRIDGE_COMM_H */

0 commit comments

Comments
 (0)