w1: omap-hdq: print dev_err if irq flags are not cleared
authorH. Nikolaus Schaller <hns@goldelico.com>
Sat, 23 May 2020 17:32:57 +0000 (19:32 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 27 May 2020 10:18:49 +0000 (12:18 +0200)
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 <hns@goldelico.com>
Link: https://lore.kernel.org/r/2de305d3046c7281a7123347899abbaa64c54fb8.1590255176.git.hns@goldelico.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/w1/masters/omap_hdq.c

index a648470..bf2ec59 100644 (file)
@@ -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,