Commit b08a759d authored by Jani Nikula's avatar Jani Nikula

drm/i915/backlight: clean up backlight device register

Add connector and backlight device name to logging, and propagate error
code from backlight_device_register() instead of flattening to
-ENODEV. Storing the name in an allocated buffer is unnecessary here,
but makes follow-up work on names much cleaner.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/271206461d9c0f42755792236330b588df3b532e.1619604743.git.jani.nikula@intel.com
parent 3f50033d
...@@ -1372,6 +1372,9 @@ int intel_backlight_device_register(struct intel_connector *connector) ...@@ -1372,6 +1372,9 @@ int intel_backlight_device_register(struct intel_connector *connector)
struct drm_i915_private *i915 = to_i915(connector->base.dev); struct drm_i915_private *i915 = to_i915(connector->base.dev);
struct intel_panel *panel = &connector->panel; struct intel_panel *panel = &connector->panel;
struct backlight_properties props; struct backlight_properties props;
struct backlight_device *bd;
const char *name;
int ret = 0;
if (WARN_ON(panel->backlight.device)) if (WARN_ON(panel->backlight.device))
return -ENODEV; return -ENODEV;
...@@ -1402,24 +1405,30 @@ int intel_backlight_device_register(struct intel_connector *connector) ...@@ -1402,24 +1405,30 @@ int intel_backlight_device_register(struct intel_connector *connector)
* Note: using the same name independent of the connector prevents * Note: using the same name independent of the connector prevents
* registration of multiple backlight devices in the driver. * registration of multiple backlight devices in the driver.
*/ */
panel->backlight.device = name = kstrdup("intel_backlight", GFP_KERNEL);
backlight_device_register("intel_backlight", if (!name)
connector->base.kdev, return -ENOMEM;
connector,
&intel_backlight_device_ops, &props); bd = backlight_device_register(name, connector->base.kdev, connector,
&intel_backlight_device_ops, &props);
if (IS_ERR(panel->backlight.device)) { if (IS_ERR(bd)) {
drm_err(&i915->drm, "Failed to register backlight: %ld\n", drm_err(&i915->drm,
PTR_ERR(panel->backlight.device)); "[CONNECTOR:%d:%s] backlight device %s register failed: %ld\n",
panel->backlight.device = NULL; connector->base.base.id, connector->base.name, name, PTR_ERR(bd));
return -ENODEV; ret = PTR_ERR(bd);
goto out;
} }
panel->backlight.device = bd;
drm_dbg_kms(&i915->drm, drm_dbg_kms(&i915->drm,
"Connector %s backlight sysfs interface registered\n", "[CONNECTOR:%d:%s] backlight device %s registered\n",
connector->base.name); connector->base.base.id, connector->base.name, name);
return 0; out:
kfree(name);
return ret;
} }
void intel_backlight_device_unregister(struct intel_connector *connector) void intel_backlight_device_unregister(struct intel_connector *connector)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment