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

Commit 85a2e40c authored by Hans de Goede's avatar Hans de Goede Committed by Wim Van Sebroeck
Browse files

watchdog: sch56xx: Remove unnecessary checks for register changes



Since the watchdog core keeps track of the watchdog's active state, start/stop
will never get called when no changes are necessary. So we can remove the
check for the output_enable register changing before writing it (which is
an expensive operation).

Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarWim Van Sebroeck <wim@iguana.be>
parent fb551405
Loading
Loading
Loading
Loading
+16 −25
Original line number Diff line number Diff line
@@ -334,18 +334,14 @@ static int watchdog_start(struct watchdog_device *wddev)
	if (ret)
		goto leave;

	/* 2. Enable output (if not already enabled) */
	if (!(data->watchdog_output_enable & SCH56XX_WDOG_OUTPUT_ENABLE)) {
		val = data->watchdog_output_enable |
		      SCH56XX_WDOG_OUTPUT_ENABLE;
	/* 2. Enable output */
	val = data->watchdog_output_enable | SCH56XX_WDOG_OUTPUT_ENABLE;
	ret = sch56xx_write_virtual_reg(data->addr,
						SCH56XX_REG_WDOG_OUTPUT_ENABLE,
						val);
					SCH56XX_REG_WDOG_OUTPUT_ENABLE, val);
	if (ret)
		goto leave;

	data->watchdog_output_enable = val;
	}

	/* 3. Clear the watchdog event bit if set */
	val = inb(data->addr + 9);
@@ -377,21 +373,16 @@ static int watchdog_stop(struct watchdog_device *wddev)
	int ret = 0;
	u8 val;

	if (data->watchdog_output_enable & SCH56XX_WDOG_OUTPUT_ENABLE) {
		val = data->watchdog_output_enable &
		      ~SCH56XX_WDOG_OUTPUT_ENABLE;
	val = data->watchdog_output_enable & ~SCH56XX_WDOG_OUTPUT_ENABLE;
	mutex_lock(data->io_lock);
	ret = sch56xx_write_virtual_reg(data->addr,
						SCH56XX_REG_WDOG_OUTPUT_ENABLE,
						val);
					SCH56XX_REG_WDOG_OUTPUT_ENABLE, val);
	mutex_unlock(data->io_lock);
	if (ret)
		return ret;

	data->watchdog_output_enable = val;
	}

	return ret;
	return 0;
}

static const struct watchdog_ops watchdog_ops = {