diff options
Diffstat (limited to 'drivers/rtc/rtc-mv.c')
| -rw-r--r-- | drivers/rtc/rtc-mv.c | 20 | 
1 files changed, 7 insertions, 13 deletions
diff --git a/drivers/rtc/rtc-mv.c b/drivers/rtc/rtc-mv.c index bcca4729855..60627a76451 100644 --- a/drivers/rtc/rtc-mv.c +++ b/drivers/rtc/rtc-mv.c @@ -169,25 +169,19 @@ static int mv_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alm)  	return 0;  } -static int mv_rtc_ioctl(struct device *dev, unsigned int cmd, -			unsigned long arg) +static int mv_rtc_alarm_irq_enable(struct device *dev, unsigned int enabled)  {  	struct platform_device *pdev = to_platform_device(dev);  	struct rtc_plat_data *pdata = platform_get_drvdata(pdev);  	void __iomem *ioaddr = pdata->ioaddr;  	if (pdata->irq < 0) -		return -ENOIOCTLCMD; /* fall back into rtc-dev's emulation */ -	switch (cmd) { -	case RTC_AIE_OFF: -		writel(0, ioaddr + RTC_ALARM_INTERRUPT_MASK_REG_OFFS); -		break; -	case RTC_AIE_ON: +		return -EINVAL; /* fall back into rtc-dev's emulation */ + +	if (enabled)  		writel(1, ioaddr + RTC_ALARM_INTERRUPT_MASK_REG_OFFS); -		break; -	default: -		return -ENOIOCTLCMD; -	} +	else +		writel(0, ioaddr + RTC_ALARM_INTERRUPT_MASK_REG_OFFS);  	return 0;  } @@ -216,7 +210,7 @@ static const struct rtc_class_ops mv_rtc_alarm_ops = {  	.set_time	= mv_rtc_set_time,  	.read_alarm	= mv_rtc_read_alarm,  	.set_alarm	= mv_rtc_set_alarm, -	.ioctl		= mv_rtc_ioctl, +	.alarm_irq_enable = mv_rtc_alarm_irq_enable,  };  static int __devinit mv_rtc_probe(struct platform_device *pdev)  |