|
@@ -146,8 +146,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;
|
|
@@ -172,6 +174,8 @@ static irqreturn_t rx8025_handle_irq(int irq, void *dev_id)
|
|
|
}
|
|
|
|
|
|
out:
|
|
|
+ mutex_unlock(lock);
|
|
|
+
|
|
|
return IRQ_HANDLED;
|
|
|
}
|
|
|
|