rtc: m41t80: Workaround broken alarm functionality
The m41t80 driver can read and set the alarm, but it doesn't seem to have a functional alarm irq. This causes failures when the generic core sees alarm functions, but then cannot use them properly for things like UIE mode. Disabling the alarm functions allows proper error reporting, and possible fallback to emulated modes. Once someone fixes the alarm irq functionality, this can be restored. CC: stable@kernel.org CC: Matt Turner <mattst88@gmail.com> CC: Nico Macrionitis <acrux@cruxppc.org> CC: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Reported-by: Matt Turner <mattst88@gmail.com> Reported-by: Nico Macrionitis <acrux@cruxppc.org> Tested-by: Nico Macrionitis <acrux@cruxppc.org> Signed-off-by: John Stultz <john.stultz@linaro.org>
This commit is contained in:
		
					parent
					
						
							
								93b2ec0128
							
						
					
				
			
			
				commit
				
					
						c3b79770e5
					
				
			
		
					 1 changed files with 9 additions and 0 deletions
				
			
		|  | @ -357,10 +357,19 @@ static int m41t80_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *t) | ||||||
| static struct rtc_class_ops m41t80_rtc_ops = { | static struct rtc_class_ops m41t80_rtc_ops = { | ||||||
| 	.read_time = m41t80_rtc_read_time, | 	.read_time = m41t80_rtc_read_time, | ||||||
| 	.set_time = m41t80_rtc_set_time, | 	.set_time = m41t80_rtc_set_time, | ||||||
|  | 	/*
 | ||||||
|  | 	 * XXX - m41t80 alarm functionality is reported broken. | ||||||
|  | 	 * until it is fixed, don't register alarm functions. | ||||||
|  | 	 * | ||||||
| 	.read_alarm = m41t80_rtc_read_alarm, | 	.read_alarm = m41t80_rtc_read_alarm, | ||||||
| 	.set_alarm = m41t80_rtc_set_alarm, | 	.set_alarm = m41t80_rtc_set_alarm, | ||||||
|  | 	*/ | ||||||
| 	.proc = m41t80_rtc_proc, | 	.proc = m41t80_rtc_proc, | ||||||
|  | 	/*
 | ||||||
|  | 	 * See above comment on broken alarm | ||||||
|  | 	 * | ||||||
| 	.alarm_irq_enable = m41t80_rtc_alarm_irq_enable, | 	.alarm_irq_enable = m41t80_rtc_alarm_irq_enable, | ||||||
|  | 	*/ | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| #if defined(CONFIG_RTC_INTF_SYSFS) || defined(CONFIG_RTC_INTF_SYSFS_MODULE) | #if defined(CONFIG_RTC_INTF_SYSFS) || defined(CONFIG_RTC_INTF_SYSFS_MODULE) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 John Stultz
				John Stultz