Hi, On 07.10.2022 14:14, Nia Espera wrote:
+ +#define dsi_dcs_write_seq(dsi, seq...) do { \ + static const u8 d[] = { seq }; \ + int ret; \ + ret = mipi_dsi_dcs_write_buffer(dsi, d, ARRAY_SIZE(d)); \ + if (ret < 0) \ + return ret; \ + } while (0) +
There is now a standard macro for this - mipi_dsi_dcs_write_seq() [1] , so you don't need to reinvent it.
+static void samsung_s6e3fc2x01_reset(struct samsung_s6e3fc2x01 *ctx) +{ + gpiod_set_value_cansleep(ctx->reset_gpio, 0); + usleep_range(5000, 6000); + gpiod_set_value_cansleep(ctx->reset_gpio, 1); + usleep_range(2000, 3000); + gpiod_set_value_cansleep(ctx->reset_gpio, 0); + usleep_range(10000, 11000); +}
There is a high chance that first gpiod_set_value() is not needed, only the last 2.
[1] https://elixir.bootlin.com/linux/latest/C/ident/mipi_dsi_dcs_write_seq -- Regards Alexey Minnekhanov