If CONFIG_DRM_LONTIUM_LT8912B=y, the following errors will be seen while compiling lontium-lt8912b.c
drivers/gpu/drm/bridge/lontium-lt8912b.c: In function ‘lt8912_hard_power_on’: drivers/gpu/drm/bridge/lontium-lt8912b.c:252:2: error: implicit declaration of function ‘gpiod_set_value_cansleep’; did you mean ‘gpio_set_value_cansleep’? [-Werror=implicit-function-declaration] gpiod_set_value_cansleep(lt->gp_reset, 0); ^~~~~~~~~~~~~~~~~~~~~~~~ gpio_set_value_cansleep drivers/gpu/drm/bridge/lontium-lt8912b.c: In function ‘lt8912_parse_dt’: drivers/gpu/drm/bridge/lontium-lt8912b.c:628:13: error: implicit declaration of function ‘devm_gpiod_get_optional’; did you mean ‘devm_gpio_request_one’? [-Werror=implicit-function-declaration] gp_reset = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH); ^~~~~~~~~~~~~~~~~~~~~~~ devm_gpio_request_one drivers/gpu/drm/bridge/lontium-lt8912b.c:628:51: error: ‘GPIOD_OUT_HIGH’ undeclared (first use in this function); did you mean ‘GPIOF_INIT_HIGH’? gp_reset = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH); ^~~~~~~~~~~~~~ GPIOF_INIT_HIGH
Signed-off-by: Zhang Jianhua zhangjianhua18@huawei.com --- drivers/gpu/drm/bridge/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig index dba62f92d051..caa9658ec933 100644 --- a/drivers/gpu/drm/bridge/Kconfig +++ b/drivers/gpu/drm/bridge/Kconfig @@ -67,6 +67,7 @@ config DRM_LONTIUM_LT8912B select DRM_PANEL_BRIDGE select DRM_KMS_HELPER select REGMAP_I2C + select GPIOLIB help Driver for Lontium LT8912B DSI to HDMI bridge chip driver.
Hey Zhang
On Tue, 6 Apr 2021 at 11:07, Zhang Jianhua zhangjianhua18@huawei.com wrote:
If CONFIG_DRM_LONTIUM_LT8912B=y, the following errors will be seen while compiling lontium-lt8912b.c
drivers/gpu/drm/bridge/lontium-lt8912b.c: In function ‘lt8912_hard_power_on’: drivers/gpu/drm/bridge/lontium-lt8912b.c:252:2: error: implicit declaration of function ‘gpiod_set_value_cansleep’; did you mean ‘gpio_set_value_cansleep’? [-Werror=implicit-function-declaration] gpiod_set_value_cansleep(lt->gp_reset, 0); ^~~~~~~~~~~~~~~~~~~~~~~~ gpio_set_value_cansleep drivers/gpu/drm/bridge/lontium-lt8912b.c: In function ‘lt8912_parse_dt’: drivers/gpu/drm/bridge/lontium-lt8912b.c:628:13: error: implicit declaration of function ‘devm_gpiod_get_optional’; did you mean ‘devm_gpio_request_one’? [-Werror=implicit-function-declaration] gp_reset = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH); ^~~~~~~~~~~~~~~~~~~~~~~ devm_gpio_request_one drivers/gpu/drm/bridge/lontium-lt8912b.c:628:51: error: ‘GPIOD_OUT_HIGH’ undeclared (first use in this function); did you mean ‘GPIOF_INIT_HIGH’? gp_reset = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH); ^~~~~~~~~~~~~~ GPIOF_INIT_HIGH
Signed-off-by: Zhang Jianhua zhangjianhua18@huawei.com
drivers/gpu/drm/bridge/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig index dba62f92d051..caa9658ec933 100644 --- a/drivers/gpu/drm/bridge/Kconfig +++ b/drivers/gpu/drm/bridge/Kconfig @@ -67,6 +67,7 @@ config DRM_LONTIUM_LT8912B select DRM_PANEL_BRIDGE select DRM_KMS_HELPER select REGMAP_I2C
select GPIOLIB
This appears like the right fix for this problem. However, a number of drm/bridge drivers seem to call both gpio_set_value_cansleep() and devm_gpiod_get_optional() without having the GPIOLIB kconfig option selected so this can't be a new issue. Maybe some more investigation is in order.
Hi Robert
Yes, you are right, there are many files reference gpiod_set_value_cansleep() and
devm_gpiod_get_optional(). How about add config dependencies for all releated
configs or only add config dependencies for the top level config?
Best regards
Zhang Jianhua
在 2021/4/6 18:21, Robert Foss 写道:
Hey Zhang
On Tue, 6 Apr 2021 at 11:07, Zhang Jianhua zhangjianhua18@huawei.com wrote:
If CONFIG_DRM_LONTIUM_LT8912B=y, the following errors will be seen while compiling lontium-lt8912b.c
drivers/gpu/drm/bridge/lontium-lt8912b.c: In function ‘lt8912_hard_power_on’: drivers/gpu/drm/bridge/lontium-lt8912b.c:252:2: error: implicit declaration of function ‘gpiod_set_value_cansleep’; did you mean ‘gpio_set_value_cansleep’? [-Werror=implicit-function-declaration] gpiod_set_value_cansleep(lt->gp_reset, 0); ^~~~~~~~~~~~~~~~~~~~~~~~ gpio_set_value_cansleep drivers/gpu/drm/bridge/lontium-lt8912b.c: In function ‘lt8912_parse_dt’: drivers/gpu/drm/bridge/lontium-lt8912b.c:628:13: error: implicit declaration of function ‘devm_gpiod_get_optional’; did you mean ‘devm_gpio_request_one’? [-Werror=implicit-function-declaration] gp_reset = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH); ^~~~~~~~~~~~~~~~~~~~~~~ devm_gpio_request_one drivers/gpu/drm/bridge/lontium-lt8912b.c:628:51: error: ‘GPIOD_OUT_HIGH’ undeclared (first use in this function); did you mean ‘GPIOF_INIT_HIGH’? gp_reset = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH); ^~~~~~~~~~~~~~ GPIOF_INIT_HIGH
Signed-off-by: Zhang Jianhua zhangjianhua18@huawei.com
drivers/gpu/drm/bridge/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig index dba62f92d051..caa9658ec933 100644 --- a/drivers/gpu/drm/bridge/Kconfig +++ b/drivers/gpu/drm/bridge/Kconfig @@ -67,6 +67,7 @@ config DRM_LONTIUM_LT8912B select DRM_PANEL_BRIDGE select DRM_KMS_HELPER select REGMAP_I2C
select GPIOLIB
This appears like the right fix for this problem. However, a number of drm/bridge drivers seem to call both gpio_set_value_cansleep() and devm_gpiod_get_optional() without having the GPIOLIB kconfig option selected so this can't be a new issue. Maybe some more investigation is in order. .
Yes, you are right, there are many files reference gpiod_set_value_cansleep() and
devm_gpiod_get_optional(). How about add config dependencies for all releated
I think this is the way to go and roughly half of the drm bridge drivers seem to need this change.
Do you mind submitting a series of patches adding this fix for all of the relevant bridge drivers?
configs or only add config dependencies for the top level config?
Thanks, I will do that.
在 2021/4/7 16:03, Robert Foss 写道:
Yes, you are right, there are many files reference gpiod_set_value_cansleep() and
devm_gpiod_get_optional(). How about add config dependencies for all releated
I think this is the way to go and roughly half of the drm bridge drivers seem to need this change.
Do you mind submitting a series of patches adding this fix for all of the relevant bridge drivers?
configs or only add config dependencies for the top level config?
.
Hello Robert
I am sorry that I make a mistake about the compiling error of lt8912b,
the reason is that lt8912b miss the header file <linux/gpio/consumer.h>.
Although there are many files reference gpiod_set_value_cansleep() and
devm_gpiod_get_optional(), they all include <linux/gpio/consumer.h>
and not occur the compiling error like lt8912b. I have send the second
version patch, please read.
Best regards,
Zhang Jianhua
在 2021/4/7 17:50, zhangjianhua (E) 写道:
Thanks, I will do that.
在 2021/4/7 16:03, Robert Foss 写道:
Yes, you are right, there are many files reference gpiod_set_value_cansleep() and
devm_gpiod_get_optional(). How about add config dependencies for all releated
I think this is the way to go and roughly half of the drm bridge drivers seem to need this change.
Do you mind submitting a series of patches adding this fix for all of the relevant bridge drivers?
configs or only add config dependencies for the top level config?
.
Hey Zhang,
On Thu, 8 Apr 2021 at 09:10, zhangjianhua (E) zhangjianhua18@huawei.com wrote:
Hello Robert
I am sorry that I make a mistake about the compiling error of lt8912b,
the reason is that lt8912b miss the header file <linux/gpio/consumer.h>.
Although there are many files reference gpiod_set_value_cansleep() and
devm_gpiod_get_optional(), they all include <linux/gpio/consumer.h>
and not occur the compiling error like lt8912b. I have send the second
version patch, please read.
No worries at all, and good job finding the real issue. I'll have a look at the next version.
Rob.
dri-devel@lists.freedesktop.org