@@ -41,44 +41,41 @@ struct ksbb_data {
41
41
// KSBBs to check when a kscan callback from the "wrapped" inner kscan fires.
42
42
static const struct device * ksbbs [] = {DT_INST_FOREACH_STATUS_OKAY (GET_KSBB_DEV )};
43
43
44
- int find_ksbb_for_inner ( const struct device * inner_dev , const struct device * * ksbb_dev ) {
44
+ const struct device * find_ksbb_for_inner ( const struct device * inner_dev ) {
45
45
for (int i = 0 ; i < ARRAY_SIZE (ksbbs ); i ++ ) {
46
46
const struct device * ksbb = ksbbs [i ];
47
47
const struct ksbb_config * cfg = ksbb -> config ;
48
48
49
49
if (cfg -> kscan == inner_dev ) {
50
- * ksbb_dev = ksbb ;
51
- return 0 ;
50
+ return ksbb ;
52
51
}
53
52
}
54
53
55
- return - ENODEV ;
54
+ return NULL ;
56
55
}
57
56
58
- int find_sideband_behavior (const struct device * dev , uint32_t row , uint32_t column ,
59
- struct ksbb_entry * * entry ) {
57
+ struct ksbb_entry * find_sideband_behavior (const struct device * dev , uint32_t row , uint32_t column ) {
60
58
const struct ksbb_config * cfg = dev -> config ;
61
59
62
60
for (int e = 0 ; e < cfg -> entries_len ; e ++ ) {
63
61
struct ksbb_entry * candidate = & cfg -> entries [e ];
64
62
65
63
if (candidate -> row == row && candidate -> column == column ) {
66
- * entry = candidate ;
67
- return 0 ;
64
+ return candidate ;
68
65
}
69
66
}
70
67
71
- return - ENODEV ;
68
+ return NULL ;
72
69
}
73
70
74
71
void ksbb_inner_kscan_callback (const struct device * dev , uint32_t row , uint32_t column ,
75
72
bool pressed ) {
76
- struct ksbb_entry * entry = NULL ;
77
- const struct device * ksbb = NULL ;
78
-
79
- if (find_ksbb_for_inner (dev , & ksbb ) >= 0 ) {
73
+ const struct device * ksbb = find_ksbb_for_inner (dev );
74
+ if (ksbb ) {
80
75
struct ksbb_data * data = ksbb -> data ;
81
- if (find_sideband_behavior (ksbb , row , column , & entry ) >= 0 ) {
76
+
77
+ struct ksbb_entry * entry = find_sideband_behavior (ksbb , row , column );
78
+ if (entry ) {
82
79
struct zmk_behavior_binding_event event = {.position = INT32_MAX ,
83
80
.timestamp = k_uptime_get ()};
84
81
0 commit comments