linux/drivers/rtc
MyungJoo Ham 62d1760180 drivers/rtc/rtc-s3c.c: allow multiple open / allow no-ioctl-open'ed rtc to have irq.
The previous rtc-s3c had two issues related with its IRQ.

1. Users cannot open rtc multiple times because an open operation
   calls request_irq on the same IRQ.  (e.g., two user processes wants to
   open and read RTC time from rtc-s3c at the same time)

2. If alarm is set and no one has the rtc opened with filesystem
   (either the alarm is set by kernel/boot-loader or user set an alarm and
   closed rtc dev file), the pending bit is not cleared and no further
   interrupt is invoked.  When the alarm is used by the system itself such
   as a resume from suspend-to-RAM or other Low-power modes/idle, this is
   a critical issue.

This patch mitigates these issues by calling request_irq at probe and
free_irq at remove.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Changhwan Youn <chaos.youn@samsung.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-08-25 18:51:00 -07:00
..
Kconfig drivers/rtc: add support for Qualcomm PMIC8xxx RTC 2011-07-25 20:57:17 -07:00
Makefile drivers/rtc: add support for Qualcomm PMIC8xxx RTC 2011-07-25 20:57:17 -07:00
class.c rtc: Avoid accumulating time drift in suspend/resume 2011-06-21 16:55:39 -07:00
hctosys.c
interface.c rtc: fix hrtimer deadlock 2011-07-26 16:49:42 -07:00
rtc-88pm860x.c mfd: Add rtc support to 88pm860x 2011-05-26 19:45:34 +02:00
rtc-ab3100.c
rtc-ab8500.c mfd: Align ab8500 with the abx500 interface 2010-10-29 00:29:19 +02:00
rtc-at32ap700x.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
rtc-at91rm9200.c Fix common misspellings 2011-03-31 11:26:23 -03:00
rtc-at91sam9.c RTC: Clean out UIE icotl implementations 2011-03-09 11:24:54 -08:00
rtc-au1xxx.c
rtc-bfin.c Merge branch 'fortglx/39/tip/timers/rtc' of git://git.linaro.org/people/jstultz/linux into timers/urgent 2011-04-13 01:54:09 +02:00
rtc-bq32k.c
rtc-bq4802.c
rtc-cmos.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
rtc-coh901331.c rtc: fix coh901331 startup crash 2011-04-20 18:46:56 +02:00
rtc-core.h
rtc-davinci.c rtc: davinci: Initialize drvdata before registering device 2011-05-06 17:41:06 -07:00
rtc-dev.c rtc: Fix ioctl error path return 2011-06-01 19:29:39 -07:00
rtc-dm355evm.c
rtc-ds1216.c
rtc-ds1286.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
rtc-ds1302.c sh: mach-snapgear: Kill off machtype, consolidate board def. 2010-10-29 19:06:53 +09:00
rtc-ds1305.c RTC: Convert rtc drivers to use the alarm_irq_enable method 2011-02-03 13:02:35 -08:00
rtc-ds1307.c drivers/rtc/rtc-ds1307.c: add support for RTC device pt7c4338 2011-06-27 18:00:12 -07:00
rtc-ds1374.c rtc: convert DS1374 to dev_pm_ops 2011-03-22 17:44:16 -07:00
rtc-ds1390.c spi/rtc-{ds1390,ds3234,m41t94}: Use spi_get_drvdata() for SPI devices 2011-03-17 10:32:47 -06:00
rtc-ds1511.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
rtc-ds1553.c RTC: Cleanup rtc_class_ops->update_irq_enable() 2011-03-09 11:23:37 -08:00
rtc-ds1672.c
rtc-ds1742.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
rtc-ds3232.c RTC: Cleanup rtc_class_ops->update_irq_enable() 2011-03-09 11:23:37 -08:00
rtc-ds3234.c spi/rtc-{ds1390,ds3234,m41t94}: Use spi_get_drvdata() for SPI devices 2011-03-17 10:32:47 -06:00
rtc-efi.c
rtc-em3027.c rtc: add EM3027 rtc driver 2011-05-26 17:12:33 -07:00
rtc-ep93xx.c rtc: ep93xx: Initialize drvdata before registering device 2011-05-06 17:42:04 -07:00
rtc-fm3130.c
rtc-generic.c
rtc-imxdi.c
rtc-isl1208.c drivers/rtc/rtc-isl1208.c: add alarm support 2011-03-22 17:44:16 -07:00
rtc-isl12022.c
rtc-jz4740.c RTC: Cleanup rtc_class_ops->update_irq_enable() 2011-03-09 11:23:37 -08:00
rtc-lib.c RTC: Rework RTC code to use timerqueue for events 2010-12-10 22:24:24 -08:00
rtc-lpc32xx.c Fix common misspellings 2011-03-31 11:26:23 -03:00
rtc-m41t80.c rtc: m41t80: Initialize clientdata before registering device 2011-05-06 18:01:02 -07:00
rtc-m41t93.c spi/rtc-m41t93: Use spi_get_drvdata() for SPI devices 2011-06-08 14:33:48 -06:00
rtc-m41t94.c spi/rtc-{ds1390,ds3234,m41t94}: Use spi_get_drvdata() for SPI devices 2011-03-17 10:32:47 -06:00
rtc-m48t35.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
rtc-m48t59.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
rtc-m48t86.c
rtc-max6900.c
rtc-max6902.c rtc: rtc-max6902 - set driver data in max6902_probe() 2011-01-13 08:03:12 -08:00
rtc-max8925.c rtc: max8925: Initialize drvdata before registering device 2011-05-06 18:02:00 -07:00
rtc-max8998.c rtc: max8998: Initialize drvdata before registering device 2011-05-06 18:02:02 -07:00
rtc-mc13xxx.c rtc: mc13xxx: Don't call rtc_device_register while holding lock 2011-05-06 18:02:07 -07:00
rtc-mpc5121.c drivers/rtc/rtc-mpc5121.c: add support for RTC on MPC5200 2011-07-25 20:57:17 -07:00
rtc-mrst.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
rtc-msm6242.c rtc: msm6242: Initialize drvdata before registering device 2011-05-06 18:02:03 -07:00
rtc-mv.c RTC: Convert rtc drivers to use the alarm_irq_enable method 2011-02-03 13:02:35 -08:00
rtc-mxc.c drivers/rtc/rtc-mxc.c: remove defines already included in rtc.h 2011-05-26 17:12:33 -07:00
rtc-nuc900.c RTC: Cleanup rtc_class_ops->update_irq_enable() 2011-03-09 11:23:37 -08:00
rtc-omap.c rtc-omap: fix initialization of control register 2011-08-03 14:25:20 -10:00
rtc-pcap.c rtc: pcap: Initialize drvdata before registering device 2011-05-06 18:02:04 -07:00
rtc-pcf2123.c
rtc-pcf8563.c
rtc-pcf8583.c
rtc-pcf50633.c drivers/rtc/rtc-pcf50633.c: don't request update IRQ 2011-05-26 17:12:33 -07:00
rtc-pl030.c Merge branches 'defcfg', 'drivers' and 'cyberpro-next' of master.kernel.org:/home/rmk/linux-2.6-arm 2011-03-17 18:48:35 -07:00
rtc-pl031.c Merge branches 'defcfg', 'drivers' and 'cyberpro-next' of master.kernel.org:/home/rmk/linux-2.6-arm 2011-03-17 18:48:35 -07:00
rtc-pm8xxx.c drivers/rtc: add support for Qualcomm PMIC8xxx RTC 2011-07-25 20:57:17 -07:00
rtc-proc.c RTC: Include information about UIE and PIE in RTC driver proc. 2011-03-09 11:25:04 -08:00
rtc-ps3.c
rtc-puv3.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
rtc-pxa.c RTC: Cleanup rtc_class_ops->update_irq_enable() 2011-03-09 11:23:37 -08:00
rtc-r9701.c
rtc-rp5c01.c rtc: rp5c01: Initialize drvdata before registering device 2011-05-06 18:02:05 -07:00
rtc-rs5c313.c
rtc-rs5c348.c
rtc-rs5c372.c RTC: Clean out UIE icotl implementations 2011-03-09 11:24:54 -08:00
rtc-rv3029c2.c rtc: add rv3029c2 RTC support 2011-05-26 17:12:33 -07:00
rtc-rx8025.c RTC: Cleanup rtc_class_ops->irq_set_state 2011-03-09 11:23:34 -08:00
rtc-rx8581.c
rtc-s3c.c drivers/rtc/rtc-s3c.c: allow multiple open / allow no-ioctl-open'ed rtc to have irq. 2011-08-25 18:51:00 -07:00
rtc-s35390a.c
rtc-sa1100.c RTC: sa1100: Update the sa1100 RTC driver. 2011-03-09 11:25:08 -08:00
rtc-sh.c drivers: Final irq namespace conversion 2011-03-29 14:48:19 +02:00
rtc-spear.c rtc: add support for spear rtc 2011-05-26 17:12:33 -07:00
rtc-starfire.c
rtc-stk17ta8.c
rtc-stmp3xxx.c rtc: stmp3xxx: Remove UIE handlers 2011-07-01 18:09:57 -07:00
rtc-sun4v.c
rtc-sysfs.c
rtc-tegra.c drivers/rtc/rtc-tegra.c: properly initialize spinlock 2011-07-25 20:57:17 -07:00
rtc-test.c RTC: Fix the cross interrupt issue on rtc-test. 2011-03-09 11:25:07 -08:00
rtc-tile.c tile: add an RTC driver for the Tilera hypervisor 2011-05-17 14:44:36 -04:00
rtc-twl.c drivers/rtc/rtc-twl.c: check return value of twl_rtc_write_u8() in twl_rtc_set_time() 2011-07-25 20:57:17 -07:00
rtc-tx4939.c
rtc-v3020.c
rtc-vr41xx.c RTC: Cleanup rtc_class_ops->irq_set_freq() 2011-03-09 11:23:35 -08:00
rtc-vt8500.c rtc: vt8500: Use define instead of hardcoded value for status bit 2011-07-01 17:59:36 -07:00
rtc-wm831x.c RTC: Cleanup rtc_class_ops->update_irq_enable() 2011-03-09 11:23:37 -08:00
rtc-wm8350.c RTC: Cleanup rtc_class_ops->update_irq_enable() 2011-03-09 11:23:37 -08:00
rtc-x1205.c Fix common misspellings 2011-03-31 11:26:23 -03:00