All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:2005 dcn10_align_pixel_clocks() warn: inconsistent indenting
Date: Fri, 17 Dec 2021 06:16:50 +0800	[thread overview]
Message-ID: <202112170643.aEpVHFk9-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 7794 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   fa36bbe6d43f3bbce1f10a187e153587c7584d83
commit: 77a2b7265f20ee827e527eaa6f82b87e88388947 drm/amd/display: Synchronize displays with different timings
date:   10 months ago
config: x86_64-randconfig-m001-20211207 (https://download.01.org/0day-ci/archive/20211217/202112170643.aEpVHFk9-lkp(a)intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

New smatch warnings:
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:2005 dcn10_align_pixel_clocks() warn: inconsistent indenting
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:2050 dcn10_enable_vblanks_synchronization() warn: if statement not indented
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:2058 dcn10_enable_vblanks_synchronization() warn: inconsistent indenting

Old smatch warnings:
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:1449 dcn10_init_hw() error: we previously assumed 'dc->clk_mgr' could be null (see line 1276)
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:1691 dcn10_set_output_transfer_func() warn: variable dereferenced before check 'stream' (see line 1674)
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:3433 dcn10_update_pending_status() warn: variable dereferenced before check 'plane_state' (see line 3431)
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:3923 dcn10_set_clock() error: we previously assumed 'dc->clk_mgr' could be null (see line 3919)
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:3943 dcn10_set_clock() warn: variable dereferenced before check 'dc->clk_mgr' (see line 3923)

vim +2005 drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c

  1928	
  1929	int dcn10_align_pixel_clocks(
  1930		struct dc *dc,
  1931		int group_size,
  1932		struct pipe_ctx *grouped_pipes[])
  1933	{
  1934		struct dc_context *dc_ctx = dc->ctx;
  1935		int i, master = -1, embedded = -1;
  1936		struct dc_crtc_timing hw_crtc_timing[MAX_PIPES] = {0};
  1937		uint64_t phase[MAX_PIPES];
  1938		uint64_t modulo[MAX_PIPES];
  1939		unsigned int pclk;
  1940	
  1941		uint32_t embedded_pix_clk_100hz;
  1942		uint16_t embedded_h_total;
  1943		uint16_t embedded_v_total;
  1944		bool clamshell_closed = false;
  1945		uint32_t dp_ref_clk_100hz =
  1946			dc->res_pool->dp_clock_source->ctx->dc->clk_mgr->dprefclk_khz*10;
  1947	
  1948		if (dc->config.vblank_alignment_dto_params &&
  1949			dc->res_pool->dp_clock_source->funcs->override_dp_pix_clk) {
  1950			clamshell_closed =
  1951				(dc->config.vblank_alignment_dto_params >> 63);
  1952			embedded_h_total =
  1953				(dc->config.vblank_alignment_dto_params >> 32) & 0x7FFF;
  1954			embedded_v_total =
  1955				(dc->config.vblank_alignment_dto_params >> 48) & 0x7FFF;
  1956			embedded_pix_clk_100hz =
  1957				dc->config.vblank_alignment_dto_params & 0xFFFFFFFF;
  1958	
  1959			for (i = 0; i < group_size; i++) {
  1960				grouped_pipes[i]->stream_res.tg->funcs->get_hw_timing(
  1961						grouped_pipes[i]->stream_res.tg,
  1962						&hw_crtc_timing[i]);
  1963				dc->res_pool->dp_clock_source->funcs->get_pixel_clk_frequency_100hz(
  1964					dc->res_pool->dp_clock_source,
  1965					grouped_pipes[i]->stream_res.tg->inst,
  1966					&pclk);
  1967				hw_crtc_timing[i].pix_clk_100hz = pclk;
  1968				if (dc_is_embedded_signal(
  1969						grouped_pipes[i]->stream->signal)) {
  1970					embedded = i;
  1971					master = i;
  1972					phase[i] = embedded_pix_clk_100hz*100;
  1973					modulo[i] = dp_ref_clk_100hz*100;
  1974				} else {
  1975	
  1976					phase[i] = (uint64_t)embedded_pix_clk_100hz*
  1977						hw_crtc_timing[i].h_total*
  1978						hw_crtc_timing[i].v_total/
  1979						get_clock_divider(grouped_pipes[i], true);
  1980					modulo[i] = (uint64_t)dp_ref_clk_100hz*
  1981						embedded_h_total*
  1982						embedded_v_total;
  1983	
  1984					if (reduceSizeAndFraction(&phase[i],
  1985							&modulo[i], true) == false) {
  1986						/*
  1987						 * this will help to stop reporting
  1988						 * this timing synchronizable
  1989						 */
  1990						DC_SYNC_INFO("Failed to reduce DTO parameters\n");
  1991						grouped_pipes[i]->stream->has_non_synchronizable_pclk = true;
  1992					}
  1993				}
  1994			}
  1995	
  1996			for (i = 0; i < group_size; i++) {
  1997				if (i != embedded && !grouped_pipes[i]->stream->has_non_synchronizable_pclk) {
  1998					dc->res_pool->dp_clock_source->funcs->override_dp_pix_clk(
  1999						dc->res_pool->dp_clock_source,
  2000						grouped_pipes[i]->stream_res.tg->inst,
  2001						phase[i], modulo[i]);
  2002					dc->res_pool->dp_clock_source->funcs->get_pixel_clk_frequency_100hz(
  2003						dc->res_pool->dp_clock_source,
  2004						grouped_pipes[i]->stream_res.tg->inst, &pclk);
> 2005						grouped_pipes[i]->stream->timing.pix_clk_100hz =
  2006							pclk*get_clock_divider(grouped_pipes[i], false);
  2007					if (master == -1)
  2008						master = i;
  2009				}
  2010			}
  2011	
  2012		}
  2013		return master;
  2014	}
  2015	
  2016	void dcn10_enable_vblanks_synchronization(
  2017		struct dc *dc,
  2018		int group_index,
  2019		int group_size,
  2020		struct pipe_ctx *grouped_pipes[])
  2021	{
  2022		struct dc_context *dc_ctx = dc->ctx;
  2023		struct output_pixel_processor *opp;
  2024		struct timing_generator *tg;
  2025		int i, width, height, master;
  2026	
  2027		for (i = 1; i < group_size; i++) {
  2028			opp = grouped_pipes[i]->stream_res.opp;
  2029			tg = grouped_pipes[i]->stream_res.tg;
  2030			tg->funcs->get_otg_active_size(tg, &width, &height);
  2031			if (opp->funcs->opp_program_dpg_dimensions)
  2032				opp->funcs->opp_program_dpg_dimensions(opp, width, 2*(height) + 1);
  2033		}
  2034	
  2035		for (i = 0; i < group_size; i++) {
  2036			if (grouped_pipes[i]->stream == NULL)
  2037				continue;
  2038			grouped_pipes[i]->stream->vblank_synchronized = false;
  2039			grouped_pipes[i]->stream->has_non_synchronizable_pclk = false;
  2040		}
  2041	
  2042		DC_SYNC_INFO("Aligning DP DTOs\n");
  2043	
  2044		master = dcn10_align_pixel_clocks(dc, group_size, grouped_pipes);
  2045	
  2046		DC_SYNC_INFO("Synchronizing VBlanks\n");
  2047	
  2048		if (master >= 0) {
  2049			for (i = 0; i < group_size; i++) {
> 2050				if (i != master && !grouped_pipes[i]->stream->has_non_synchronizable_pclk)
  2051				grouped_pipes[i]->stream_res.tg->funcs->align_vblanks(
  2052					grouped_pipes[master]->stream_res.tg,
  2053					grouped_pipes[i]->stream_res.tg,
  2054					grouped_pipes[master]->stream->timing.pix_clk_100hz,
  2055					grouped_pipes[i]->stream->timing.pix_clk_100hz,
  2056					get_clock_divider(grouped_pipes[master], false),
  2057					get_clock_divider(grouped_pipes[i], false));
> 2058					grouped_pipes[i]->stream->vblank_synchronized = true;
  2059			}
  2060			grouped_pipes[master]->stream->vblank_synchronized = true;
  2061			DC_SYNC_INFO("Sync complete\n");
  2062		}
  2063	
  2064		for (i = 1; i < group_size; i++) {
  2065			opp = grouped_pipes[i]->stream_res.opp;
  2066			tg = grouped_pipes[i]->stream_res.tg;
  2067			tg->funcs->get_otg_active_size(tg, &width, &height);
  2068			if (opp->funcs->opp_program_dpg_dimensions)
  2069				opp->funcs->opp_program_dpg_dimensions(opp, width, height);
  2070		}
  2071	}
  2072	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Vladimir Stempen <vladimir.stempen@amd.com>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	Alex Deucher <alexander.deucher@amd.com>
Subject: drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:2005 dcn10_align_pixel_clocks() warn: inconsistent indenting
Date: Fri, 17 Dec 2021 06:16:50 +0800	[thread overview]
Message-ID: <202112170643.aEpVHFk9-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   fa36bbe6d43f3bbce1f10a187e153587c7584d83
commit: 77a2b7265f20ee827e527eaa6f82b87e88388947 drm/amd/display: Synchronize displays with different timings
date:   10 months ago
config: x86_64-randconfig-m001-20211207 (https://download.01.org/0day-ci/archive/20211217/202112170643.aEpVHFk9-lkp@intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

New smatch warnings:
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:2005 dcn10_align_pixel_clocks() warn: inconsistent indenting
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:2050 dcn10_enable_vblanks_synchronization() warn: if statement not indented
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:2058 dcn10_enable_vblanks_synchronization() warn: inconsistent indenting

Old smatch warnings:
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:1449 dcn10_init_hw() error: we previously assumed 'dc->clk_mgr' could be null (see line 1276)
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:1691 dcn10_set_output_transfer_func() warn: variable dereferenced before check 'stream' (see line 1674)
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:3433 dcn10_update_pending_status() warn: variable dereferenced before check 'plane_state' (see line 3431)
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:3923 dcn10_set_clock() error: we previously assumed 'dc->clk_mgr' could be null (see line 3919)
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:3943 dcn10_set_clock() warn: variable dereferenced before check 'dc->clk_mgr' (see line 3923)

vim +2005 drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c

  1928	
  1929	int dcn10_align_pixel_clocks(
  1930		struct dc *dc,
  1931		int group_size,
  1932		struct pipe_ctx *grouped_pipes[])
  1933	{
  1934		struct dc_context *dc_ctx = dc->ctx;
  1935		int i, master = -1, embedded = -1;
  1936		struct dc_crtc_timing hw_crtc_timing[MAX_PIPES] = {0};
  1937		uint64_t phase[MAX_PIPES];
  1938		uint64_t modulo[MAX_PIPES];
  1939		unsigned int pclk;
  1940	
  1941		uint32_t embedded_pix_clk_100hz;
  1942		uint16_t embedded_h_total;
  1943		uint16_t embedded_v_total;
  1944		bool clamshell_closed = false;
  1945		uint32_t dp_ref_clk_100hz =
  1946			dc->res_pool->dp_clock_source->ctx->dc->clk_mgr->dprefclk_khz*10;
  1947	
  1948		if (dc->config.vblank_alignment_dto_params &&
  1949			dc->res_pool->dp_clock_source->funcs->override_dp_pix_clk) {
  1950			clamshell_closed =
  1951				(dc->config.vblank_alignment_dto_params >> 63);
  1952			embedded_h_total =
  1953				(dc->config.vblank_alignment_dto_params >> 32) & 0x7FFF;
  1954			embedded_v_total =
  1955				(dc->config.vblank_alignment_dto_params >> 48) & 0x7FFF;
  1956			embedded_pix_clk_100hz =
  1957				dc->config.vblank_alignment_dto_params & 0xFFFFFFFF;
  1958	
  1959			for (i = 0; i < group_size; i++) {
  1960				grouped_pipes[i]->stream_res.tg->funcs->get_hw_timing(
  1961						grouped_pipes[i]->stream_res.tg,
  1962						&hw_crtc_timing[i]);
  1963				dc->res_pool->dp_clock_source->funcs->get_pixel_clk_frequency_100hz(
  1964					dc->res_pool->dp_clock_source,
  1965					grouped_pipes[i]->stream_res.tg->inst,
  1966					&pclk);
  1967				hw_crtc_timing[i].pix_clk_100hz = pclk;
  1968				if (dc_is_embedded_signal(
  1969						grouped_pipes[i]->stream->signal)) {
  1970					embedded = i;
  1971					master = i;
  1972					phase[i] = embedded_pix_clk_100hz*100;
  1973					modulo[i] = dp_ref_clk_100hz*100;
  1974				} else {
  1975	
  1976					phase[i] = (uint64_t)embedded_pix_clk_100hz*
  1977						hw_crtc_timing[i].h_total*
  1978						hw_crtc_timing[i].v_total/
  1979						get_clock_divider(grouped_pipes[i], true);
  1980					modulo[i] = (uint64_t)dp_ref_clk_100hz*
  1981						embedded_h_total*
  1982						embedded_v_total;
  1983	
  1984					if (reduceSizeAndFraction(&phase[i],
  1985							&modulo[i], true) == false) {
  1986						/*
  1987						 * this will help to stop reporting
  1988						 * this timing synchronizable
  1989						 */
  1990						DC_SYNC_INFO("Failed to reduce DTO parameters\n");
  1991						grouped_pipes[i]->stream->has_non_synchronizable_pclk = true;
  1992					}
  1993				}
  1994			}
  1995	
  1996			for (i = 0; i < group_size; i++) {
  1997				if (i != embedded && !grouped_pipes[i]->stream->has_non_synchronizable_pclk) {
  1998					dc->res_pool->dp_clock_source->funcs->override_dp_pix_clk(
  1999						dc->res_pool->dp_clock_source,
  2000						grouped_pipes[i]->stream_res.tg->inst,
  2001						phase[i], modulo[i]);
  2002					dc->res_pool->dp_clock_source->funcs->get_pixel_clk_frequency_100hz(
  2003						dc->res_pool->dp_clock_source,
  2004						grouped_pipes[i]->stream_res.tg->inst, &pclk);
> 2005						grouped_pipes[i]->stream->timing.pix_clk_100hz =
  2006							pclk*get_clock_divider(grouped_pipes[i], false);
  2007					if (master == -1)
  2008						master = i;
  2009				}
  2010			}
  2011	
  2012		}
  2013		return master;
  2014	}
  2015	
  2016	void dcn10_enable_vblanks_synchronization(
  2017		struct dc *dc,
  2018		int group_index,
  2019		int group_size,
  2020		struct pipe_ctx *grouped_pipes[])
  2021	{
  2022		struct dc_context *dc_ctx = dc->ctx;
  2023		struct output_pixel_processor *opp;
  2024		struct timing_generator *tg;
  2025		int i, width, height, master;
  2026	
  2027		for (i = 1; i < group_size; i++) {
  2028			opp = grouped_pipes[i]->stream_res.opp;
  2029			tg = grouped_pipes[i]->stream_res.tg;
  2030			tg->funcs->get_otg_active_size(tg, &width, &height);
  2031			if (opp->funcs->opp_program_dpg_dimensions)
  2032				opp->funcs->opp_program_dpg_dimensions(opp, width, 2*(height) + 1);
  2033		}
  2034	
  2035		for (i = 0; i < group_size; i++) {
  2036			if (grouped_pipes[i]->stream == NULL)
  2037				continue;
  2038			grouped_pipes[i]->stream->vblank_synchronized = false;
  2039			grouped_pipes[i]->stream->has_non_synchronizable_pclk = false;
  2040		}
  2041	
  2042		DC_SYNC_INFO("Aligning DP DTOs\n");
  2043	
  2044		master = dcn10_align_pixel_clocks(dc, group_size, grouped_pipes);
  2045	
  2046		DC_SYNC_INFO("Synchronizing VBlanks\n");
  2047	
  2048		if (master >= 0) {
  2049			for (i = 0; i < group_size; i++) {
> 2050				if (i != master && !grouped_pipes[i]->stream->has_non_synchronizable_pclk)
  2051				grouped_pipes[i]->stream_res.tg->funcs->align_vblanks(
  2052					grouped_pipes[master]->stream_res.tg,
  2053					grouped_pipes[i]->stream_res.tg,
  2054					grouped_pipes[master]->stream->timing.pix_clk_100hz,
  2055					grouped_pipes[i]->stream->timing.pix_clk_100hz,
  2056					get_clock_divider(grouped_pipes[master], false),
  2057					get_clock_divider(grouped_pipes[i], false));
> 2058					grouped_pipes[i]->stream->vblank_synchronized = true;
  2059			}
  2060			grouped_pipes[master]->stream->vblank_synchronized = true;
  2061			DC_SYNC_INFO("Sync complete\n");
  2062		}
  2063	
  2064		for (i = 1; i < group_size; i++) {
  2065			opp = grouped_pipes[i]->stream_res.opp;
  2066			tg = grouped_pipes[i]->stream_res.tg;
  2067			tg->funcs->get_otg_active_size(tg, &width, &height);
  2068			if (opp->funcs->opp_program_dpg_dimensions)
  2069				opp->funcs->opp_program_dpg_dimensions(opp, width, height);
  2070		}
  2071	}
  2072	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

             reply	other threads:[~2021-12-16 22:16 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-16 22:16 kernel test robot [this message]
2021-12-16 22:16 ` drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:2005 dcn10_align_pixel_clocks() warn: inconsistent indenting kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202112170643.aEpVHFk9-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.