Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into s3c-moves2
This commit is contained in:
@@ -446,9 +446,6 @@ static int rtc_dev_release(struct inode *inode, struct file *file)
|
||||
if (rtc->ops->release)
|
||||
rtc->ops->release(rtc->dev.parent);
|
||||
|
||||
if (file->f_flags & FASYNC)
|
||||
rtc_dev_fasync(-1, file, 0);
|
||||
|
||||
clear_bit_unlock(RTC_DEV_BUSY, &rtc->flags);
|
||||
return 0;
|
||||
}
|
||||
|
@@ -189,7 +189,7 @@ static const struct rtc_class_ops ds3234_rtc_ops = {
|
||||
.set_time = ds3234_set_time,
|
||||
};
|
||||
|
||||
static int ds3234_probe(struct spi_device *spi)
|
||||
static int __devinit ds3234_probe(struct spi_device *spi)
|
||||
{
|
||||
struct rtc_device *rtc;
|
||||
unsigned char tmp;
|
||||
@@ -249,7 +249,7 @@ static int ds3234_probe(struct spi_device *spi)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __exit ds3234_remove(struct spi_device *spi)
|
||||
static int __devexit ds3234_remove(struct spi_device *spi)
|
||||
{
|
||||
struct ds3234 *chip = platform_get_drvdata(spi);
|
||||
struct rtc_device *rtc = chip->rtc;
|
||||
|
@@ -87,6 +87,10 @@ static int m48t59_rtc_read_time(struct device *dev, struct rtc_time *tm)
|
||||
dev_dbg(dev, "Century bit is enabled\n");
|
||||
tm->tm_year += 100; /* one century */
|
||||
}
|
||||
#ifdef CONFIG_SPARC
|
||||
/* Sun SPARC machines count years since 1968 */
|
||||
tm->tm_year += 68;
|
||||
#endif
|
||||
|
||||
tm->tm_wday = bcd2bin(val & 0x07);
|
||||
tm->tm_hour = bcd2bin(M48T59_READ(M48T59_HOUR) & 0x3F);
|
||||
@@ -110,11 +114,20 @@ static int m48t59_rtc_set_time(struct device *dev, struct rtc_time *tm)
|
||||
struct m48t59_private *m48t59 = platform_get_drvdata(pdev);
|
||||
unsigned long flags;
|
||||
u8 val = 0;
|
||||
int year = tm->tm_year;
|
||||
|
||||
#ifdef CONFIG_SPARC
|
||||
/* Sun SPARC machines count years since 1968 */
|
||||
year -= 68;
|
||||
#endif
|
||||
|
||||
dev_dbg(dev, "RTC set time %04d-%02d-%02d %02d/%02d/%02d\n",
|
||||
tm->tm_year + 1900, tm->tm_mon, tm->tm_mday,
|
||||
year + 1900, tm->tm_mon, tm->tm_mday,
|
||||
tm->tm_hour, tm->tm_min, tm->tm_sec);
|
||||
|
||||
if (year < 0)
|
||||
return -EINVAL;
|
||||
|
||||
spin_lock_irqsave(&m48t59->lock, flags);
|
||||
/* Issue the WRITE command */
|
||||
M48T59_SET_BITS(M48T59_CNTL_WRITE, M48T59_CNTL);
|
||||
@@ -125,9 +138,9 @@ static int m48t59_rtc_set_time(struct device *dev, struct rtc_time *tm)
|
||||
M48T59_WRITE((bin2bcd(tm->tm_mday) & 0x3F), M48T59_MDAY);
|
||||
/* tm_mon is 0-11 */
|
||||
M48T59_WRITE((bin2bcd(tm->tm_mon + 1) & 0x1F), M48T59_MONTH);
|
||||
M48T59_WRITE(bin2bcd(tm->tm_year % 100), M48T59_YEAR);
|
||||
M48T59_WRITE(bin2bcd(year % 100), M48T59_YEAR);
|
||||
|
||||
if (pdata->type == M48T59RTC_TYPE_M48T59 && (tm->tm_year / 100))
|
||||
if (pdata->type == M48T59RTC_TYPE_M48T59 && (year / 100))
|
||||
val = (M48T59_WDAY_CEB | M48T59_WDAY_CB);
|
||||
val |= (bin2bcd(tm->tm_wday) & 0x07);
|
||||
M48T59_WRITE(val, M48T59_WDAY);
|
||||
@@ -159,6 +172,10 @@ static int m48t59_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm)
|
||||
M48T59_SET_BITS(M48T59_CNTL_READ, M48T59_CNTL);
|
||||
|
||||
tm->tm_year = bcd2bin(M48T59_READ(M48T59_YEAR));
|
||||
#ifdef CONFIG_SPARC
|
||||
/* Sun SPARC machines count years since 1968 */
|
||||
tm->tm_year += 68;
|
||||
#endif
|
||||
/* tm_mon is 0-11 */
|
||||
tm->tm_mon = bcd2bin(M48T59_READ(M48T59_MONTH)) - 1;
|
||||
|
||||
@@ -192,11 +209,20 @@ static int m48t59_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)
|
||||
struct rtc_time *tm = &alrm->time;
|
||||
u8 mday, hour, min, sec;
|
||||
unsigned long flags;
|
||||
int year = tm->tm_year;
|
||||
|
||||
#ifdef CONFIG_SPARC
|
||||
/* Sun SPARC machines count years since 1968 */
|
||||
year -= 68;
|
||||
#endif
|
||||
|
||||
/* If no irq, we don't support ALARM */
|
||||
if (m48t59->irq == NO_IRQ)
|
||||
return -EIO;
|
||||
|
||||
if (year < 0)
|
||||
return -EINVAL;
|
||||
|
||||
/*
|
||||
* 0xff means "always match"
|
||||
*/
|
||||
@@ -228,7 +254,7 @@ static int m48t59_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)
|
||||
spin_unlock_irqrestore(&m48t59->lock, flags);
|
||||
|
||||
dev_dbg(dev, "RTC set alarm time %04d-%02d-%02d %02d/%02d/%02d\n",
|
||||
tm->tm_year + 1900, tm->tm_mon, tm->tm_mday,
|
||||
year + 1900, tm->tm_mon, tm->tm_mday,
|
||||
tm->tm_hour, tm->tm_min, tm->tm_sec);
|
||||
return 0;
|
||||
}
|
||||
|
@@ -455,6 +455,8 @@ static int __devinit s3c_rtc_probe(struct platform_device *pdev)
|
||||
|
||||
s3c_rtc_setfreq(&pdev->dev, 1);
|
||||
|
||||
device_init_wakeup(&pdev->dev, 1);
|
||||
|
||||
/* register RTC and exit */
|
||||
|
||||
rtc = rtc_device_register("s3c", &pdev->dev, &s3c_rtcops,
|
||||
@@ -507,7 +509,7 @@ static int s3c_rtc_resume(struct platform_device *pdev)
|
||||
#define s3c_rtc_resume NULL
|
||||
#endif
|
||||
|
||||
static struct platform_driver s3c2410_rtcdrv = {
|
||||
static struct platform_driver s3c2410_rtc_driver = {
|
||||
.probe = s3c_rtc_probe,
|
||||
.remove = __devexit_p(s3c_rtc_remove),
|
||||
.suspend = s3c_rtc_suspend,
|
||||
@@ -523,12 +525,12 @@ static char __initdata banner[] = "S3C24XX RTC, (c) 2004,2006 Simtec Electronics
|
||||
static int __init s3c_rtc_init(void)
|
||||
{
|
||||
printk(banner);
|
||||
return platform_driver_register(&s3c2410_rtcdrv);
|
||||
return platform_driver_register(&s3c2410_rtc_driver);
|
||||
}
|
||||
|
||||
static void __exit s3c_rtc_exit(void)
|
||||
{
|
||||
platform_driver_unregister(&s3c2410_rtcdrv);
|
||||
platform_driver_unregister(&s3c2410_rtc_driver);
|
||||
}
|
||||
|
||||
module_init(s3c_rtc_init);
|
||||
|
Reference in New Issue
Block a user