soundwire: bus: reset slave_notify status at each loop
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Tue, 24 Nov 2020 01:33:15 +0000 (09:33 +0800)
committerVinod Koul <vkoul@kernel.org>
Wed, 25 Nov 2020 05:02:25 +0000 (10:32 +0530)
The code loops multiple times to deal with pending interrupts, but we
never reset the slave_notify status.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20201124013318.8963-3-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/soundwire/bus.c

index 45131b9f5080bbb647e443a1ffefb5743c4741a8..d6e64652181905cc9aa953ae1d75f54365b86992 100644 (file)
@@ -1425,7 +1425,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave)
        u8 clear = 0, bit, port_status[15] = {0};
        int port_num, stat, ret, count = 0;
        unsigned long port;
-       bool slave_notify = false;
+       bool slave_notify;
        u8 sdca_cascade = 0;
        u8 buf, buf2[2], _buf, _buf2[2];
        bool parity_check;
@@ -1467,6 +1467,8 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave)
        }
 
        do {
+               slave_notify = false;
+
                /*
                 * Check parity, bus clash and Slave (impl defined)
                 * interrupt