spi: Catch improper use of PTP system timestamping API
authorVladimir Oltean <olteanv@gmail.com>
Fri, 27 Dec 2019 01:24:44 +0000 (03:24 +0200)
committerMark Brown <broonie@kernel.org>
Fri, 27 Dec 2019 22:58:09 +0000 (22:58 +0000)
We can catch whether the SPI controller has declared it can take care of
software timestamping transfers, but didn't. So do it.

Signed-off-by: Vladimir Oltean <olteanv@gmail.com>
Link: https://lore.kernel.org/r/20191227012444.1204-1-olteanv@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi.c

index 5e4c453..5485ef8 100644 (file)
@@ -1680,6 +1680,13 @@ void spi_finalize_current_message(struct spi_controller *ctlr)
                }
        }
 
+       if (unlikely(ctlr->ptp_sts_supported)) {
+               list_for_each_entry(xfer, &mesg->transfers, transfer_list) {
+                       WARN_ON_ONCE(xfer->ptp_sts && !xfer->timestamped_pre);
+                       WARN_ON_ONCE(xfer->ptp_sts && !xfer->timestamped_post);
+               }
+       }
+
        spi_unmap_msg(ctlr, mesg);
 
        if (ctlr->cur_msg_prepared && ctlr->unprepare_message) {