summaryrefslogtreecommitdiffstats
path: root/arch/sparc
diff options
context:
space:
mode:
authorKrzysztof Helt2008-10-29 23:35:24 +0100
committerDavid S. Miller2008-10-29 23:35:24 +0100
commit12a9ee3cce256ae0f178d604f2c8764fb2942cfe (patch)
tree64a3f5bc9185af7b4656894ed57b387d91d44626 /arch/sparc
parentdbri: check dma_alloc_coherent errors (diff)
downloadkernel-qcow2-linux-12a9ee3cce256ae0f178d604f2c8764fb2942cfe.tar.gz
kernel-qcow2-linux-12a9ee3cce256ae0f178d604f2c8764fb2942cfe.tar.xz
kernel-qcow2-linux-12a9ee3cce256ae0f178d604f2c8764fb2942cfe.zip
rtc-m48t59: shift zero year to 1968 on sparc (rev 2)
Shift the first year to 1968 for Sun SPARC machines. Move this logic from platform specific files to rtc driver as this fixes problems with calculating a century bit. Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl> Tested-by: Alexander Beregalov Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc')
-rw-r--r--arch/sparc/kernel/time.c27
1 files changed, 4 insertions, 23 deletions
diff --git a/arch/sparc/kernel/time.c b/arch/sparc/kernel/time.c
index 62c1d94cb434..00f7383c7657 100644
--- a/arch/sparc/kernel/time.c
+++ b/arch/sparc/kernel/time.c
@@ -119,35 +119,16 @@ static unsigned char mostek_read_byte(struct device *dev, u32 ofs)
{
struct platform_device *pdev = to_platform_device(dev);
struct m48t59_plat_data *pdata = pdev->dev.platform_data;
- void __iomem *regs = pdata->ioaddr;
- unsigned char val = readb(regs + ofs);
-
- /* the year 0 is 1968 */
- if (ofs == pdata->offset + M48T59_YEAR) {
- val += 0x68;
- if ((val & 0xf) > 9)
- val += 6;
- }
- return val;
+
+ return readb(pdata->ioaddr + ofs);
}
static void mostek_write_byte(struct device *dev, u32 ofs, u8 val)
{
struct platform_device *pdev = to_platform_device(dev);
struct m48t59_plat_data *pdata = pdev->dev.platform_data;
- void __iomem *regs = pdata->ioaddr;
-
- if (ofs == pdata->offset + M48T59_YEAR) {
- if (val < 0x68)
- val += 0x32;
- else
- val -= 0x68;
- if ((val & 0xf) > 9)
- val += 6;
- if ((val & 0xf0) > 0x9A)
- val += 0x60;
- }
- writeb(val, regs + ofs);
+
+ writeb(val, pdata->ioaddr + ofs);
}
static struct m48t59_plat_data m48t59_data = {