On 08/04/2025, Joseph Guo wrote: [...]
> +static int ws_bridge_probe(struct i2c_client *i2c) > +{ > + struct device *dev = &i2c->dev; > + struct ws_bridge *ws; > + struct drm_panel *panel; > + int ret; > + struct backlight_device *backlight; Drop backlight as there is ws->backlight. > + > + ws = devm_kzalloc(dev, sizeof(*ws), GFP_KERNEL); > + if (!ws) > + return -ENOMEM; > + > + ws->dev = dev; > + > + ws->reg_map = devm_regmap_init_i2c(i2c, &ws_regmap_config); > + if (IS_ERR(ws->reg_map)) > + return dev_err_probe(dev, PTR_ERR(ws->reg_map), "Failed to > allocate regmap\n"); > + > + ret = drm_of_find_panel_or_bridge(dev->of_node, 1, -1, &panel, NULL); > + if (ret) > + return dev_err_probe(dev, ret, "Failed to find remote panel\n"); > + > + ws->next_bridge = devm_drm_panel_bridge_add(dev, panel); > + if (IS_ERR(ws->next_bridge)) > + return PTR_ERR(ws->next_bridge); > + > + ws->backlight = ws_bridge_create_backlight(ws); > + if (IS_ERR(backlight)) { s/backlight/ws->backlight/ > + ret = PTR_ERR(backlight); s/backlight/ws->backlight/ > + dev_err(dev, "Failed to create backlight: %d\n", ret); > + return ret; > + } -- Regards, Liu Ying