diff --git a/drivers/mfd/display-serdes/serdes-bridge.c b/drivers/mfd/display-serdes/serdes-bridge.c index bcb7ade23031..6a1662aadf66 100644 --- a/drivers/mfd/display-serdes/serdes-bridge.c +++ b/drivers/mfd/display-serdes/serdes-bridge.c @@ -187,7 +187,8 @@ static void serdes_bridge_enable(struct drm_bridge *bridge) if (!ret) { extcon_set_state_sync(serdes->extcon, EXTCON_JACK_VIDEO_OUT, true); - SERDES_DBG_MFD("%s: extcon is true\n", __func__); + SERDES_DBG_MFD("%s: %s-%s extcon is true\n", __func__, dev_name(serdes->dev), + serdes->chip_data->name); } SERDES_DBG_MFD("%s: %s-%s ret=%d\n", __func__, dev_name(serdes->dev), @@ -204,6 +205,9 @@ serdes_bridge_detect(struct drm_bridge *bridge) if (serdes->chip_data->bridge_ops->detect) status = serdes->chip_data->bridge_ops->detect(serdes); + SERDES_DBG_MFD("%s:%s %s, %s\n", __func__, dev_name(serdes->dev), + serdes->chip_data->name, + (status == connector_status_connected) ? "connected" : "disconnect"); return status; } @@ -223,7 +227,7 @@ static int serdes_bridge_get_modes(struct drm_bridge *bridge, if (serdes_bridge->panel) ret = drm_panel_get_modes(serdes_bridge->panel, connector); - SERDES_DBG_MFD("%s:name=%s, node=%s\n", __func__, + SERDES_DBG_MFD("%s:%s %s, node=%s\n", __func__, dev_name(serdes->dev), serdes->chip_data->name, serdes_bridge->dev->of_node->name); return ret; diff --git a/drivers/mfd/display-serdes/serdes-gpio.c b/drivers/mfd/display-serdes/serdes-gpio.c index 24b0a9b4f02f..4107ef99be58 100644 --- a/drivers/mfd/display-serdes/serdes-gpio.c +++ b/drivers/mfd/display-serdes/serdes-gpio.c @@ -108,18 +108,9 @@ static void serdes_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip) for (i = 0; i < chip->ngpio; i++) { int gpio = i + chip->base; - const char *label, *level; + const char *level; - /* We report the GPIO even if it's not requested since - * we're also reporting things like alternate - * functions which apply even when the GPIO is not in - * use as a GPIO. - */ - label = gpiochip_is_requested(chip, i); - if (!label) - label = "Unrequested"; - - seq_printf(s, " %s-gpio-%02d ", label, gpio); + seq_printf(s, "gpio-%02d ", gpio); if (serdes->chip_data->gpio_ops->get_level) ret = serdes->chip_data->gpio_ops->get_level(serdes, i); diff --git a/drivers/mfd/display-serdes/serdes-panel-split.c b/drivers/mfd/display-serdes/serdes-panel-split.c index 537d28233ba4..374b82e1f66e 100644 --- a/drivers/mfd/display-serdes/serdes-panel-split.c +++ b/drivers/mfd/display-serdes/serdes-panel-split.c @@ -213,7 +213,7 @@ static int serdes_panel_split_probe(struct platform_device *pdev) if (ret) return dev_err_probe(dev, ret, "failed to parse serdes DT\n"); - serdes_panel_split->backlight = devm_of_find_backlight(dev); + serdes_panel_split->backlight = of_find_backlight_by_node(dev->of_node); if (IS_ERR(serdes_panel_split->backlight)) return dev_err_probe(dev, PTR_ERR(serdes_panel_split->backlight), "failed to get serdes backlight\n"); @@ -236,6 +236,10 @@ static int serdes_panel_split_probe(struct platform_device *pdev) static int serdes_panel_split_remove(struct platform_device *pdev) { struct serdes_panel_split *serdes_panel_split = platform_get_drvdata(pdev); + struct backlight_device *backlight = serdes_panel_split->backlight; + + if (backlight) + put_device(&backlight->dev); drm_panel_remove(&serdes_panel_split->panel); diff --git a/drivers/mfd/display-serdes/serdes-panel.c b/drivers/mfd/display-serdes/serdes-panel.c index e2abfc0ba641..9815652829fb 100644 --- a/drivers/mfd/display-serdes/serdes-panel.c +++ b/drivers/mfd/display-serdes/serdes-panel.c @@ -219,7 +219,7 @@ static int serdes_panel_probe(struct platform_device *pdev) if (ret) return dev_err_probe(dev, ret, "failed to parse serdes DT\n"); - serdes_panel->backlight = devm_of_find_backlight(dev); + serdes_panel->backlight = of_find_backlight_by_node(dev->of_node); if (IS_ERR(serdes_panel->backlight)) return dev_err_probe(dev, PTR_ERR(serdes_panel->backlight), "failed to get serdes backlight\n"); @@ -242,6 +242,10 @@ static int serdes_panel_probe(struct platform_device *pdev) static int serdes_panel_remove(struct platform_device *pdev) { struct serdes_panel *serdes_panel = platform_get_drvdata(pdev); + struct backlight_device *backlight = serdes_panel->backlight; + + if (backlight) + put_device(&backlight->dev); drm_panel_remove(&serdes_panel->panel);