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 |
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
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 --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;
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