siox: treat type errors as status errors
The type bits are part of the per-device status word. So it's natural to consider an error in the type bits as a status error instead of only resulting in an unsynced state. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Gavin Schenk <g.schenk@eckelmann.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
bcde98fcf9
commit
7e6f7d2453
|
@ -215,26 +215,26 @@ static void siox_poll(struct siox_master *smaster)
|
|||
siox_status_clean(status,
|
||||
sdevice->status_written_lastcycle);
|
||||
|
||||
/* Check counter bits */
|
||||
if (siox_device_counter_error(sdevice, status_clean)) {
|
||||
bool prev_counter_error;
|
||||
/* Check counter and type bits */
|
||||
if (siox_device_counter_error(sdevice, status_clean) ||
|
||||
siox_device_type_error(sdevice, status_clean)) {
|
||||
bool prev_error;
|
||||
|
||||
synced = false;
|
||||
|
||||
/* only report a new error if the last cycle was ok */
|
||||
prev_counter_error =
|
||||
prev_error =
|
||||
siox_device_counter_error(sdevice,
|
||||
prev_status_clean);
|
||||
if (!prev_counter_error) {
|
||||
prev_status_clean) ||
|
||||
siox_device_type_error(sdevice,
|
||||
prev_status_clean);
|
||||
|
||||
if (!prev_error) {
|
||||
sdevice->status_errors++;
|
||||
sysfs_notify_dirent(sdevice->status_errors_kn);
|
||||
}
|
||||
}
|
||||
|
||||
/* Check type bits */
|
||||
if (siox_device_type_error(sdevice, status_clean))
|
||||
synced = false;
|
||||
|
||||
/* If the device is unsynced report the watchdog as active */
|
||||
if (!synced) {
|
||||
status &= ~SIOX_STATUS_WDG;
|
||||
|
|
Loading…
Reference in New Issue