From: kernel test robot <lkp@intel.com>
To: cros-kernel-buildreports@googlegroups.com
Cc: oe-kbuild-all@lists.linux.dev
Subject: [chrome-os:chromeos-6.6 29/29] drivers/gpu/drm/mediatek/mtk_crtc.c:2029:27: error: 'struct mtk_crtc' has no member named 'fast_modeset_done'
Date: Wed, 05 Aug 2026 12:36:23 +0800 [thread overview]
Message-ID: <202608051229.vIqCwwpU-lkp@intel.com> (raw)
tree: https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-6.6
head: 1213fba9236ab86f264ce386ca98c8c671f6cb55
commit: d987a15a211de927eda62988be34f608ebeed65e [29/29] CHROMIUM: drm/mediatek: Fix spurious wakeup causing black screen
config: arm64-randconfig-002-20260805 (https://download.01.org/0day-ci/archive/20260805/202608051229.vIqCwwpU-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 8.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260805/202608051229.vIqCwwpU-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202608051229.vIqCwwpU-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/gpu/drm/mediatek/mtk_crtc.c: In function 'mtk_crtc_update_srt_state':
drivers/gpu/drm/mediatek/mtk_crtc.c:597:25: warning: variable 'state' set but not used [-Wunused-but-set-variable]
struct mtk_crtc_state *state;
^~~~~
drivers/gpu/drm/mediatek/mtk_crtc.c: In function 'mtk_crtc_atomic_flush':
drivers/gpu/drm/mediatek/mtk_crtc.c:1649:17: error: 'struct mtk_crtc' has no member named 'cmdq_client'
if (!mtk_crtc->cmdq_client.chan)
^~
drivers/gpu/drm/mediatek/mtk_crtc.c: At top level:
drivers/gpu/drm/mediatek/mtk_crtc.c:1656:5: warning: no previous prototype for 'mtk_crtc_atomic_check' [-Wmissing-prototypes]
int mtk_crtc_atomic_check(struct drm_crtc *crtc, struct drm_atomic_state *state)
^~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/mediatek/mtk_crtc.c: In function 'mtk_crtc_create':
>> drivers/gpu/drm/mediatek/mtk_crtc.c:2029:27: error: 'struct mtk_crtc' has no member named 'fast_modeset_done'
init_completion(&mtk_crtc->fast_modeset_done);
^~
At top level:
drivers/gpu/drm/mediatek/mtk_crtc.c:557:13: warning: 'mtk_crtc_post_update_hrt_state' defined but not used [-Wunused-function]
static void mtk_crtc_post_update_hrt_state(struct mtk_crtc *mtk_crtc)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +2029 drivers/gpu/drm/mediatek/mtk_crtc.c
1813
1814 int mtk_crtc_create(struct drm_device *drm_dev, enum mtk_crtc_path path_sel)
1815 {
1816 struct mtk_drm_private *priv = drm_dev->dev_private;
1817 struct device *dev = drm_dev->dev;
1818 struct mtk_crtc *mtk_crtc;
1819 unsigned int num_comp_planes = 0;
1820 int ret;
1821 int i, j, k;
1822 bool has_ctm = false;
1823 uint gamma_lut_size = 0;
1824 struct drm_crtc *tmp;
1825 int crtc_i = 0;
1826 struct mtk_drm_private *subsys_priv;
1827 struct mtk_crtc_comp_info path[DDP_COMPONENT_ID_MAX];
1828 unsigned int path_len = 0;
1829 const struct mtk_drm_route *conn_routes = NULL;
1830 unsigned int num_conn_routes = 0;
1831 enum mtk_drm_mmsys conn_mmsys;
1832
1833 drm_for_each_crtc(tmp, drm_dev)
1834 crtc_i++;
1835
1836 for (j = 0; j < priv->data->mmsys_dev_num; j++) {
1837 for (k = 0; k < MAX_MMSYS; k++) {
1838 const unsigned int *subsys_path;
1839 unsigned int subsys_path_len = 0;
1840 unsigned int order = 0;
1841
1842 subsys_priv = priv->all_drm_private[k];
1843 if (!subsys_priv)
1844 continue;
1845
1846 if (path_sel == CRTC_MAIN) {
1847 subsys_path = subsys_priv->data->main_path;
1848 subsys_path_len = subsys_priv->data->main_len;
1849 order = subsys_priv->data->main_order;
1850 } else if (path_sel == CRTC_EXT) {
1851 subsys_path = subsys_priv->data->ext_path;
1852 subsys_path_len = subsys_priv->data->ext_len;
1853 order = subsys_priv->data->ext_order;
1854 } else if (path_sel == CRTC_THIRD) {
1855 subsys_path = subsys_priv->data->third_path;
1856 subsys_path_len = subsys_priv->data->third_len;
1857 order = subsys_priv->data->third_order;
1858 }
1859
1860 if (subsys_priv->data->num_conn_routes) {
1861 conn_routes = subsys_priv->data->conn_routes;
1862 num_conn_routes = subsys_priv->data->num_conn_routes;
1863 conn_mmsys = subsys_priv->data->mmsys_id;
1864 }
1865
1866 if (j != order)
1867 continue;
1868 if (!subsys_path_len)
1869 continue;
1870
1871 for (i = 0; i < subsys_path_len; i++) {
1872 path[path_len].sys = subsys_priv->data->mmsys_id;
1873 path[path_len].comp_id = subsys_path[i];
1874 path_len++;
1875 }
1876 }
1877 }
1878
1879 if (!path_len)
1880 return 0;
1881
1882 if (num_conn_routes) {
1883 for (i = 0; i < num_conn_routes; i++)
1884 if (conn_routes->crtc_id == crtc_i)
1885 break;
1886 if (i == num_conn_routes) {
1887 num_conn_routes = 0;
1888 conn_routes = NULL;
1889 }
1890 }
1891
1892 for (i = 0; i < path_len; i++) {
1893 enum mtk_ddp_comp_id comp_id = path[i].comp_id;
1894 struct device_node *node;
1895 struct mtk_ddp_comp *comp;
1896
1897 priv = priv->all_drm_private[path[i].sys];
1898 node = priv->comp_node[comp_id];
1899 comp = &priv->ddp_comp[comp_id];
1900
1901 /* Not all drm components have a DTS device node, such as ovl_adaptor,
1902 * which is the drm bring up sub driver
1903 */
1904 if (!node && comp_id != DDP_COMPONENT_DRM_OVL_ADAPTOR &&
1905 comp_id != DDP_COMPONENT_DRM_OVLSYS_ADAPTOR0 &&
1906 comp_id != DDP_COMPONENT_DRM_OVLSYS_ADAPTOR1 &&
1907 comp_id != DDP_COMPONENT_DRM_OVLSYS_ADAPTOR2 &&
1908 mtk_ddp_comp_get_type(comp_id) != MTK_DISP_VIRTUAL) {
1909 dev_info(dev,
1910 "Not creating crtc %d because component %d is disabled or missing\n",
1911 crtc_i, comp_id);
1912 return 0;
1913 }
1914
1915 if (!comp->dev && mtk_ddp_comp_get_type(comp_id) != MTK_DISP_VIRTUAL) {
1916 dev_err(dev, "Component %pOF not initialized\n", node);
1917 return -ENODEV;
1918 }
1919 }
1920
1921 mtk_crtc = devm_kzalloc(dev, sizeof(*mtk_crtc), GFP_KERNEL);
1922 if (!mtk_crtc)
1923 return -ENOMEM;
1924
1925 mtk_crtc->qos_ctx = devm_kzalloc(dev, sizeof(struct mtk_crtc_qos_ctx), GFP_KERNEL);
1926 if (!mtk_crtc->qos_ctx)
1927 return -ENOMEM;
1928
1929 for (i = 0; i < MAX_MMSYS; i++)
1930 if (priv->all_drm_private[i])
1931 mtk_crtc->mmsys_dev[i] = priv->all_drm_private[i]->mmsys_dev;
1932 mtk_crtc->ddp_comp_nr = path_len;
1933 mtk_crtc->ddp_comp = devm_kcalloc(dev,
1934 mtk_crtc->ddp_comp_nr + (conn_routes ? 1 : 0),
1935 sizeof(*mtk_crtc->ddp_comp),
1936 GFP_KERNEL);
1937 if (!mtk_crtc->ddp_comp)
1938 return -ENOMEM;
1939
1940 mtk_crtc->ddp_comp_sys = devm_kmalloc_array(dev, mtk_crtc->ddp_comp_nr +
1941 (conn_routes ? 1 : 0),
1942 sizeof(*mtk_crtc->ddp_comp_sys), GFP_KERNEL);
1943 if (!mtk_crtc->ddp_comp_sys)
1944 return -ENOMEM;
1945
1946 for (i = 0; i < MAX_MMSYS; i++) {
1947 if (!priv->all_drm_private[i])
1948 continue;
1949
1950 priv = priv->all_drm_private[i];
1951 mtk_crtc->mutex[i] = mtk_mutex_get(priv->mutex_dev);
1952 if (IS_ERR(mtk_crtc->mutex[i])) {
1953 ret = PTR_ERR(mtk_crtc->mutex[i]);
1954 dev_err(dev, "Failed to get mutex: %d\n", ret);
1955 return ret;
1956 }
1957 }
1958
1959 for (i = 0; i < mtk_crtc->ddp_comp_nr; i++) {
1960 unsigned int comp_id = path[i].comp_id;
1961 struct mtk_ddp_comp *comp;
1962
1963 priv = priv->all_drm_private[path[i].sys];
1964 comp = &priv->ddp_comp[comp_id];
1965 if (mtk_ddp_comp_get_type(comp_id) == MTK_DISP_VIRTUAL)
1966 comp->id = comp_id;
1967 mtk_crtc->ddp_comp[i] = comp;
1968 mtk_crtc->ddp_comp_sys[i] = path[i].sys;
1969 mtk_crtc->exist[path[i].sys] = true;
1970
1971 if (comp->funcs) {
1972 if (comp->funcs->gamma_set && comp->funcs->gamma_get_lut_size) {
1973 unsigned int lut_sz = mtk_ddp_gamma_get_lut_size(comp);
1974
1975 if (lut_sz)
1976 gamma_lut_size = lut_sz;
1977 }
1978
1979 if (comp->funcs->ctm_set)
1980 has_ctm = true;
1981
1982
1983 if (comp->funcs->crc_cnt && comp->funcs->crc_cnt(comp->dev) &&
1984 !mtk_crtc->crc_provider) {
1985 mtk_crtc->crc_provider = comp;
1986 comp->funcs->crc_attach(comp->dev, mtk_crtc);
1987 }
1988
1989 }
1990
1991 mtk_ddp_comp_register_vblank_cb(comp, mtk_crtc_ddp_irq,
1992 &mtk_crtc->base);
1993 }
1994
1995 for (i = 0; i < mtk_crtc->ddp_comp_nr; i++)
1996 num_comp_planes += mtk_crtc_num_comp_planes(mtk_crtc, i);
1997
1998 mtk_crtc->planes = devm_kcalloc(dev, num_comp_planes,
1999 sizeof(struct drm_plane), GFP_KERNEL);
2000 if (!mtk_crtc->planes)
2001 return -ENOMEM;
2002
2003 for (i = 0; i < mtk_crtc->ddp_comp_nr; i++) {
2004 ret = mtk_crtc_init_comp_planes(drm_dev, mtk_crtc, i, crtc_i);
2005 if (ret)
2006 return ret;
2007 }
2008
2009 /*
2010 * Default to use the first component as the dma dev.
2011 * In the case of ovl_adaptor sub driver, it needs to use the
2012 * dma_dev_get function to get representative dma dev.
2013 */
2014 priv = priv->all_drm_private[path[0].sys];
2015 mtk_crtc->dma_dev = mtk_ddp_comp_dma_dev_get(&priv->ddp_comp[path[0].comp_id]);
2016
2017 mtk_crtc->vdisp_ao_dev = priv->vdisp_ao_dev;
2018 mtk_crtc->dpc_dev = priv->dpc_dev;
2019 mtk_crtc->pmqos_dev = priv->pmqos_dev;
2020 ret = mtk_crtc_init(drm_dev, mtk_crtc, crtc_i);
2021 if (ret < 0)
2022 return ret;
2023
2024 if (gamma_lut_size)
2025 drm_mode_crtc_set_gamma_size(&mtk_crtc->base, gamma_lut_size);
2026 drm_crtc_enable_color_mgmt(&mtk_crtc->base, 0, has_ctm, gamma_lut_size);
2027 mutex_init(&mtk_crtc->hw_lock);
2028 spin_lock_init(&mtk_crtc->config_lock);
> 2029 init_completion(&mtk_crtc->fast_modeset_done);
2030
2031 if (mtk_crtc->layer_nr) {
2032 for (i = 0; i < mtk_crtc->layer_nr; i++)
2033 mtk_ddp_comp_channel_id_get(&priv->ddp_comp[path[0].comp_id], i,
2034 &mtk_crtc->qos_ctx->plane_channel_id[i]);
2035 }
2036
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2026-08-05 4:37 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202608051229.vIqCwwpU-lkp@intel.com \
--to=lkp@intel.com \
--cc=cros-kernel-buildreports@googlegroups.com \
--cc=oe-kbuild-all@lists.linux.dev \
/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.