Message ID | 45529eeddc5d5eab9bcfa74982343eeb36fe11f6.1499955058.git-series.maxime.ripard@free-electrons.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Maxime, [auto build test ERROR on next-20170710] [cannot apply to mripard/sunxi/for-next robh/for-next regmap/for-next v4.12 v4.12-rc7 v4.12-rc6 v4.12] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Maxime-Ripard/drm-sun4i-Allwinner-MIPI-DSI-support/20170714-123103 config: arm-sunxi_defconfig (attached as .config) compiler: arm-linux-gnueabi-gcc (Debian 6.1.1-9) 6.1.1 20160705 reproduce: wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=arm All errors (new ones prefixed by >>): drivers/gpu/drm/sun4i/sun4i_tcon.c: In function 'sun4i_tcon0_mode_set_common': >> drivers/gpu/drm/sun4i/sun4i_tcon.c:132:2: error: implicit declaration of function 'clk_set_rate_protect' [-Werror=implicit-function-declaration] clk_set_rate_protect(tcon->dclk, mode->crtc_clock * 1000); ^~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +/clk_set_rate_protect +132 drivers/gpu/drm/sun4i/sun4i_tcon.c 127 128 static void sun4i_tcon0_mode_set_common(struct sun4i_tcon *tcon, 129 struct drm_display_mode *mode) 130 { 131 /* Configure the dot clock */ > 132 clk_set_rate_protect(tcon->dclk, mode->crtc_clock * 1000); 133 134 /* Set the resolution */ 135 regmap_write(tcon->regs, SUN4I_TCON0_BASIC0_REG, 136 SUN4I_TCON0_BASIC0_X(mode->crtc_hdisplay) | 137 SUN4I_TCON0_BASIC0_Y(mode->crtc_vdisplay)); 138 } 139 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
On Thu, Jul 13, 2017 at 10:13 PM, Maxime Ripard <maxime.ripard@free-electrons.com> wrote: > Some channel0 setup has to be done, no matter what the output interface is > (RGB, CPU, LVDS). Move that code into a common function in order to avoid > duplication. > > Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> > --- > drivers/gpu/drm/sun4i/sun4i_tcon.c | 26 ++++++++++++++++---------- > 1 file changed, 16 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c > index a3bbf9994cfa..f051862d635e 100644 > --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c > +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c > @@ -125,15 +125,26 @@ static int sun4i_tcon_get_clk_delay(struct drm_display_mode *mode, > return delay; > } > > -static void sun4i_tcon0_mode_set(struct sun4i_tcon *tcon, > - struct drm_display_mode *mode) > +static void sun4i_tcon0_mode_set_common(struct sun4i_tcon *tcon, > + struct drm_display_mode *mode) > +{ > + /* Configure the dot clock */ > + clk_set_rate_protect(tcon->dclk, mode->crtc_clock * 1000); I'd prefer not changing APIs in a code move. It also means we could apply this sooner than later. Otherwise, Reviewed-by: Chen-Yu Tsai <wens@csie.org> > + > + /* Set the resolution */ > + regmap_write(tcon->regs, SUN4I_TCON0_BASIC0_REG, > + SUN4I_TCON0_BASIC0_X(mode->crtc_hdisplay) | > + SUN4I_TCON0_BASIC0_Y(mode->crtc_vdisplay)); > +} > + > +static void sun4i_tcon0_mode_set_rgb(struct sun4i_tcon *tcon, > + struct drm_display_mode *mode) > { > unsigned int bp, hsync, vsync; > u8 clk_delay; > u32 val = 0; > > - /* Configure the dot clock */ > - clk_set_rate(tcon->dclk, mode->crtc_clock * 1000); > + sun4i_tcon0_mode_set_common(tcon, mode); > > /* Adjust clock delay */ > clk_delay = sun4i_tcon_get_clk_delay(mode, 0); > @@ -141,11 +152,6 @@ static void sun4i_tcon0_mode_set(struct sun4i_tcon *tcon, > SUN4I_TCON0_CTL_CLK_DELAY_MASK, > SUN4I_TCON0_CTL_CLK_DELAY(clk_delay)); > > - /* Set the resolution */ > - regmap_write(tcon->regs, SUN4I_TCON0_BASIC0_REG, > - SUN4I_TCON0_BASIC0_X(mode->crtc_hdisplay) | > - SUN4I_TCON0_BASIC0_Y(mode->crtc_vdisplay)); > - > /* > * This is called a backporch in the register documentation, > * but it really is the back porch + hsync > @@ -295,7 +301,7 @@ void sun4i_tcon_mode_set(struct sun4i_tcon *tcon, struct drm_encoder *encoder, > { > switch (encoder->encoder_type) { > case DRM_MODE_ENCODER_NONE: > - sun4i_tcon0_mode_set(tcon, mode); > + sun4i_tcon0_mode_set_rgb(tcon, mode); > break; > case DRM_MODE_ENCODER_TVDAC: > /* > -- > git-series 0.9.1
On Tue, Jul 18, 2017 at 11:41:36AM +0800, Chen-Yu Tsai wrote: > On Thu, Jul 13, 2017 at 10:13 PM, Maxime Ripard > <maxime.ripard@free-electrons.com> wrote: > > Some channel0 setup has to be done, no matter what the output interface is > > (RGB, CPU, LVDS). Move that code into a common function in order to avoid > > duplication. > > > > Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> > > --- > > drivers/gpu/drm/sun4i/sun4i_tcon.c | 26 ++++++++++++++++---------- > > 1 file changed, 16 insertions(+), 10 deletions(-) > > > > diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c > > index a3bbf9994cfa..f051862d635e 100644 > > --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c > > +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c > > @@ -125,15 +125,26 @@ static int sun4i_tcon_get_clk_delay(struct drm_display_mode *mode, > > return delay; > > } > > > > -static void sun4i_tcon0_mode_set(struct sun4i_tcon *tcon, > > - struct drm_display_mode *mode) > > +static void sun4i_tcon0_mode_set_common(struct sun4i_tcon *tcon, > > + struct drm_display_mode *mode) > > +{ > > + /* Configure the dot clock */ > > + clk_set_rate_protect(tcon->dclk, mode->crtc_clock * 1000); > > I'd prefer not changing APIs in a code move. It also means we could > apply this sooner than later. Otherwise, You're right, I've changed it. > Reviewed-by: Chen-Yu Tsai <wens@csie.org> Thanks! Maxime
diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c index a3bbf9994cfa..f051862d635e 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c @@ -125,15 +125,26 @@ static int sun4i_tcon_get_clk_delay(struct drm_display_mode *mode, return delay; } -static void sun4i_tcon0_mode_set(struct sun4i_tcon *tcon, - struct drm_display_mode *mode) +static void sun4i_tcon0_mode_set_common(struct sun4i_tcon *tcon, + struct drm_display_mode *mode) +{ + /* Configure the dot clock */ + clk_set_rate_protect(tcon->dclk, mode->crtc_clock * 1000); + + /* Set the resolution */ + regmap_write(tcon->regs, SUN4I_TCON0_BASIC0_REG, + SUN4I_TCON0_BASIC0_X(mode->crtc_hdisplay) | + SUN4I_TCON0_BASIC0_Y(mode->crtc_vdisplay)); +} + +static void sun4i_tcon0_mode_set_rgb(struct sun4i_tcon *tcon, + struct drm_display_mode *mode) { unsigned int bp, hsync, vsync; u8 clk_delay; u32 val = 0; - /* Configure the dot clock */ - clk_set_rate(tcon->dclk, mode->crtc_clock * 1000); + sun4i_tcon0_mode_set_common(tcon, mode); /* Adjust clock delay */ clk_delay = sun4i_tcon_get_clk_delay(mode, 0); @@ -141,11 +152,6 @@ static void sun4i_tcon0_mode_set(struct sun4i_tcon *tcon, SUN4I_TCON0_CTL_CLK_DELAY_MASK, SUN4I_TCON0_CTL_CLK_DELAY(clk_delay)); - /* Set the resolution */ - regmap_write(tcon->regs, SUN4I_TCON0_BASIC0_REG, - SUN4I_TCON0_BASIC0_X(mode->crtc_hdisplay) | - SUN4I_TCON0_BASIC0_Y(mode->crtc_vdisplay)); - /* * This is called a backporch in the register documentation, * but it really is the back porch + hsync @@ -295,7 +301,7 @@ void sun4i_tcon_mode_set(struct sun4i_tcon *tcon, struct drm_encoder *encoder, { switch (encoder->encoder_type) { case DRM_MODE_ENCODER_NONE: - sun4i_tcon0_mode_set(tcon, mode); + sun4i_tcon0_mode_set_rgb(tcon, mode); break; case DRM_MODE_ENCODER_TVDAC: /*
Some channel0 setup has to be done, no matter what the output interface is (RGB, CPU, LVDS). Move that code into a common function in order to avoid duplication. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> --- drivers/gpu/drm/sun4i/sun4i_tcon.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-)