diag_push_subsys_hdr(): subsystem code is 16bits
diff --git a/src/protocol.c b/src/protocol.c
index 1da7c13..5a8151c 100644
--- a/src/protocol.c
+++ b/src/protocol.c
@@ -20,7 +20,7 @@
 #include "protocol/protocol.h"
 #include "protocol/diagcmd.h"
 
-int diag_push_subsys_hdr(struct msgb *msg, uint8_t subsys, uint8_t code)
+int diag_push_subsys_hdr(struct msgb *msg, uint8_t subsys, uint16_t code)
 {
 	struct diagpkt_subsys_hdr *ssh;
 	ssh = (struct diagpkt_subsys_hdr *) msgb_push(msg, sizeof(*ssh));
diff --git a/src/protocol/protocol.h b/src/protocol/protocol.h
index 69f9dca..2aff019 100644
--- a/src/protocol/protocol.h
+++ b/src/protocol/protocol.h
@@ -83,7 +83,7 @@
 	uint16_t	subsys_cmd_code;
 } __attribute__((packed));
 
-int diag_push_subsys_hdr(struct msgb *msg, uint8_t subsys, uint8_t code);
+int diag_push_subsys_hdr(struct msgb *msg, uint8_t subsys, uint16_t code);
 uint32_t diag_ts_to_fn(uint64_t ts);
 uint32_t diag_ts_to_epoch(uint64_t qd_time);