Lines Matching full:hpd
43 * handlers gather the hotplug detect (HPD) information from relevant registers
72 * callback is handled by i915_digport_work_func reenabling of hpd is not
82 * @port: the hpd port to get associated pin
116 * intel_hpd_irq_storm_detect - gather stats and detect HPD IRQ storm on a pin
119 * @long_hpd: whether the HPD IRQ was long or short
121 * Gather stats about HPD IRQs from the specified @pin, and detect IRQ
139 * The HPD threshold can be controlled through i915_hpd_storm_ctl in debugfs,
147 struct intel_hotplug *hpd = &dev_priv->display.hotplug; in intel_hpd_irq_storm_detect() local
148 unsigned long start = hpd->stats[pin].last_jiffies; in intel_hpd_irq_storm_detect()
151 const int threshold = hpd->hpd_storm_threshold; in intel_hpd_irq_storm_detect()
159 hpd->stats[pin].last_jiffies = jiffies; in intel_hpd_irq_storm_detect()
160 hpd->stats[pin].count = 0; in intel_hpd_irq_storm_detect()
163 hpd->stats[pin].count += increment; in intel_hpd_irq_storm_detect()
164 if (hpd->stats[pin].count > threshold) { in intel_hpd_irq_storm_detect()
165 hpd->stats[pin].state = HPD_MARK_DISABLED; in intel_hpd_irq_storm_detect()
167 "HPD interrupt storm detected on PIN %d\n", pin); in intel_hpd_irq_storm_detect()
171 "Received HPD interrupt on PIN %d - cnt: %d\n", in intel_hpd_irq_storm_detect()
173 hpd->stats[pin].count); in intel_hpd_irq_storm_detect()
201 "HPD interrupt storm detected on connector %s: " in intel_hpd_irq_storm_switch_to_polling()
244 "Reenabling HPD on connector %s\n", in intel_hpd_irq_storm_reenable_work()
334 /* fall back to old school hpd */ in i915_digport_work_func()
349 * intel_hpd_trigger_irq - trigger an hpd irq event for a port
352 * Trigger an HPD interrupt event for the given port, emulating a short pulse
392 /* Enable polling for connectors which had HPD IRQ storms */ in i915_hotplug_work_func()
397 /* Skip calling encode hotplug handlers if ignore long HPD set*/ in i915_hotplug_work_func()
399 drm_dbg_kms(&dev_priv->drm, "Ignore HPD flag on - skip encoder hotplug handlers\n"); in i915_hotplug_work_func()
456 /* Remove shared HPD pins that have changed */ in i915_hotplug_work_func()
473 * @pin_mask: a mask of hpd pins that have triggered the irq
474 * @long_mask: a mask of hpd pins that may be long hpd pulses
478 * decode the appropriate registers into bitmasks about hpd pins that have
521 "digital hpd on [ENCODER:%d:%s] - %s\n", in intel_hpd_irq_handler()
550 "Received HPD interrupt on pin %d although disabled\n", in intel_hpd_irq_handler()
600 * intel_hpd_init - initializes and enables hpd support
677 * intel_hpd_poll_enable - enable polling for connectors with hpd
680 * This function enables polling for all connectors which support HPD.
681 * Under certain conditions HPD may not be functional. On most Intel GPUs,
711 * intel_hpd_poll_disable - disable polling for connectors with hpd
714 * This function disables polling for all connectors which support HPD.
715 * Under certain conditions HPD may not be functional. On most Intel GPUs,
749 /* If we have MST support, we want to avoid doing short HPD IRQ storm in intel_hpd_init_early()
750 * detection, as short HPD storms will occur as a natural part of in intel_hpd_init_early()
810 /* Synchronize with everything first in case there's been an HPD in i915_hpd_storm_ctl_show()
856 "Setting HPD storm detection threshold to %d\n", in i915_hpd_storm_ctl_write()
859 drm_dbg_kms(&dev_priv->drm, "Disabling HPD storm detection\n"); in i915_hpd_storm_ctl_write()
863 /* Reset the HPD storm stats so we don't accidentally trigger a storm */ in i915_hpd_storm_ctl_write()
868 /* Re-enable hpd immediately if we were in an irq storm */ in i915_hpd_storm_ctl_write()
936 drm_dbg_kms(&dev_priv->drm, "%sabling HPD short storm detection\n", in i915_hpd_short_storm_ctl_write()
941 /* Reset the HPD storm stats so we don't accidentally trigger a storm */ in i915_hpd_short_storm_ctl_write()
946 /* Re-enable hpd immediately if we were in an irq storm */ in i915_hpd_short_storm_ctl_write()