S5J I2C: fix bus initialization.
authorTomasz Wozniak <t.wozniak@samsung.com>
Thu, 31 Aug 2017 09:51:02 +0000 (11:51 +0200)
committerTomasz Wozniak <t.wozniak@samsung.com>
Thu, 31 Aug 2017 09:59:47 +0000 (11:59 +0200)
Before the bus could only be taken once, otherwise it didn't work.
Even worse, second uninit triggered a DEBUGASSERT failure.

os/arch/arm/src/s5j/s5j_i2c.c

index 18797b3..6d46c86 100644 (file)
@@ -1270,7 +1270,9 @@ struct i2c_dev_s *up_i2cinitialize(int port)
 
        /* Get I2C private structure */
        if (g_s5j_i2c_priv[port] != NULL) {
-               return (FAR struct i2c_dev_s *)g_s5j_i2c_priv[port];
+               priv = g_s5j_i2c_priv[port];
+               priv->refs++;
+               return (FAR struct i2c_dev_s *)priv;
        }
 
        switch (port) {