watchdog: da9055: Don't update wdt_dev->timeout in da9055_wdt_set_timeout error path
Otherwise, WDIOC_GETTIMEOUT returns wrong value if set_timeout fails. This patch also removes unnecessary ret variable in da9055_wdt_ping function. Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
This commit is contained in:
committed by
Wim Van Sebroeck
parent
ee8c94adff
commit
98e4a29389
@@ -72,20 +72,21 @@ static int da9055_wdt_set_timeout(struct watchdog_device *wdt_dev,
|
|||||||
DA9055_TWDSCALE_MASK,
|
DA9055_TWDSCALE_MASK,
|
||||||
da9055_wdt_maps[i].reg_val <<
|
da9055_wdt_maps[i].reg_val <<
|
||||||
DA9055_TWDSCALE_SHIFT);
|
DA9055_TWDSCALE_SHIFT);
|
||||||
if (ret < 0)
|
if (ret < 0) {
|
||||||
dev_err(da9055->dev,
|
dev_err(da9055->dev,
|
||||||
"Failed to update timescale bit, %d\n", ret);
|
"Failed to update timescale bit, %d\n", ret);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
wdt_dev->timeout = timeout;
|
wdt_dev->timeout = timeout;
|
||||||
|
|
||||||
return ret;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int da9055_wdt_ping(struct watchdog_device *wdt_dev)
|
static int da9055_wdt_ping(struct watchdog_device *wdt_dev)
|
||||||
{
|
{
|
||||||
struct da9055_wdt_data *driver_data = watchdog_get_drvdata(wdt_dev);
|
struct da9055_wdt_data *driver_data = watchdog_get_drvdata(wdt_dev);
|
||||||
struct da9055 *da9055 = driver_data->da9055;
|
struct da9055 *da9055 = driver_data->da9055;
|
||||||
int ret;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We have a minimum time for watchdog window called TWDMIN. A write
|
* We have a minimum time for watchdog window called TWDMIN. A write
|
||||||
@@ -94,10 +95,8 @@ static int da9055_wdt_ping(struct watchdog_device *wdt_dev)
|
|||||||
mdelay(DA9055_TWDMIN);
|
mdelay(DA9055_TWDMIN);
|
||||||
|
|
||||||
/* Reset the watchdog timer */
|
/* Reset the watchdog timer */
|
||||||
ret = da9055_reg_update(da9055, DA9055_REG_CONTROL_E,
|
return da9055_reg_update(da9055, DA9055_REG_CONTROL_E,
|
||||||
DA9055_WATCHDOG_MASK, 1);
|
DA9055_WATCHDOG_MASK, 1);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void da9055_wdt_release_resources(struct kref *r)
|
static void da9055_wdt_release_resources(struct kref *r)
|
||||||
|
Reference in New Issue
Block a user