20 Jan, 2014
1 commit
-
We should set watchdog timer to be disabled in low power mode,
as there is no service running in background, otherwise, system
will reset unexpected.Signed-off-by: Anson Huang
18 Oct, 2013
1 commit
-
commit 8612ed0d97abcf1c016d34755b7cf2060de71963 upstream.
Calling the WDIOC_GETSTATUS & WDIOC_GETBOOTSTATUS and twice will cause a
interruptible deadlock.Signed-off-by: Dan Carpenter
Reviewed-by: Guenter Roeck
Signed-off-by: Wim Van Sebroeck
Cc: Jonghwan Choi
Signed-off-by: Greg Kroah-Hartman
18 May, 2013
1 commit
-
devm_ioremap_resource does sanity checks on the given resource. No need to
duplicate this in the driver.Signed-off-by: Wolfram Sang
09 May, 2013
2 commits
-
A race condition exists when registering the first watchdog device.
Sequence of events:- watchdog_register_device calls watchdog_dev_register
- watchdog_dev_register creates the watchdog misc device by calling
misc_register.
At that time, the matching character device (/dev/watchdog0) does not yet
exist, and old_wdd is not set either.
- Userspace gets an event and opens /dev/watchdog
- watchdog_open is called and sets wdd = old_wdd, which is still NULL,
and tries to dereference it. This causes the kernel to panic.Seen with systemd trying to open /dev/watchdog immediately after
it was created.Reported-by: Arkadiusz Miskiewicz
Signed-off-by: Guenter Roeck
Tested-by: Arkadiusz Miskiewicz
Signed-off-by: Wim Van Sebroeck -
Use the newly introduced devm_ioremap_resource() instead of
devm_request_and_ioremap() which provides more consistent error handling.devm_ioremap_resource() provides its own error messages; so all explicit
error messages can be removed from the failure code paths.Signed-off-by: Sachin Kamat
Reviewed-by: Thierry Reding
Cc: Gabor Juhos
Cc: Paul Mundt
Signed-off-by: Wim Van Sebroeck
14 Apr, 2013
1 commit
-
Compiling the at91rm9200_wdt.c driver without at91rm9200
support was leading to several errors:drivers/built-in.o: In function `at91_wdt_close':
at91_adc.c:(.text+0xc9fe4): undefined reference to `at91_st_base'
drivers/built-in.o: In function `at91_wdt_write':
at91_adc.c:(.text+0xca004): undefined reference to `at91_st_base'
drivers/built-in.o: In function `at91wdt_shutdown':
at91_adc.c:(.text+0xca01c): undefined reference to `at91_st_base'
drivers/built-in.o: In function `at91wdt_suspend':
at91_adc.c:(.text+0xca038): undefined reference to `at91_st_base'
drivers/built-in.o: In function `at91_wdt_open':
at91_adc.c:(.text+0xca0cc): undefined reference to `at91_st_base'
drivers/built-in.o:at91_adc.c:(.text+0xca2c8): more undefined references to
`at91_st_base' followSo, reverting the modification of the "depends" Kconfig line
introduced by patch a6a1bcd37 (watchdog: at91rm9200: add DT support)
seems to be the good solution.Signed-off-by: Nicolas Ferre
Acked-by: Guenter Roeck
Signed-off-by: Wim Van Sebroeck
23 Mar, 2013
2 commits
-
The AcpiMmioSel bit is bit 1 in the AcpiMmioEn register, but the current
sp5100_tco driver is using bit 2.See 2.3.3 Power Management (PM) Registers page 150 of the
AMD SB800-Series Southbridges Register Reference Guide [1].AcpiMmioEn - RW – 8/16/32 bits - [PM_Reg: 24h]
Field Name Bits Default Description
AcpiMMioDecodeEn 0 0b Set to 1 to enable AcpiMMio space.
AcpiMMIoSel 1 0b Set AcpiMMio registers to be memory-mapped or IO-mapped space.
0: Memory-mapped space
1: I/O-mapped spaceThe sp5100_tco driver expects zero as a value of AcpiMmioSel (bit 1).
Fortunately, no problems were caused by this typo, because the default
value of the undocumented misused bit 2 seems to be zero.However, the sp5100_tco driver should use the correct bitmask value.
[1] http://support.amd.com/us/Embedded_TechDocs/45482.pdf
Signed-off-by: Takahisa Tanaka
Signed-off-by: Paul Menzel
Signed-off-by: Wim Van Sebroeck
Cc: stable -
A problem was found on PC's with the SB700 chipset: The PC fails to
load BIOS after running the 3.8.x kernel until the power is completely
cut off. It occurs in all 3.8.x versions and the mainline version as of
2/4. The issue does not occur with the 3.7.x builds.There are two methods for accessing the watchdog registers.
1. Re-programming a resource address obtained by allocate_resource()
to chipset.
2. Use the direct memory-mapped IO access.The method 1 can be used by all the chipsets (SP5100, SB7x0, SB8x0 or
later). However, experience shows that only PC with the SB8x0 (or
later) chipsets can use the method 2.This patch removes the method 1, because the critical problem was found.
That's why the watchdog timer was able to be used on SP5100 and SB7x0
chipsets until now.Link: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1116835
Link: https://lkml.org/lkml/2013/2/14/271Signed-off-by: Takahisa Tanaka
Signed-off-by: Wim Van Sebroeck
Cc: stable
01 Mar, 2013
28 commits
-
The SP805 driver is only used by the Spear machines, and uses
writel_relaxed, which is not available on all architectures.The dependency from CONFIG_ARM avoids compilation problems under
randomconfig when CONFIG_ARM_AMBA is enabled for x86 builds.Signed-off-by: Alessandro Rubini
Acked-by: Giancarlo Asnaghi
Signed-off-by: Davide Ciminaghi
Acked-by: Linus Walleij
Acked-by: Viresh Kumar
Signed-off-by: H. Peter Anvin
Signed-off-by: Wim Van Sebroeck -
Update the code to use devm_* API so that driver
core will manage resources.Signed-off-by: Kumar, Anil
Signed-off-by: Wim Van Sebroeck -
Get the clock using devm_clk_get().
Signed-off-by: Mrugesh Katepallewar
Signed-off-by: Wim Van Sebroeck -
Add DT support for at91rm9200_wdt.
Signed-off-by: Joachim Eastwood
Signed-off-by: Wim Van Sebroeck -
this patchset add the timeout-sec property to the following drivers:
orion_wdt, pnx4008_wdt, s3c2410_wdt and at91sam9_wdt.The at91sam9_wdt is tested on evk-pr3,
the other drivers are compile tested only.Signed-off-by: Fabio Porcedda
Cc: Andrew Lunn
Cc: Jason Cooper
Cc: Wolfram Sang
Cc: Masanari Iida
Cc: Ben Dooks
Cc: Kukjin Kim
Cc: Andrew Victor
Cc: Jean-Christophe PLAGNIOL-VILLARD
Cc: Nicolas Ferre
Signed-off-by: Wim Van Sebroeck -
According to Documentation/watchdog/convert_drivers_to_kernel_api.txt,
remove the file_operations struct, miscdevice, and obsolete includesSince the at91sam watchdog inherent characteristics, add the watchdog
operations: at91wdt_start, at91wdt_stop and at91wdt_ping.Signed-off-by: Wenyou Yang
Signed-off-by: Wim Van Sebroeck
Cc: linux-watchdog@vger.kernel.org
Cc: linux-kernel@vger.kernel.org -
Like other watchdog drivers, this patch adds new option nowayout
which overwrite WATCHDOG_NOWAYOUT.Signed-off-by: Pali Rohar
Signed-off-by: Wim Van Sebroeck -
Add support for watchdog drivers to initialize/set the timeout field
of the watchdog_device structure. The timeout field is initialised
either with the module timeout parameter value (if valid) or with the
timeout-sec dt property (if valid). If both are invalid the initial
value is unchanged.Signed-off-by: Fabio Porcedda
Acked-by: Nicolas Ferre
Signed-off-by: Wim Van Sebroeck -
The more recent devices have a watchdog timer which could be configured
for over 2 hours and not just 2 seconds like the first generation
devices. For those devices do not use the extra software timer, but
directly program the time into the register. This will automatically be
used if the timer supports more than a minute.Signed-off-by: Hauke Mehrtens
Signed-off-by: Wim Van Sebroeck -
Rename wdt_time to timeout to name it like the other watchdog
driver do it.Signed-off-by: Hauke Mehrtens
Signed-off-by: Wim Van Sebroeck -
Rename the methods registered to struct watchdog_ops bcm47xx_wdt_ops in
order to add an other struct watchdog_ops using different ops in the
next patch.
Also rename WDT_MAX_TIME to WDT_SOFTTIMER_MAX.Signed-off-by: Hauke Mehrtens
Signed-off-by: Wim Van Sebroeck -
Instead of accessing the function to set the watchdog timer directly,
register a platform driver the platform could register to use this
watchdog driver.Signed-off-by: Hauke Mehrtens
Signed-off-by: Wim Van Sebroeck -
Convert the bcm47xx_wdt.c driver to the new watchdog core api.
The nowayout parameter is now added unconditionally to the module.
Signed-off-by: Hauke Mehrtens
Signed-off-by: Wim Van Sebroeck -
Signed-off-by: Guenter Roeck
Signed-off-by: Wim Van Sebroeck -
Use devm_* functions to make cleanup paths more simple.
Signed-off-by: Jingoo Han
Signed-off-by: Wim Van Sebroeck -
Now that the new driver is in place, we can remove the old one.
Signed-off-by: Wolfram Sang
Signed-off-by: Wim Van Sebroeck -
Replace the existing STMP3xxx driver because it has enough drawbacks
that a rewrite is apropriate. The new driver is designed to use the
watchdog framework which makes it a lot smaller and avoids open coding
the watchdog API again. It also uses now an explicitly exported function
from the RTC driver to set up its registers (the old driver silently
reused the hopefully(!) already remapped RTC registers). Also, this
driver is mach independent, while the old one depends on a mach replaced
by another one a year ago. Since the user interface is still the
standard watchdog API, users don't need to adapt.Signed-off-by: Wolfram Sang
Signed-off-by: Wim Van Sebroeck -
Introduce Retu watchdog driver.
Cc: linux-watchdog@vger.kernel.org
Acked-by: Felipe Balbi
Acked-by: Tony Lindgren
Signed-off-by: Aaro Koskinen
Signed-off-by: Wim Van Sebroeck -
Kernel symbol X86_MRST has been removed from the kernel.
INTEL_SCU_WATCHDOG driver can never be compiled due dependence of X86_MRST
which remained in the drivers/watchdog/Kconfig.Reported-by: Alexander Shiyan
Cc: Alan Cox
Signed-off-by: Wim Van Sebroeck -
...so that it's automatically picked up on relevant platforms.
Tested on Kirkwood-based GuruPlug.Signed-off-by: Lubomir Rintel
Signed-off-by: Wim Van Sebroeck -
Cc: Grant Likely
Cc: devicetree-discuss@lists.ozlabs.org
Signed-off-by: Gabor Juhos
Signed-off-by: Wim Van Sebroeck -
The ath79_wdt driver uses a fixed memory address
currently. Although this is working with each
currently supported SoCs, but this may change
in the future. Additionally, the driver includes
platform specific header files in order to be
able to get the memory base of the watchdog
device.The patch adds a memory resource to the platform
device, and converts the driver to get the base
address of the watchdog device from that.Signed-off-by: Gabor Juhos
Signed-off-by: Wim Van Sebroeck -
Use the managed version of clk_get. This allows to
simplify the probe/remove functions a bit.Signed-off-by: Gabor Juhos
Signed-off-by: Wim Van Sebroeck -
In case of SP5100 or SB7x0 chipsets, the sp5100_tco module writes zero to
reserved bits. The module, however, shouldn't depend on specific default
value, and should perform a read-merge-write operation for the reserved
bits.This patch makes the sp5100_tco module perform a read-merge-write operation
on all the chipset (sp5100, sb7x0, sb8x0 or later).Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43176
Signed-off-by: Takahisa Tanaka
Tested-by: Paul Menzel
Signed-off-by: Wim Van Sebroeck
Cc: stable -
In case of SB800 or later chipset and re-programming MMIO address(*),
sp5100_tco module may read incorrect value of reserved bit, because the module
reads a value from an incorrect I/O address. However, this bug doesn't cause
a problem, because when re-programming MMIO address, by chance the module
writes zero (this is BIOS's default value) to the low three bits of register.
* In most cases, PC with SB8x0 or later chipset doesn't need to re-programming
MMIO address, because such PC can enable AcpiMmio and can use 0xfed80b00 for
watchdog register base address.This patch fixes this bug.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43176
Signed-off-by: Takahisa Tanaka
Tested-by: Paul Menzel
Signed-off-by: Wim Van Sebroeck
Cc: stable -
this module missed a remove callback in the platform ops.
Signed-off-by: Devendra Naga
Signed-off-by: Wim Van Sebroeck -
The device IDs are referenced by the driver and potentially
used beyond the init time, as kbuild correctly warns
about. Remove the __initconst annotation.Without this patch, building at91_dt_defconfig results in:
WARNING: drivers/watchdog/built-in.o(.data+0x28): Section mismatch in reference from the variable at91wdt_driver to the (unknown reference) .init.rodata:(unknown)
The variable at91wdt_driver references
the (unknown reference) __initconst (unknown)Signed-off-by: Arnd Bergmann
Acked-by: Nicolas Ferre
Tested-by: Fabio Porcedda
Signed-off-by: Wim Van Sebroeck
Cc: linux-watchdog@vger.kernel.org -
DA9055_WATCHDOG (introduced in v3.8) needs to select WATCHDOG_CORE so that it will
build cleanly. Fixes these build errors:da9055_wdt.c:(.text+0xe9bc7): undefined reference to `watchdog_unregister_device'
da9055_wdt.c:(.text+0xe9f4b): undefined reference to `watchdog_register_device'Signed-off-by: Randy Dunlap
Cc: David Dajun Chen
Signed-off-by: Wim Van Sebroeck
Cc: linux-watchdog@vger.kernel.org
Cc: stable
27 Feb, 2013
1 commit
-
Pull vfs pile (part one) from Al Viro:
"Assorted stuff - cleaning namei.c up a bit, fixing ->d_name/->d_parent
locking violations, etc.The most visible changes here are death of FS_REVAL_DOT (replaced with
"has ->d_weak_revalidate()") and a new helper getting from struct file
to inode. Some bits of preparation to xattr method interface changes.Misc patches by various people sent this cycle *and* ocfs2 fixes from
several cycles ago that should've been upstream right then.PS: the next vfs pile will be xattr stuff."
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (46 commits)
saner proc_get_inode() calling conventions
proc: avoid extra pde_put() in proc_fill_super()
fs: change return values from -EACCES to -EPERM
fs/exec.c: make bprm_mm_init() static
ocfs2/dlm: use GFP_ATOMIC inside a spin_lock
ocfs2: fix possible use-after-free with AIO
ocfs2: Fix oops in ocfs2_fast_symlink_readpage() code path
get_empty_filp()/alloc_file() leave both ->f_pos and ->f_version zero
target: writev() on single-element vector is pointless
export kernel_write(), convert open-coded instances
fs: encode_fh: return FILEID_INVALID if invalid fid_type
kill f_vfsmnt
vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op
nfsd: handle vfs_getattr errors in acl protocol
switch vfs_getattr() to struct path
default SET_PERSONALITY() in linux/elf.h
ceph: prepopulate inodes only when request is aborted
d_hash_and_lookup(): export, switch open-coded instances
9p: switch v9fs_set_create_acl() to inode+fid, do it before d_instantiate()
9p: split dropping the acls from v9fs_set_create_acl()
...
25 Feb, 2013
1 commit
-
Pull MFS updates from Samuel Ortiz:
"This is the MFD pull request for the 3.9 merge window.No new drivers this time, but a bunch of fairly big cleanups:
- Roger Quadros worked on a OMAP USBHS and TLL platform data
consolidation, OMAP5 support and clock management code cleanup.- The first step of a major sync for the ab8500 driver from Lee
Jones. In particular, the debugfs and the sysct interfaces got
extended and improved.- Peter Ujfalusi sent a nice patchset for cleaning and fixing the
twl-core driver, with a much needed module id lookup code
improvement.- The regular wm5102 and arizona cleanups and fixes from Mark Brown.
- Laxman Dewangan extended the palmas APIs in order to implement the
palmas GPIO and rt drivers.- Laxman also added DT support for the tps65090 driver.
- The Intel SCH and ICH drivers got a couple fixes from Aaron Sierra
and Darren Hart.- Linus Walleij patchset for the ab8500 driver allowed ab8500 and
ab9540 based devices to switch to the new abx500 pin-ctrl driver.- The max8925 now has device tree and irqdomain support thanks to
Qing Xu.- The recently added rtsx driver got a few cleanups and fixes for a
better card detection code path and now also supports the RTS5227
chipset, thanks to Wei Wang and Roger Tseng."* tag 'mfd-3.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (109 commits)
mfd: lpc_ich: Use devres API to allocate private data
mfd: lpc_ich: Add Device IDs for Intel Wellsburg PCH
mfd: lpc_sch: Accomodate partial population of the MFD devices
mfd: da9052-i2c: Staticize da9052_i2c_fix()
mfd: syscon: Fix sparse warning
mfd: twl-core: Fix kernel panic on boot
mfd: rtsx: Fix issue that booting OS with SD card inserted
mfd: ab8500: Fix compile error
mfd: Add missing GENERIC_HARDIRQS dependecies
Documentation: Add docs for max8925 dt
mfd: max8925: Add dts
mfd: max8925: Support dt for backlight
mfd: max8925: Fix onkey driver irq base
mfd: max8925: Fix mfd device register failure
mfd: max8925: Add irqdomain for dt
mfd: vexpress: Allow vexpress-sysreg to self-initialise
mfd: rtsx: Support RTS5227
mfd: rtsx: Implement driving adjustment to device-dependent callbacks
mfd: vexpress: Add pseudo-GPIO based LEDs
mfd: ab8500: Rename ab8500 to abx500 for hwmon driver
...
23 Feb, 2013
1 commit
-
Signed-off-by: Al Viro
14 Feb, 2013
1 commit
-
This patch adds support for the ux500_wdt watchdog that is found in
ST-Ericsson Ux500 platform. The driver is based on PRCMU APIs.Acked-by: Linus Walleij
Acked-by: Lee Jones
Acked-by: Wim Van Sebroeck
Signed-off-by: Fabio Baltieri
Signed-off-by: Samuel Ortiz