2007-09-14 05:54:38

by David Gibson

[permalink] [raw]
Subject: rtc-ds1742.c should use resource_size_t for base address

Currently the rtc driver, rtc-ds1742.c uses an unsigned long to store
the base mmio address of the NVRAM/RTC. This breaks on systems like
PowerPC 440, which is a 32-bit core with 36-bit physical addresses: IO
on the system, including the RTC, is typically above the 4GB point,
and cannot fit into an unsigned long.

This patch fixes the problem by replacing the unsigned long with a
resource_size_t. Tested on Ebony (PPC440) (with additional patches to
instantiate the ds1742 platform device appropriately).

Signed-off-by: David Gibson <[email protected]>

Index: working-2.6/drivers/rtc/rtc-ds1742.c
===================================================================
--- working-2.6.orig/drivers/rtc/rtc-ds1742.c 2007-09-14 15:43:31.000000000 +1000
+++ working-2.6/drivers/rtc/rtc-ds1742.c 2007-09-14 15:44:09.000000000 +1000
@@ -55,7 +55,7 @@ struct rtc_plat_data {
void __iomem *ioaddr_rtc;
size_t size_nvram;
size_t size;
- unsigned long baseaddr;
+ resource_size_t baseaddr;
unsigned long last_jiffies;
};


--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson


2007-09-14 16:45:04

by Atsushi Nemoto

[permalink] [raw]
Subject: Re: rtc-ds1742.c should use resource_size_t for base address

On Fri, 14 Sep 2007 15:54:27 +1000, David Gibson <[email protected]> wrote:
> Currently the rtc driver, rtc-ds1742.c uses an unsigned long to store
> the base mmio address of the NVRAM/RTC. This breaks on systems like
> PowerPC 440, which is a 32-bit core with 36-bit physical addresses: IO
> on the system, including the RTC, is typically above the 4GB point,
> and cannot fit into an unsigned long.
>
> This patch fixes the problem by replacing the unsigned long with a
> resource_size_t. Tested on Ebony (PPC440) (with additional patches to
> instantiate the ds1742 platform device appropriately).
>
> Signed-off-by: David Gibson <[email protected]>

Thanks!

Acked-by: Atsushi Nemoto <[email protected]>

2007-09-14 17:20:53

by Josh Boyer

[permalink] [raw]
Subject: Re: rtc-ds1742.c should use resource_size_t for base address

On Fri, 14 Sep 2007 15:54:27 +1000
David Gibson <[email protected]> wrote:

> Currently the rtc driver, rtc-ds1742.c uses an unsigned long to store
> the base mmio address of the NVRAM/RTC. This breaks on systems like
> PowerPC 440, which is a 32-bit core with 36-bit physical addresses: IO
> on the system, including the RTC, is typically above the 4GB point,
> and cannot fit into an unsigned long.
>
> This patch fixes the problem by replacing the unsigned long with a
> resource_size_t. Tested on Ebony (PPC440) (with additional patches to
> instantiate the ds1742 platform device appropriately).

Where would those additional patches be? :)

josh

2007-09-15 02:31:07

by David Gibson

[permalink] [raw]
Subject: Re: rtc-ds1742.c should use resource_size_t for base address

On Fri, Sep 14, 2007 at 12:20:37PM -0500, Josh Boyer wrote:
> On Fri, 14 Sep 2007 15:54:27 +1000
> David Gibson <[email protected]> wrote:
>
> > Currently the rtc driver, rtc-ds1742.c uses an unsigned long to store
> > the base mmio address of the NVRAM/RTC. This breaks on systems like
> > PowerPC 440, which is a 32-bit core with 36-bit physical addresses: IO
> > on the system, including the RTC, is typically above the 4GB point,
> > and cannot fit into an unsigned long.
> >
> > This patch fixes the problem by replacing the unsigned long with a
> > resource_size_t. Tested on Ebony (PPC440) (with additional patches to
> > instantiate the ds1742 platform device appropriately).
>
> Where would those additional patches be? :)

Coming, they still need polish...

--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson