Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7e6f7d24 authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Greg Kroah-Hartman
Browse files

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: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: default avatarGavin Schenk <g.schenk@eckelmann.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent bcde98fc
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -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) ||
				siox_device_type_error(sdevice,
						       prev_status_clean);
			if (!prev_counter_error) {

			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;