OpenCloudOS-Kernel/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 rtc/hctosys: only claim the RTC provided the system time if it did 2010-03-12 15:52:28 -08:00
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 drivers/rtc/rtc-ab3100.c: add missing platform_set_drvdata() in ab3100_rtc_probe() 2010-09-22 17:22:39 -07:00
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: t reaches -1, tested 0 2009-02-11 14:25:36 -08:00
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: add driver for BQ32000 I2C RTC 2009-12-16 07:20:00 -08:00
rtc-bq4802.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
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: rtc-dm355evm driver 2009-02-05 12:56:46 -08:00
rtc-ds1216.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
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: use set_mmss when set_time is not available 2009-01-06 15:59:25 -08:00
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: add platform driver for EFI 2009-04-01 08:59:24 -07:00
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: fixes and new functionality for fm3130 2010-08-11 08:59:07 -07:00
rtc-generic.c parisc: rtc: Rename rtc-parisc to rtc-generic 2009-04-02 01:05:31 +00:00
rtc-imxdi.c rtc: driver for the DryIce block found in i.MX25 chips 2010-08-11 08:59:07 -07:00
rtc-isl1208.c drivers/rtc/rtc-isl1208.c: add alarm support 2011-03-22 17:44:16 -07:00
rtc-isl12022.c rtc-isl12022: properly handle military hour format 2010-08-11 08:59:08 -07:00
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/m48t86: use rtc_valid_tm() to check returned tm 2010-08-11 08:59:07 -07:00
rtc-max6900.c rtc/max6900: use rtc_valid_tm() to check returning tm 2010-08-11 08:59:07 -07:00
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 include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-pcf8563.c drivers/rtc/rtc-pcf8563.c: remove unused struct 2010-08-11 08:59:06 -07:00
rtc-pcf8583.c rtc: fix driver data issues in several rtc drivers 2009-12-16 07:19:58 -08:00
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 powerpc/ps3: Add rtc-ps3 2009-04-02 01:05:32 +00:00
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 spi: prefix modalias with "spi:" 2009-09-23 07:39:43 -07:00
rtc-rp5c01.c rtc: rp5c01: Initialize drvdata before registering device 2011-05-06 18:02:05 -07:00
rtc-rs5c313.c rtc: rtc-rs5c313: ctrl_in/outX to __raw_read/writeX conversion. 2010-10-27 15:30:32 +09:00
rtc-rs5c348.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
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 drivers/rtc/rtc-rx8581.c: fix setdatetime 2010-07-27 14:32:06 -07:00
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 i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
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: rtc-starfire fixes 2008-11-21 01:24:38 -08:00
rtc-stk17ta8.c sysfs: add struct file* to bin_attr callbacks 2010-05-21 09:37:31 -07:00
rtc-stmp3xxx.c rtc: stmp3xxx: Remove UIE handlers 2011-07-01 18:09:57 -07:00
rtc-sun4v.c rtc: rtc-sun4v fixes, revised 2008-11-14 16:37:54 -08:00
rtc-sysfs.c rtc/hctosys: only claim the RTC provided the system time if it did 2010-03-12 15:52:28 -08:00
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 sysfs: add struct file* to bin_attr callbacks 2010-05-21 09:37:31 -07:00
rtc-v3020.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
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