diff options
| author | Viditha Hanumanthareddy <ngjq36@motorola.com> | 2014-06-02 09:11:25 -0500 | 
|---|---|---|
| committer | Viditha Hanumanthareddy <ngjq36@motorola.com> | 2014-06-04 09:36:24 -0500 | 
| commit | 13994f358b36cf0482295fe3a38a1297c3916715 (patch) | |
| tree | 4e91b74228f67c1f4d438d96d0d6c30ba98f75c2 /drivers/misc/m4sensorhub_mpu9150.c | |
| parent | 312df65201da563be207d3c5b9a0ff06fd0c48be (diff) | |
| download | olio-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.c | 27 | 
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;  }  |