* [rtc-linux] [PATCH 1/4] rtc-rx8025: fix irq handler registration
@ 2016-02-15 14:49 Akinobu Mita
2016-02-15 14:49 ` [rtc-linux] [PATCH 2/4] rtc-rx8025: protect ctrl1 register update by rtc->ops_lock Akinobu Mita
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Akinobu Mita @ 2016-02-15 14:49 UTC (permalink / raw)
To: rtc-linux
Cc: Akinobu Mita, Wolfgang Grandegger, Alessandro Zummo, Alexandre Belloni
When IRQ line for this chips is connected, devm_request_threaded_irq()
refuses to register irq handler with the following message.
genirq: Threaded irq requested with handler=NULL and !ONESHOT for irq
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Wolfgang Grandegger <wg@grandegger.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
drivers/rtc/rtc-rx8025.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/rtc/rtc-rx8025.c b/drivers/rtc/rtc-rx8025.c
index bd911ba..561248a 100644
--- a/drivers/rtc/rtc-rx8025.c
+++ b/drivers/rtc/rtc-rx8025.c
@@ -539,8 +539,9 @@ static int rx8025_probe(struct i2c_client *client,
if (client->irq > 0) {
dev_info(&client->dev, "IRQ %d supplied\n", client->irq);
err = devm_request_threaded_irq(&client->dev, client->irq, NULL,
- rx8025_handle_irq, 0, "rx8025",
- client);
+ rx8025_handle_irq,
+ IRQF_ONESHOT,
+ "rx8025", client);
if (err) {
dev_err(&client->dev, "unable to request IRQ, alarms disabled\n");
client->irq = 0;
--
2.5.0
--
--
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
---
You received this message because you are subscribed to the Google Groups "rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [rtc-linux] [PATCH 2/4] rtc-rx8025: protect ctrl1 register update by rtc->ops_lock
2016-02-15 14:49 [rtc-linux] [PATCH 1/4] rtc-rx8025: fix irq handler registration Akinobu Mita
@ 2016-02-15 14:49 ` Akinobu Mita
2016-02-15 14:49 ` [rtc-linux] [PATCH 3/4] rtc-rx8025: round up to nearest minute for a minute accuracy alarm Akinobu Mita
` (3 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Akinobu Mita @ 2016-02-15 14:49 UTC (permalink / raw)
To: rtc-linux
Cc: Akinobu Mita, Wolfgang Grandegger, Alessandro Zummo, Alexandre Belloni
The ctrl1 register is accessed by alarm operations. But it is updated
in threaded interrupt handler without acquiring rtc->ops_lock.
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Wolfgang Grandegger <wg@grandegger.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
drivers/rtc/rtc-rx8025.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/rtc/rtc-rx8025.c b/drivers/rtc/rtc-rx8025.c
index 561248a..e667f01 100644
--- a/drivers/rtc/rtc-rx8025.c
+++ b/drivers/rtc/rtc-rx8025.c
@@ -147,8 +147,10 @@ static irqreturn_t rx8025_handle_irq(int irq, void *dev_id)
{
struct i2c_client *client = dev_id;
struct rx8025_data *rx8025 = i2c_get_clientdata(client);
+ struct mutex *lock = &rx8025->rtc->ops_lock;
int status;
+ mutex_lock(lock);
status = rx8025_read_reg(client, RX8025_REG_CTRL2);
if (status < 0)
goto out;
@@ -173,6 +175,8 @@ static irqreturn_t rx8025_handle_irq(int irq, void *dev_id)
}
out:
+ mutex_unlock(lock);
+
return IRQ_HANDLED;
}
--
2.5.0
--
--
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
---
You received this message because you are subscribed to the Google Groups "rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [rtc-linux] [PATCH 3/4] rtc-rx8025: round up to nearest minute for a minute accuracy alarm
2016-02-15 14:49 [rtc-linux] [PATCH 1/4] rtc-rx8025: fix irq handler registration Akinobu Mita
2016-02-15 14:49 ` [rtc-linux] [PATCH 2/4] rtc-rx8025: protect ctrl1 register update by rtc->ops_lock Akinobu Mita
@ 2016-02-15 14:49 ` Akinobu Mita
2016-02-15 14:49 ` [rtc-linux] [PATCH 4/4] rtc-rx8025: unsupport UIE mode Akinobu Mita
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Akinobu Mita @ 2016-02-15 14:49 UTC (permalink / raw)
To: rtc-linux
Cc: Akinobu Mita, Wolfgang Grandegger, Alessandro Zummo, Alexandre Belloni
The alarm for rx8025 only has a minute accuracy, so round up to nearest
minute when setting alarm. Without doing this, rtctest blocks one day
after setting alarm to 5 seconds later.
pcf8563 and hym8563 also have similar handling.
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Wolfgang Grandegger <wg@grandegger.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
drivers/rtc/rtc-rx8025.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/drivers/rtc/rtc-rx8025.c b/drivers/rtc/rtc-rx8025.c
index e667f01..23fe242 100644
--- a/drivers/rtc/rtc-rx8025.c
+++ b/drivers/rtc/rtc-rx8025.c
@@ -345,7 +345,17 @@ static int rx8025_set_alarm(struct device *dev, struct rtc_wkalrm *t)
if (client->irq <= 0)
return -EINVAL;
- /* Hardware alarm precision is 1 minute! */
+ /*
+ * Hardware alarm precision is 1 minute!
+ * round up to nearest minute
+ */
+ if (t->time.tm_sec) {
+ time64_t alarm_time = rtc_tm_to_time64(&t->time);
+
+ alarm_time += 60 - t->time.tm_sec;
+ rtc_time64_to_tm(alarm_time, &t->time);
+ }
+
ald[0] = bin2bcd(t->time.tm_min);
if (rx8025->ctrl1 & RX8025_BIT_CTRL1_1224)
ald[1] = bin2bcd(t->time.tm_hour);
--
2.5.0
--
--
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
---
You received this message because you are subscribed to the Google Groups "rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [rtc-linux] [PATCH 4/4] rtc-rx8025: unsupport UIE mode
2016-02-15 14:49 [rtc-linux] [PATCH 1/4] rtc-rx8025: fix irq handler registration Akinobu Mita
2016-02-15 14:49 ` [rtc-linux] [PATCH 2/4] rtc-rx8025: protect ctrl1 register update by rtc->ops_lock Akinobu Mita
2016-02-15 14:49 ` [rtc-linux] [PATCH 3/4] rtc-rx8025: round up to nearest minute for a minute accuracy alarm Akinobu Mita
@ 2016-02-15 14:49 ` Akinobu Mita
2016-02-16 1:25 ` [rtc-linux] Re: [PATCH 1/4] rtc-rx8025: fix irq handler registration Alexandre Belloni
2016-02-23 23:23 ` Alexandre Belloni
4 siblings, 0 replies; 7+ messages in thread
From: Akinobu Mita @ 2016-02-15 14:49 UTC (permalink / raw)
To: rtc-linux
Cc: Akinobu Mita, Wolfgang Grandegger, Alessandro Zummo, Alexandre Belloni
The alarm for rx8025 only has a minute accuracy, so unsupport UIE mode.
pcf8563 and hym8563 also have a minute accuracy and unsupport it.
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Wolfgang Grandegger <wg@grandegger.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
drivers/rtc/rtc-rx8025.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/rtc/rtc-rx8025.c b/drivers/rtc/rtc-rx8025.c
index 23fe242..4199556 100644
--- a/drivers/rtc/rtc-rx8025.c
+++ b/drivers/rtc/rtc-rx8025.c
@@ -564,6 +564,9 @@ static int rx8025_probe(struct i2c_client *client,
rx8025->rtc->max_user_freq = 1;
+ /* the rx8025 alarm only supports a minute accuracy */
+ rx8025->rtc->uie_unsupported = 1;
+
err = rx8025_sysfs_register(&client->dev);
return err;
}
--
2.5.0
--
--
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
---
You received this message because you are subscribed to the Google Groups "rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [rtc-linux] Re: [PATCH 1/4] rtc-rx8025: fix irq handler registration
2016-02-15 14:49 [rtc-linux] [PATCH 1/4] rtc-rx8025: fix irq handler registration Akinobu Mita
` (2 preceding siblings ...)
2016-02-15 14:49 ` [rtc-linux] [PATCH 4/4] rtc-rx8025: unsupport UIE mode Akinobu Mita
@ 2016-02-16 1:25 ` Alexandre Belloni
2016-02-16 14:41 ` Akinobu Mita
2016-02-23 23:23 ` Alexandre Belloni
4 siblings, 1 reply; 7+ messages in thread
From: Alexandre Belloni @ 2016-02-16 1:25 UTC (permalink / raw)
To: Akinobu Mita; +Cc: rtc-linux, Wolfgang Grandegger, Alessandro Zummo
Hi,
Not completely related to that patch series but I was wondering if you
had access to that particular RTC.
The rtc-d1307 driver claims to also support rx8025 but my guess is that
is is not necessary anymore. Could you check which one we should keep?
Thanks!
On 15/02/2016 at 23:49:06 +0900, Akinobu Mita wrote :
> When IRQ line for this chips is connected, devm_request_threaded_irq()
> refuses to register irq handler with the following message.
>
> genirq: Threaded irq requested with handler=NULL and !ONESHOT for irq
>
> Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
> Cc: Wolfgang Grandegger <wg@grandegger.com>
> Cc: Alessandro Zummo <a.zummo@towertech.it>
> Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
> ---
> drivers/rtc/rtc-rx8025.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/rtc/rtc-rx8025.c b/drivers/rtc/rtc-rx8025.c
> index bd911ba..561248a 100644
> --- a/drivers/rtc/rtc-rx8025.c
> +++ b/drivers/rtc/rtc-rx8025.c
> @@ -539,8 +539,9 @@ static int rx8025_probe(struct i2c_client *client,
> if (client->irq > 0) {
> dev_info(&client->dev, "IRQ %d supplied\n", client->irq);
> err = devm_request_threaded_irq(&client->dev, client->irq, NULL,
> - rx8025_handle_irq, 0, "rx8025",
> - client);
> + rx8025_handle_irq,
> + IRQF_ONESHOT,
> + "rx8025", client);
> if (err) {
> dev_err(&client->dev, "unable to request IRQ, alarms disabled\n");
> client->irq = 0;
> --
> 2.5.0
>
--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
--
--
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
---
You received this message because you are subscribed to the Google Groups "rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [rtc-linux] Re: [PATCH 1/4] rtc-rx8025: fix irq handler registration
2016-02-16 1:25 ` [rtc-linux] Re: [PATCH 1/4] rtc-rx8025: fix irq handler registration Alexandre Belloni
@ 2016-02-16 14:41 ` Akinobu Mita
0 siblings, 0 replies; 7+ messages in thread
From: Akinobu Mita @ 2016-02-16 14:41 UTC (permalink / raw)
To: Alexandre Belloni; +Cc: rtc-linux, Wolfgang Grandegger, Alessandro Zummo
2016-02-16 10:25 GMT+09:00 Alexandre Belloni
<alexandre.belloni@free-electrons.com>:
> Hi,
>
> Not completely related to that patch series but I was wondering if you
> had access to that particular RTC.
>
> The rtc-d1307 driver claims to also support rx8025 but my guess is that
> is is not necessary anymore. Could you check which one we should keep?
rx8025 in rtc-ds1307 driver doesn't support alarm, so we should keep
rtc-rx8025. But rtc-rx8025 driver currently requires both
I2C_FUNC_SMBUS_BYTE_DATA and I2C_FUNC_SMBUS_I2C_BLOCK for i2c adapter
while rx8025 in rtc-ds1307 driver requires one of them. So we can't
simply remove rx8025 support from rtc-ds1307 now.
Maybe we can introduce emulated read/write_i2c_block_data functions
for this.
--
--
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
---
You received this message because you are subscribed to the Google Groups "rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [rtc-linux] Re: [PATCH 1/4] rtc-rx8025: fix irq handler registration
2016-02-15 14:49 [rtc-linux] [PATCH 1/4] rtc-rx8025: fix irq handler registration Akinobu Mita
` (3 preceding siblings ...)
2016-02-16 1:25 ` [rtc-linux] Re: [PATCH 1/4] rtc-rx8025: fix irq handler registration Alexandre Belloni
@ 2016-02-23 23:23 ` Alexandre Belloni
4 siblings, 0 replies; 7+ messages in thread
From: Alexandre Belloni @ 2016-02-23 23:23 UTC (permalink / raw)
To: Akinobu Mita; +Cc: rtc-linux, Wolfgang Grandegger, Alessandro Zummo
On 15/02/2016 at 23:49:06 +0900, Akinobu Mita wrote :
> When IRQ line for this chips is connected, devm_request_threaded_irq()
> refuses to register irq handler with the following message.
>
> genirq: Threaded irq requested with handler=NULL and !ONESHOT for irq
>
> Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
> Cc: Wolfgang Grandegger <wg@grandegger.com>
> Cc: Alessandro Zummo <a.zummo@towertech.it>
> Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
> ---
> drivers/rtc/rtc-rx8025.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
All applied, thanks.
--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
--
--
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
---
You received this message because you are subscribed to the Google Groups "rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-02-23 23:23 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-15 14:49 [rtc-linux] [PATCH 1/4] rtc-rx8025: fix irq handler registration Akinobu Mita
2016-02-15 14:49 ` [rtc-linux] [PATCH 2/4] rtc-rx8025: protect ctrl1 register update by rtc->ops_lock Akinobu Mita
2016-02-15 14:49 ` [rtc-linux] [PATCH 3/4] rtc-rx8025: round up to nearest minute for a minute accuracy alarm Akinobu Mita
2016-02-15 14:49 ` [rtc-linux] [PATCH 4/4] rtc-rx8025: unsupport UIE mode Akinobu Mita
2016-02-16 1:25 ` [rtc-linux] Re: [PATCH 1/4] rtc-rx8025: fix irq handler registration Alexandre Belloni
2016-02-16 14:41 ` Akinobu Mita
2016-02-23 23:23 ` Alexandre Belloni
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.