Merge branch 'fixes' into for-next
Merge for-stable fixes branch into for-next development branch. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
This commit is contained in:
commit
75dd56c0cd
|
@ -47,8 +47,12 @@ static irqreturn_t gemini_powerbutton_interrupt(int irq, void *data)
|
||||||
val &= 0x70U;
|
val &= 0x70U;
|
||||||
switch (val) {
|
switch (val) {
|
||||||
case GEMINI_STAT_CIR:
|
case GEMINI_STAT_CIR:
|
||||||
dev_info(gpw->dev, "infrared poweroff\n");
|
/*
|
||||||
orderly_poweroff(true);
|
* We do not yet have a driver for the infrared
|
||||||
|
* controller so it can cause spurious poweroff
|
||||||
|
* events. Ignore those for now.
|
||||||
|
*/
|
||||||
|
dev_info(gpw->dev, "infrared poweroff - ignored\n");
|
||||||
break;
|
break;
|
||||||
case GEMINI_STAT_RTC:
|
case GEMINI_STAT_RTC:
|
||||||
dev_info(gpw->dev, "RTC poweroff\n");
|
dev_info(gpw->dev, "RTC poweroff\n");
|
||||||
|
@ -116,7 +120,17 @@ static int gemini_poweroff_probe(struct platform_device *pdev)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Clear the power management IRQ */
|
/*
|
||||||
|
* Enable the power controller. This is crucial on Gemini
|
||||||
|
* systems: if this is not done, pressing the power button
|
||||||
|
* will result in unconditional poweroff without any warning.
|
||||||
|
* This makes the kernel handle the poweroff.
|
||||||
|
*/
|
||||||
|
val = readl(gpw->base + GEMINI_PWC_CTRLREG);
|
||||||
|
val |= GEMINI_CTRL_ENABLE;
|
||||||
|
writel(val, gpw->base + GEMINI_PWC_CTRLREG);
|
||||||
|
|
||||||
|
/* Now that the state machine is active, clear the IRQ */
|
||||||
val = readl(gpw->base + GEMINI_PWC_CTRLREG);
|
val = readl(gpw->base + GEMINI_PWC_CTRLREG);
|
||||||
val |= GEMINI_CTRL_IRQ_CLR;
|
val |= GEMINI_CTRL_IRQ_CLR;
|
||||||
writel(val, gpw->base + GEMINI_PWC_CTRLREG);
|
writel(val, gpw->base + GEMINI_PWC_CTRLREG);
|
||||||
|
@ -129,16 +143,6 @@ static int gemini_poweroff_probe(struct platform_device *pdev)
|
||||||
pm_power_off = gemini_poweroff;
|
pm_power_off = gemini_poweroff;
|
||||||
gpw_poweroff = gpw;
|
gpw_poweroff = gpw;
|
||||||
|
|
||||||
/*
|
|
||||||
* Enable the power controller. This is crucial on Gemini
|
|
||||||
* systems: if this is not done, pressing the power button
|
|
||||||
* will result in unconditional poweroff without any warning.
|
|
||||||
* This makes the kernel handle the poweroff.
|
|
||||||
*/
|
|
||||||
val = readl(gpw->base + GEMINI_PWC_CTRLREG);
|
|
||||||
val |= GEMINI_CTRL_ENABLE;
|
|
||||||
writel(val, gpw->base + GEMINI_PWC_CTRLREG);
|
|
||||||
|
|
||||||
dev_info(dev, "Gemini poweroff driver registered\n");
|
dev_info(dev, "Gemini poweroff driver registered\n");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -1670,7 +1670,7 @@ static int bq27xxx_battery_status(struct bq27xxx_device_info *di,
|
||||||
status = POWER_SUPPLY_STATUS_FULL;
|
status = POWER_SUPPLY_STATUS_FULL;
|
||||||
else if (di->cache.flags & BQ27000_FLAG_CHGS)
|
else if (di->cache.flags & BQ27000_FLAG_CHGS)
|
||||||
status = POWER_SUPPLY_STATUS_CHARGING;
|
status = POWER_SUPPLY_STATUS_CHARGING;
|
||||||
else if (power_supply_am_i_supplied(di->bat))
|
else if (power_supply_am_i_supplied(di->bat) > 0)
|
||||||
status = POWER_SUPPLY_STATUS_NOT_CHARGING;
|
status = POWER_SUPPLY_STATUS_NOT_CHARGING;
|
||||||
else
|
else
|
||||||
status = POWER_SUPPLY_STATUS_DISCHARGING;
|
status = POWER_SUPPLY_STATUS_DISCHARGING;
|
||||||
|
|
|
@ -341,15 +341,15 @@ static int ltc294x_get_temperature(const struct ltc294x_info *info, int *val)
|
||||||
|
|
||||||
if (info->id == LTC2942_ID) {
|
if (info->id == LTC2942_ID) {
|
||||||
reg = LTC2942_REG_TEMPERATURE_MSB;
|
reg = LTC2942_REG_TEMPERATURE_MSB;
|
||||||
value = 60000; /* Full-scale is 600 Kelvin */
|
value = 6000; /* Full-scale is 600 Kelvin */
|
||||||
} else {
|
} else {
|
||||||
reg = LTC2943_REG_TEMPERATURE_MSB;
|
reg = LTC2943_REG_TEMPERATURE_MSB;
|
||||||
value = 51000; /* Full-scale is 510 Kelvin */
|
value = 5100; /* Full-scale is 510 Kelvin */
|
||||||
}
|
}
|
||||||
ret = ltc294x_read_regs(info->client, reg, &datar[0], 2);
|
ret = ltc294x_read_regs(info->client, reg, &datar[0], 2);
|
||||||
value *= (datar[0] << 8) | datar[1];
|
value *= (datar[0] << 8) | datar[1];
|
||||||
/* Convert to centidegrees */
|
/* Convert to tenths of degree Celsius */
|
||||||
*val = value / 0xFFFF - 27215;
|
*val = value / 0xFFFF - 2722;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1053,6 +1053,7 @@ static int max17042_probe(struct i2c_client *client,
|
||||||
|
|
||||||
i2c_set_clientdata(client, chip);
|
i2c_set_clientdata(client, chip);
|
||||||
psy_cfg.drv_data = chip;
|
psy_cfg.drv_data = chip;
|
||||||
|
psy_cfg.of_node = dev->of_node;
|
||||||
|
|
||||||
/* When current is not measured,
|
/* When current is not measured,
|
||||||
* CURRENT_NOW and CURRENT_AVG properties should be invisible. */
|
* CURRENT_NOW and CURRENT_AVG properties should be invisible. */
|
||||||
|
|
Loading…
Reference in New Issue