diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-31 10:52:51 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-31 10:52:51 -0400 |
| commit | 63b40456a30912084c90753582137b9e0495c5c3 (patch) | |
| tree | eedba8710d0ba3c802ecf77f46ed6ab2c73e2149 /arch/sparc64/kernel | |
| parent | eff2502801e9a3a34882c6bd720470d65394522e (diff) | |
| parent | 770a424112cb2c3a3e39221299eaf5244b76479a (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
sparc64: Add missing null terminating entry to bq4802_match[].
sparc: use the new byteorder headers
rtc-m48t59: shift zero year to 1968 on sparc (rev 2)
dbri: check dma_alloc_coherent errors
sparc64: remove byteshifting from out* helpers
Diffstat (limited to 'arch/sparc64/kernel')
| -rw-r--r-- | arch/sparc64/kernel/time.c | 34 |
1 files changed, 6 insertions, 28 deletions
diff --git a/arch/sparc64/kernel/time.c b/arch/sparc64/kernel/time.c index 80d71a5ce1e3..141da3759091 100644 --- a/arch/sparc64/kernel/time.c +++ b/arch/sparc64/kernel/time.c | |||
| @@ -490,6 +490,7 @@ static struct of_device_id __initdata bq4802_match[] = { | |||
| 490 | .name = "rtc", | 490 | .name = "rtc", |
| 491 | .compatible = "bq4802", | 491 | .compatible = "bq4802", |
| 492 | }, | 492 | }, |
| 493 | {}, | ||
| 493 | }; | 494 | }; |
| 494 | 495 | ||
| 495 | static struct of_platform_driver bq4802_driver = { | 496 | static struct of_platform_driver bq4802_driver = { |
| @@ -503,39 +504,16 @@ static struct of_platform_driver bq4802_driver = { | |||
| 503 | static unsigned char mostek_read_byte(struct device *dev, u32 ofs) | 504 | static unsigned char mostek_read_byte(struct device *dev, u32 ofs) |
| 504 | { | 505 | { |
| 505 | struct platform_device *pdev = to_platform_device(dev); | 506 | struct platform_device *pdev = to_platform_device(dev); |
| 506 | struct m48t59_plat_data *pdata = pdev->dev.platform_data; | 507 | void __iomem *regs = (void __iomem *) pdev->resource[0].start; |
| 507 | void __iomem *regs; | 508 | |
| 508 | unsigned char val; | 509 | return readb(regs + ofs); |
| 509 | |||
| 510 | regs = (void __iomem *) pdev->resource[0].start; | ||
| 511 | val = readb(regs + ofs); | ||
| 512 | |||
| 513 | /* the year 0 is 1968 */ | ||
| 514 | if (ofs == pdata->offset + M48T59_YEAR) { | ||
| 515 | val += 0x68; | ||
| 516 | if ((val & 0xf) > 9) | ||
| 517 | val += 6; | ||
| 518 | } | ||
| 519 | return val; | ||
| 520 | } | 510 | } |
| 521 | 511 | ||
| 522 | static void mostek_write_byte(struct device *dev, u32 ofs, u8 val) | 512 | static void mostek_write_byte(struct device *dev, u32 ofs, u8 val) |
| 523 | { | 513 | { |
| 524 | struct platform_device *pdev = to_platform_device(dev); | 514 | struct platform_device *pdev = to_platform_device(dev); |
| 525 | struct m48t59_plat_data *pdata = pdev->dev.platform_data; | 515 | void __iomem *regs = (void __iomem *) pdev->resource[0].start; |
| 526 | void __iomem *regs; | 516 | |
| 527 | |||
| 528 | regs = (void __iomem *) pdev->resource[0].start; | ||
| 529 | if (ofs == pdata->offset + M48T59_YEAR) { | ||
| 530 | if (val < 0x68) | ||
| 531 | val += 0x32; | ||
| 532 | else | ||
| 533 | val -= 0x68; | ||
| 534 | if ((val & 0xf) > 9) | ||
| 535 | val += 6; | ||
| 536 | if ((val & 0xf0) > 0x9A) | ||
| 537 | val += 0x60; | ||
| 538 | } | ||
| 539 | writeb(val, regs + ofs); | 517 | writeb(val, regs + ofs); |
| 540 | } | 518 | } |
| 541 | 519 | ||
