lkml.org 
[lkml]   [2021]   [Jul]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH] drm/nouveau/kms/nv50-: fix build failure with CONFIG_BACKLIGHT=n
    On Fri, Jul 23, 2021 at 12:10 PM Karol Herbst <kherbst@redhat.com> wrote:
    >
    > On Fri, Jul 23, 2021 at 11:24 AM Daniel Vetter <daniel@ffwll.ch> wrote:
    > >
    > > On Fri, Jul 23, 2021 at 11:15 AM Arnd Bergmann <arnd@kernel.org> wrote:
    > > >
    > > > From: Arnd Bergmann <arnd@arndb.de>
    > > >
    > > > When the backlight support is disabled, the driver fails to build:
    > > >
    > > > drivers/gpu/drm/nouveau/dispnv50/disp.c: In function 'nv50_sor_atomic_disable':
    > > > drivers/gpu/drm/nouveau/dispnv50/disp.c:1665:59: error: 'struct nouveau_connector' has no member named 'backlight'
    > > > 1665 | struct nouveau_backlight *backlight = nv_connector->backlight;
    > > > | ^~
    > > > drivers/gpu/drm/nouveau/dispnv50/disp.c:1670:35: error: invalid use of undefined type 'struct nouveau_backlight'
    > > > 1670 | if (backlight && backlight->uses_dpcd) {
    > > > | ^~
    > > > drivers/gpu/drm/nouveau/dispnv50/disp.c:1671:64: error: invalid use of undefined type 'struct nouveau_backlight'
    > > > 1671 | ret = drm_edp_backlight_disable(aux, &backlight->edp_info);
    > > > | ^~
    > > >
    > > > The patch that introduced the problem already contains some #ifdef
    > > > checks, so just add another one that makes it build again.
    > > >
    > > > Fixes: 6eca310e8924 ("drm/nouveau/kms/nv50-: Add basic DPCD backlight support for nouveau")
    > > > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    > >
    > > Can we just toss the idea that BACKTLIGHT=n is a reasonable config for
    > > drm drivers using backlights, and add depends BACKLIGHT to all of
    > > them?
    > >
    > > I mean this is a perfect source of continued patch streams to keep us
    > > all busy, but beyond that I really don't see the point ... I frankly
    > > have better things to do, and especially with the big drivers we have
    > > making backlight optional saves comparitively nothing.
    > > -Daniel
    > >
    >
    > same, I'd just require BACKLIGHT as well tbh.
    >

    ehhh, get rid of DRM_NOUVEAU_BACKLIGHT I meant.

    > > > ---
    > > > drivers/gpu/drm/nouveau/dispnv50/disp.c | 11 +++++++----
    > > > 1 file changed, 7 insertions(+), 4 deletions(-)
    > > >
    > > > diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c
    > > > index 093e1f7163b3..fcf53e24db21 100644
    > > > --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
    > > > +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
    > > > @@ -1659,20 +1659,23 @@ static void
    > > > nv50_sor_atomic_disable(struct drm_encoder *encoder, struct drm_atomic_state *state)
    > > > {
    > > > struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
    > > > - struct nouveau_drm *drm = nouveau_drm(nv_encoder->base.base.dev);
    > > > struct nouveau_crtc *nv_crtc = nouveau_crtc(nv_encoder->crtc);
    > > > struct nouveau_connector *nv_connector = nv50_outp_get_old_connector(state, nv_encoder);
    > > > - struct nouveau_backlight *backlight = nv_connector->backlight;
    > > > struct drm_dp_aux *aux = &nv_connector->aux;
    > > > - int ret;
    > > > u8 pwr;
    > > >
    > > > +#ifdef CONFIG_DRM_NOUVEAU_BACKLIGHT
    > > > + struct nouveau_drm *drm = nouveau_drm(nv_encoder->base.base.dev);
    > > > + struct nouveau_backlight *backlight = nv_connector->backlight;
    > > > +
    > > > if (backlight && backlight->uses_dpcd) {
    > > > - ret = drm_edp_backlight_disable(aux, &backlight->edp_info);
    > > > + int ret = drm_edp_backlight_disable(aux, &backlight->edp_info);
    > > > +
    > > > if (ret < 0)
    > > > NV_ERROR(drm, "Failed to disable backlight on [CONNECTOR:%d:%s]: %d\n",
    > > > nv_connector->base.base.id, nv_connector->base.name, ret);
    > > > }
    > > > +#endif
    > > >
    > > > if (nv_encoder->dcb->type == DCB_OUTPUT_DP) {
    > > > int ret = drm_dp_dpcd_readb(aux, DP_SET_POWER, &pwr);
    > > > --
    > > > 2.29.2
    > > >
    > >
    > >
    > > --
    > > Daniel Vetter
    > > Software Engineer, Intel Corporation
    > > http://blog.ffwll.ch
    > >

    \
     
     \ /
      Last update: 2021-07-23 12:13    [W:5.480 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site