Skip to content

Commit

Permalink
hwmon: (applesmc) Relax the severity of device init failure
Browse files Browse the repository at this point in the history
The device init is used to reset the accelerometer. Failure to reset
is not severe enough to stop loading the module or to resume from
hibernation.  This patch relaxes failure to a warning and drops
output in case of success.

Cc: stable@kernel.org
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
  • Loading branch information
Henrik Rydberg authored and Guenter Roeck committed Jan 8, 2011
1 parent 132af03 commit 2344cd0
Showing 1 changed file with 7 additions and 31 deletions.
38 changes: 7 additions & 31 deletions drivers/hwmon/applesmc.c
Original file line number Diff line number Diff line change
Expand Up @@ -448,38 +448,22 @@ static int applesmc_read_motion_sensor(int index, s16* value)
}

/*
* applesmc_device_init - initialize the accelerometer. Returns zero on success
* and negative error code on failure. Can sleep.
* applesmc_device_init - initialize the accelerometer. Can sleep.
*/
static int applesmc_device_init(void)
static void applesmc_device_init(void)
{
int total, ret = -ENXIO;
int total;
u8 buffer[2];

if (!applesmc_accelerometer)
return 0;
return;

mutex_lock(&applesmc_lock);

for (total = INIT_TIMEOUT_MSECS; total > 0; total -= INIT_WAIT_MSECS) {
if (debug)
printk(KERN_DEBUG "applesmc try %d\n", total);
if (!applesmc_read_key(MOTION_SENSOR_KEY, buffer, 2) &&
(buffer[0] != 0x00 || buffer[1] != 0x00)) {
if (total == INIT_TIMEOUT_MSECS) {
printk(KERN_DEBUG "applesmc: device has"
" already been initialized"
" (0x%02x, 0x%02x).\n",
buffer[0], buffer[1]);
} else {
printk(KERN_DEBUG "applesmc: device"
" successfully initialized"
" (0x%02x, 0x%02x).\n",
buffer[0], buffer[1]);
}
ret = 0;
(buffer[0] != 0x00 || buffer[1] != 0x00))
goto out;
}
buffer[0] = 0xe0;
buffer[1] = 0x00;
applesmc_write_key(MOTION_SENSOR_KEY, buffer, 2);
Expand All @@ -490,7 +474,6 @@ static int applesmc_device_init(void)

out:
mutex_unlock(&applesmc_lock);
return ret;
}

/*
Expand All @@ -516,13 +499,8 @@ static int applesmc_get_fan_count(void)
/* Device model stuff */
static int applesmc_probe(struct platform_device *dev)
{
int ret;
applesmc_device_init();

ret = applesmc_device_init();
if (ret)
return ret;

printk(KERN_INFO "applesmc: device successfully initialized.\n");
return 0;
}

Expand All @@ -539,9 +517,7 @@ static int applesmc_pm_resume(struct device *dev)
/* Reinitialize device on resume from hibernation */
static int applesmc_pm_restore(struct device *dev)
{
int ret = applesmc_device_init();
if (ret)
return ret;
applesmc_device_init();
return applesmc_pm_resume(dev);
}

Expand Down

0 comments on commit 2344cd0

Please sign in to comment.