If irq flags are not cleared for certain operations we
print an error message.

Since this should never occur in normal operation, this
patch is an optional safety-net and debugging tool.

Signed-off-by: H. Nikolaus Schaller <[email protected]>
---
 drivers/w1/masters/omap_hdq.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/w1/masters/omap_hdq.c b/drivers/w1/masters/omap_hdq.c
index a6484700f3b388..bf2ec59c1f9ddc 100644
--- a/drivers/w1/masters/omap_hdq.c
+++ b/drivers/w1/masters/omap_hdq.c
@@ -146,6 +146,10 @@ static int hdq_write_byte(struct hdq_data *hdq_data, u8 
val, u8 *status)
                goto rtn;
        }
 
+       if (hdq_data->hdq_irqstatus)
+               dev_err(hdq_data->dev, "TX irqstatus not cleared (%02x)\n",
+                       hdq_data->hdq_irqstatus);
+
        *status = 0;
 
        hdq_reg_out(hdq_data, OMAP_HDQ_TX_DATA, val);
@@ -243,6 +247,10 @@ static int omap_hdq_break(struct hdq_data *hdq_data)
                goto rtn;
        }
 
+       if (hdq_data->hdq_irqstatus)
+               dev_err(hdq_data->dev, "break irqstatus not cleared (%02x)\n",
+                       hdq_data->hdq_irqstatus);
+
        /* set the INIT and GO bit */
        hdq_reg_merge(hdq_data, OMAP_HDQ_CTRL_STATUS,
                OMAP_HDQ_CTRL_STATUS_INITIALIZATION | OMAP_HDQ_CTRL_STATUS_GO,
-- 
2.26.2

Reply via email to