Lines Matching refs:dev
95 struct drm_device *dev = connector->dev; in drm_mode_validate_pipeline() local
128 drm_for_each_crtc(crtc, dev) { in drm_mode_validate_pipeline()
171 mode = drm_mode_create_from_cmdline_mode(connector->dev, in drm_helper_probe_add_cmdline_mode()
226 static void drm_kms_helper_disable_hpd(struct drm_device *dev) in drm_kms_helper_disable_hpd() argument
231 drm_connector_list_iter_begin(dev, &conn_iter); in drm_kms_helper_disable_hpd()
242 static bool drm_kms_helper_enable_hpd(struct drm_device *dev) in drm_kms_helper_enable_hpd() argument
248 drm_connector_list_iter_begin(dev, &conn_iter); in drm_kms_helper_enable_hpd()
266 static void reschedule_output_poll_work(struct drm_device *dev) in reschedule_output_poll_work() argument
270 if (dev->mode_config.delayed_event) in reschedule_output_poll_work()
283 schedule_delayed_work(&dev->mode_config.output_poll_work, delay); in reschedule_output_poll_work()
304 void drm_kms_helper_poll_enable(struct drm_device *dev) in drm_kms_helper_poll_enable() argument
306 if (drm_WARN_ON_ONCE(dev, !dev->mode_config.poll_enabled) || in drm_kms_helper_poll_enable()
307 !drm_kms_helper_poll || dev->mode_config.poll_running) in drm_kms_helper_poll_enable()
310 if (drm_kms_helper_enable_hpd(dev) || in drm_kms_helper_poll_enable()
311 dev->mode_config.delayed_event) in drm_kms_helper_poll_enable()
312 reschedule_output_poll_work(dev); in drm_kms_helper_poll_enable()
314 dev->mode_config.poll_running = true; in drm_kms_helper_poll_enable()
334 void drm_kms_helper_poll_reschedule(struct drm_device *dev) in drm_kms_helper_poll_reschedule() argument
336 if (dev->mode_config.poll_running) in drm_kms_helper_poll_reschedule()
337 reschedule_output_poll_work(dev); in drm_kms_helper_poll_reschedule()
351 ret = drm_modeset_lock(&connector->dev->mode_config.connection_mutex, &ctx); in drm_helper_probe_detect_ctx()
394 struct drm_device *dev = connector->dev; in drm_helper_probe_detect() local
400 ret = drm_modeset_lock(&dev->mode_config.connection_mutex, ctx); in drm_helper_probe_detect()
428 drm_err(connector->dev, ".get_modes() returned %pe\n", in drm_helper_probe_get_modes()
447 struct drm_device *dev = connector->dev; in __drm_helper_update_and_validate() local
465 mode->status = drm_mode_validate_driver(dev, mode); in __drm_helper_update_and_validate()
484 drm_dbg_kms(dev, in __drm_helper_update_and_validate()
488 if (drm_WARN_ON_ONCE(dev, ret != -EDEADLK)) in __drm_helper_update_and_validate()
560 struct drm_device *dev = connector->dev; in drm_helper_probe_single_connector_modes() local
566 WARN_ON(!mutex_is_locked(&dev->mode_config.mutex)); in drm_helper_probe_single_connector_modes()
570 drm_dbg_kms(dev, "[CONNECTOR:%d:%s]\n", connector->base.id, in drm_helper_probe_single_connector_modes()
574 ret = drm_modeset_lock(&dev->mode_config.connection_mutex, &ctx); in drm_helper_probe_single_connector_modes()
614 drm_dbg_kms(dev, "[CONNECTOR:%d:%s] status updated from %s to %s\n", in drm_helper_probe_single_connector_modes()
625 dev->mode_config.delayed_event = true; in drm_helper_probe_single_connector_modes()
626 if (dev->mode_config.poll_enabled) in drm_helper_probe_single_connector_modes()
628 &dev->mode_config.output_poll_work, in drm_helper_probe_single_connector_modes()
636 if (dev->mode_config.poll_enabled) in drm_helper_probe_single_connector_modes()
637 drm_kms_helper_poll_enable(dev); in drm_helper_probe_single_connector_modes()
640 drm_dbg_kms(dev, "[CONNECTOR:%d:%s] disconnected\n", in drm_helper_probe_single_connector_modes()
643 drm_mode_prune_invalid(dev, &connector->modes, false); in drm_helper_probe_single_connector_modes()
670 drm_mode_prune_invalid(dev, &connector->modes, true); in drm_helper_probe_single_connector_modes()
687 drm_mode_prune_invalid(dev, &connector->modes, true); in drm_helper_probe_single_connector_modes()
699 drm_dbg_kms(dev, "[CONNECTOR:%d:%s] probed modes:\n", in drm_helper_probe_single_connector_modes()
704 drm_dbg_kms(dev, "Probed mode: " DRM_MODE_FMT "\n", in drm_helper_probe_single_connector_modes()
731 void drm_kms_helper_hotplug_event(struct drm_device *dev) in drm_kms_helper_hotplug_event() argument
733 drm_sysfs_hotplug_event(dev); in drm_kms_helper_hotplug_event()
734 drm_client_dev_hotplug(dev); in drm_kms_helper_hotplug_event()
747 struct drm_device *dev = connector->dev; in drm_kms_helper_connector_hotplug_event() local
750 drm_client_dev_hotplug(dev); in drm_kms_helper_connector_hotplug_event()
757 …struct drm_device *dev = container_of(delayed_work, struct drm_device, mode_config.output_poll_wor… in output_poll_execute() local
764 if (!dev->mode_config.poll_enabled) in output_poll_execute()
768 changed = dev->mode_config.delayed_event; in output_poll_execute()
769 dev->mode_config.delayed_event = false; in output_poll_execute()
772 if (dev->mode_config.poll_running) { in output_poll_execute()
773 drm_kms_helper_disable_hpd(dev); in output_poll_execute()
774 dev->mode_config.poll_running = false; in output_poll_execute()
779 if (!mutex_trylock(&dev->mode_config.mutex)) { in output_poll_execute()
784 drm_connector_list_iter_begin(dev, &conn_iter); in output_poll_execute()
830 drm_dbg_kms(dev, "[CONNECTOR:%d:%s] status updated from %s to %s\n", in output_poll_execute()
833 drm_dbg_kms(dev, "[CONNECTOR:%d:%s] epoch counter %llu -> %llu\n", in output_poll_execute()
842 mutex_unlock(&dev->mode_config.mutex); in output_poll_execute()
846 drm_kms_helper_hotplug_event(dev); in output_poll_execute()
892 void drm_kms_helper_poll_disable(struct drm_device *dev) in drm_kms_helper_poll_disable() argument
894 if (drm_WARN_ON(dev, !dev->mode_config.poll_enabled)) in drm_kms_helper_poll_disable()
897 if (dev->mode_config.poll_running) in drm_kms_helper_poll_disable()
898 drm_kms_helper_disable_hpd(dev); in drm_kms_helper_poll_disable()
900 cancel_delayed_work_sync(&dev->mode_config.output_poll_work); in drm_kms_helper_poll_disable()
902 dev->mode_config.poll_running = false; in drm_kms_helper_poll_disable()
925 void drm_kms_helper_poll_init(struct drm_device *dev) in drm_kms_helper_poll_init() argument
927 INIT_DELAYED_WORK(&dev->mode_config.output_poll_work, output_poll_execute); in drm_kms_helper_poll_init()
928 dev->mode_config.poll_enabled = true; in drm_kms_helper_poll_init()
930 drm_kms_helper_poll_enable(dev); in drm_kms_helper_poll_init()
938 void drm_kms_helper_poll_fini(struct drm_device *dev) in drm_kms_helper_poll_fini() argument
940 if (!dev->mode_config.poll_enabled) in drm_kms_helper_poll_fini()
943 drm_kms_helper_poll_disable(dev); in drm_kms_helper_poll_fini()
945 dev->mode_config.poll_enabled = false; in drm_kms_helper_poll_fini()
949 static void drm_kms_helper_poll_init_release(struct drm_device *dev, void *res) in drm_kms_helper_poll_init_release() argument
951 drm_kms_helper_poll_fini(dev); in drm_kms_helper_poll_init_release()
967 int drmm_kms_helper_poll_init(struct drm_device *dev) in drmm_kms_helper_poll_init() argument
969 drm_kms_helper_poll_init(dev); in drmm_kms_helper_poll_init()
971 return drmm_add_action_or_reset(dev, drm_kms_helper_poll_init_release, dev); in drmm_kms_helper_poll_init()
977 struct drm_device *dev = connector->dev; in check_connector_changed() local
982 drm_WARN_ON(dev, !(connector->polled & DRM_CONNECTOR_POLL_HPD)); in check_connector_changed()
984 drm_WARN_ON(dev, !mutex_is_locked(&dev->mode_config.mutex)); in check_connector_changed()
991 drm_dbg_kms(dev, "[CONNECTOR:%d:%s] Same epoch counter %llu\n", in check_connector_changed()
999 drm_dbg_kms(dev, "[CONNECTOR:%d:%s] status updated from %s to %s\n", in check_connector_changed()
1005 drm_dbg_kms(dev, "[CONNECTOR:%d:%s] Changed epoch counter %llu => %llu\n", in check_connector_changed()
1037 struct drm_device *dev = connector->dev; in drm_connector_helper_hpd_irq_event() local
1040 mutex_lock(&dev->mode_config.mutex); in drm_connector_helper_hpd_irq_event()
1042 mutex_unlock(&dev->mode_config.mutex); in drm_connector_helper_hpd_irq_event()
1046 drm_dbg_kms(dev, "[CONNECTOR:%d:%s] Sent hotplug event\n", in drm_connector_helper_hpd_irq_event()
1082 bool drm_helper_hpd_irq_event(struct drm_device *dev) in drm_helper_hpd_irq_event() argument
1088 if (!dev->mode_config.poll_enabled) in drm_helper_hpd_irq_event()
1091 mutex_lock(&dev->mode_config.mutex); in drm_helper_hpd_irq_event()
1092 drm_connector_list_iter_begin(dev, &conn_iter); in drm_helper_hpd_irq_event()
1108 mutex_unlock(&dev->mode_config.mutex); in drm_helper_hpd_irq_event()
1113 drm_kms_helper_hotplug_event(dev); in drm_helper_hpd_irq_event()
1161 struct drm_device *dev = connector->dev; in drm_connector_helper_get_modes_fixed() local
1164 mode = drm_mode_duplicate(dev, fixed_mode); in drm_connector_helper_get_modes_fixed()
1166 drm_err(dev, "Failed to duplicate mode " DRM_MODE_FMT "\n", in drm_connector_helper_get_modes_fixed()
1237 struct drm_device *dev = connector->dev; in drm_connector_helper_tv_get_modes() local
1239 dev->mode_config.tv_mode_property; in drm_connector_helper_tv_get_modes()
1289 mode = drm_mode_analog_ntsc_480i(dev); in drm_connector_helper_tv_get_modes()
1291 mode = drm_mode_analog_pal_576i(dev); in drm_connector_helper_tv_get_modes()