mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
Merge branch 'master' into for-next
This commit is contained in:
commit
d790d4d583
1744 changed files with 34722 additions and 212841 deletions
|
|
@ -29,6 +29,7 @@
|
|||
#include <linux/bcd.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
/*
|
||||
* The DaVinci RTC is a simple RTC with the following
|
||||
|
|
|
|||
|
|
@ -777,7 +777,7 @@ static int __devinit ds1307_probe(struct i2c_client *client,
|
|||
|
||||
read_rtc:
|
||||
/* read RTC registers */
|
||||
tmp = ds1307->read_block_data(ds1307->client, 0, 8, buf);
|
||||
tmp = ds1307->read_block_data(ds1307->client, ds1307->offset, 8, buf);
|
||||
if (tmp != 8) {
|
||||
pr_debug("read error %d\n", tmp);
|
||||
err = -EIO;
|
||||
|
|
@ -862,7 +862,7 @@ read_rtc:
|
|||
if (ds1307->regs[DS1307_REG_HOUR] & DS1307_BIT_PM)
|
||||
tmp += 12;
|
||||
i2c_smbus_write_byte_data(client,
|
||||
DS1307_REG_HOUR,
|
||||
ds1307->offset + DS1307_REG_HOUR,
|
||||
bin2bcd(tmp));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -456,7 +456,7 @@ static struct rtc_class_ops stv2_pl031_ops = {
|
|||
.irq_set_freq = pl031_irq_set_freq,
|
||||
};
|
||||
|
||||
static struct amba_id pl031_ids[] __initdata = {
|
||||
static struct amba_id pl031_ids[] = {
|
||||
{
|
||||
.id = 0x00041031,
|
||||
.mask = 0x000fffff,
|
||||
|
|
|
|||
|
|
@ -168,7 +168,7 @@ static int rx8581_set_datetime(struct i2c_client *client, struct rtc_time *tm)
|
|||
return -EIO;
|
||||
}
|
||||
|
||||
err = i2c_smbus_write_byte_data(client, RX8581_REG_FLAG,
|
||||
err = i2c_smbus_write_byte_data(client, RX8581_REG_CTRL,
|
||||
(data | RX8581_CTRL_STOP));
|
||||
if (err < 0) {
|
||||
dev_err(&client->dev, "Unable to write control register\n");
|
||||
|
|
@ -182,6 +182,20 @@ static int rx8581_set_datetime(struct i2c_client *client, struct rtc_time *tm)
|
|||
return -EIO;
|
||||
}
|
||||
|
||||
/* get VLF and clear it */
|
||||
data = i2c_smbus_read_byte_data(client, RX8581_REG_FLAG);
|
||||
if (data < 0) {
|
||||
dev_err(&client->dev, "Unable to read flag register\n");
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
err = i2c_smbus_write_byte_data(client, RX8581_REG_FLAG,
|
||||
(data & ~(RX8581_FLAG_VLF)));
|
||||
if (err != 0) {
|
||||
dev_err(&client->dev, "Unable to write flag register\n");
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
/* Restart the clock */
|
||||
data = i2c_smbus_read_byte_data(client, RX8581_REG_CTRL);
|
||||
if (data < 0) {
|
||||
|
|
@ -189,8 +203,8 @@ static int rx8581_set_datetime(struct i2c_client *client, struct rtc_time *tm)
|
|||
return -EIO;
|
||||
}
|
||||
|
||||
err = i2c_smbus_write_byte_data(client, RX8581_REG_FLAG,
|
||||
(data | ~(RX8581_CTRL_STOP)));
|
||||
err = i2c_smbus_write_byte_data(client, RX8581_REG_CTRL,
|
||||
(data & ~(RX8581_CTRL_STOP)));
|
||||
if (err != 0) {
|
||||
dev_err(&client->dev, "Unable to write control register\n");
|
||||
return -EIO;
|
||||
|
|
|
|||
Loading…
Reference in a new issue