Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1376494 > unrolled thread
| Started by | Sudip Mukherjee <sudipm.mukherjee@gmail.com> |
|---|---|
| First post | 2016-04-12 08:00 +0200 |
| Last post | 2016-04-12 20:20 +0200 |
| Articles | 8 — 3 participants |
Back to article view | Back to linux.kernel
[PATCH] watchdog: dw_wdt: dont build for avr32 Sudip Mukherjee <sudipm.mukherjee@gmail.com> - 2016-04-12 08:00 +0200
Re: [PATCH] watchdog: dw_wdt: dont build for avr32 Guenter Roeck <linux@roeck-us.net> - 2016-04-12 15:10 +0200
Re: [PATCH] watchdog: dw_wdt: dont build for avr32 Guenter Roeck <linux@roeck-us.net> - 2016-04-12 15:10 +0200
Re: [PATCH] watchdog: dw_wdt: dont build for avr32 Sudip Mukherjee <sudipm.mukherjee@gmail.com> - 2016-04-12 15:40 +0200
Re: [PATCH] watchdog: dw_wdt: dont build for avr32 Andy Shevchenko <andy.shevchenko@gmail.com> - 2016-04-12 17:00 +0200
Re: [PATCH] watchdog: dw_wdt: dont build for avr32 Sudip Mukherjee <sudipm.mukherjee@gmail.com> - 2016-04-12 17:40 +0200
Re: [PATCH] watchdog: dw_wdt: dont build for avr32 Guenter Roeck <linux@roeck-us.net> - 2016-04-12 20:10 +0200
Re: [PATCH] watchdog: dw_wdt: dont build for avr32 Andy Shevchenko <andy.shevchenko@gmail.com> - 2016-04-12 20:20 +0200
| From | Sudip Mukherjee <sudipm.mukherjee@gmail.com> |
|---|---|
| Date | 2016-04-12 08:00 +0200 |
| Subject | [PATCH] watchdog: dw_wdt: dont build for avr32 |
| Message-ID | <rmZwK-25h-3@gated-at.bofh.it> |
The build of avr32 allmodconfig fails with the error: ERROR: "__avr32_udiv64" [drivers/watchdog/kempld_wdt.ko] undefined! Exclude this driver from the build of avr32. Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk> --- avr32 build log is at: https://travis-ci.org/sudipm-mukherjee/parport/jobs/122158665 drivers/watchdog/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index fb94765..61041ba 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -981,7 +981,7 @@ config HP_WATCHDOG config KEMPLD_WDT tristate "Kontron COM Watchdog Timer" - depends on MFD_KEMPLD + depends on MFD_KEMPLD && !AVR32 select WATCHDOG_CORE help Support for the PLD watchdog on some Kontron ETX and COMexpress -- 1.9.1
[toc] | [next] | [standalone]
| From | Guenter Roeck <linux@roeck-us.net> |
|---|---|
| Date | 2016-04-12 15:10 +0200 |
| Message-ID | <rn6eS-7VQ-11@gated-at.bofh.it> |
| In reply to | #1376494 |
On 04/11/2016 10:51 PM, Sudip Mukherjee wrote: > The build of avr32 allmodconfig fails with the error: > ERROR: "__avr32_udiv64" [drivers/watchdog/kempld_wdt.ko] undefined! > > Exclude this driver from the build of avr32. Also, the subject line is wrong. Guenter > > Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk> > --- > > avr32 build log is at: > https://travis-ci.org/sudipm-mukherjee/parport/jobs/122158665 > > drivers/watchdog/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig > index fb94765..61041ba 100644 > --- a/drivers/watchdog/Kconfig > +++ b/drivers/watchdog/Kconfig > @@ -981,7 +981,7 @@ config HP_WATCHDOG > > config KEMPLD_WDT > tristate "Kontron COM Watchdog Timer" > - depends on MFD_KEMPLD > + depends on MFD_KEMPLD && !AVR32 > select WATCHDOG_CORE > help > Support for the PLD watchdog on some Kontron ETX and COMexpress >
[toc] | [prev] | [next] | [standalone]
| From | Guenter Roeck <linux@roeck-us.net> |
|---|---|
| Date | 2016-04-12 15:10 +0200 |
| Message-ID | <rn6eS-7VQ-15@gated-at.bofh.it> |
| In reply to | #1376494 |
On 04/11/2016 10:51 PM, Sudip Mukherjee wrote: > The build of avr32 allmodconfig fails with the error: > ERROR: "__avr32_udiv64" [drivers/watchdog/kempld_wdt.ko] undefined! > This means there is a direct 64 bit divide operation in the driver, which we should identify and fix. Guenter > Exclude this driver from the build of avr32. > > Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk> > --- > > avr32 build log is at: > https://travis-ci.org/sudipm-mukherjee/parport/jobs/122158665 > > drivers/watchdog/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig > index fb94765..61041ba 100644 > --- a/drivers/watchdog/Kconfig > +++ b/drivers/watchdog/Kconfig > @@ -981,7 +981,7 @@ config HP_WATCHDOG > > config KEMPLD_WDT > tristate "Kontron COM Watchdog Timer" > - depends on MFD_KEMPLD > + depends on MFD_KEMPLD && !AVR32 > select WATCHDOG_CORE > help > Support for the PLD watchdog on some Kontron ETX and COMexpress >
[toc] | [prev] | [next] | [standalone]
| From | Sudip Mukherjee <sudipm.mukherjee@gmail.com> |
|---|---|
| Date | 2016-04-12 15:40 +0200 |
| Message-ID | <rn6HT-89g-11@gated-at.bofh.it> |
| In reply to | #1376787 |
On Tuesday 12 April 2016 06:36 PM, Guenter Roeck wrote: > On 04/11/2016 10:51 PM, Sudip Mukherjee wrote: >> The build of avr32 allmodconfig fails with the error: >> ERROR: "__avr32_udiv64" [drivers/watchdog/kempld_wdt.ko] undefined! >> > This means there is a direct 64 bit divide operation in the driver, > which we should identify and fix. yes, there is. in function: kempld_wdt_set_stage_timeout() remainder = do_div(stage_timeout64, prescaler); Any idea how to fix it? regards sudip
[toc] | [prev] | [next] | [standalone]
| From | Andy Shevchenko <andy.shevchenko@gmail.com> |
|---|---|
| Date | 2016-04-12 17:00 +0200 |
| Message-ID | <rn7Xk-zk-21@gated-at.bofh.it> |
| In reply to | #1376803 |
On Tue, Apr 12, 2016 at 4:39 PM, Sudip Mukherjee <sudipm.mukherjee@gmail.com> wrote: > On Tuesday 12 April 2016 06:36 PM, Guenter Roeck wrote: >> >> On 04/11/2016 10:51 PM, Sudip Mukherjee wrote: >>> >>> The build of avr32 allmodconfig fails with the error: >>> ERROR: "__avr32_udiv64" [drivers/watchdog/kempld_wdt.ko] undefined! >>> >> This means there is a direct 64 bit divide operation in the driver, >> which we should identify and fix. This driver will quite likely never be used on AVR32. Do we need to fix this due to some other architectures? > yes, there is. > > in function: kempld_wdt_set_stage_timeout() > remainder = do_div(stage_timeout64, prescaler); > Any idea how to fix it? Not easy, however, prescaler value is ((1 << 21) - 1) which someone might consider as (1 << 21) with lost in precision. Thus, shift on 20 bits right, add last bit to the value and shift on 1 bit right more. -- With Best Regards, Andy Shevchenko
[toc] | [prev] | [next] | [standalone]
| From | Sudip Mukherjee <sudipm.mukherjee@gmail.com> |
|---|---|
| Date | 2016-04-12 17:40 +0200 |
| Message-ID | <rn8A3-1cd-41@gated-at.bofh.it> |
| In reply to | #1376877 |
On Tuesday 12 April 2016 08:28 PM, Andy Shevchenko wrote: > On Tue, Apr 12, 2016 at 4:39 PM, Sudip Mukherjee > <sudipm.mukherjee@gmail.com> wrote: >> On Tuesday 12 April 2016 06:36 PM, Guenter Roeck wrote: >>> >>> On 04/11/2016 10:51 PM, Sudip Mukherjee wrote: >>>> >>>> The build of avr32 allmodconfig fails with the error: >>>> ERROR: "__avr32_udiv64" [drivers/watchdog/kempld_wdt.ko] undefined! >>>> >>> This means there is a direct 64 bit divide operation in the driver, >>> which we should identify and fix. > > This driver will quite likely never be used on AVR32. Do we need to > fix this due to some other architectures? I have not seen failure in the architecture builds I monitor. And since no one reported anything so I guess its only avr32. regards sudip
[toc] | [prev] | [next] | [standalone]
| From | Guenter Roeck <linux@roeck-us.net> |
|---|---|
| Date | 2016-04-12 20:10 +0200 |
| Message-ID | <rnaVc-3iR-11@gated-at.bofh.it> |
| In reply to | #1376877 |
On Tue, Apr 12, 2016 at 05:58:20PM +0300, Andy Shevchenko wrote: > On Tue, Apr 12, 2016 at 4:39 PM, Sudip Mukherjee > <sudipm.mukherjee@gmail.com> wrote: > > On Tuesday 12 April 2016 06:36 PM, Guenter Roeck wrote: > >> > >> On 04/11/2016 10:51 PM, Sudip Mukherjee wrote: > >>> > >>> The build of avr32 allmodconfig fails with the error: > >>> ERROR: "__avr32_udiv64" [drivers/watchdog/kempld_wdt.ko] undefined! > >>> > >> This means there is a direct 64 bit divide operation in the driver, > >> which we should identify and fix. > > This driver will quite likely never be used on AVR32. Do we need to > fix this due to some other architectures? > > > yes, there is. > > > > in function: kempld_wdt_set_stage_timeout() > > remainder = do_div(stage_timeout64, prescaler); > > > Any idea how to fix it? > > Not easy, however, prescaler value is ((1 << 21) - 1) which someone > might consider as (1 << 21) with lost in precision. > > Thus, shift on 20 bits right, add last bit to the value and shift on 1 > bit right more. > Sorry, I am missing something. do_div() should work fine with any 32 bit value as divisor, no matter what that value is. Why does it fail here ? And why does it work if I pass 0x1fffff as second parameter to do_div() directly ? Thanks, Guenter > -- > With Best Regards, > Andy Shevchenko > -- > To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
[toc] | [prev] | [next] | [standalone]
| From | Andy Shevchenko <andy.shevchenko@gmail.com> |
|---|---|
| Date | 2016-04-12 20:20 +0200 |
| Message-ID | <rnb4T-3n3-41@gated-at.bofh.it> |
| In reply to | #1377072 |
On Tue, Apr 12, 2016 at 9:01 PM, Guenter Roeck <linux@roeck-us.net> wrote: > On Tue, Apr 12, 2016 at 05:58:20PM +0300, Andy Shevchenko wrote: >> On Tue, Apr 12, 2016 at 4:39 PM, Sudip Mukherjee >> <sudipm.mukherjee@gmail.com> wrote: >> > On Tuesday 12 April 2016 06:36 PM, Guenter Roeck wrote: >> >> > Sorry, I am missing something. do_div() should work fine with any 32 bit value > as divisor, no matter what that value is. Why does it fail here ? And why does > it work if I pass 0x1fffff as second parameter to do_div() directly ? Perhaps compare assembly code in both cases? -- With Best Regards, Andy Shevchenko
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web