From c2863d6ba14cccd615eb43a371c22d3d2cac23f3 Mon Sep 17 00:00:00 2001 From: Povilas Kanapickas Date: Sun, 1 Dec 2019 10:08:57 +0200 Subject: [PATCH] genesys: Fix inconsistent check of scanner status in *_stop_action() --- backend/genesys/gl124.cpp | 4 ++-- backend/genesys/gl843.cpp | 4 ++-- backend/genesys/gl846.cpp | 4 ++-- backend/genesys/gl847.cpp | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/backend/genesys/gl124.cpp b/backend/genesys/gl124.cpp index 71cfd1122..e356bf307 100644 --- a/backend/genesys/gl124.cpp +++ b/backend/genesys/gl124.cpp @@ -1006,12 +1006,12 @@ void gl124_stop_action(Genesys_Device* dev) unsigned int loop; dev->cmd_set->update_home_sensor_gpio(*dev); - scanner_read_print_status(*dev); + auto status = scanner_read_status(*dev); val40 = dev->interface->read_register(REG_0x100); /* only stop action if needed */ - if (!(val40 & REG_0x100_DATAENB) && !(val40 & REG_0x100_MOTMFLG)) { + if (!(val40 & REG_0x100_DATAENB) && !(val40 & REG_0x100_MOTMFLG) && !status.is_motor_enabled) { DBG (DBG_info, "%s: already stopped\n", __func__); return; } diff --git a/backend/genesys/gl843.cpp b/backend/genesys/gl843.cpp index f967f599d..82d52ec86 100644 --- a/backend/genesys/gl843.cpp +++ b/backend/genesys/gl843.cpp @@ -1320,12 +1320,12 @@ void gl843_stop_action(Genesys_Device* dev) DBG_HELPER(dbg); unsigned int loop; - scanner_read_print_status(*dev); + auto status = scanner_read_status(*dev); uint8_t val40 = dev->interface->read_register(REG_0x40); /* only stop action if needed */ - if (!(val40 & REG_0x40_DATAENB) && !(val40 & REG_0x40_MOTMFLG)) + if (!(val40 & REG_0x40_DATAENB) && !(val40 & REG_0x40_MOTMFLG) && !status.is_motor_enabled) { DBG(DBG_info, "%s: already stopped\n", __func__); return; diff --git a/backend/genesys/gl846.cpp b/backend/genesys/gl846.cpp index 46f3eff20..b8ff20756 100644 --- a/backend/genesys/gl846.cpp +++ b/backend/genesys/gl846.cpp @@ -846,12 +846,12 @@ void gl846_stop_action(Genesys_Device* dev) unsigned int loop; dev->cmd_set->update_home_sensor_gpio(*dev); - scanner_read_print_status(*dev); + auto status = scanner_read_status(*dev); uint8_t val40 = dev->interface->read_register(REG_0x40); /* only stop action if needed */ - if (!(val40 & REG_0x40_DATAENB) && !(val40 & REG_0x40_MOTMFLG)) { + if (!(val40 & REG_0x40_DATAENB) && !(val40 & REG_0x40_MOTMFLG) && !status.is_motor_enabled) { DBG(DBG_info, "%s: already stopped\n", __func__); return; } diff --git a/backend/genesys/gl847.cpp b/backend/genesys/gl847.cpp index d31d3eca8..653392676 100644 --- a/backend/genesys/gl847.cpp +++ b/backend/genesys/gl847.cpp @@ -850,12 +850,12 @@ void gl847_stop_action(Genesys_Device* dev) unsigned int loop; dev->cmd_set->update_home_sensor_gpio(*dev); - scanner_read_print_status(*dev); + auto status = scanner_read_status(*dev); uint8_t val40 = dev->interface->read_register(REG_0x40); /* only stop action if needed */ - if (!(val40 & REG_0x40_DATAENB) && !(val40 & REG_0x40_MOTMFLG)) { + if (!(val40 & REG_0x40_DATAENB) && !(val40 & REG_0x40_MOTMFLG) && !status.is_motor_enabled) { DBG(DBG_info, "%s: already stopped\n", __func__); return; }