* drivers/gpu/drm/bridge/synopsys/dw-dp.c:2080 dw_dp_bind() warn: passing zero to 'ERR_PTR'
@ 2025-12-15 18:41 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2025-12-15 18:41 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Andy Yan <andy.yan@rock-chips.com>
CC: Dmitry Baryshkov <lumag@kernel.org>
CC: Heiko Stuebner <heiko@sntech.de>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8f0b4cce4481fb22653697cced8d0d04027cb1e8
commit: d68ba7bac9555d05e2f5b310c898b2a5c7eff174 drm/rockchip: Add RK3588 DPTX output support
date: 4 months ago
:::::: branch date: 2 days ago
:::::: commit date: 4 months ago
config: arm64-randconfig-r071-20251215 (https://download.01.org/0day-ci/archive/20251216/202512160236.WR5aAHUS-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 10.5.0
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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202512160236.WR5aAHUS-lkp@intel.com/
New smatch warnings:
drivers/gpu/drm/bridge/synopsys/dw-dp.c:2080 dw_dp_bind() warn: passing zero to 'ERR_PTR'
Old smatch warnings:
drivers/gpu/drm/bridge/synopsys/dw-dp.c:1152 dw_dp_video_need_vsc_sdp() warn: signedness bug returning '(-22)'
vim +/ERR_PTR +2080 drivers/gpu/drm/bridge/synopsys/dw-dp.c
86eecc3a9c2e06 Andy Yan 2025-08-22 1968
86eecc3a9c2e06 Andy Yan 2025-08-22 1969 struct dw_dp *dw_dp_bind(struct device *dev, struct drm_encoder *encoder,
86eecc3a9c2e06 Andy Yan 2025-08-22 1970 const struct dw_dp_plat_data *plat_data)
86eecc3a9c2e06 Andy Yan 2025-08-22 1971 {
86eecc3a9c2e06 Andy Yan 2025-08-22 1972 struct platform_device *pdev = to_platform_device(dev);
86eecc3a9c2e06 Andy Yan 2025-08-22 1973 struct dw_dp *dp;
86eecc3a9c2e06 Andy Yan 2025-08-22 1974 struct drm_bridge *bridge;
86eecc3a9c2e06 Andy Yan 2025-08-22 1975 void __iomem *res;
86eecc3a9c2e06 Andy Yan 2025-08-22 1976 int ret;
86eecc3a9c2e06 Andy Yan 2025-08-22 1977
86eecc3a9c2e06 Andy Yan 2025-08-22 1978 dp = devm_kzalloc(dev, sizeof(*dp), GFP_KERNEL);
86eecc3a9c2e06 Andy Yan 2025-08-22 1979 if (!dp)
86eecc3a9c2e06 Andy Yan 2025-08-22 1980 return ERR_PTR(-ENOMEM);
86eecc3a9c2e06 Andy Yan 2025-08-22 1981
86eecc3a9c2e06 Andy Yan 2025-08-22 1982 dp = devm_drm_bridge_alloc(dev, struct dw_dp, bridge, &dw_dp_bridge_funcs);
86eecc3a9c2e06 Andy Yan 2025-08-22 1983 if (IS_ERR(dp))
86eecc3a9c2e06 Andy Yan 2025-08-22 1984 return ERR_CAST(dp);
86eecc3a9c2e06 Andy Yan 2025-08-22 1985
86eecc3a9c2e06 Andy Yan 2025-08-22 1986 dp->dev = dev;
86eecc3a9c2e06 Andy Yan 2025-08-22 1987 dp->pixel_mode = DW_DP_MP_QUAD_PIXEL;
86eecc3a9c2e06 Andy Yan 2025-08-22 1988
86eecc3a9c2e06 Andy Yan 2025-08-22 1989 dp->plat_data.max_link_rate = plat_data->max_link_rate;
86eecc3a9c2e06 Andy Yan 2025-08-22 1990 bridge = &dp->bridge;
86eecc3a9c2e06 Andy Yan 2025-08-22 1991 mutex_init(&dp->irq_lock);
86eecc3a9c2e06 Andy Yan 2025-08-22 1992 INIT_WORK(&dp->hpd_work, dw_dp_hpd_work);
86eecc3a9c2e06 Andy Yan 2025-08-22 1993 init_completion(&dp->complete);
86eecc3a9c2e06 Andy Yan 2025-08-22 1994
86eecc3a9c2e06 Andy Yan 2025-08-22 1995 res = devm_platform_ioremap_resource(pdev, 0);
86eecc3a9c2e06 Andy Yan 2025-08-22 1996 if (IS_ERR(res))
86eecc3a9c2e06 Andy Yan 2025-08-22 1997 return ERR_CAST(res);
86eecc3a9c2e06 Andy Yan 2025-08-22 1998
86eecc3a9c2e06 Andy Yan 2025-08-22 1999 dp->regmap = devm_regmap_init_mmio(dev, res, &dw_dp_regmap_config);
86eecc3a9c2e06 Andy Yan 2025-08-22 2000 if (IS_ERR(dp->regmap)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2001 dev_err_probe(dev, PTR_ERR(dp->regmap), "failed to create regmap\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2002 return ERR_CAST(dp->regmap);
86eecc3a9c2e06 Andy Yan 2025-08-22 2003 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2004
86eecc3a9c2e06 Andy Yan 2025-08-22 2005 dp->phy = devm_of_phy_get(dev, dev->of_node, NULL);
86eecc3a9c2e06 Andy Yan 2025-08-22 2006 if (IS_ERR(dp->phy)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2007 dev_err_probe(dev, PTR_ERR(dp->phy), "failed to get phy\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2008 return ERR_CAST(dp->phy);
86eecc3a9c2e06 Andy Yan 2025-08-22 2009 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2010
86eecc3a9c2e06 Andy Yan 2025-08-22 2011 dp->apb_clk = devm_clk_get_enabled(dev, "apb");
86eecc3a9c2e06 Andy Yan 2025-08-22 2012 if (IS_ERR(dp->apb_clk)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2013 dev_err_probe(dev, PTR_ERR(dp->apb_clk), "failed to get apb clock\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2014 return ERR_CAST(dp->apb_clk);
86eecc3a9c2e06 Andy Yan 2025-08-22 2015 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2016
86eecc3a9c2e06 Andy Yan 2025-08-22 2017 dp->aux_clk = devm_clk_get_enabled(dev, "aux");
86eecc3a9c2e06 Andy Yan 2025-08-22 2018 if (IS_ERR(dp->aux_clk)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2019 dev_err_probe(dev, PTR_ERR(dp->aux_clk), "failed to get aux clock\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2020 return ERR_CAST(dp->aux_clk);
86eecc3a9c2e06 Andy Yan 2025-08-22 2021 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2022
86eecc3a9c2e06 Andy Yan 2025-08-22 2023 dp->i2s_clk = devm_clk_get(dev, "i2s");
86eecc3a9c2e06 Andy Yan 2025-08-22 2024 if (IS_ERR(dp->i2s_clk)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2025 dev_err_probe(dev, PTR_ERR(dp->i2s_clk), "failed to get i2s clock\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2026 return ERR_CAST(dp->i2s_clk);
86eecc3a9c2e06 Andy Yan 2025-08-22 2027 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2028
86eecc3a9c2e06 Andy Yan 2025-08-22 2029 dp->spdif_clk = devm_clk_get(dev, "spdif");
86eecc3a9c2e06 Andy Yan 2025-08-22 2030 if (IS_ERR(dp->spdif_clk)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2031 dev_err_probe(dev, PTR_ERR(dp->spdif_clk), "failed to get spdif clock\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2032 return ERR_CAST(dp->spdif_clk);
86eecc3a9c2e06 Andy Yan 2025-08-22 2033 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2034
86eecc3a9c2e06 Andy Yan 2025-08-22 2035 dp->hdcp_clk = devm_clk_get(dev, "hdcp");
86eecc3a9c2e06 Andy Yan 2025-08-22 2036 if (IS_ERR(dp->hdcp_clk)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2037 dev_err_probe(dev, PTR_ERR(dp->hdcp_clk), "failed to get hdcp clock\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2038 return ERR_CAST(dp->hdcp_clk);
86eecc3a9c2e06 Andy Yan 2025-08-22 2039 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2040
86eecc3a9c2e06 Andy Yan 2025-08-22 2041 dp->rstc = devm_reset_control_get(dev, NULL);
86eecc3a9c2e06 Andy Yan 2025-08-22 2042 if (IS_ERR(dp->rstc)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2043 dev_err_probe(dev, PTR_ERR(dp->rstc), "failed to get reset control\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2044 return ERR_CAST(dp->rstc);
86eecc3a9c2e06 Andy Yan 2025-08-22 2045 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2046
86eecc3a9c2e06 Andy Yan 2025-08-22 2047 bridge->of_node = dev->of_node;
86eecc3a9c2e06 Andy Yan 2025-08-22 2048 bridge->ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID | DRM_BRIDGE_OP_HPD;
86eecc3a9c2e06 Andy Yan 2025-08-22 2049 bridge->type = DRM_MODE_CONNECTOR_DisplayPort;
86eecc3a9c2e06 Andy Yan 2025-08-22 2050 bridge->ycbcr_420_allowed = true;
86eecc3a9c2e06 Andy Yan 2025-08-22 2051
86eecc3a9c2e06 Andy Yan 2025-08-22 2052 dp->aux.dev = dev;
86eecc3a9c2e06 Andy Yan 2025-08-22 2053 dp->aux.drm_dev = encoder->dev;
86eecc3a9c2e06 Andy Yan 2025-08-22 2054 dp->aux.name = dev_name(dev);
86eecc3a9c2e06 Andy Yan 2025-08-22 2055 dp->aux.transfer = dw_dp_aux_transfer;
86eecc3a9c2e06 Andy Yan 2025-08-22 2056 ret = drm_dp_aux_register(&dp->aux);
86eecc3a9c2e06 Andy Yan 2025-08-22 2057 if (ret) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2058 dev_err_probe(dev, ret, "Aux register failed\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2059 return ERR_PTR(ret);
86eecc3a9c2e06 Andy Yan 2025-08-22 2060 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2061
86eecc3a9c2e06 Andy Yan 2025-08-22 2062 ret = drm_bridge_attach(encoder, bridge, NULL, DRM_BRIDGE_ATTACH_NO_CONNECTOR);
86eecc3a9c2e06 Andy Yan 2025-08-22 2063 if (ret)
86eecc3a9c2e06 Andy Yan 2025-08-22 2064 dev_err_probe(dev, ret, "Failed to attach bridge\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2065
86eecc3a9c2e06 Andy Yan 2025-08-22 2066 dw_dp_init_hw(dp);
86eecc3a9c2e06 Andy Yan 2025-08-22 2067
86eecc3a9c2e06 Andy Yan 2025-08-22 2068 ret = phy_init(dp->phy);
86eecc3a9c2e06 Andy Yan 2025-08-22 2069 if (ret) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2070 dev_err_probe(dev, ret, "phy init failed\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2071 return ERR_PTR(ret);
86eecc3a9c2e06 Andy Yan 2025-08-22 2072 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2073
86eecc3a9c2e06 Andy Yan 2025-08-22 2074 ret = devm_add_action_or_reset(dev, dw_dp_phy_exit, dp);
86eecc3a9c2e06 Andy Yan 2025-08-22 2075 if (ret)
86eecc3a9c2e06 Andy Yan 2025-08-22 2076 return ERR_PTR(ret);
86eecc3a9c2e06 Andy Yan 2025-08-22 2077
86eecc3a9c2e06 Andy Yan 2025-08-22 2078 dp->irq = platform_get_irq(pdev, 0);
86eecc3a9c2e06 Andy Yan 2025-08-22 2079 if (dp->irq < 0)
86eecc3a9c2e06 Andy Yan 2025-08-22 @2080 return ERR_PTR(ret);
86eecc3a9c2e06 Andy Yan 2025-08-22 2081
86eecc3a9c2e06 Andy Yan 2025-08-22 2082 ret = devm_request_threaded_irq(dev, dp->irq, NULL, dw_dp_irq,
86eecc3a9c2e06 Andy Yan 2025-08-22 2083 IRQF_ONESHOT, dev_name(dev), dp);
86eecc3a9c2e06 Andy Yan 2025-08-22 2084 if (ret) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2085 dev_err_probe(dev, ret, "failed to request irq\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2086 return ERR_PTR(ret);
86eecc3a9c2e06 Andy Yan 2025-08-22 2087 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2088
86eecc3a9c2e06 Andy Yan 2025-08-22 2089 return dp;
86eecc3a9c2e06 Andy Yan 2025-08-22 2090 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2091 EXPORT_SYMBOL_GPL(dw_dp_bind);
86eecc3a9c2e06 Andy Yan 2025-08-22 2092
:::::: The code at line 2080 was first introduced by commit
:::::: 86eecc3a9c2e06462f6a273fcd24150b6da787de drm/bridge: synopsys: Add DW DPTX Controller support library
:::::: TO: Andy Yan <andy.yan@rock-chips.com>
:::::: CC: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread* drivers/gpu/drm/bridge/synopsys/dw-dp.c:2080 dw_dp_bind() warn: passing zero to 'ERR_PTR'
@ 2025-12-15 12:34 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2025-12-15 12:34 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Andy Yan <andy.yan@rock-chips.com>
CC: Dmitry Baryshkov <lumag@kernel.org>
CC: Heiko Stuebner <heiko@sntech.de>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8f0b4cce4481fb22653697cced8d0d04027cb1e8
commit: d68ba7bac9555d05e2f5b310c898b2a5c7eff174 drm/rockchip: Add RK3588 DPTX output support
date: 4 months ago
:::::: branch date: 32 hours ago
:::::: commit date: 4 months ago
config: arm64-randconfig-r071-20251215 (https://download.01.org/0day-ci/archive/20251215/202512152051.VxP5zPbh-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 10.5.0
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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202512152051.VxP5zPbh-lkp@intel.com/
New smatch warnings:
drivers/gpu/drm/bridge/synopsys/dw-dp.c:2080 dw_dp_bind() warn: passing zero to 'ERR_PTR'
Old smatch warnings:
drivers/gpu/drm/bridge/synopsys/dw-dp.c:1152 dw_dp_video_need_vsc_sdp() warn: signedness bug returning '(-22)'
vim +/ERR_PTR +2080 drivers/gpu/drm/bridge/synopsys/dw-dp.c
86eecc3a9c2e06 Andy Yan 2025-08-22 1968
86eecc3a9c2e06 Andy Yan 2025-08-22 1969 struct dw_dp *dw_dp_bind(struct device *dev, struct drm_encoder *encoder,
86eecc3a9c2e06 Andy Yan 2025-08-22 1970 const struct dw_dp_plat_data *plat_data)
86eecc3a9c2e06 Andy Yan 2025-08-22 1971 {
86eecc3a9c2e06 Andy Yan 2025-08-22 1972 struct platform_device *pdev = to_platform_device(dev);
86eecc3a9c2e06 Andy Yan 2025-08-22 1973 struct dw_dp *dp;
86eecc3a9c2e06 Andy Yan 2025-08-22 1974 struct drm_bridge *bridge;
86eecc3a9c2e06 Andy Yan 2025-08-22 1975 void __iomem *res;
86eecc3a9c2e06 Andy Yan 2025-08-22 1976 int ret;
86eecc3a9c2e06 Andy Yan 2025-08-22 1977
86eecc3a9c2e06 Andy Yan 2025-08-22 1978 dp = devm_kzalloc(dev, sizeof(*dp), GFP_KERNEL);
86eecc3a9c2e06 Andy Yan 2025-08-22 1979 if (!dp)
86eecc3a9c2e06 Andy Yan 2025-08-22 1980 return ERR_PTR(-ENOMEM);
86eecc3a9c2e06 Andy Yan 2025-08-22 1981
86eecc3a9c2e06 Andy Yan 2025-08-22 1982 dp = devm_drm_bridge_alloc(dev, struct dw_dp, bridge, &dw_dp_bridge_funcs);
86eecc3a9c2e06 Andy Yan 2025-08-22 1983 if (IS_ERR(dp))
86eecc3a9c2e06 Andy Yan 2025-08-22 1984 return ERR_CAST(dp);
86eecc3a9c2e06 Andy Yan 2025-08-22 1985
86eecc3a9c2e06 Andy Yan 2025-08-22 1986 dp->dev = dev;
86eecc3a9c2e06 Andy Yan 2025-08-22 1987 dp->pixel_mode = DW_DP_MP_QUAD_PIXEL;
86eecc3a9c2e06 Andy Yan 2025-08-22 1988
86eecc3a9c2e06 Andy Yan 2025-08-22 1989 dp->plat_data.max_link_rate = plat_data->max_link_rate;
86eecc3a9c2e06 Andy Yan 2025-08-22 1990 bridge = &dp->bridge;
86eecc3a9c2e06 Andy Yan 2025-08-22 1991 mutex_init(&dp->irq_lock);
86eecc3a9c2e06 Andy Yan 2025-08-22 1992 INIT_WORK(&dp->hpd_work, dw_dp_hpd_work);
86eecc3a9c2e06 Andy Yan 2025-08-22 1993 init_completion(&dp->complete);
86eecc3a9c2e06 Andy Yan 2025-08-22 1994
86eecc3a9c2e06 Andy Yan 2025-08-22 1995 res = devm_platform_ioremap_resource(pdev, 0);
86eecc3a9c2e06 Andy Yan 2025-08-22 1996 if (IS_ERR(res))
86eecc3a9c2e06 Andy Yan 2025-08-22 1997 return ERR_CAST(res);
86eecc3a9c2e06 Andy Yan 2025-08-22 1998
86eecc3a9c2e06 Andy Yan 2025-08-22 1999 dp->regmap = devm_regmap_init_mmio(dev, res, &dw_dp_regmap_config);
86eecc3a9c2e06 Andy Yan 2025-08-22 2000 if (IS_ERR(dp->regmap)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2001 dev_err_probe(dev, PTR_ERR(dp->regmap), "failed to create regmap\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2002 return ERR_CAST(dp->regmap);
86eecc3a9c2e06 Andy Yan 2025-08-22 2003 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2004
86eecc3a9c2e06 Andy Yan 2025-08-22 2005 dp->phy = devm_of_phy_get(dev, dev->of_node, NULL);
86eecc3a9c2e06 Andy Yan 2025-08-22 2006 if (IS_ERR(dp->phy)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2007 dev_err_probe(dev, PTR_ERR(dp->phy), "failed to get phy\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2008 return ERR_CAST(dp->phy);
86eecc3a9c2e06 Andy Yan 2025-08-22 2009 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2010
86eecc3a9c2e06 Andy Yan 2025-08-22 2011 dp->apb_clk = devm_clk_get_enabled(dev, "apb");
86eecc3a9c2e06 Andy Yan 2025-08-22 2012 if (IS_ERR(dp->apb_clk)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2013 dev_err_probe(dev, PTR_ERR(dp->apb_clk), "failed to get apb clock\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2014 return ERR_CAST(dp->apb_clk);
86eecc3a9c2e06 Andy Yan 2025-08-22 2015 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2016
86eecc3a9c2e06 Andy Yan 2025-08-22 2017 dp->aux_clk = devm_clk_get_enabled(dev, "aux");
86eecc3a9c2e06 Andy Yan 2025-08-22 2018 if (IS_ERR(dp->aux_clk)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2019 dev_err_probe(dev, PTR_ERR(dp->aux_clk), "failed to get aux clock\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2020 return ERR_CAST(dp->aux_clk);
86eecc3a9c2e06 Andy Yan 2025-08-22 2021 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2022
86eecc3a9c2e06 Andy Yan 2025-08-22 2023 dp->i2s_clk = devm_clk_get(dev, "i2s");
86eecc3a9c2e06 Andy Yan 2025-08-22 2024 if (IS_ERR(dp->i2s_clk)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2025 dev_err_probe(dev, PTR_ERR(dp->i2s_clk), "failed to get i2s clock\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2026 return ERR_CAST(dp->i2s_clk);
86eecc3a9c2e06 Andy Yan 2025-08-22 2027 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2028
86eecc3a9c2e06 Andy Yan 2025-08-22 2029 dp->spdif_clk = devm_clk_get(dev, "spdif");
86eecc3a9c2e06 Andy Yan 2025-08-22 2030 if (IS_ERR(dp->spdif_clk)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2031 dev_err_probe(dev, PTR_ERR(dp->spdif_clk), "failed to get spdif clock\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2032 return ERR_CAST(dp->spdif_clk);
86eecc3a9c2e06 Andy Yan 2025-08-22 2033 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2034
86eecc3a9c2e06 Andy Yan 2025-08-22 2035 dp->hdcp_clk = devm_clk_get(dev, "hdcp");
86eecc3a9c2e06 Andy Yan 2025-08-22 2036 if (IS_ERR(dp->hdcp_clk)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2037 dev_err_probe(dev, PTR_ERR(dp->hdcp_clk), "failed to get hdcp clock\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2038 return ERR_CAST(dp->hdcp_clk);
86eecc3a9c2e06 Andy Yan 2025-08-22 2039 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2040
86eecc3a9c2e06 Andy Yan 2025-08-22 2041 dp->rstc = devm_reset_control_get(dev, NULL);
86eecc3a9c2e06 Andy Yan 2025-08-22 2042 if (IS_ERR(dp->rstc)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2043 dev_err_probe(dev, PTR_ERR(dp->rstc), "failed to get reset control\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2044 return ERR_CAST(dp->rstc);
86eecc3a9c2e06 Andy Yan 2025-08-22 2045 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2046
86eecc3a9c2e06 Andy Yan 2025-08-22 2047 bridge->of_node = dev->of_node;
86eecc3a9c2e06 Andy Yan 2025-08-22 2048 bridge->ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID | DRM_BRIDGE_OP_HPD;
86eecc3a9c2e06 Andy Yan 2025-08-22 2049 bridge->type = DRM_MODE_CONNECTOR_DisplayPort;
86eecc3a9c2e06 Andy Yan 2025-08-22 2050 bridge->ycbcr_420_allowed = true;
86eecc3a9c2e06 Andy Yan 2025-08-22 2051
86eecc3a9c2e06 Andy Yan 2025-08-22 2052 dp->aux.dev = dev;
86eecc3a9c2e06 Andy Yan 2025-08-22 2053 dp->aux.drm_dev = encoder->dev;
86eecc3a9c2e06 Andy Yan 2025-08-22 2054 dp->aux.name = dev_name(dev);
86eecc3a9c2e06 Andy Yan 2025-08-22 2055 dp->aux.transfer = dw_dp_aux_transfer;
86eecc3a9c2e06 Andy Yan 2025-08-22 2056 ret = drm_dp_aux_register(&dp->aux);
86eecc3a9c2e06 Andy Yan 2025-08-22 2057 if (ret) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2058 dev_err_probe(dev, ret, "Aux register failed\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2059 return ERR_PTR(ret);
86eecc3a9c2e06 Andy Yan 2025-08-22 2060 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2061
86eecc3a9c2e06 Andy Yan 2025-08-22 2062 ret = drm_bridge_attach(encoder, bridge, NULL, DRM_BRIDGE_ATTACH_NO_CONNECTOR);
86eecc3a9c2e06 Andy Yan 2025-08-22 2063 if (ret)
86eecc3a9c2e06 Andy Yan 2025-08-22 2064 dev_err_probe(dev, ret, "Failed to attach bridge\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2065
86eecc3a9c2e06 Andy Yan 2025-08-22 2066 dw_dp_init_hw(dp);
86eecc3a9c2e06 Andy Yan 2025-08-22 2067
86eecc3a9c2e06 Andy Yan 2025-08-22 2068 ret = phy_init(dp->phy);
86eecc3a9c2e06 Andy Yan 2025-08-22 2069 if (ret) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2070 dev_err_probe(dev, ret, "phy init failed\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2071 return ERR_PTR(ret);
86eecc3a9c2e06 Andy Yan 2025-08-22 2072 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2073
86eecc3a9c2e06 Andy Yan 2025-08-22 2074 ret = devm_add_action_or_reset(dev, dw_dp_phy_exit, dp);
86eecc3a9c2e06 Andy Yan 2025-08-22 2075 if (ret)
86eecc3a9c2e06 Andy Yan 2025-08-22 2076 return ERR_PTR(ret);
86eecc3a9c2e06 Andy Yan 2025-08-22 2077
86eecc3a9c2e06 Andy Yan 2025-08-22 2078 dp->irq = platform_get_irq(pdev, 0);
86eecc3a9c2e06 Andy Yan 2025-08-22 2079 if (dp->irq < 0)
86eecc3a9c2e06 Andy Yan 2025-08-22 @2080 return ERR_PTR(ret);
86eecc3a9c2e06 Andy Yan 2025-08-22 2081
86eecc3a9c2e06 Andy Yan 2025-08-22 2082 ret = devm_request_threaded_irq(dev, dp->irq, NULL, dw_dp_irq,
86eecc3a9c2e06 Andy Yan 2025-08-22 2083 IRQF_ONESHOT, dev_name(dev), dp);
86eecc3a9c2e06 Andy Yan 2025-08-22 2084 if (ret) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2085 dev_err_probe(dev, ret, "failed to request irq\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2086 return ERR_PTR(ret);
86eecc3a9c2e06 Andy Yan 2025-08-22 2087 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2088
86eecc3a9c2e06 Andy Yan 2025-08-22 2089 return dp;
86eecc3a9c2e06 Andy Yan 2025-08-22 2090 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2091 EXPORT_SYMBOL_GPL(dw_dp_bind);
86eecc3a9c2e06 Andy Yan 2025-08-22 2092
:::::: The code at line 2080 was first introduced by commit
:::::: 86eecc3a9c2e06462f6a273fcd24150b6da787de drm/bridge: synopsys: Add DW DPTX Controller support library
:::::: TO: Andy Yan <andy.yan@rock-chips.com>
:::::: CC: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread* drivers/gpu/drm/bridge/synopsys/dw-dp.c:2080 dw_dp_bind() warn: passing zero to 'ERR_PTR'
@ 2025-12-15 9:22 ` Dan Carpenter
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2025-12-15 7:27 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Andy Yan <andy.yan@rock-chips.com>
CC: Dmitry Baryshkov <lumag@kernel.org>
CC: Heiko Stuebner <heiko@sntech.de>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8f0b4cce4481fb22653697cced8d0d04027cb1e8
commit: d68ba7bac9555d05e2f5b310c898b2a5c7eff174 drm/rockchip: Add RK3588 DPTX output support
date: 4 months ago
:::::: branch date: 27 hours ago
:::::: commit date: 4 months ago
config: arm64-randconfig-r071-20251215 (https://download.01.org/0day-ci/archive/20251215/202512151515.PjP26FTp-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 10.5.0
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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202512151515.PjP26FTp-lkp@intel.com/
New smatch warnings:
drivers/gpu/drm/bridge/synopsys/dw-dp.c:2080 dw_dp_bind() warn: passing zero to 'ERR_PTR'
Old smatch warnings:
drivers/gpu/drm/bridge/synopsys/dw-dp.c:1152 dw_dp_video_need_vsc_sdp() warn: signedness bug returning '(-22)'
vim +/ERR_PTR +2080 drivers/gpu/drm/bridge/synopsys/dw-dp.c
86eecc3a9c2e06 Andy Yan 2025-08-22 1968
86eecc3a9c2e06 Andy Yan 2025-08-22 1969 struct dw_dp *dw_dp_bind(struct device *dev, struct drm_encoder *encoder,
86eecc3a9c2e06 Andy Yan 2025-08-22 1970 const struct dw_dp_plat_data *plat_data)
86eecc3a9c2e06 Andy Yan 2025-08-22 1971 {
86eecc3a9c2e06 Andy Yan 2025-08-22 1972 struct platform_device *pdev = to_platform_device(dev);
86eecc3a9c2e06 Andy Yan 2025-08-22 1973 struct dw_dp *dp;
86eecc3a9c2e06 Andy Yan 2025-08-22 1974 struct drm_bridge *bridge;
86eecc3a9c2e06 Andy Yan 2025-08-22 1975 void __iomem *res;
86eecc3a9c2e06 Andy Yan 2025-08-22 1976 int ret;
86eecc3a9c2e06 Andy Yan 2025-08-22 1977
86eecc3a9c2e06 Andy Yan 2025-08-22 1978 dp = devm_kzalloc(dev, sizeof(*dp), GFP_KERNEL);
86eecc3a9c2e06 Andy Yan 2025-08-22 1979 if (!dp)
86eecc3a9c2e06 Andy Yan 2025-08-22 1980 return ERR_PTR(-ENOMEM);
86eecc3a9c2e06 Andy Yan 2025-08-22 1981
86eecc3a9c2e06 Andy Yan 2025-08-22 1982 dp = devm_drm_bridge_alloc(dev, struct dw_dp, bridge, &dw_dp_bridge_funcs);
86eecc3a9c2e06 Andy Yan 2025-08-22 1983 if (IS_ERR(dp))
86eecc3a9c2e06 Andy Yan 2025-08-22 1984 return ERR_CAST(dp);
86eecc3a9c2e06 Andy Yan 2025-08-22 1985
86eecc3a9c2e06 Andy Yan 2025-08-22 1986 dp->dev = dev;
86eecc3a9c2e06 Andy Yan 2025-08-22 1987 dp->pixel_mode = DW_DP_MP_QUAD_PIXEL;
86eecc3a9c2e06 Andy Yan 2025-08-22 1988
86eecc3a9c2e06 Andy Yan 2025-08-22 1989 dp->plat_data.max_link_rate = plat_data->max_link_rate;
86eecc3a9c2e06 Andy Yan 2025-08-22 1990 bridge = &dp->bridge;
86eecc3a9c2e06 Andy Yan 2025-08-22 1991 mutex_init(&dp->irq_lock);
86eecc3a9c2e06 Andy Yan 2025-08-22 1992 INIT_WORK(&dp->hpd_work, dw_dp_hpd_work);
86eecc3a9c2e06 Andy Yan 2025-08-22 1993 init_completion(&dp->complete);
86eecc3a9c2e06 Andy Yan 2025-08-22 1994
86eecc3a9c2e06 Andy Yan 2025-08-22 1995 res = devm_platform_ioremap_resource(pdev, 0);
86eecc3a9c2e06 Andy Yan 2025-08-22 1996 if (IS_ERR(res))
86eecc3a9c2e06 Andy Yan 2025-08-22 1997 return ERR_CAST(res);
86eecc3a9c2e06 Andy Yan 2025-08-22 1998
86eecc3a9c2e06 Andy Yan 2025-08-22 1999 dp->regmap = devm_regmap_init_mmio(dev, res, &dw_dp_regmap_config);
86eecc3a9c2e06 Andy Yan 2025-08-22 2000 if (IS_ERR(dp->regmap)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2001 dev_err_probe(dev, PTR_ERR(dp->regmap), "failed to create regmap\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2002 return ERR_CAST(dp->regmap);
86eecc3a9c2e06 Andy Yan 2025-08-22 2003 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2004
86eecc3a9c2e06 Andy Yan 2025-08-22 2005 dp->phy = devm_of_phy_get(dev, dev->of_node, NULL);
86eecc3a9c2e06 Andy Yan 2025-08-22 2006 if (IS_ERR(dp->phy)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2007 dev_err_probe(dev, PTR_ERR(dp->phy), "failed to get phy\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2008 return ERR_CAST(dp->phy);
86eecc3a9c2e06 Andy Yan 2025-08-22 2009 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2010
86eecc3a9c2e06 Andy Yan 2025-08-22 2011 dp->apb_clk = devm_clk_get_enabled(dev, "apb");
86eecc3a9c2e06 Andy Yan 2025-08-22 2012 if (IS_ERR(dp->apb_clk)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2013 dev_err_probe(dev, PTR_ERR(dp->apb_clk), "failed to get apb clock\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2014 return ERR_CAST(dp->apb_clk);
86eecc3a9c2e06 Andy Yan 2025-08-22 2015 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2016
86eecc3a9c2e06 Andy Yan 2025-08-22 2017 dp->aux_clk = devm_clk_get_enabled(dev, "aux");
86eecc3a9c2e06 Andy Yan 2025-08-22 2018 if (IS_ERR(dp->aux_clk)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2019 dev_err_probe(dev, PTR_ERR(dp->aux_clk), "failed to get aux clock\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2020 return ERR_CAST(dp->aux_clk);
86eecc3a9c2e06 Andy Yan 2025-08-22 2021 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2022
86eecc3a9c2e06 Andy Yan 2025-08-22 2023 dp->i2s_clk = devm_clk_get(dev, "i2s");
86eecc3a9c2e06 Andy Yan 2025-08-22 2024 if (IS_ERR(dp->i2s_clk)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2025 dev_err_probe(dev, PTR_ERR(dp->i2s_clk), "failed to get i2s clock\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2026 return ERR_CAST(dp->i2s_clk);
86eecc3a9c2e06 Andy Yan 2025-08-22 2027 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2028
86eecc3a9c2e06 Andy Yan 2025-08-22 2029 dp->spdif_clk = devm_clk_get(dev, "spdif");
86eecc3a9c2e06 Andy Yan 2025-08-22 2030 if (IS_ERR(dp->spdif_clk)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2031 dev_err_probe(dev, PTR_ERR(dp->spdif_clk), "failed to get spdif clock\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2032 return ERR_CAST(dp->spdif_clk);
86eecc3a9c2e06 Andy Yan 2025-08-22 2033 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2034
86eecc3a9c2e06 Andy Yan 2025-08-22 2035 dp->hdcp_clk = devm_clk_get(dev, "hdcp");
86eecc3a9c2e06 Andy Yan 2025-08-22 2036 if (IS_ERR(dp->hdcp_clk)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2037 dev_err_probe(dev, PTR_ERR(dp->hdcp_clk), "failed to get hdcp clock\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2038 return ERR_CAST(dp->hdcp_clk);
86eecc3a9c2e06 Andy Yan 2025-08-22 2039 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2040
86eecc3a9c2e06 Andy Yan 2025-08-22 2041 dp->rstc = devm_reset_control_get(dev, NULL);
86eecc3a9c2e06 Andy Yan 2025-08-22 2042 if (IS_ERR(dp->rstc)) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2043 dev_err_probe(dev, PTR_ERR(dp->rstc), "failed to get reset control\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2044 return ERR_CAST(dp->rstc);
86eecc3a9c2e06 Andy Yan 2025-08-22 2045 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2046
86eecc3a9c2e06 Andy Yan 2025-08-22 2047 bridge->of_node = dev->of_node;
86eecc3a9c2e06 Andy Yan 2025-08-22 2048 bridge->ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID | DRM_BRIDGE_OP_HPD;
86eecc3a9c2e06 Andy Yan 2025-08-22 2049 bridge->type = DRM_MODE_CONNECTOR_DisplayPort;
86eecc3a9c2e06 Andy Yan 2025-08-22 2050 bridge->ycbcr_420_allowed = true;
86eecc3a9c2e06 Andy Yan 2025-08-22 2051
86eecc3a9c2e06 Andy Yan 2025-08-22 2052 dp->aux.dev = dev;
86eecc3a9c2e06 Andy Yan 2025-08-22 2053 dp->aux.drm_dev = encoder->dev;
86eecc3a9c2e06 Andy Yan 2025-08-22 2054 dp->aux.name = dev_name(dev);
86eecc3a9c2e06 Andy Yan 2025-08-22 2055 dp->aux.transfer = dw_dp_aux_transfer;
86eecc3a9c2e06 Andy Yan 2025-08-22 2056 ret = drm_dp_aux_register(&dp->aux);
86eecc3a9c2e06 Andy Yan 2025-08-22 2057 if (ret) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2058 dev_err_probe(dev, ret, "Aux register failed\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2059 return ERR_PTR(ret);
86eecc3a9c2e06 Andy Yan 2025-08-22 2060 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2061
86eecc3a9c2e06 Andy Yan 2025-08-22 2062 ret = drm_bridge_attach(encoder, bridge, NULL, DRM_BRIDGE_ATTACH_NO_CONNECTOR);
86eecc3a9c2e06 Andy Yan 2025-08-22 2063 if (ret)
86eecc3a9c2e06 Andy Yan 2025-08-22 2064 dev_err_probe(dev, ret, "Failed to attach bridge\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2065
86eecc3a9c2e06 Andy Yan 2025-08-22 2066 dw_dp_init_hw(dp);
86eecc3a9c2e06 Andy Yan 2025-08-22 2067
86eecc3a9c2e06 Andy Yan 2025-08-22 2068 ret = phy_init(dp->phy);
86eecc3a9c2e06 Andy Yan 2025-08-22 2069 if (ret) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2070 dev_err_probe(dev, ret, "phy init failed\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2071 return ERR_PTR(ret);
86eecc3a9c2e06 Andy Yan 2025-08-22 2072 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2073
86eecc3a9c2e06 Andy Yan 2025-08-22 2074 ret = devm_add_action_or_reset(dev, dw_dp_phy_exit, dp);
86eecc3a9c2e06 Andy Yan 2025-08-22 2075 if (ret)
86eecc3a9c2e06 Andy Yan 2025-08-22 2076 return ERR_PTR(ret);
86eecc3a9c2e06 Andy Yan 2025-08-22 2077
86eecc3a9c2e06 Andy Yan 2025-08-22 2078 dp->irq = platform_get_irq(pdev, 0);
86eecc3a9c2e06 Andy Yan 2025-08-22 2079 if (dp->irq < 0)
86eecc3a9c2e06 Andy Yan 2025-08-22 @2080 return ERR_PTR(ret);
86eecc3a9c2e06 Andy Yan 2025-08-22 2081
86eecc3a9c2e06 Andy Yan 2025-08-22 2082 ret = devm_request_threaded_irq(dev, dp->irq, NULL, dw_dp_irq,
86eecc3a9c2e06 Andy Yan 2025-08-22 2083 IRQF_ONESHOT, dev_name(dev), dp);
86eecc3a9c2e06 Andy Yan 2025-08-22 2084 if (ret) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2085 dev_err_probe(dev, ret, "failed to request irq\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2086 return ERR_PTR(ret);
86eecc3a9c2e06 Andy Yan 2025-08-22 2087 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2088
86eecc3a9c2e06 Andy Yan 2025-08-22 2089 return dp;
86eecc3a9c2e06 Andy Yan 2025-08-22 2090 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2091 EXPORT_SYMBOL_GPL(dw_dp_bind);
86eecc3a9c2e06 Andy Yan 2025-08-22 2092
:::::: The code at line 2080 was first introduced by commit
:::::: 86eecc3a9c2e06462f6a273fcd24150b6da787de drm/bridge: synopsys: Add DW DPTX Controller support library
:::::: TO: Andy Yan <andy.yan@rock-chips.com>
:::::: CC: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread* drivers/gpu/drm/bridge/synopsys/dw-dp.c:2080 dw_dp_bind() warn: passing zero to 'ERR_PTR'
@ 2025-12-15 9:22 ` Dan Carpenter
0 siblings, 0 replies; 4+ messages in thread
From: Dan Carpenter @ 2025-12-15 9:22 UTC (permalink / raw)
To: oe-kbuild, Andy Yan
Cc: lkp, oe-kbuild-all, linux-kernel, Dmitry Baryshkov,
Heiko Stuebner
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8f0b4cce4481fb22653697cced8d0d04027cb1e8
commit: d68ba7bac9555d05e2f5b310c898b2a5c7eff174 drm/rockchip: Add RK3588 DPTX output support
config: arm64-randconfig-r071-20251215 (https://download.01.org/0day-ci/archive/20251215/202512151515.PjP26FTp-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 10.5.0
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>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202512151515.PjP26FTp-lkp@intel.com/
New smatch warnings:
drivers/gpu/drm/bridge/synopsys/dw-dp.c:2080 dw_dp_bind() warn: passing zero to 'ERR_PTR'
vim +/ERR_PTR +2080 drivers/gpu/drm/bridge/synopsys/dw-dp.c
86eecc3a9c2e06 Andy Yan 2025-08-22 2068 ret = phy_init(dp->phy);
86eecc3a9c2e06 Andy Yan 2025-08-22 2069 if (ret) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2070 dev_err_probe(dev, ret, "phy init failed\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2071 return ERR_PTR(ret);
86eecc3a9c2e06 Andy Yan 2025-08-22 2072 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2073
86eecc3a9c2e06 Andy Yan 2025-08-22 2074 ret = devm_add_action_or_reset(dev, dw_dp_phy_exit, dp);
86eecc3a9c2e06 Andy Yan 2025-08-22 2075 if (ret)
86eecc3a9c2e06 Andy Yan 2025-08-22 2076 return ERR_PTR(ret);
86eecc3a9c2e06 Andy Yan 2025-08-22 2077
86eecc3a9c2e06 Andy Yan 2025-08-22 2078 dp->irq = platform_get_irq(pdev, 0);
86eecc3a9c2e06 Andy Yan 2025-08-22 2079 if (dp->irq < 0)
86eecc3a9c2e06 Andy Yan 2025-08-22 @2080 return ERR_PTR(ret);
s/ret/dp->irq/
86eecc3a9c2e06 Andy Yan 2025-08-22 2081
86eecc3a9c2e06 Andy Yan 2025-08-22 2082 ret = devm_request_threaded_irq(dev, dp->irq, NULL, dw_dp_irq,
86eecc3a9c2e06 Andy Yan 2025-08-22 2083 IRQF_ONESHOT, dev_name(dev), dp);
86eecc3a9c2e06 Andy Yan 2025-08-22 2084 if (ret) {
86eecc3a9c2e06 Andy Yan 2025-08-22 2085 dev_err_probe(dev, ret, "failed to request irq\n");
86eecc3a9c2e06 Andy Yan 2025-08-22 2086 return ERR_PTR(ret);
86eecc3a9c2e06 Andy Yan 2025-08-22 2087 }
86eecc3a9c2e06 Andy Yan 2025-08-22 2088
86eecc3a9c2e06 Andy Yan 2025-08-22 2089 return dp;
86eecc3a9c2e06 Andy Yan 2025-08-22 2090 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-12-15 18:41 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-15 18:41 drivers/gpu/drm/bridge/synopsys/dw-dp.c:2080 dw_dp_bind() warn: passing zero to 'ERR_PTR' kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2025-12-15 12:34 kernel test robot
2025-12-15 7:27 kernel test robot
2025-12-15 9:22 ` Dan Carpenter
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.