diff options
| author | Evan Wilson <evan@oliodevices.com> | 2015-12-11 16:55:48 -0800 | 
|---|---|---|
| committer | Evan Wilson <evan@oliodevices.com> | 2015-12-11 16:55:48 -0800 | 
| commit | 606779d73f51a0ebe81f691bd7c173fc1740be24 (patch) | |
| tree | 42e68bd40f3a375dfbb5ba940c6de9b4591f9016 /drivers | |
| parent | b6602fe7788593d7c5e02ae7bb5616ebc6f63f2c (diff) | |
| parent | b258e74fe4251438954e0fc08575f4b15ab35605 (diff) | |
| download | olio-linux-3.10-606779d73f51a0ebe81f691bd7c173fc1740be24.tar.xz olio-linux-3.10-606779d73f51a0ebe81f691bd7c173fc1740be24.zip | |
Merge remote-tracking branch 'olio/android-3.10-bringup' into 1.1.45
Conflicts:
	drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_core.c
	drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_trigger.c
	drivers/power/bq27x00_battery.c
Change-Id: Iafb1129617680cd2705bc05eb49faaafff325692
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/cpufreq/omap-cpufreq.c | 7 | ||||
| -rw-r--r-- | drivers/leds/leds-lm3530.c | 6 | ||||
| -rw-r--r-- | drivers/mfd/tps65910.c | 21 | ||||
| -rw-r--r-- | drivers/power/bq27x00_battery.c | 1 | ||||
| -rw-r--r-- | drivers/video/omap2/omapfb/omapfb-main.c | 31 | 
5 files changed, 59 insertions, 7 deletions
| diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c index 0279d18a57f..3bdb1d9c786 100644 --- a/drivers/cpufreq/omap-cpufreq.c +++ b/drivers/cpufreq/omap-cpufreq.c @@ -246,16 +246,19 @@ static struct cpufreq_driver omap_driver = {  static int omap_cpufreq_probe(struct platform_device *pdev)  { +	printk ("%s: OLIO: Entered\n", __FUNCTION__); +  	mpu_dev = get_cpu_device(0);  	if (!mpu_dev) {  		pr_warning("%s: unable to get the mpu device\n", __func__);  		return -EINVAL;  	} -	mpu_reg = regulator_get(mpu_dev, "vcc"); +	mpu_reg = regulator_get(mpu_dev, "vdd_mpu_iva");  /* OLIO: Orig "vcc" */  	if (IS_ERR(mpu_reg)) { -		pr_warning("%s: unable to get MPU regulator\n", __func__); +		pr_warning("%s: unable to get MPU regulator, will try again in a bit\n", __func__);  		mpu_reg = NULL; +		return -EPROBE_DEFER;  	} else {  		/*   		 * Ensure physical regulator is present. diff --git a/drivers/leds/leds-lm3530.c b/drivers/leds/leds-lm3530.c index fda0efb4f88..89499d369ea 100644 --- a/drivers/leds/leds-lm3530.c +++ b/drivers/leds/leds-lm3530.c @@ -449,7 +449,11 @@ static int lm3530_probe(struct i2c_client *client,  	i2c_set_clientdata(client, drvdata); -	drvdata->regulator = devm_regulator_get(&client->dev, "vin"); +	/* OLIO: The regulator name should be passed through the platform_data  +	 * structure. Fixme. +	 */ + +	drvdata->regulator = devm_regulator_get(&client->dev, "vdds_dsi");  	if (IS_ERR(drvdata->regulator)) {  		dev_err(&client->dev, "regulator get failed\n");  		err = PTR_ERR(drvdata->regulator); diff --git a/drivers/mfd/tps65910.c b/drivers/mfd/tps65910.c index 1e7ef2a2e35..0e0412b3bfb 100644 --- a/drivers/mfd/tps65910.c +++ b/drivers/mfd/tps65910.c @@ -363,8 +363,13 @@ static int tps65910_sleepinit(struct tps65910 *tps65910,  	dev = tps65910->dev; -	if (!pmic_pdata->en_dev_slp) -		return 0; +	/* set polarity of SLLEEPSIG requst ot enter OFF mode */ +	ret = tps65910_reg_set_bits(tps65910, TPS65910_DEVCTRL2, +				DEVCTRL2_SLEEPSIG_POL_MASK); +	if (ret < 0) { +		dev_err(dev, "set sleepsig_pol failed: %d\n", ret); +		goto err_sleep_init; +	}  	/*  	 * set polarity of SLLEEPSIG requst to enter OFF mode @@ -385,6 +390,18 @@ static int tps65910_sleepinit(struct tps65910 *tps65910,  		goto err_sleep_init;  	} +	ret = tps65910_reg_set_bits(tps65910, TPS65910_SLEEP_KEEP_RES_ON, +				SLEEP_KEEP_RES_ON_CLKOUT32K_KEEPON_MASK); +	if (ret < 0) { +		dev_err(dev, "set sleep_keep_res_on failed: %d\n", ret); +		goto err_sleep_init; +	} + +/* Return if there is no sleep keepon data. */ +/* This can't really happen... */ +/* if (pmic_pdata.slp_keepon) */ +/* return 0; */ +  	if (pmic_pdata->slp_keepon.therm_keepon) {  		ret = tps65910_reg_set_bits(tps65910,  				TPS65910_SLEEP_KEEP_RES_ON, diff --git a/drivers/power/bq27x00_battery.c b/drivers/power/bq27x00_battery.c index 646ed08b95c..c26859a2f84 100644 --- a/drivers/power/bq27x00_battery.c +++ b/drivers/power/bq27x00_battery.c @@ -1430,6 +1430,7 @@ static irqreturn_t bq27x00_chg_isr(int irq, void *dev) {  	wake_lock_timeout(&chg_wake_lock, msecs_to_jiffies(500));  	/* dev_dbg(ps->dev, "%s: Updating battery status\n", __func__);  Don't   	   do i/o in interrupt! */ +  	bq27x00_external_power_changed(ps);  	return IRQ_HANDLED; diff --git a/drivers/video/omap2/omapfb/omapfb-main.c b/drivers/video/omap2/omapfb/omapfb-main.c index 13733c8bb1b..98c645429bd 100644 --- a/drivers/video/omap2/omapfb/omapfb-main.c +++ b/drivers/video/omap2/omapfb/omapfb-main.c @@ -2640,8 +2640,8 @@ static int omapfb_probe(struct platform_device *pdev)  		r = omapfb_init_display(fbdev, def_display);  		if (r) {  			dev_err(fbdev->dev, -					"failed to initialize default " -					"display\n"); +				"failed to initialize default " +				"display\n");  			goto cleanup;  		}  	} @@ -2687,9 +2687,36 @@ static int __exit omapfb_remove(struct platform_device *pdev)  	return 0;  } +/* Need to add suspend / wake pair of functions here.  + * All we really need is for the suspend function to clear the screen + * to black.  + */ + +static int omapfb_suspend (struct platform_device * pdev, pm_message_t state)  +{ +	struct omapfb2_device *fbdev = platform_get_drvdata(pdev); +	struct fb_info * fbi; + +	fbi = fbdev->fbs[0]; + +	if (fbi != NULL) +		omapfb_clear_fb(fbi); +	 +	return 0; +} + +static int omapfb_resume (struct platform_device * pdev)  +{ +	/* No need to do anything, I think */ + +	return 0; +} +  static struct platform_driver omapfb_driver = {  	.probe		= omapfb_probe,  	.remove         = __exit_p(omapfb_remove), +	.suspend        = omapfb_suspend, +	.resume         = omapfb_resume,  	.driver         = {  		.name   = "omapfb",  		.owner  = THIS_MODULE, |