[Bugfix][API-737][IMU]smi230 i2c-1 causes slow SDK startup
Change-Id: Iaad7dd2467b9a73c349b2d7376871063ef8a4974
diff --git a/src/kernel/linux/v4.19/drivers/iio/accel/Makefile b/src/kernel/linux/v4.19/drivers/iio/accel/Makefile
index 70c42b3..60eb236 100644
--- a/src/kernel/linux/v4.19/drivers/iio/accel/Makefile
+++ b/src/kernel/linux/v4.19/drivers/iio/accel/Makefile
@@ -61,7 +61,7 @@
obj-$(CONFIG_IIO_SMI230_ACC) += smi230_acc.o
smi230_acc-objs := smi230_acc_core.o
-ifeq ($(CONFIG_IIO_SMI230_ACC_I2C),n)
+ifeq ($(CONFIG_IIO_SMI230_ACC_I2C),y)
smi230_acc-objs += smi230_acc_i2c.o
else
smi230_acc-objs += smi230_acc_spi.o
diff --git a/src/kernel/linux/v4.19/drivers/iio/accel/smi230_acc_i2c.c b/src/kernel/linux/v4.19/drivers/iio/accel/smi230_acc_i2c.c
index 11f1552..89f8e14 100644
--- a/src/kernel/linux/v4.19/drivers/iio/accel/smi230_acc_i2c.c
+++ b/src/kernel/linux/v4.19/drivers/iio/accel/smi230_acc_i2c.c
@@ -52,8 +52,10 @@
#include "smi230_acc.h"
-#define SMI230_MAX_RETRY_I2C_XFER 10
-#define SMI230_I2C_WRITE_DELAY_TIME 10
+/*dongyu@2023.1.9 smi230 i2c-1 causes slow SDK startup start*/
+#define SMI230_MAX_RETRY_I2C_XFER 1
+#define SMI230_I2C_WRITE_DELAY_TIME 1
+/*dongyu@2023.1.9 smi230 i2c-1 causes slow SDK startup end*/
static struct i2c_adapter *smi230_i2c_adapter;
@@ -146,12 +148,15 @@
smi230_i2c_dev.accel_id = client->addr;
err = smi230_acc_init(&smi230_i2c_dev);
+ /*dongyu@2023.1.9 smi230 i2c-1 causes slow SDK startup start*/
if (err == SMI230_OK)
pr_info("Bosch Sensor Device %s initialized", SENSOR_ACC_NAME);
else {
pr_err("Bosch Sensor Device %s initialization failed, error %d",
SENSOR_ACC_NAME, err);
+ return -ENOMEM;
}
+ /*dongyu@2023.1.9 smi230 i2c-1 causes slow SDK startup end*/
return smi230_acc_probe(&client->dev, &smi230_i2c_dev);
}
diff --git a/src/kernel/linux/v4.19/drivers/iio/gyro/Makefile b/src/kernel/linux/v4.19/drivers/iio/gyro/Makefile
index 2d5695e..22dd056 100644
--- a/src/kernel/linux/v4.19/drivers/iio/gyro/Makefile
+++ b/src/kernel/linux/v4.19/drivers/iio/gyro/Makefile
@@ -37,7 +37,7 @@
obj-$(CONFIG_SMI230_GYRO) += smi230_gyro.o
smi230_gyro-objs := smi230_gyro_core.o
-ifeq ($(CONFIG_SMI230_GYRO_I2C),n)
+ifeq ($(CONFIG_SMI230_GYRO_I2C),y)
smi230_gyro-objs += smi230_gyro_i2c.o
else
smi230_gyro-objs += smi230_gyro_spi.o
diff --git a/src/kernel/linux/v4.19/drivers/iio/gyro/smi230_gyro_core.c b/src/kernel/linux/v4.19/drivers/iio/gyro/smi230_gyro_core.c
index 1b5eab8..083a1f4 100644
--- a/src/kernel/linux/v4.19/drivers/iio/gyro/smi230_gyro_core.c
+++ b/src/kernel/linux/v4.19/drivers/iio/gyro/smi230_gyro_core.c
@@ -878,6 +878,15 @@
int err = 0;
err = smi230_gyro_chip_id_check(dev);
+ /*dongyu@2023.1.9 smi230 i2c-1 causes slow SDK startup start*/
+ if (err == SMI230_OK)
+ pr_info("Bosch Sensor Device %s initialized", SENSOR_GYRO_NAME);
+ else {
+ pr_err("Bosch Sensor Device %s initialization failed, error %d",
+ SENSOR_GYRO_NAME, err);
+ return -ENOMEM;
+ }
+ /*dongyu@2023.1.9 smi230 i2c-1 causes slow SDK startup end*/
dev->gyro_cfg.power = SMI230_GYRO_PM_NORMAL;
err |= smi230_gyro_set_power_mode(dev);
diff --git a/src/kernel/linux/v4.19/drivers/iio/gyro/smi230_gyro_i2c.c b/src/kernel/linux/v4.19/drivers/iio/gyro/smi230_gyro_i2c.c
index 2308af8..d81315e 100644
--- a/src/kernel/linux/v4.19/drivers/iio/gyro/smi230_gyro_i2c.c
+++ b/src/kernel/linux/v4.19/drivers/iio/gyro/smi230_gyro_i2c.c
@@ -52,8 +52,10 @@
#include "smi230_gyro.h"
-#define SMI230_MAX_RETRY_I2C_XFER 10
-#define SMI230_I2C_WRITE_DELAY_TIME 10
+/*dongyu@2023.1.9 smi230 i2c-1 causes slow SDK startup start*/
+#define SMI230_MAX_RETRY_I2C_XFER 1
+#define SMI230_I2C_WRITE_DELAY_TIME 1
+/*dongyu@2023.1.9 smi230 i2c-1 causes slow SDK startup end*/
static struct i2c_adapter *smi230_i2c_adapter;
static struct smi230_dev smi230_i2c_dev;