diff mbox series

drm/bridge: ti-sn65dsi86: Check for CONFIG_PWM using IS_REACHABLE()

Message ID 20250217174936.758420-2-u.kleine-koenig@baylibre.com (mailing list archive)
State New
Headers show
Series drm/bridge: ti-sn65dsi86: Check for CONFIG_PWM using IS_REACHABLE() | expand

Commit Message

Uwe Kleine-Konig Feb. 17, 2025, 5:49 p.m. UTC
Currently CONFIG_PWM is a bool but I intend to change it to tristate. If
CONFIG_PWM=m in the configuration, the cpp symbol CONFIG_PWM isn't
defined and so the PWM code paths in the ti-sn65dsi86 driver are not
used.

The correct way to check for CONFIG_PWM is using IS_REACHABLE which does
the right thing for all cases
CONFIG_DRM_TI_SN65DSI86 ∈ { y, m } x CONFIG_PWM ∈ { y, m, n }.

There is no change until CONFIG_PWM actually becomes tristate.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
---
Hello,

even without the change to make CONFIG_PWM tristate using IS_REACHABLE()
is the more idiomatic way to check for CONFIG_PWM.

Note that IS_ENABLED() is wrong in the case CONFIG_DRM_TI_SN65DSI86=y +
CONFIG_PWM=m.

Best regards
Uwe

 drivers/gpu/drm/bridge/ti-sn65dsi86.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)


base-commit: 2014c95afecee3e76ca4a56956a936e23283f05b

Comments

Louis Chauvet Feb. 17, 2025, 5:54 p.m. UTC | #1
Le 17/02/2025 à 18:49, Uwe Kleine-König a écrit :
> Currently CONFIG_PWM is a bool but I intend to change it to tristate. If
> CONFIG_PWM=m in the configuration, the cpp symbol CONFIG_PWM isn't
> defined and so the PWM code paths in the ti-sn65dsi86 driver are not
> used.
> 
> The correct way to check for CONFIG_PWM is using IS_REACHABLE which does
> the right thing for all cases
> CONFIG_DRM_TI_SN65DSI86 ∈ { y, m } x CONFIG_PWM ∈ { y, m, n }.
> 
> There is no change until CONFIG_PWM actually becomes tristate.
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>

Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com>

Thanks,
Louis Chauvet

> ---
> Hello,
> 
> even without the change to make CONFIG_PWM tristate using IS_REACHABLE()
> is the more idiomatic way to check for CONFIG_PWM.
> 
> Note that IS_ENABLED() is wrong in the case CONFIG_DRM_TI_SN65DSI86=y +
> CONFIG_PWM=m.
> 
> Best regards
> Uwe
> 
>   drivers/gpu/drm/bridge/ti-sn65dsi86.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> index e4d9006b59f1..c84976db9ba5 100644
> --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> @@ -196,7 +196,7 @@ struct ti_sn65dsi86 {
>   	struct gpio_chip		gchip;
>   	DECLARE_BITMAP(gchip_output, SN_NUM_GPIOS);
>   #endif
> -#if defined(CONFIG_PWM)
> +#if IS_REACHABLE(CONFIG_PWM)
>   	struct pwm_chip			*pchip;
>   	bool				pwm_enabled;
>   	atomic_t			pwm_pin_busy;
> @@ -1361,7 +1361,7 @@ static struct auxiliary_driver ti_sn_bridge_driver = {
>   /* -----------------------------------------------------------------------------
>    * PWM Controller
>    */
> -#if defined(CONFIG_PWM)
> +#if IS_REACHABLE(CONFIG_PWM)
>   static int ti_sn_pwm_pin_request(struct ti_sn65dsi86 *pdata)
>   {
>   	return atomic_xchg(&pdata->pwm_pin_busy, 1) ? -EBUSY : 0;
> @@ -1955,7 +1955,7 @@ static int ti_sn65dsi86_probe(struct i2c_client *client)
>   			return ret;
>   	}
>   
> -	if (IS_ENABLED(CONFIG_PWM)) {
> +	if (IS_REACHABLE(CONFIG_PWM)) {
>   		ret = ti_sn65dsi86_add_aux_device(pdata, &pdata->pwm_aux, "pwm");
>   		if (ret)
>   			return ret;
> 
> base-commit: 2014c95afecee3e76ca4a56956a936e23283f05b
Robert Foss Feb. 18, 2025, 8:09 a.m. UTC | #2
On Mon, Feb 17, 2025 at 6:55 PM Louis Chauvet <louis.chauvet@bootlin.com> wrote:
>
>
>
> Le 17/02/2025 à 18:49, Uwe Kleine-König a écrit :
> > Currently CONFIG_PWM is a bool but I intend to change it to tristate. If
> > CONFIG_PWM=m in the configuration, the cpp symbol CONFIG_PWM isn't
> > defined and so the PWM code paths in the ti-sn65dsi86 driver are not
> > used.
> >
> > The correct way to check for CONFIG_PWM is using IS_REACHABLE which does
> > the right thing for all cases
> > CONFIG_DRM_TI_SN65DSI86 ∈ { y, m } x CONFIG_PWM ∈ { y, m, n }.
> >
> > There is no change until CONFIG_PWM actually becomes tristate.
> >
> > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
>
> Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com>

Reviewed-by: Robert Foss <rfoss@kernel.org>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
index e4d9006b59f1..c84976db9ba5 100644
--- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
+++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
@@ -196,7 +196,7 @@  struct ti_sn65dsi86 {
 	struct gpio_chip		gchip;
 	DECLARE_BITMAP(gchip_output, SN_NUM_GPIOS);
 #endif
-#if defined(CONFIG_PWM)
+#if IS_REACHABLE(CONFIG_PWM)
 	struct pwm_chip			*pchip;
 	bool				pwm_enabled;
 	atomic_t			pwm_pin_busy;
@@ -1361,7 +1361,7 @@  static struct auxiliary_driver ti_sn_bridge_driver = {
 /* -----------------------------------------------------------------------------
  * PWM Controller
  */
-#if defined(CONFIG_PWM)
+#if IS_REACHABLE(CONFIG_PWM)
 static int ti_sn_pwm_pin_request(struct ti_sn65dsi86 *pdata)
 {
 	return atomic_xchg(&pdata->pwm_pin_busy, 1) ? -EBUSY : 0;
@@ -1955,7 +1955,7 @@  static int ti_sn65dsi86_probe(struct i2c_client *client)
 			return ret;
 	}
 
-	if (IS_ENABLED(CONFIG_PWM)) {
+	if (IS_REACHABLE(CONFIG_PWM)) {
 		ret = ti_sn65dsi86_add_aux_device(pdata, &pdata->pwm_aux, "pwm");
 		if (ret)
 			return ret;