|
33 | 33 | void debug_ring_callback(uart_ring *ring) {
|
34 | 34 | char rcv;
|
35 | 35 | while (getc(ring, &rcv)) {
|
36 |
| - putc(ring, rcv); |
| 36 | + (void)putc(ring, rcv); // misra-c2012-17.7: cast to void is ok: debug function |
37 | 37 |
|
38 | 38 | // jump to DFU flash
|
39 | 39 | if (rcv == 'z') {
|
@@ -212,7 +212,7 @@ int usb_cb_control_msg(USB_Setup_TypeDef *setup, uint8_t *resp, bool hardwired)
|
212 | 212 | case 0xd0:
|
213 | 213 | // addresses are OTP
|
214 | 214 | if (setup->b.wValue.w == 1) {
|
215 |
| - memcpy(resp, (void *)0x1fff79c0, 0x10); |
| 215 | + (void)memcpy(resp, (void *)0x1fff79c0, 0x10); |
216 | 216 | resp_len = 0x10;
|
217 | 217 | } else {
|
218 | 218 | get_provision_chunk(resp);
|
@@ -248,7 +248,7 @@ int usb_cb_control_msg(USB_Setup_TypeDef *setup, uint8_t *resp, bool hardwired)
|
248 | 248 | // **** 0xd6: get version
|
249 | 249 | case 0xd6:
|
250 | 250 | COMPILE_TIME_ASSERT(sizeof(gitversion) <= MAX_RESP_LEN);
|
251 |
| - memcpy(resp, gitversion, sizeof(gitversion)); |
| 251 | + (void)memcpy(resp, gitversion, sizeof(gitversion)); |
252 | 252 | resp_len = sizeof(gitversion)-1;
|
253 | 253 | break;
|
254 | 254 | // **** 0xd8: reset ST
|
@@ -296,27 +296,31 @@ int usb_cb_control_msg(USB_Setup_TypeDef *setup, uint8_t *resp, bool hardwired)
|
296 | 296 | // and it's blocked over WiFi
|
297 | 297 | // Allow ELM security mode to be set over wifi.
|
298 | 298 | if (hardwired || (setup->b.wValue.w == SAFETY_NOOUTPUT) || (setup->b.wValue.w == SAFETY_ELM327)) {
|
299 |
| - safety_set_mode(setup->b.wValue.w, (int16_t)setup->b.wIndex.w); |
300 |
| - if (safety_ignition_hook() != -1) { |
301 |
| - // if the ignition hook depends on something other than the started GPIO |
302 |
| - // we have to disable power savings (fix for GM and Tesla) |
303 |
| - set_power_save_state(POWER_SAVE_STATUS_DISABLED); |
304 |
| - } |
305 |
| - #ifndef EON |
306 |
| - // always LIVE on EON |
307 |
| - switch (setup->b.wValue.w) { |
308 |
| - case SAFETY_NOOUTPUT: |
309 |
| - can_silent = ALL_CAN_SILENT; |
310 |
| - break; |
311 |
| - case SAFETY_ELM327: |
312 |
| - can_silent = ALL_CAN_BUT_MAIN_SILENT; |
313 |
| - break; |
314 |
| - default: |
315 |
| - can_silent = ALL_CAN_LIVE; |
316 |
| - break; |
| 299 | + int err = safety_set_mode(setup->b.wValue.w, (int16_t)setup->b.wIndex.w); |
| 300 | + if (err == -1) { |
| 301 | + puts("Error: safety set mode failed\n"); |
| 302 | + } else { |
| 303 | + #ifndef EON |
| 304 | + // always LIVE on EON |
| 305 | + switch (setup->b.wValue.w) { |
| 306 | + case SAFETY_NOOUTPUT: |
| 307 | + can_silent = ALL_CAN_SILENT; |
| 308 | + break; |
| 309 | + case SAFETY_ELM327: |
| 310 | + can_silent = ALL_CAN_BUT_MAIN_SILENT; |
| 311 | + break; |
| 312 | + default: |
| 313 | + can_silent = ALL_CAN_LIVE; |
| 314 | + break; |
| 315 | + } |
| 316 | + #endif |
| 317 | + if (safety_ignition_hook() != -1) { |
| 318 | + // if the ignition hook depends on something other than the started GPIO |
| 319 | + // we have to disable power savings (fix for GM and Tesla) |
| 320 | + set_power_save_state(POWER_SAVE_STATUS_DISABLED); |
317 | 321 | }
|
318 |
| - #endif |
319 |
| - can_init_all(); |
| 322 | + can_init_all(); |
| 323 | + } |
320 | 324 | }
|
321 | 325 | break;
|
322 | 326 | // **** 0xdd: enable can forwarding
|
|
0 commit comments