summaryrefslogtreecommitdiff
path: root/drivers/misc/m4sensorhub_mpu9150.c
diff options
context:
space:
mode:
authorViditha Hanumanthareddy <ngjq36@motorola.com>2014-06-02 09:11:25 -0500
committerViditha Hanumanthareddy <ngjq36@motorola.com>2014-06-04 09:36:24 -0500
commit13994f358b36cf0482295fe3a38a1297c3916715 (patch)
tree4e91b74228f67c1f4d438d96d0d6c30ba98f75c2 /drivers/misc/m4sensorhub_mpu9150.c
parent312df65201da563be207d3c5b9a0ff06fd0c48be (diff)
downloadolio-linux-3.10-13994f358b36cf0482295fe3a38a1297c3916715.tar.xz
olio-linux-3.10-13994f358b36cf0482295fe3a38a1297c3916715.zip
IKXCLOCK-1762: Fix m4 panic handlers
Change-Id: I53820435227388c323d2beec6e678a94b674fff9
Diffstat (limited to 'drivers/misc/m4sensorhub_mpu9150.c')
-rw-r--r--drivers/misc/m4sensorhub_mpu9150.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/drivers/misc/m4sensorhub_mpu9150.c b/drivers/misc/m4sensorhub_mpu9150.c
index 805842076cd..abd01b5c7f7 100644
--- a/drivers/misc/m4sensorhub_mpu9150.c
+++ b/drivers/misc/m4sensorhub_mpu9150.c
@@ -646,13 +646,38 @@ static int mpu9150_irq_enable_disable(struct mpu9150_client *mpu9150_client_data
return ret;
}
+static void mpu9150_panic_restore(struct m4sensorhub_data *m4sensorhub,
+ void *data)
+{
+ struct mpu9150_client *dd = (struct mpu9150_client *)data;
+
+ if (dd == NULL) {
+ m4als_err("%s: Driver data is null, unable to restore\n");
+ return;
+ }
+ KDEBUG(M4SH_INFO, "Executing mpu9150 panic restore\n");
+ m4_set_mpu9150_delay(dd, dd->samplerate[TYPE_ACCEL], TYPE_ACCEL);
+ m4_set_mpu9150_delay(dd, dd->samplerate[TYPE_GYRO], TYPE_GYRO);
+ m4_set_mpu9150_delay(dd, dd->samplerate[TYPE_COMPASS], TYPE_COMPASS);
+}
+
static int mpu9150_driver_init(struct init_calldata *p_arg)
{
int ret;
ret = mpu9150_irq_init(misc_mpu9150_data);
+ if (ret < 0) {
+ KDEBUG(M4SH_ERROR, "mpu9150 irq init failed\n");
+ goto driver_init_exit;
+ }
+ ret = m4sensorhub_panic_register(misc_mpu9150_data->m4sensorhub,
+ PANICHDL_MPU9150_RESTORE,
+ mpu9150_panic_restore,
+ misc_mpu9150_data);
if (ret < 0)
- KDEBUG(M4SH_ERROR, "mpu9150 irq init failed\n");
+ KDEBUG(M4SH_ERROR, "HR panic callback register failed\n");
+
+driver_init_exit:
return ret;
}