Message ID | 20200305155950.2705-4-tzimmermann@suse.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm: Convert drivers to drm_simple_encoder_init() | expand |
Hi Thomas, I love your patch! Yet something to improve: [auto build test ERROR on next-20200305] [also build test ERROR on v5.6-rc4] [cannot apply to rockchip/for-next shawnguo/for-next sunxi/sunxi/for-next tegra/for-next linus/master v5.6-rc4 v5.6-rc3 v5.6-rc2] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Thomas-Zimmermann/drm-Convert-drivers-to-drm_simple_encoder_init/20200306-045931 base: 47466dcf84ee66a973ea7d2fca7e582fe9328932 config: m68k-allmodconfig (attached as .config) compiler: m68k-linux-gcc (GCC) 7.5.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.5.0 make.cross ARCH=m68k If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@intel.com> All errors (new ones prefixed by >>): drivers/gpu/drm/exynos/exynos_drm_dpi.c: In function 'exynos_dpi_bind': >> drivers/gpu/drm/exynos/exynos_drm_dpi.c:201:2: error: implicit declaration of function 'drm_simple_encoder_init'; did you mean 'drm_encoder_init'? [-Werror=implicit-function-declaration] drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_TMDS); ^~~~~~~~~~~~~~~~~~~~~~~ drm_encoder_init cc1: some warnings being treated as errors -- drivers/gpu/drm/exynos/exynos_dp.c: In function 'exynos_dp_bind': >> drivers/gpu/drm/exynos/exynos_dp.c:174:2: error: implicit declaration of function 'drm_simple_encoder_init'; did you mean 'drm_encoder_init'? [-Werror=implicit-function-declaration] drm_simple_encoder_init(drm_dev, encoder, DRM_MODE_ENCODER_TMDS); ^~~~~~~~~~~~~~~~~~~~~~~ drm_encoder_init cc1: some warnings being treated as errors vim +201 drivers/gpu/drm/exynos/exynos_drm_dpi.c 196 197 int exynos_dpi_bind(struct drm_device *dev, struct drm_encoder *encoder) 198 { 199 int ret; 200 > 201 drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_TMDS); 202 203 drm_encoder_helper_add(encoder, &exynos_dpi_encoder_helper_funcs); 204 205 ret = exynos_drm_set_possible_crtcs(encoder, EXYNOS_DISPLAY_TYPE_LCD); 206 if (ret < 0) 207 return ret; 208 209 ret = exynos_dpi_create_connector(encoder); 210 if (ret) { 211 DRM_DEV_ERROR(encoder_to_dpi(encoder)->dev, 212 "failed to create connector ret = %d\n", ret); 213 drm_encoder_cleanup(encoder); 214 return ret; 215 } 216 217 return 0; 218 } 219 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Hi Thomas, I love your patch! Yet something to improve: [auto build test ERROR on next-20200305] [also build test ERROR on v5.6-rc4] [cannot apply to rockchip/for-next shawnguo/for-next sunxi/sunxi/for-next tegra/for-next linus/master v5.6-rc4 v5.6-rc3 v5.6-rc2] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Thomas-Zimmermann/drm-Convert-drivers-to-drm_simple_encoder_init/20200306-045931 base: 47466dcf84ee66a973ea7d2fca7e582fe9328932 config: arm64-defconfig (attached as .config) compiler: clang version 11.0.0 (git://gitmirror/llvm_project a0cd413426479abb207381bdbab862f3dfb3ce7d) reproduce: # FIXME the reproduce steps for clang is not ready yet If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@intel.com> All errors (new ones prefixed by >>): >> drivers/gpu/drm/exynos/exynos_drm_dsi.c:1705:2: error: implicit declaration of function 'drm_simple_encoder_init' [-Werror,-Wimplicit-function-declaration] drm_simple_encoder_init(drm_dev, encoder, DRM_MODE_ENCODER_TMDS); ^ drivers/gpu/drm/exynos/exynos_drm_dsi.c:1705:2: note: did you mean 'drm_encoder_init'? include/drm/drm_encoder.h:189:5: note: 'drm_encoder_init' declared here int drm_encoder_init(struct drm_device *dev, ^ 1 error generated. -- >> drivers/gpu/drm/exynos/exynos_hdmi.c:1851:2: error: implicit declaration of function 'drm_simple_encoder_init' [-Werror,-Wimplicit-function-declaration] drm_simple_encoder_init(drm_dev, encoder, DRM_MODE_ENCODER_TMDS); ^ drivers/gpu/drm/exynos/exynos_hdmi.c:1851:2: note: did you mean 'drm_encoder_init'? include/drm/drm_encoder.h:189:5: note: 'drm_encoder_init' declared here int drm_encoder_init(struct drm_device *dev, ^ 1 error generated. vim +/drm_simple_encoder_init +1705 drivers/gpu/drm/exynos/exynos_drm_dsi.c 1695 1696 static int exynos_dsi_bind(struct device *dev, struct device *master, 1697 void *data) 1698 { 1699 struct drm_encoder *encoder = dev_get_drvdata(dev); 1700 struct exynos_dsi *dsi = encoder_to_dsi(encoder); 1701 struct drm_device *drm_dev = data; 1702 struct drm_bridge *in_bridge; 1703 int ret; 1704 > 1705 drm_simple_encoder_init(drm_dev, encoder, DRM_MODE_ENCODER_TMDS); 1706 1707 drm_encoder_helper_add(encoder, &exynos_dsi_encoder_helper_funcs); 1708 1709 ret = exynos_drm_set_possible_crtcs(encoder, EXYNOS_DISPLAY_TYPE_LCD); 1710 if (ret < 0) 1711 return ret; 1712 1713 if (dsi->in_bridge_node) { 1714 in_bridge = of_drm_find_bridge(dsi->in_bridge_node); 1715 if (in_bridge) 1716 drm_bridge_attach(encoder, in_bridge, NULL, 0); 1717 } 1718 1719 return mipi_dsi_host_register(&dsi->dsi_host); 1720 } 1721 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
On Thu, Mar 05, 2020 at 04:59:31PM +0100, Thomas Zimmermann wrote: > The exynos driver uses empty implementations for its encoders. Replace > the code with the generic simple encoder. > > Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Sam Ravnborg <sam@ravnborg.org> > --- > drivers/gpu/drm/exynos/exynos_dp.c | 8 ++------ > drivers/gpu/drm/exynos/exynos_drm_dpi.c | 8 ++------ > drivers/gpu/drm/exynos/exynos_drm_dsi.c | 8 ++------ > drivers/gpu/drm/exynos/exynos_drm_vidi.c | 8 ++------ > drivers/gpu/drm/exynos/exynos_hdmi.c | 8 ++------ > 5 files changed, 10 insertions(+), 30 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_dp.c b/drivers/gpu/drm/exynos/exynos_dp.c > index d23d3502ca91..a61482af2998 100644 > --- a/drivers/gpu/drm/exynos/exynos_dp.c > +++ b/drivers/gpu/drm/exynos/exynos_dp.c > @@ -25,6 +25,7 @@ > #include <drm/drm_panel.h> > #include <drm/drm_print.h> > #include <drm/drm_probe_helper.h> > +#include <drm/drm_simple_kms_helper.h> > #include <drm/exynos_drm.h> > > #include "exynos_drm_crtc.h" > @@ -135,10 +136,6 @@ static const struct drm_encoder_helper_funcs exynos_dp_encoder_helper_funcs = { > .disable = exynos_dp_nop, > }; > > -static const struct drm_encoder_funcs exynos_dp_encoder_funcs = { > - .destroy = drm_encoder_cleanup, > -}; > - > static int exynos_dp_dt_parse_panel(struct exynos_dp_device *dp) > { > int ret; > @@ -174,8 +171,7 @@ static int exynos_dp_bind(struct device *dev, struct device *master, void *data) > return ret; > } > > - drm_encoder_init(drm_dev, encoder, &exynos_dp_encoder_funcs, > - DRM_MODE_ENCODER_TMDS, NULL); > + drm_simple_encoder_init(drm_dev, encoder, DRM_MODE_ENCODER_TMDS); > > drm_encoder_helper_add(encoder, &exynos_dp_encoder_helper_funcs); > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c > index 43fa0f26c052..7ba5354e7d94 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c > @@ -14,6 +14,7 @@ > #include <drm/drm_panel.h> > #include <drm/drm_print.h> > #include <drm/drm_probe_helper.h> > +#include <drm/drm_simple_kms_helper.h> > > #include <video/of_videomode.h> > #include <video/videomode.h> > @@ -149,10 +150,6 @@ static const struct drm_encoder_helper_funcs exynos_dpi_encoder_helper_funcs = { > .disable = exynos_dpi_disable, > }; > > -static const struct drm_encoder_funcs exynos_dpi_encoder_funcs = { > - .destroy = drm_encoder_cleanup, > -}; > - > enum { > FIMD_PORT_IN0, > FIMD_PORT_IN1, > @@ -201,8 +198,7 @@ int exynos_dpi_bind(struct drm_device *dev, struct drm_encoder *encoder) > { > int ret; > > - drm_encoder_init(dev, encoder, &exynos_dpi_encoder_funcs, > - DRM_MODE_ENCODER_TMDS, NULL); > + drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_TMDS); > > drm_encoder_helper_add(encoder, &exynos_dpi_encoder_helper_funcs); > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c > index 669d3857502a..2986c93382e0 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c > @@ -30,6 +30,7 @@ > #include <drm/drm_panel.h> > #include <drm/drm_print.h> > #include <drm/drm_probe_helper.h> > +#include <drm/drm_simple_kms_helper.h> > > #include "exynos_drm_crtc.h" > #include "exynos_drm_drv.h" > @@ -1524,10 +1525,6 @@ static const struct drm_encoder_helper_funcs exynos_dsi_encoder_helper_funcs = { > .disable = exynos_dsi_disable, > }; > > -static const struct drm_encoder_funcs exynos_dsi_encoder_funcs = { > - .destroy = drm_encoder_cleanup, > -}; > - > MODULE_DEVICE_TABLE(of, exynos_dsi_of_match); > > static int exynos_dsi_host_attach(struct mipi_dsi_host *host, > @@ -1705,8 +1702,7 @@ static int exynos_dsi_bind(struct device *dev, struct device *master, > struct drm_bridge *in_bridge; > int ret; > > - drm_encoder_init(drm_dev, encoder, &exynos_dsi_encoder_funcs, > - DRM_MODE_ENCODER_TMDS, NULL); > + drm_simple_encoder_init(drm_dev, encoder, DRM_MODE_ENCODER_TMDS); > > drm_encoder_helper_add(encoder, &exynos_dsi_encoder_helper_funcs); > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c > index b320b3a21ad4..282467121699 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c > @@ -14,6 +14,7 @@ > #include <drm/drm_atomic_helper.h> > #include <drm/drm_edid.h> > #include <drm/drm_probe_helper.h> > +#include <drm/drm_simple_kms_helper.h> > #include <drm/drm_vblank.h> > #include <drm/exynos_drm.h> > > @@ -369,10 +370,6 @@ static const struct drm_encoder_helper_funcs exynos_vidi_encoder_helper_funcs = > .disable = exynos_vidi_disable, > }; > > -static const struct drm_encoder_funcs exynos_vidi_encoder_funcs = { > - .destroy = drm_encoder_cleanup, > -}; > - > static int vidi_bind(struct device *dev, struct device *master, void *data) > { > struct vidi_context *ctx = dev_get_drvdata(dev); > @@ -406,8 +403,7 @@ static int vidi_bind(struct device *dev, struct device *master, void *data) > return PTR_ERR(ctx->crtc); > } > > - drm_encoder_init(drm_dev, encoder, &exynos_vidi_encoder_funcs, > - DRM_MODE_ENCODER_TMDS, NULL); > + drm_simple_encoder_init(drm_dev, encoder, DRM_MODE_ENCODER_TMDS); > > drm_encoder_helper_add(encoder, &exynos_vidi_encoder_helper_funcs); > > diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c > index 3e5f1a77286d..302ffda5f297 100644 > --- a/drivers/gpu/drm/exynos/exynos_hdmi.c > +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c > @@ -38,6 +38,7 @@ > #include <drm/drm_edid.h> > #include <drm/drm_print.h> > #include <drm/drm_probe_helper.h> > +#include <drm/drm_simple_kms_helper.h> > > #include "exynos_drm_crtc.h" > #include "regs-hdmi.h" > @@ -1559,10 +1560,6 @@ static const struct drm_encoder_helper_funcs exynos_hdmi_encoder_helper_funcs = > .disable = hdmi_disable, > }; > > -static const struct drm_encoder_funcs exynos_hdmi_encoder_funcs = { > - .destroy = drm_encoder_cleanup, > -}; > - > static void hdmi_audio_shutdown(struct device *dev, void *data) > { > struct hdmi_context *hdata = dev_get_drvdata(dev); > @@ -1851,8 +1848,7 @@ static int hdmi_bind(struct device *dev, struct device *master, void *data) > > hdata->phy_clk.enable = hdmiphy_clk_enable; > > - drm_encoder_init(drm_dev, encoder, &exynos_hdmi_encoder_funcs, > - DRM_MODE_ENCODER_TMDS, NULL); > + drm_simple_encoder_init(drm_dev, encoder, DRM_MODE_ENCODER_TMDS); > > drm_encoder_helper_add(encoder, &exynos_hdmi_encoder_helper_funcs); > > -- > 2.25.1
diff --git a/drivers/gpu/drm/exynos/exynos_dp.c b/drivers/gpu/drm/exynos/exynos_dp.c index d23d3502ca91..a61482af2998 100644 --- a/drivers/gpu/drm/exynos/exynos_dp.c +++ b/drivers/gpu/drm/exynos/exynos_dp.c @@ -25,6 +25,7 @@ #include <drm/drm_panel.h> #include <drm/drm_print.h> #include <drm/drm_probe_helper.h> +#include <drm/drm_simple_kms_helper.h> #include <drm/exynos_drm.h> #include "exynos_drm_crtc.h" @@ -135,10 +136,6 @@ static const struct drm_encoder_helper_funcs exynos_dp_encoder_helper_funcs = { .disable = exynos_dp_nop, }; -static const struct drm_encoder_funcs exynos_dp_encoder_funcs = { - .destroy = drm_encoder_cleanup, -}; - static int exynos_dp_dt_parse_panel(struct exynos_dp_device *dp) { int ret; @@ -174,8 +171,7 @@ static int exynos_dp_bind(struct device *dev, struct device *master, void *data) return ret; } - drm_encoder_init(drm_dev, encoder, &exynos_dp_encoder_funcs, - DRM_MODE_ENCODER_TMDS, NULL); + drm_simple_encoder_init(drm_dev, encoder, DRM_MODE_ENCODER_TMDS); drm_encoder_helper_add(encoder, &exynos_dp_encoder_helper_funcs); diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c index 43fa0f26c052..7ba5354e7d94 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c +++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c @@ -14,6 +14,7 @@ #include <drm/drm_panel.h> #include <drm/drm_print.h> #include <drm/drm_probe_helper.h> +#include <drm/drm_simple_kms_helper.h> #include <video/of_videomode.h> #include <video/videomode.h> @@ -149,10 +150,6 @@ static const struct drm_encoder_helper_funcs exynos_dpi_encoder_helper_funcs = { .disable = exynos_dpi_disable, }; -static const struct drm_encoder_funcs exynos_dpi_encoder_funcs = { - .destroy = drm_encoder_cleanup, -}; - enum { FIMD_PORT_IN0, FIMD_PORT_IN1, @@ -201,8 +198,7 @@ int exynos_dpi_bind(struct drm_device *dev, struct drm_encoder *encoder) { int ret; - drm_encoder_init(dev, encoder, &exynos_dpi_encoder_funcs, - DRM_MODE_ENCODER_TMDS, NULL); + drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_TMDS); drm_encoder_helper_add(encoder, &exynos_dpi_encoder_helper_funcs); diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c index 669d3857502a..2986c93382e0 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c @@ -30,6 +30,7 @@ #include <drm/drm_panel.h> #include <drm/drm_print.h> #include <drm/drm_probe_helper.h> +#include <drm/drm_simple_kms_helper.h> #include "exynos_drm_crtc.h" #include "exynos_drm_drv.h" @@ -1524,10 +1525,6 @@ static const struct drm_encoder_helper_funcs exynos_dsi_encoder_helper_funcs = { .disable = exynos_dsi_disable, }; -static const struct drm_encoder_funcs exynos_dsi_encoder_funcs = { - .destroy = drm_encoder_cleanup, -}; - MODULE_DEVICE_TABLE(of, exynos_dsi_of_match); static int exynos_dsi_host_attach(struct mipi_dsi_host *host, @@ -1705,8 +1702,7 @@ static int exynos_dsi_bind(struct device *dev, struct device *master, struct drm_bridge *in_bridge; int ret; - drm_encoder_init(drm_dev, encoder, &exynos_dsi_encoder_funcs, - DRM_MODE_ENCODER_TMDS, NULL); + drm_simple_encoder_init(drm_dev, encoder, DRM_MODE_ENCODER_TMDS); drm_encoder_helper_add(encoder, &exynos_dsi_encoder_helper_funcs); diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c index b320b3a21ad4..282467121699 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c +++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c @@ -14,6 +14,7 @@ #include <drm/drm_atomic_helper.h> #include <drm/drm_edid.h> #include <drm/drm_probe_helper.h> +#include <drm/drm_simple_kms_helper.h> #include <drm/drm_vblank.h> #include <drm/exynos_drm.h> @@ -369,10 +370,6 @@ static const struct drm_encoder_helper_funcs exynos_vidi_encoder_helper_funcs = .disable = exynos_vidi_disable, }; -static const struct drm_encoder_funcs exynos_vidi_encoder_funcs = { - .destroy = drm_encoder_cleanup, -}; - static int vidi_bind(struct device *dev, struct device *master, void *data) { struct vidi_context *ctx = dev_get_drvdata(dev); @@ -406,8 +403,7 @@ static int vidi_bind(struct device *dev, struct device *master, void *data) return PTR_ERR(ctx->crtc); } - drm_encoder_init(drm_dev, encoder, &exynos_vidi_encoder_funcs, - DRM_MODE_ENCODER_TMDS, NULL); + drm_simple_encoder_init(drm_dev, encoder, DRM_MODE_ENCODER_TMDS); drm_encoder_helper_add(encoder, &exynos_vidi_encoder_helper_funcs); diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c index 3e5f1a77286d..302ffda5f297 100644 --- a/drivers/gpu/drm/exynos/exynos_hdmi.c +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c @@ -38,6 +38,7 @@ #include <drm/drm_edid.h> #include <drm/drm_print.h> #include <drm/drm_probe_helper.h> +#include <drm/drm_simple_kms_helper.h> #include "exynos_drm_crtc.h" #include "regs-hdmi.h" @@ -1559,10 +1560,6 @@ static const struct drm_encoder_helper_funcs exynos_hdmi_encoder_helper_funcs = .disable = hdmi_disable, }; -static const struct drm_encoder_funcs exynos_hdmi_encoder_funcs = { - .destroy = drm_encoder_cleanup, -}; - static void hdmi_audio_shutdown(struct device *dev, void *data) { struct hdmi_context *hdata = dev_get_drvdata(dev); @@ -1851,8 +1848,7 @@ static int hdmi_bind(struct device *dev, struct device *master, void *data) hdata->phy_clk.enable = hdmiphy_clk_enable; - drm_encoder_init(drm_dev, encoder, &exynos_hdmi_encoder_funcs, - DRM_MODE_ENCODER_TMDS, NULL); + drm_simple_encoder_init(drm_dev, encoder, DRM_MODE_ENCODER_TMDS); drm_encoder_helper_add(encoder, &exynos_hdmi_encoder_helper_funcs);
The exynos driver uses empty implementations for its encoders. Replace the code with the generic simple encoder. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> --- drivers/gpu/drm/exynos/exynos_dp.c | 8 ++------ drivers/gpu/drm/exynos/exynos_drm_dpi.c | 8 ++------ drivers/gpu/drm/exynos/exynos_drm_dsi.c | 8 ++------ drivers/gpu/drm/exynos/exynos_drm_vidi.c | 8 ++------ drivers/gpu/drm/exynos/exynos_hdmi.c | 8 ++------ 5 files changed, 10 insertions(+), 30 deletions(-)