Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

RTC: Cleanup rtc_class_ops->update_irq_enable()

Now that the generic code handles UIE mode irqs via periodic
alarm interrupts, no one calls the
rtc_class_ops->update_irq_enable() method anymore.

This patch removes the driver hooks and implementations of
update_irq_enable if no one else is calling it.

CC: Thomas Gleixner <tglx@linutronix.de>
CC: Alessandro Zummo <a.zummo@towertech.it>
CC: Marcelo Roberto Jimenez <mroberto@cpti.cetuc.puc-rio.br>
CC: rtc-linux@googlegroups.com
Signed-off-by: John Stultz <john.stultz@linaro.org>

+1 -237
-20
drivers/rtc/rtc-cmos.c
··· 394 394 return 0; 395 395 } 396 396 397 - static int cmos_update_irq_enable(struct device *dev, unsigned int enabled) 398 - { 399 - struct cmos_rtc *cmos = dev_get_drvdata(dev); 400 - unsigned long flags; 401 - 402 - if (!is_valid_irq(cmos->irq)) 403 - return -EINVAL; 404 - 405 - spin_lock_irqsave(&rtc_lock, flags); 406 - 407 - if (enabled) 408 - cmos_irq_enable(cmos, RTC_UIE); 409 - else 410 - cmos_irq_disable(cmos, RTC_UIE); 411 - 412 - spin_unlock_irqrestore(&rtc_lock, flags); 413 - return 0; 414 - } 415 - 416 397 #if defined(CONFIG_RTC_INTF_PROC) || defined(CONFIG_RTC_INTF_PROC_MODULE) 417 398 418 399 static int cmos_procfs(struct device *dev, struct seq_file *seq) ··· 439 458 .set_alarm = cmos_set_alarm, 440 459 .proc = cmos_procfs, 441 460 .alarm_irq_enable = cmos_alarm_irq_enable, 442 - .update_irq_enable = cmos_update_irq_enable, 443 461 }; 444 462 445 463 /*----------------------------------------------------------------*/
-17
drivers/rtc/rtc-ds1511.c
··· 397 397 return 0; 398 398 } 399 399 400 - static int ds1511_rtc_update_irq_enable(struct device *dev, 401 - unsigned int enabled) 402 - { 403 - struct platform_device *pdev = to_platform_device(dev); 404 - struct rtc_plat_data *pdata = platform_get_drvdata(pdev); 405 - 406 - if (pdata->irq <= 0) 407 - return -EINVAL; 408 - if (enabled) 409 - pdata->irqen |= RTC_UF; 410 - else 411 - pdata->irqen &= ~RTC_UF; 412 - ds1511_rtc_update_alarm(pdata); 413 - return 0; 414 - } 415 - 416 400 static const struct rtc_class_ops ds1511_rtc_ops = { 417 401 .read_time = ds1511_rtc_read_time, 418 402 .set_time = ds1511_rtc_set_time, 419 403 .read_alarm = ds1511_rtc_read_alarm, 420 404 .set_alarm = ds1511_rtc_set_alarm, 421 405 .alarm_irq_enable = ds1511_rtc_alarm_irq_enable, 422 - .update_irq_enable = ds1511_rtc_update_irq_enable, 423 406 }; 424 407 425 408 static ssize_t
-17
drivers/rtc/rtc-ds1553.c
··· 227 227 return 0; 228 228 } 229 229 230 - static int ds1553_rtc_update_irq_enable(struct device *dev, 231 - unsigned int enabled) 232 - { 233 - struct platform_device *pdev = to_platform_device(dev); 234 - struct rtc_plat_data *pdata = platform_get_drvdata(pdev); 235 - 236 - if (pdata->irq <= 0) 237 - return -EINVAL; 238 - if (enabled) 239 - pdata->irqen |= RTC_UF; 240 - else 241 - pdata->irqen &= ~RTC_UF; 242 - ds1553_rtc_update_alarm(pdata); 243 - return 0; 244 - } 245 - 246 230 static const struct rtc_class_ops ds1553_rtc_ops = { 247 231 .read_time = ds1553_rtc_read_time, 248 232 .set_time = ds1553_rtc_set_time, 249 233 .read_alarm = ds1553_rtc_read_alarm, 250 234 .set_alarm = ds1553_rtc_set_alarm, 251 235 .alarm_irq_enable = ds1553_rtc_alarm_irq_enable, 252 - .update_irq_enable = ds1553_rtc_update_irq_enable, 253 236 }; 254 237 255 238 static ssize_t ds1553_nvram_read(struct file *filp, struct kobject *kobj,
-18
drivers/rtc/rtc-ds3232.c
··· 339 339 return 0; 340 340 } 341 341 342 - static int ds3232_update_irq_enable(struct device *dev, unsigned int enabled) 343 - { 344 - struct i2c_client *client = to_i2c_client(dev); 345 - struct ds3232 *ds3232 = i2c_get_clientdata(client); 346 - 347 - if (client->irq <= 0) 348 - return -EINVAL; 349 - 350 - if (enabled) 351 - ds3232->rtc->irq_data |= RTC_UF; 352 - else 353 - ds3232->rtc->irq_data &= ~RTC_UF; 354 - 355 - ds3232_update_alarm(client); 356 - return 0; 357 - } 358 - 359 342 static irqreturn_t ds3232_irq(int irq, void *dev_id) 360 343 { 361 344 struct i2c_client *client = dev_id; ··· 389 406 .read_alarm = ds3232_read_alarm, 390 407 .set_alarm = ds3232_set_alarm, 391 408 .alarm_irq_enable = ds3232_alarm_irq_enable, 392 - .update_irq_enable = ds3232_update_irq_enable, 393 409 }; 394 410 395 411 static int __devinit ds3232_probe(struct i2c_client *client,
-7
drivers/rtc/rtc-jz4740.c
··· 168 168 return ret; 169 169 } 170 170 171 - static int jz4740_rtc_update_irq_enable(struct device *dev, unsigned int enable) 172 - { 173 - struct jz4740_rtc *rtc = dev_get_drvdata(dev); 174 - return jz4740_rtc_ctrl_set_bits(rtc, JZ_RTC_CTRL_1HZ_IRQ, enable); 175 - } 176 - 177 171 static int jz4740_rtc_alarm_irq_enable(struct device *dev, unsigned int enable) 178 172 { 179 173 struct jz4740_rtc *rtc = dev_get_drvdata(dev); ··· 179 185 .set_mmss = jz4740_rtc_set_mmss, 180 186 .read_alarm = jz4740_rtc_read_alarm, 181 187 .set_alarm = jz4740_rtc_set_alarm, 182 - .update_irq_enable = jz4740_rtc_update_irq_enable, 183 188 .alarm_irq_enable = jz4740_rtc_alarm_irq_enable, 184 189 }; 185 190
-7
drivers/rtc/rtc-mc13xxx.c
··· 282 282 return IRQ_HANDLED; 283 283 } 284 284 285 - static int mc13xxx_rtc_update_irq_enable(struct device *dev, 286 - unsigned int enabled) 287 - { 288 - return mc13xxx_rtc_irq_enable(dev, enabled, MC13XXX_IRQ_1HZ); 289 - } 290 - 291 285 static int mc13xxx_rtc_alarm_irq_enable(struct device *dev, 292 286 unsigned int enabled) 293 287 { ··· 294 300 .read_alarm = mc13xxx_rtc_read_alarm, 295 301 .set_alarm = mc13xxx_rtc_set_alarm, 296 302 .alarm_irq_enable = mc13xxx_rtc_alarm_irq_enable, 297 - .update_irq_enable = mc13xxx_rtc_update_irq_enable, 298 303 }; 299 304 300 305 static irqreturn_t mc13xxx_rtc_reset_handler(int irq, void *dev)
-20
drivers/rtc/rtc-mpc5121.c
··· 240 240 return 0; 241 241 } 242 242 243 - static int mpc5121_rtc_update_irq_enable(struct device *dev, 244 - unsigned int enabled) 245 - { 246 - struct mpc5121_rtc_data *rtc = dev_get_drvdata(dev); 247 - struct mpc5121_rtc_regs __iomem *regs = rtc->regs; 248 - int val; 249 - 250 - val = in_8(&regs->int_enable); 251 - 252 - if (enabled) 253 - val = (val & ~0x8) | 0x1; 254 - else 255 - val &= ~0x1; 256 - 257 - out_8(&regs->int_enable, val); 258 - 259 - return 0; 260 - } 261 - 262 243 static const struct rtc_class_ops mpc5121_rtc_ops = { 263 244 .read_time = mpc5121_rtc_read_time, 264 245 .set_time = mpc5121_rtc_set_time, 265 246 .read_alarm = mpc5121_rtc_read_alarm, 266 247 .set_alarm = mpc5121_rtc_set_alarm, 267 248 .alarm_irq_enable = mpc5121_rtc_alarm_irq_enable, 268 - .update_irq_enable = mpc5121_rtc_update_irq_enable, 269 249 }; 270 250 271 251 static int __devinit mpc5121_rtc_probe(struct platform_device *op,
-7
drivers/rtc/rtc-mxc.c
··· 274 274 return 0; 275 275 } 276 276 277 - static int mxc_rtc_update_irq_enable(struct device *dev, unsigned int enabled) 278 - { 279 - mxc_rtc_irq_enable(dev, RTC_1HZ_BIT, enabled); 280 - return 0; 281 - } 282 - 283 277 /* 284 278 * This function reads the current RTC time into tm in Gregorian date. 285 279 */ ··· 362 368 .read_alarm = mxc_rtc_read_alarm, 363 369 .set_alarm = mxc_rtc_set_alarm, 364 370 .alarm_irq_enable = mxc_rtc_alarm_irq_enable, 365 - .update_irq_enable = mxc_rtc_update_irq_enable, 366 371 }; 367 372 368 373 static int __init mxc_rtc_probe(struct platform_device *pdev)
-15
drivers/rtc/rtc-nuc900.c
··· 134 134 gettm->bcd_hour = bin2bcd(settm->tm_hour) << 16; 135 135 } 136 136 137 - static int nuc900_update_irq_enable(struct device *dev, unsigned int enabled) 138 - { 139 - struct nuc900_rtc *rtc = dev_get_drvdata(dev); 140 - 141 - if (enabled) 142 - __raw_writel(__raw_readl(rtc->rtc_reg + REG_RTC_RIER)| 143 - (TICKINTENB), rtc->rtc_reg + REG_RTC_RIER); 144 - else 145 - __raw_writel(__raw_readl(rtc->rtc_reg + REG_RTC_RIER)& 146 - (~TICKINTENB), rtc->rtc_reg + REG_RTC_RIER); 147 - 148 - return 0; 149 - } 150 - 151 137 static int nuc900_alarm_irq_enable(struct device *dev, unsigned int enabled) 152 138 { 153 139 struct nuc900_rtc *rtc = dev_get_drvdata(dev); ··· 220 234 .read_alarm = nuc900_rtc_read_alarm, 221 235 .set_alarm = nuc900_rtc_set_alarm, 222 236 .alarm_irq_enable = nuc900_alarm_irq_enable, 223 - .update_irq_enable = nuc900_update_irq_enable, 224 237 }; 225 238 226 239 static int __devinit nuc900_rtc_probe(struct platform_device *pdev)
-6
drivers/rtc/rtc-pcap.c
··· 131 131 return pcap_rtc_irq_enable(dev, PCAP_IRQ_TODA, en); 132 132 } 133 133 134 - static int pcap_rtc_update_irq_enable(struct device *dev, unsigned int en) 135 - { 136 - return pcap_rtc_irq_enable(dev, PCAP_IRQ_1HZ, en); 137 - } 138 - 139 134 static const struct rtc_class_ops pcap_rtc_ops = { 140 135 .read_time = pcap_rtc_read_time, 141 136 .read_alarm = pcap_rtc_read_alarm, 142 137 .set_alarm = pcap_rtc_set_alarm, 143 138 .set_mmss = pcap_rtc_set_mmss, 144 139 .alarm_irq_enable = pcap_rtc_alarm_irq_enable, 145 - .update_irq_enable = pcap_rtc_update_irq_enable, 146 140 }; 147 141 148 142 static int __devinit pcap_rtc_probe(struct platform_device *pdev)
+1 -21
drivers/rtc/rtc-pcf50633.c
··· 106 106 return 0; 107 107 } 108 108 109 - static int 110 - pcf50633_rtc_update_irq_enable(struct device *dev, unsigned int enabled) 111 - { 112 - struct pcf50633_rtc *rtc = dev_get_drvdata(dev); 113 - int err; 114 - 115 - if (enabled) 116 - err = pcf50633_irq_unmask(rtc->pcf, PCF50633_IRQ_SECOND); 117 - else 118 - err = pcf50633_irq_mask(rtc->pcf, PCF50633_IRQ_SECOND); 119 - 120 - if (err < 0) 121 - return err; 122 - 123 - rtc->second_enabled = enabled; 124 - 125 - return 0; 126 - } 127 - 128 109 static int pcf50633_rtc_read_time(struct device *dev, struct rtc_time *tm) 129 110 { 130 111 struct pcf50633_rtc *rtc; ··· 243 262 .set_time = pcf50633_rtc_set_time, 244 263 .read_alarm = pcf50633_rtc_read_alarm, 245 264 .set_alarm = pcf50633_rtc_set_alarm, 246 - .alarm_irq_enable = pcf50633_rtc_alarm_irq_enable, 247 - .update_irq_enable = pcf50633_rtc_update_irq_enable, 265 + .alarm_irq_enable = pcf50633_rtc_alarm_irq_enable, 248 266 }; 249 267 250 268 static void pcf50633_rtc_irq(int irq, void *data)
-16
drivers/rtc/rtc-pxa.c
··· 224 224 return 0; 225 225 } 226 226 227 - static int pxa_update_irq_enable(struct device *dev, unsigned int enabled) 228 - { 229 - struct pxa_rtc *pxa_rtc = dev_get_drvdata(dev); 230 - 231 - spin_lock_irq(&pxa_rtc->lock); 232 - 233 - if (enabled) 234 - rtsr_set_bits(pxa_rtc, RTSR_HZE); 235 - else 236 - rtsr_clear_bits(pxa_rtc, RTSR_HZE); 237 - 238 - spin_unlock_irq(&pxa_rtc->lock); 239 - return 0; 240 - } 241 - 242 227 static int pxa_rtc_read_time(struct device *dev, struct rtc_time *tm) 243 228 { 244 229 struct pxa_rtc *pxa_rtc = dev_get_drvdata(dev); ··· 305 320 .read_alarm = pxa_rtc_read_alarm, 306 321 .set_alarm = pxa_rtc_set_alarm, 307 322 .alarm_irq_enable = pxa_alarm_irq_enable, 308 - .update_irq_enable = pxa_update_irq_enable, 309 323 .proc = pxa_rtc_proc, 310 324 }; 311 325
-15
drivers/rtc/rtc-stmp3xxx.c
··· 115 115 return 0; 116 116 } 117 117 118 - static int stmp3xxx_update_irq_enable(struct device *dev, unsigned int enabled) 119 - { 120 - struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); 121 - 122 - if (enabled) 123 - stmp3xxx_setl(BM_RTC_CTRL_ONEMSEC_IRQ_EN, 124 - rtc_data->io + HW_RTC_CTRL); 125 - else 126 - stmp3xxx_clearl(BM_RTC_CTRL_ONEMSEC_IRQ_EN, 127 - rtc_data->io + HW_RTC_CTRL); 128 - return 0; 129 - } 130 - 131 118 static int stmp3xxx_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alm) 132 119 { 133 120 struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); ··· 136 149 static struct rtc_class_ops stmp3xxx_rtc_ops = { 137 150 .alarm_irq_enable = 138 151 stmp3xxx_alarm_irq_enable, 139 - .update_irq_enable = 140 - stmp3xxx_update_irq_enable, 141 152 .read_time = stmp3xxx_rtc_gettime, 142 153 .set_mmss = stmp3xxx_rtc_set_mmss, 143 154 .read_alarm = stmp3xxx_rtc_read_alarm,
-13
drivers/rtc/rtc-twl.c
··· 213 213 return ret; 214 214 } 215 215 216 - static int twl_rtc_update_irq_enable(struct device *dev, unsigned enabled) 217 - { 218 - int ret; 219 - 220 - if (enabled) 221 - ret = set_rtc_irq_bit(BIT_RTC_INTERRUPTS_REG_IT_TIMER_M); 222 - else 223 - ret = mask_rtc_irq_bit(BIT_RTC_INTERRUPTS_REG_IT_TIMER_M); 224 - 225 - return ret; 226 - } 227 - 228 216 /* 229 217 * Gets current TWL RTC time and date parameters. 230 218 * ··· 421 433 .read_alarm = twl_rtc_read_alarm, 422 434 .set_alarm = twl_rtc_set_alarm, 423 435 .alarm_irq_enable = twl_rtc_alarm_irq_enable, 424 - .update_irq_enable = twl_rtc_update_irq_enable, 425 436 }; 426 437 427 438 /*----------------------------------------------------------------------*/
-16
drivers/rtc/rtc-wm831x.c
··· 315 315 return wm831x_rtc_stop_alarm(wm831x_rtc); 316 316 } 317 317 318 - static int wm831x_rtc_update_irq_enable(struct device *dev, 319 - unsigned int enabled) 320 - { 321 - struct wm831x_rtc *wm831x_rtc = dev_get_drvdata(dev); 322 - int val; 323 - 324 - if (enabled) 325 - val = 1 << WM831X_RTC_PINT_FREQ_SHIFT; 326 - else 327 - val = 0; 328 - 329 - return wm831x_set_bits(wm831x_rtc->wm831x, WM831X_RTC_CONTROL, 330 - WM831X_RTC_PINT_FREQ_MASK, val); 331 - } 332 - 333 318 static irqreturn_t wm831x_alm_irq(int irq, void *data) 334 319 { 335 320 struct wm831x_rtc *wm831x_rtc = data; ··· 339 354 .read_alarm = wm831x_rtc_readalarm, 340 355 .set_alarm = wm831x_rtc_setalarm, 341 356 .alarm_irq_enable = wm831x_rtc_alarm_irq_enable, 342 - .update_irq_enable = wm831x_rtc_update_irq_enable, 343 357 }; 344 358 345 359 #ifdef CONFIG_PM
-21
drivers/rtc/rtc-wm8350.c
··· 302 302 return ret; 303 303 } 304 304 305 - static int wm8350_rtc_update_irq_enable(struct device *dev, 306 - unsigned int enabled) 307 - { 308 - struct wm8350 *wm8350 = dev_get_drvdata(dev); 309 - 310 - /* Suppress duplicate changes since genirq nests enable and 311 - * disable calls. */ 312 - if (enabled == wm8350->rtc.update_enabled) 313 - return 0; 314 - 315 - if (enabled) 316 - wm8350_unmask_irq(wm8350, WM8350_IRQ_RTC_SEC); 317 - else 318 - wm8350_mask_irq(wm8350, WM8350_IRQ_RTC_SEC); 319 - 320 - wm8350->rtc.update_enabled = enabled; 321 - 322 - return 0; 323 - } 324 - 325 305 static irqreturn_t wm8350_rtc_alarm_handler(int irq, void *data) 326 306 { 327 307 struct wm8350 *wm8350 = data; ··· 337 357 .read_alarm = wm8350_rtc_readalarm, 338 358 .set_alarm = wm8350_rtc_setalarm, 339 359 .alarm_irq_enable = wm8350_rtc_alarm_irq_enable, 340 - .update_irq_enable = wm8350_rtc_update_irq_enable, 341 360 }; 342 361 343 362 #ifdef CONFIG_PM
-1
include/linux/rtc.h
··· 149 149 int (*set_mmss)(struct device *, unsigned long secs); 150 150 int (*read_callback)(struct device *, int data); 151 151 int (*alarm_irq_enable)(struct device *, unsigned int enabled); 152 - int (*update_irq_enable)(struct device *, unsigned int enabled); 153 152 }; 154 153 155 154 #define RTC_DEVICE_NAME_SIZE 20