Message ID | 20170725153403.121302-1-arnd@arndb.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Jul 25, 2017 at 05:33:25PM +0200, Arnd Bergmann wrote: > We cannot reference priv->fbdev outside of the #ifdef: > > drivers/net/virtio_net.c:1881:12: error: 'virtnet_restore_up' defined but not used [-Werror=unused-function] > static int virtnet_restore_up(struct virtio_device *vdev) > drivers/net/virtio_net.c:1859:13: error: 'virtnet_freeze_down' defined but not used [-Werror=unused-function] > static void virtnet_freeze_down(struct virtio_device *vdev) > > Since the code is moved into the main probe function now, this > adds another #ifdef. > > Fixes: b4dd9f1ffaba ("drm/hisilicon: Remove custom FB helper deferred setup") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Thanks for catching this. > --- > drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > index 1178341c3858..d48102d1a7a4 100644 > --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > @@ -121,6 +121,7 @@ static int kirin_drm_kms_init(struct drm_device *dev) > /* init kms poll for handling hpd */ > drm_kms_helper_poll_init(dev); > > +#ifdef CONFIG_DRM_FBDEV_EMULATION > priv->fbdev = drm_fbdev_cma_init(dev, 32, > dev->mode_config.num_connector); > if (IS_ERR(priv->fbdev)) { > @@ -128,11 +129,13 @@ static int kirin_drm_kms_init(struct drm_device *dev) > ret = PTR_ERR(priv->fbdev); > goto err_cleanup_poll; > } > - > +#endif Could we instead stop compling out priv->fbdev? There's nothing driver-specific here, so teh #ifdef are kinda annoying ... And saving that one pointer in a really huge structure is somewhat silly. > return 0; > > +#ifdef CONFIG_DRM_FBDEV_EMULATION > err_cleanup_poll: > drm_kms_helper_poll_fini(dev); poll helpers aren't fbdev specific. Why do we need this? Is this just to shut up gcc? Thanks, Daniel > +#endif > err_unbind_all: > component_unbind_all(dev->dev, dev); > err_dc_cleanup: > -- > 2.9.0 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
On Tue, Jul 25, 2017 at 5:53 PM, Daniel Vetter <daniel@ffwll.ch> wrote: > On Tue, Jul 25, 2017 at 05:33:25PM +0200, Arnd Bergmann wrote: >> drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c >> index 1178341c3858..d48102d1a7a4 100644 >> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c >> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c >> @@ -121,6 +121,7 @@ static int kirin_drm_kms_init(struct drm_device *dev) >> /* init kms poll for handling hpd */ >> drm_kms_helper_poll_init(dev); >> >> +#ifdef CONFIG_DRM_FBDEV_EMULATION >> priv->fbdev = drm_fbdev_cma_init(dev, 32, >> dev->mode_config.num_connector); >> if (IS_ERR(priv->fbdev)) { >> @@ -128,11 +129,13 @@ static int kirin_drm_kms_init(struct drm_device *dev) >> ret = PTR_ERR(priv->fbdev); >> goto err_cleanup_poll; >> } >> - >> +#endif > > Could we instead stop compling out priv->fbdev? There's nothing > driver-specific here, so teh #ifdef are kinda annoying ... Yes, I guess that would be better, I just didn't want to do too much of a rework. If we remove the #ifdef here, we should replace all instances in that driver. I'll send a patch to do that and let you pick which one you apply. > And saving that one pointer in a really huge structure is somewhat silly. It looks like it's the only member in that structure, but that doesn't make a big difference either, since there is only one instance in the system. >> +#ifdef CONFIG_DRM_FBDEV_EMULATION >> err_cleanup_poll: >> drm_kms_helper_poll_fini(dev); > > poll helpers aren't fbdev specific. Why do we need this? Is this just to > shut up gcc? Yes, gcc warns about the unused label here otherwise. Arnd
diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c index 1178341c3858..d48102d1a7a4 100644 --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c @@ -121,6 +121,7 @@ static int kirin_drm_kms_init(struct drm_device *dev) /* init kms poll for handling hpd */ drm_kms_helper_poll_init(dev); +#ifdef CONFIG_DRM_FBDEV_EMULATION priv->fbdev = drm_fbdev_cma_init(dev, 32, dev->mode_config.num_connector); if (IS_ERR(priv->fbdev)) { @@ -128,11 +129,13 @@ static int kirin_drm_kms_init(struct drm_device *dev) ret = PTR_ERR(priv->fbdev); goto err_cleanup_poll; } - +#endif return 0; +#ifdef CONFIG_DRM_FBDEV_EMULATION err_cleanup_poll: drm_kms_helper_poll_fini(dev); +#endif err_unbind_all: component_unbind_all(dev->dev, dev); err_dc_cleanup:
We cannot reference priv->fbdev outside of the #ifdef: drivers/net/virtio_net.c:1881:12: error: 'virtnet_restore_up' defined but not used [-Werror=unused-function] static int virtnet_restore_up(struct virtio_device *vdev) drivers/net/virtio_net.c:1859:13: error: 'virtnet_freeze_down' defined but not used [-Werror=unused-function] static void virtnet_freeze_down(struct virtio_device *vdev) Since the code is moved into the main probe function now, this adds another #ifdef. Fixes: b4dd9f1ffaba ("drm/hisilicon: Remove custom FB helper deferred setup") Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)