/linux-6.14.4/drivers/gpu/drm/amd/display/dc/link/protocols/ |
D | link_hpd.c | 28 * This file implements functions that manage basic HPD components such as gpio. 29 * It also provides wrapper functions to execute HPD related programming. This 30 * file only manages basic HPD functionality. It doesn't manage detection or 31 * feature or signal specific HPD behaviors. 65 struct gpio *hpd; in link_enable_hpd_filter() local 72 /* Obtain HPD handle */ in link_enable_hpd_filter() 73 hpd = link_get_hpd_gpio(link->ctx->dc_bios, link->link_id, link->ctx->gpio_service); in link_enable_hpd_filter() 75 if (!hpd) in link_enable_hpd_filter() 78 /* Setup HPD filtering */ in link_enable_hpd_filter() 79 if (dal_gpio_open(hpd, GPIO_MODE_INTERRUPT) == GPIO_RESULT_OK) { in link_enable_hpd_filter() [all …]
|
/linux-6.14.4/drivers/gpu/drm/nouveau/nvkm/engine/disp/ |
D | conn.c | 46 static const u8 hpd[] = { 0x07, 0x08, 0x51, 0x52, 0x5e, 0x5f, 0x60 }; in nvkm_conn_ctor() local 54 conn->info.hpd = DCB_GPIO_UNUSED; in nvkm_conn_ctor() 56 CONN_DBG(conn, "type %02x loc %d hpd %02x dp %x di %x sr %x lcdid %x", in nvkm_conn_ctor() 57 info->type, info->location, info->hpd, info->dp, in nvkm_conn_ctor() 60 if ((info->hpd = ffs(info->hpd))) { in nvkm_conn_ctor() 61 if (--info->hpd >= ARRAY_SIZE(hpd)) { in nvkm_conn_ctor() 62 CONN_ERR(conn, "hpd %02x unknown", info->hpd); in nvkm_conn_ctor() 65 info->hpd = hpd[info->hpd]; in nvkm_conn_ctor() 67 ret = nvkm_gpio_find(gpio, 0, info->hpd, DCB_GPIO_UNUSED, &func); in nvkm_conn_ctor() 69 CONN_ERR(conn, "func %02x lookup failed, %d", info->hpd, ret); in nvkm_conn_ctor() [all …]
|
/linux-6.14.4/drivers/gpu/drm/mediatek/ |
D | mtk_cec.c | 56 bool hpd; member 57 void (*hpd_event)(bool hpd, struct device *dev); 94 void (*hpd_event)(bool hpd, struct device *dev), in mtk_cec_set_hpd_event() argument 151 static void mtk_cec_hpd_event(struct mtk_cec *cec, bool hpd) in mtk_cec_hpd_event() argument 153 void (*hpd_event)(bool hpd, struct device *dev); in mtk_cec_hpd_event() 163 hpd_event(hpd, hdmi_dev); in mtk_cec_hpd_event() 170 bool hpd; in mtk_cec_htplg_isr_thread() local 173 hpd = mtk_cec_hpd_high(dev); in mtk_cec_htplg_isr_thread() 175 if (cec->hpd != hpd) { in mtk_cec_htplg_isr_thread() 176 dev_dbg(dev, "hotplug event! cur hpd = %d, hpd = %d\n", in mtk_cec_htplg_isr_thread() [all …]
|
/linux-6.14.4/Documentation/devicetree/bindings/display/panel/ |
D | panel-edp.yaml | 56 HPD :<T3>| : : | 91 hpd-reliable-delay-ms: 94 panel's power-supply before the HPD signal is a reliable way to know 96 the HPD at the start of power-on. This value is not needed if HPD is 99 hpd-absent-delay-ms: 101 The panel specifies that HPD will be asserted this many milliseconds 103 measure HPD then a fixed delay of this many milliseconds can be used. 104 This can also be used as a timeout when waiting for HPD. Does not 105 include the hpd-reliable-delay, so if hpd-reliable-delay was 80 ms 106 and hpd-absent-delay was 200 ms then we'd do a fixed 80 ms delay and [all …]
|
/linux-6.14.4/drivers/gpu/drm/radeon/ |
D | radeon_combios.c | 617 i2c.hpd = RADEON_HPD_NONE; in combios_setup_i2c_bus() 1440 struct radeon_hpd hpd; in radeon_get_legacy_connector_info_from_table() local 1527 hpd.hpd = RADEON_HPD_NONE; in radeon_get_legacy_connector_info_from_table() 1538 &hpd); in radeon_get_legacy_connector_info_from_table() 1542 hpd.hpd = RADEON_HPD_NONE; in radeon_get_legacy_connector_info_from_table() 1553 &hpd); in radeon_get_legacy_connector_info_from_table() 1557 hpd.hpd = RADEON_HPD_NONE; in radeon_get_legacy_connector_info_from_table() 1568 &hpd); in radeon_get_legacy_connector_info_from_table() 1572 hpd.hpd = RADEON_HPD_1; in radeon_get_legacy_connector_info_from_table() 1589 &hpd); in radeon_get_legacy_connector_info_from_table() [all …]
|
D | radeon_connectors.c | 46 /* bail if the connector does not have hpd pin, e.g., in radeon_connector_hotplug() 49 if (radeon_connector->hpd.hpd == RADEON_HPD_NONE) in radeon_connector_hotplug() 52 radeon_hpd_set_polarity(rdev, radeon_connector->hpd.hpd); in radeon_connector_hotplug() 74 radeon_hpd_sense(rdev, radeon_connector->hpd.hpd) && in radeon_connector_hotplug() 1187 /* We only trust HPD on R600 and newer ASICS. */ in radeon_check_hpd_status_unchanged() 1189 && radeon_connector->hpd.hpd != RADEON_HPD_NONE) { in radeon_check_hpd_status_unchanged() 1190 if (radeon_hpd_sense(rdev, radeon_connector->hpd.hpd)) in radeon_check_hpd_status_unchanged() 1247 * for HPD do. If the DDC probe fails even though we had an HPD in radeon_dvi_detect() 1251 DRM_DEBUG_KMS("hpd detected without ddc, retrying in 1 second\n"); in radeon_dvi_detect() 1308 /* hpd is our only option in this case */ in radeon_dvi_detect() [all …]
|
D | rs600.c | 358 /* hpd for digital panel detect/disconnect */ 359 bool rs600_hpd_sense(struct radeon_device *rdev, enum radeon_hpd_id hpd) in rs600_hpd_sense() argument 364 switch (hpd) { in rs600_hpd_sense() 382 enum radeon_hpd_id hpd) in rs600_hpd_set_polarity() argument 385 bool connected = rs600_hpd_sense(rdev, hpd); in rs600_hpd_set_polarity() 387 switch (hpd) { in rs600_hpd_set_polarity() 417 switch (radeon_connector->hpd.hpd) { in rs600_hpd_init() 429 if (radeon_connector->hpd.hpd != RADEON_HPD_NONE) in rs600_hpd_init() 430 enable |= 1 << radeon_connector->hpd.hpd; in rs600_hpd_init() 431 radeon_hpd_set_polarity(rdev, radeon_connector->hpd.hpd); in rs600_hpd_init() [all …]
|
/linux-6.14.4/drivers/gpu/drm/amd/display/dc/gpio/ |
D | hw_hpd.c | 38 hpd->shifts->field_name, hpd->masks->field_name 41 hpd->base.base.ctx 43 (hpd->regs->reg) 56 struct hw_hpd *hpd = HW_HPD_FROM_BASE(*ptr); in dal_hw_hpd_destroy() local 58 dal_hw_hpd_destruct(hpd); in dal_hw_hpd_destroy() 60 kfree(hpd); in dal_hw_hpd_destroy() 69 struct hw_hpd *hpd = HW_HPD_FROM_BASE(ptr); in get_value() local 92 struct hw_hpd *hpd = HW_HPD_FROM_BASE(ptr); in set_config() local 98 DC_HPD_CONNECT_INT_DELAY, config_data->config.hpd.delay_on_connect / 10, in set_config() 99 DC_HPD_DISCONNECT_INT_DELAY, config_data->config.hpd.delay_on_disconnect / 10); in set_config()
|
/linux-6.14.4/drivers/gpu/drm/i915/display/ |
D | intel_hotplug_irq.c | 136 struct intel_hotplug *hpd = &dev_priv->display.hotplug; in intel_hpd_init_pins() local 141 hpd->hpd = hpd_status_g4x; in intel_hpd_init_pins() 143 hpd->hpd = hpd_status_i915; in intel_hpd_init_pins() 148 hpd->hpd = hpd_xelpdp; in intel_hpd_init_pins() 150 hpd->hpd = hpd_gen11; in intel_hpd_init_pins() 152 hpd->hpd = hpd_bxt; in intel_hpd_init_pins() 154 hpd->hpd = NULL; /* no north HPD on SKL */ in intel_hpd_init_pins() 156 hpd->hpd = hpd_bdw; in intel_hpd_init_pins() 158 hpd->hpd = hpd_ivb; in intel_hpd_init_pins() 160 hpd->hpd = hpd_ilk; in intel_hpd_init_pins() [all …]
|
D | intel_hotplug.c | 47 * handlers gather the hotplug detect (HPD) information from relevant registers 76 * callback is handled by i915_digport_work_func reenabling of hpd is not 86 * @port: the hpd port to get associated pin 120 * intel_hpd_irq_storm_detect - gather stats and detect HPD IRQ storm on a pin 123 * @long_hpd: whether the HPD IRQ was long or short 125 * Gather stats about HPD IRQs from the specified @pin, and detect IRQ 143 * The HPD threshold can be controlled through i915_hpd_storm_ctl in debugfs, 151 struct intel_hotplug *hpd = &dev_priv->display.hotplug; in intel_hpd_irq_storm_detect() local 152 unsigned long start = hpd->stats[pin].last_jiffies; in intel_hpd_irq_storm_detect() 155 const int threshold = hpd->hpd_storm_threshold; in intel_hpd_irq_storm_detect() [all …]
|
/linux-6.14.4/Documentation/devicetree/bindings/media/cec/ |
D | cec-gpio.yaml | 14 hooked up to a pull-up GPIO line and - optionally - the HPD line is hooked up 17 Please note:: the maximum voltage for the CEC line is 3.63V, for the HPD and 31 hpd-gpios: 34 GPIO that the HPD line is connected to. Used for debugging HPD changes 54 hpd-gpios: false 58 - hpd-gpios 72 hpd-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
|
D | cec-common.yaml | 21 needs-hpd: 24 The CEC support is only available when the HPD is high. Some boards only 25 let the CEC pin through if the HPD is high, for example if there is a 26 level converter that uses the HPD to power up or down.
|
/linux-6.14.4/drivers/gpu/drm/msm/hdmi/ |
D | hdmi_hpd.c | 83 "failed to enable hpd clk: %s (%d)\n", in enable_hpd_clocks() 105 DRM_DEV_ERROR(dev, "failed to enable hpd regulators: %d\n", ret); in msm_hdmi_hpd_enable() 127 /* enable HPD events: */ in msm_hdmi_hpd_enable() 137 /* Toggle HPD circuit to trigger HPD sense */ in msm_hdmi_hpd_enable() 156 /* Disable HPD interrupt */ in msm_hdmi_hpd_disable() 170 dev_warn(dev, "failed to disable hpd regulator: %d\n", ret); in msm_hdmi_hpd_disable() 179 /* Process HPD: */ in msm_hdmi_hpd_irq() 187 /* ack & disable (temporarily) HPD events: */ in msm_hdmi_hpd_irq() 236 * some platforms may not have hpd gpio. Rely only on the status in msm_hdmi_bridge_detect() 258 DBG("hpd gpio tells us: %d", stat_gpio); in msm_hdmi_bridge_detect()
|
/linux-6.14.4/Documentation/devicetree/bindings/display/bridge/ |
D | analogix,dp.yaml | 28 force-hpd: 31 Indicate driver need force hpd when hpd detect failed, this 32 is used for some eDP screen which don not have a hpd signal. 34 hpd-gpios:
|
/linux-6.14.4/drivers/usb/typec/altmodes/ |
D | displayport.c | 66 bool hpd; member 153 bool hpd = !!(dp->data.status & DP_STATUS_HPD_STATE); in dp_altmode_status_update() local 169 if (dp->hpd != hpd) { in dp_altmode_status_update() 170 dp->hpd = hpd; in dp_altmode_status_update() 176 hpd ? connector_status_connected : in dp_altmode_status_update() 178 dp->hpd = hpd; in dp_altmode_status_update() 179 sysfs_notify(&dp->alt->dev.kobj, "displayport", "hpd"); in dp_altmode_status_update() 190 * If the DFP_D/UFP_D sends a change in HPD when first notifying the in dp_altmode_configured() 192 * configuration is complete to signal HPD. in dp_altmode_configured() 197 sysfs_notify(&dp->alt->dev.kobj, "displayport", "hpd"); in dp_altmode_configured() [all …]
|
/linux-6.14.4/Documentation/ABI/testing/ |
D | sysfs-driver-typec-displayport | 51 What: /sys/bus/typec/devices/.../displayport/hpd 56 HotPlugDetect(HPD) shall be supported on the USB-C connector when 58 reflects the current state of HPD. 61 - 1: when HPD’s logical state is high (HPD_High) as defined 63 - 0 when HPD’s logical state is low (HPD_Low) as defined by
|
/linux-6.14.4/drivers/gpu/drm/amd/amdgpu/ |
D | dce_v11_0.c | 55 static void dce_v11_0_hpd_int_ack(struct amdgpu_device *adev, int hpd); 94 uint32_t hpd; member 100 .hpd = DISP_INTERRUPT_STATUS__DC_HPD1_INTERRUPT_MASK 105 .hpd = DISP_INTERRUPT_STATUS_CONTINUE__DC_HPD2_INTERRUPT_MASK 110 .hpd = DISP_INTERRUPT_STATUS_CONTINUE2__DC_HPD3_INTERRUPT_MASK 115 .hpd = DISP_INTERRUPT_STATUS_CONTINUE3__DC_HPD4_INTERRUPT_MASK 120 .hpd = DISP_INTERRUPT_STATUS_CONTINUE4__DC_HPD5_INTERRUPT_MASK 125 .hpd = DISP_INTERRUPT_STATUS_CONTINUE5__DC_HPD6_INTERRUPT_MASK 296 * dce_v11_0_hpd_sense - hpd sense callback. 299 * @hpd: hpd (hotplug detect) pin [all …]
|
D | dce_v10_0.c | 55 static void dce_v10_0_hpd_int_ack(struct amdgpu_device *adev, int hpd); 90 uint32_t hpd; member 96 .hpd = DISP_INTERRUPT_STATUS__DC_HPD1_INTERRUPT_MASK 101 .hpd = DISP_INTERRUPT_STATUS_CONTINUE__DC_HPD2_INTERRUPT_MASK 106 .hpd = DISP_INTERRUPT_STATUS_CONTINUE2__DC_HPD3_INTERRUPT_MASK 111 .hpd = DISP_INTERRUPT_STATUS_CONTINUE3__DC_HPD4_INTERRUPT_MASK 116 .hpd = DISP_INTERRUPT_STATUS_CONTINUE4__DC_HPD5_INTERRUPT_MASK 121 .hpd = DISP_INTERRUPT_STATUS_CONTINUE5__DC_HPD6_INTERRUPT_MASK 272 * dce_v10_0_hpd_sense - hpd sense callback. 275 * @hpd: hpd (hotplug detect) pin [all …]
|
D | dce_v6_0.c | 94 uint32_t hpd; member 100 .hpd = DISP_INTERRUPT_STATUS__DC_HPD1_INTERRUPT_MASK 105 .hpd = DISP_INTERRUPT_STATUS_CONTINUE__DC_HPD2_INTERRUPT_MASK 110 .hpd = DISP_INTERRUPT_STATUS_CONTINUE2__DC_HPD3_INTERRUPT_MASK 115 .hpd = DISP_INTERRUPT_STATUS_CONTINUE3__DC_HPD4_INTERRUPT_MASK 120 .hpd = DISP_INTERRUPT_STATUS_CONTINUE4__DC_HPD5_INTERRUPT_MASK 125 .hpd = DISP_INTERRUPT_STATUS_CONTINUE5__DC_HPD6_INTERRUPT_MASK 229 * dce_v6_0_hpd_sense - hpd sense callback. 232 * @hpd: hpd (hotplug detect) pin 238 enum amdgpu_hpd_id hpd) in dce_v6_0_hpd_sense() argument [all …]
|
D | dce_v8_0.c | 89 uint32_t hpd; member 95 .hpd = DISP_INTERRUPT_STATUS__DC_HPD1_INTERRUPT_MASK 100 .hpd = DISP_INTERRUPT_STATUS_CONTINUE__DC_HPD2_INTERRUPT_MASK 105 .hpd = DISP_INTERRUPT_STATUS_CONTINUE2__DC_HPD3_INTERRUPT_MASK 110 .hpd = DISP_INTERRUPT_STATUS_CONTINUE3__DC_HPD4_INTERRUPT_MASK 115 .hpd = DISP_INTERRUPT_STATUS_CONTINUE4__DC_HPD5_INTERRUPT_MASK 120 .hpd = DISP_INTERRUPT_STATUS_CONTINUE5__DC_HPD6_INTERRUPT_MASK 220 * dce_v8_0_hpd_sense - hpd sense callback. 223 * @hpd: hpd (hotplug detect) pin 229 enum amdgpu_hpd_id hpd) in dce_v8_0_hpd_sense() argument [all …]
|
/linux-6.14.4/Documentation/devicetree/bindings/display/ti/ |
D | ti,tpd12s015.txt | 8 - gpios: CT CP HPD, LS OE and HPD gpios 20 gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>, /* 60, CT CP HPD */ 22 <&gpio2 31 GPIO_ACTIVE_HIGH>; /* 63, HPD */
|
/linux-6.14.4/include/linux/ |
D | amd-pmf-io.h | 31 * @SFH_NOT_DETECTED: Check the HPD connection information from MP2 FW 32 * @SFH_USER_PRESENT: Check if the user is present from HPD sensor 33 * @SFH_USER_AWAY: Check if the user is away from HPD sensor 42 * struct amd_sfh_info - get HPD sensor info from MP2 FW
|
/linux-6.14.4/Documentation/userspace-api/media/cec/ |
D | cec-ioc-dqevent.rst | 167 * .. _`CEC-EVENT-PIN-HPD-LOW`: 171 - Generated if the HPD pin goes from a high voltage to a low voltage. 173 capability set. When open() is called, the HPD pin can be read and 174 if the HPD is low, then an initial event will be generated for that 176 * .. _`CEC-EVENT-PIN-HPD-HIGH`: 180 - Generated if the HPD pin goes from a low voltage to a high voltage. 182 capability set. When open() is called, the HPD pin can be read and 183 if the HPD is high, then an initial event will be generated for that
|
/linux-6.14.4/drivers/gpu/drm/amd/display/dc/gpio/dce120/ |
D | hw_factory_dce120.c | 42 #define block HPD 156 struct hw_hpd *hpd = HW_HPD_FROM_BASE(pin); in define_hpd_registers() local 158 hpd->regs = &hpd_regs[en]; in define_hpd_registers() 159 hpd->shifts = &hpd_shift; in define_hpd_registers() 160 hpd->masks = &hpd_mask; in define_hpd_registers() 161 hpd->base.regs = &hpd_regs[en].gpio; in define_hpd_registers()
|
/linux-6.14.4/Documentation/devicetree/bindings/display/samsung/ |
D | samsung,exynos-hdmi.yaml | 40 HPD (hot plug detect) line, what causes HDMI block to stay turned off. 41 When provided, the regulator allows TV-set correctly signal HPD event. 43 hpd-gpios: 46 A GPIO line connected to HPD 96 - hpd-gpios 203 hpd-gpios = <&gpa3 0 GPIO_ACTIVE_HIGH>;
|