mirror of
https://github.com/torvalds/linux.git
synced 2026-05-29 17:43:52 +02:00
drm/bridge: anx7625: change the gpiod_set_value API
Use gpiod_set_value_cansleep() instead of gpiod_set_value() to fix the below call trace in the boot log: [ 5.690534] Call trace: [ 5.690536] gpiod_set_value+0x40/0xa4 [ 5.690540] anx7625_runtime_pm_resume+0xa0/0x324 [anx7625] [ 5.690545] __rpm_callback+0x48/0x1d8 [ 5.690549] rpm_callback+0x6c/0x78 Certain GPIO controllers require access via message-based buses such as I2C or SPI, which may cause the GPIOs to enter a sleep state. Therefore, use the gpiod_set_value_cansleep(). Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Link: https://lore.kernel.org/r/20250505094245.2660750-7-quic_amakhija@quicinc.com Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
This commit is contained in:
parent
366ca0bcc9
commit
50935044e5
|
|
@ -1257,10 +1257,10 @@ static void anx7625_power_on(struct anx7625_data *ctx)
|
|||
usleep_range(11000, 12000);
|
||||
|
||||
/* Power on pin enable */
|
||||
gpiod_set_value(ctx->pdata.gpio_p_on, 1);
|
||||
gpiod_set_value_cansleep(ctx->pdata.gpio_p_on, 1);
|
||||
usleep_range(10000, 11000);
|
||||
/* Power reset pin enable */
|
||||
gpiod_set_value(ctx->pdata.gpio_reset, 1);
|
||||
gpiod_set_value_cansleep(ctx->pdata.gpio_reset, 1);
|
||||
usleep_range(10000, 11000);
|
||||
|
||||
DRM_DEV_DEBUG_DRIVER(dev, "power on !\n");
|
||||
|
|
@ -1280,9 +1280,9 @@ static void anx7625_power_standby(struct anx7625_data *ctx)
|
|||
return;
|
||||
}
|
||||
|
||||
gpiod_set_value(ctx->pdata.gpio_reset, 0);
|
||||
gpiod_set_value_cansleep(ctx->pdata.gpio_reset, 0);
|
||||
usleep_range(1000, 1100);
|
||||
gpiod_set_value(ctx->pdata.gpio_p_on, 0);
|
||||
gpiod_set_value_cansleep(ctx->pdata.gpio_p_on, 0);
|
||||
usleep_range(1000, 1100);
|
||||
|
||||
ret = regulator_bulk_disable(ARRAY_SIZE(ctx->pdata.supplies),
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user