]> Git Repo - J-linux.git/blobdiff - drivers/gpu/drm/drm_client.c
Merge tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf...
[J-linux.git] / drivers / gpu / drm / drm_client.c
index 056ab9d5f313b079416788bbaba5efb20e2ef39c..f6292ba0e6fc378371dcbde10857144ce501a619 100644 (file)
@@ -198,13 +198,23 @@ void drm_client_dev_hotplug(struct drm_device *dev)
        if (!drm_core_check_feature(dev, DRIVER_MODESET))
                return;
 
+       if (!dev->mode_config.num_connector) {
+               drm_dbg_kms(dev, "No connectors found, will not send hotplug events!\n");
+               return;
+       }
+
        mutex_lock(&dev->clientlist_mutex);
        list_for_each_entry(client, &dev->clientlist, list) {
                if (!client->funcs || !client->funcs->hotplug)
                        continue;
 
+               if (client->hotplug_failed)
+                       continue;
+
                ret = client->funcs->hotplug(client);
                drm_dbg_kms(dev, "%s: ret=%d\n", client->name, ret);
+               if (ret)
+                       client->hotplug_failed = true;
        }
        mutex_unlock(&dev->clientlist_mutex);
 }
@@ -487,8 +497,8 @@ EXPORT_SYMBOL(drm_client_framebuffer_flush);
 #ifdef CONFIG_DEBUG_FS
 static int drm_client_debugfs_internal_clients(struct seq_file *m, void *data)
 {
-       struct drm_info_node *node = m->private;
-       struct drm_device *dev = node->minor->dev;
+       struct drm_debugfs_entry *entry = m->private;
+       struct drm_device *dev = entry->dev;
        struct drm_printer p = drm_seq_file_printer(m);
        struct drm_client_dev *client;
 
@@ -500,14 +510,13 @@ static int drm_client_debugfs_internal_clients(struct seq_file *m, void *data)
        return 0;
 }
 
-static const struct drm_info_list drm_client_debugfs_list[] = {
+static const struct drm_debugfs_info drm_client_debugfs_list[] = {
        { "internal_clients", drm_client_debugfs_internal_clients, 0 },
 };
 
 void drm_client_debugfs_init(struct drm_minor *minor)
 {
-       drm_debugfs_create_files(drm_client_debugfs_list,
-                                ARRAY_SIZE(drm_client_debugfs_list),
-                                minor->debugfs_root, minor);
+       drm_debugfs_add_files(minor->dev, drm_client_debugfs_list,
+                             ARRAY_SIZE(drm_client_debugfs_list));
 }
 #endif
This page took 0.030434 seconds and 4 git commands to generate.