]> rtime.felk.cvut.cz Git - zynq/linux.git/commitdiff
drm: xilinx: encoder: Check the encoder init function
authorHyun Kwon <hyun.kwon@xilinx.com>
Fri, 18 Aug 2017 01:09:40 +0000 (18:09 -0700)
committerMichal Simek <michal.simek@xilinx.com>
Fri, 18 Aug 2017 12:12:19 +0000 (14:12 +0200)
Check if the encoder slave driver registered the init callback.
If the callback exists, the encoder driver assumes that
the slave driver is ready to initialize.

Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/gpu/drm/xilinx/xilinx_drm_encoder.c

index 82702144881ac3ee92a0004b4cfd3baeec0a3983..ca3f9f112162e6de1056bb38d6131b91ebed0407 100644 (file)
@@ -185,8 +185,8 @@ struct drm_encoder *xilinx_drm_encoder_create(struct drm_device *drm,
        if (i2c_slv && i2c_slv->dev.driver) {
                i2c_driver = to_i2c_driver(i2c_slv->dev.driver);
                drm_i2c_driver = to_drm_i2c_encoder_driver(i2c_driver);
-               if (!drm_i2c_driver) {
-                       DRM_ERROR("failed to initialize i2c slave\n");
+               if (!drm_i2c_driver || !drm_i2c_driver->encoder_init) {
+                       DRM_DEBUG_KMS("failed to initialize i2c slave\n");
                        ret = -EPROBE_DEFER;
                        goto err_out;
                }
@@ -210,8 +210,9 @@ struct drm_encoder *xilinx_drm_encoder_create(struct drm_device *drm,
                platform_driver = to_platform_driver(device_driver);
                drm_platform_driver =
                        to_drm_platform_encoder_driver(platform_driver);
-               if (!drm_platform_driver) {
-                       DRM_ERROR("failed to initialize platform slave\n");
+               if (!drm_platform_driver ||
+                   !drm_platform_driver->encoder_init) {
+                       DRM_DEBUG_KMS("failed to initialize platform slave\n");
                        ret = -EPROBE_DEFER;
                        goto err_out;
                }