diff options
| author | Wolfram Sang <w.sang@pengutronix.de> | 2012-03-23 15:02:37 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-23 16:58:40 -0700 | 
| commit | b24a7267709bb0adb694364572478f919e9c7390 (patch) | |
| tree | 1b1f56549c9966a483846d10c96dba1153210d38 /drivers | |
| parent | 32d322bcb0d6886084197247e30aa130956d5978 (diff) | |
| download | olio-linux-3.10-b24a7267709bb0adb694364572478f919e9c7390.tar.xz olio-linux-3.10-b24a7267709bb0adb694364572478f919e9c7390.zip  | |
rtc: ds1307: simplify irq setup code
No need to have two seperate if-blocks for setting up the irq.
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Tested-by: David Anders <danders.dev@gmail.com>
Cc: Austin Boyle <Austin.Boyle@aviatnet.com>
Cc: Alessandro Zummo <alessandro.zummo@towertech.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/rtc/rtc-ds1307.c | 11 | 
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c index 5098e1ad3a3..d4543e8730c 100644 --- a/drivers/rtc/rtc-ds1307.c +++ b/drivers/rtc/rtc-ds1307.c @@ -646,11 +646,6 @@ static int __devinit ds1307_probe(struct i2c_client *client,  	case ds_1337:  	case ds_1339:  	case ds_3231: -		/* has IRQ? */ -		if (ds1307->client->irq > 0 && chip->alarm) { -			INIT_WORK(&ds1307->work, ds1307_work); -			want_irq = true; -		}  		/* get registers that the "rtc" read below won't read... */  		tmp = ds1307->read_block_data(ds1307->client,  				DS1337_REG_CONTROL, 2, buf); @@ -668,10 +663,14 @@ static int __devinit ds1307_probe(struct i2c_client *client,  		 * For some variants, be sure alarms can trigger when we're  		 * running on Vbackup (BBSQI/BBSQW)  		 */ -		if (want_irq) { +		if (ds1307->client->irq > 0 && chip->alarm) { +			INIT_WORK(&ds1307->work, ds1307_work); +  			ds1307->regs[0] |= DS1337_BIT_INTCN  					| bbsqi_bitpos[ds1307->type];  			ds1307->regs[0] &= ~(DS1337_BIT_A2IE | DS1337_BIT_A1IE); + +			want_irq = true;  		}  		i2c_smbus_write_byte_data(client, DS1337_REG_CONTROL,  |