linux/drivers
Mike Frysinger b6de860651 rtc-bfin: fix state restoration when resuming
Much (but not all) of the RTC state is kept in the RTC peripheral which
has its own power domain.  Periodically (1 HZ), that state is synced from
one power domain to the other (peripheral->core).  When we are resuming,
we need to wait for the sync to occur so that we don't get a mismatch of
reading undefined state in the rest of the driver.

Further, once the externally maintained bits have been synced back into
the core, we then need to restore the bits maintained in the core.  In our
particular case, that is just the write completion interrupt bit.

If we don't do any of this, working with the RTC causes ~5 second delays
from time to time after waking up due to the write completion interrupt
never firing.

Reported-by: Michael Dean <mdean@aeronix.com>
Reported-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-09-09 18:57:22 -07:00
..
accessibility
acpi Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2010-09-07 16:00:17 -07:00
amba
ata libata-sff: remove harmful BUG_ON from ata_bmdma_qc_issue 2010-08-25 19:24:16 -04:00
atm Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
auxdisplay
base firmware_class: fix typo in error path 2010-08-23 18:12:46 -07:00
block Merge branch 'for-upstream/pvhvm' of git://xenbits.xensource.com/people/ianc/linux-2.6 2010-08-23 18:29:18 -07:00
bluetooth
cdrom
char Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2010-09-08 11:19:18 -07:00
clocksource
connector
cpufreq
cpuidle
crypto [S390] zcrypt: fix Kconfig dependencies 2010-08-13 10:06:54 +02:00
dca
dio
dma Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
edac amd64_edac: Do not report error overflow as a separate error 2010-08-26 12:46:03 +02:00
eisa
firewire firewire: ohci: work around VIA and NEC PHY packet reception bug 2010-08-29 09:17:31 +02:00
firmware Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2010-08-14 12:34:34 -07:00
gpio gpiolib: Implement set_debounce for WM831x GPIOs 2010-08-12 11:27:57 +02:00
gpu Merge branch 'drm-intel-fixes' of git://anongit.freedesktop.org/~ickle/drm-intel 2010-09-07 14:00:43 -07:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2010-08-18 15:29:38 -07:00
hwmon hwmon: (k8temp) Differentiate between AM2 and ASB1 2010-08-25 15:42:12 +02:00
i2c Merge branch 'for-linus/i2c-2636' of git://git.fluff.org/bjdooks/linux 2010-08-14 11:57:54 -07:00
ide
idle Merge branch 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6 2010-08-15 11:17:52 -07:00
ieee1394
ieee802154
infiniband Merge branches 'cxgb3' and 'nes' into for-linus 2010-09-08 14:43:28 -07:00
input Input: i8042 - fix device removal on unload 2010-08-31 18:28:15 -07:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2010-08-23 18:30:30 -07:00
leds Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
lguest
macintosh via-pmu: Add compat_pmu_ioctl 2010-08-24 15:28:28 +10:00
mca
md md: resolve confusion of MD_CHANGE_CLEAN 2010-08-30 18:06:21 +10:00
media V4L/DVB: mantis: Fix IR_CORE dependency 2010-08-24 10:42:08 -07:00
memstick memstick: fix hangs on unexpected device removal in mspro_blk 2010-08-12 08:43:31 -07:00
message fusion: add function parameter names to kernel-doc 2010-08-14 16:21:00 -07:00
mfd Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6 2010-08-12 10:01:30 -07:00
misc Merge branch 'params' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus 2010-08-12 10:01:59 -07:00
mmc mmc: avoid getting CID on SDIO-only cards 2010-09-09 18:57:22 -07:00
mtd UBI: do not oops when erroneous PEB is scheduled for scrubbing 2010-08-30 13:32:31 +03:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2010-09-07 14:06:10 -07:00
nubus
of
oprofile oprofile: fix crash when accessing freed task structs 2010-08-25 09:09:09 +02:00
parisc
parport Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
pci Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2010-09-07 16:00:17 -07:00
pcmcia Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
platform intel_scu_ipc: fix IPC i2c write bug 2010-08-24 10:42:09 -07:00
pnp
power Merge git://git.infradead.org/battery-2.6 2010-08-12 09:58:33 -07:00
pps
ps3
rapidio
regulator
rtc rtc-bfin: fix state restoration when resuming 2010-09-09 18:57:22 -07:00
s390 Input: sysrq - drop tty argument form handle_sysrq() 2010-08-21 00:34:45 -07:00
sbus
scsi drivers/scsi/qla4xxx: fix build 2010-08-20 09:34:56 -07:00
serial serial: bfin_sport_uart: restore transmit frame sync fix 2010-09-03 17:29:04 -07:00
sfi
sh
sn
spi m68knommu: include sched.h in ColdFire/SPI driver 2010-08-18 12:44:31 +10:00
ssb
staging Staging: wlan-ng: Explicitly set some fields in cfg80211 interface 2010-09-03 17:37:16 -07:00
tc
telephony
thermal
uio
usb USB: ftdi_sio: Added custom PIDs for ChamSys products 2010-09-03 17:33:41 -07:00
uwb
vhost vhost: stop worker only if created 2010-09-01 14:26:13 -07:00
video ARM: pxa168fb: fix section mismatch 2010-08-30 09:59:44 +08:00
virtio
vlynq
w1
watchdog watchdog: hpwdt (12/12): Make NMI decoding a compile-time option 2010-08-13 20:54:53 +00:00
xen Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2010-08-28 13:55:31 -07:00
zorro
Kconfig
Makefile