| /linux/drivers/gpu/drm/amd/display/dc/link/protocols/ |
| H A 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/drivers/gpu/drm/nouveau/nvkm/engine/disp/ |
| H A 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/Documentation/devicetree/bindings/display/panel/ |
| H A 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/drivers/gpu/drm/radeon/ |
| H A 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 …]
|
| H A 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/drivers/gpu/drm/amd/display/dc/gpio/ |
| H A 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 dal_hw_hpd_get_value() local 92 struct hw_hpd *hpd = HW_HPD_FROM_BASE(ptr); in dal_hw_hpd_set_config() local 98 DC_HPD_CONNECT_INT_DELAY, config_data->config.hpd.delay_on_connect / 10, in dal_hw_hpd_set_config() 99 DC_HPD_DISCONNECT_INT_DELAY, config_data->config.hpd.delay_on_disconnect / 10); in dal_hw_hpd_set_config()
|
| /linux/drivers/usb/typec/altmodes/ |
| H A D | displayport.c | 66 bool hpd; member 70 * hpd is mandatory for irq_hpd assertion, so irq_hpd also needs its own pending flag if 71 * both hpd and irq_hpd are asserted in the first Status Update before the pin assignment 160 bool hpd = !!(dp->data.status & DP_STATUS_HPD_STATE); in dp_altmode_status_update() local 177 if (dp->hpd != hpd) { in dp_altmode_status_update() 178 dp->hpd = hpd; in dp_altmode_status_update() 181 if (dp->hpd && dp->pending_hpd && irq_hpd) in dp_altmode_status_update() 186 hpd ? connector_status_connected : in dp_altmode_status_update() 188 dp->hpd = hpd; in dp_altmode_status_update() 189 sysfs_notify(&dp->alt->dev.kobj, "displayport", "hpd"); in dp_altmode_status_update() [all …]
|
| /linux/Documentation/devicetree/bindings/display/bridge/ |
| H A 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/drivers/gpu/drm/msm/hdmi/ |
| H A D | hdmi_hpd.c | 89 /* enable HPD events: */ in msm_hdmi_hpd_enable() 99 /* Toggle HPD circuit to trigger HPD sense */ in msm_hdmi_hpd_enable() 113 /* Disable HPD interrupt */ in msm_hdmi_hpd_disable() 130 /* Process HPD: */ in msm_hdmi_hpd_irq() 138 /* ack & disable (temporarily) HPD events: */ in msm_hdmi_hpd_irq() 189 * some platforms may not have hpd gpio. Rely only on the status in msm_hdmi_bridge_detect() 211 DBG("hpd gpio tells us: %d", stat_gpio); in msm_hdmi_bridge_detect()
|
| /linux/Documentation/ABI/testing/ |
| H A 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 71 Attention messages. IRQ_HPD can only be asserted when HPD is high,
|
| /linux/drivers/gpu/drm/amd/amdgpu/ |
| H A D | dce_v6_0.c | 101 uint32_t hpd; member 107 .hpd = DISP_INTERRUPT_STATUS__DC_HPD1_INTERRUPT_MASK 112 .hpd = DISP_INTERRUPT_STATUS_CONTINUE__DC_HPD2_INTERRUPT_MASK 117 .hpd = DISP_INTERRUPT_STATUS_CONTINUE2__DC_HPD3_INTERRUPT_MASK 122 .hpd = DISP_INTERRUPT_STATUS_CONTINUE3__DC_HPD4_INTERRUPT_MASK 127 .hpd = DISP_INTERRUPT_STATUS_CONTINUE4__DC_HPD5_INTERRUPT_MASK 132 .hpd = DISP_INTERRUPT_STATUS_CONTINUE5__DC_HPD6_INTERRUPT_MASK 236 * dce_v6_0_hpd_sense - hpd sense callback. 239 * @hpd: hpd (hotplug detect) pin 245 enum amdgpu_hpd_id hpd) in dce_v6_0_hpd_sense() argument [all …]
|
| H A 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 …]
|
| H A 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/Documentation/devicetree/bindings/display/ti/ |
| H A 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/Documentation/userspace-api/media/cec/ |
| H A 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/drivers/gpu/drm/amd/display/dc/gpio/dce120/ |
| H A 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/Documentation/devicetree/bindings/display/samsung/ |
| H A 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>;
|
| /linux/drivers/gpu/drm/amd/display/dc/gpio/dcn10/ |
| H A D | hw_factory_dcn10.c | 43 #define block HPD 188 struct hw_hpd *hpd = HW_HPD_FROM_BASE(pin); in define_hpd_registers() local 190 hpd->regs = &hpd_regs[en]; in define_hpd_registers() 191 hpd->shifts = &hpd_shift; in define_hpd_registers() 192 hpd->masks = &hpd_mask; in define_hpd_registers() 193 hpd->base.regs = &hpd_regs[en].gpio; in define_hpd_registers()
|
| /linux/drivers/gpu/drm/amd/display/dc/ |
| H A D | dc.h | 1565 bool hpd_status; /* HPD status of link without physical HPD pin. */ 1566 bool is_hpd_pending; /* Indicates a new received hpd */ 1975 * recommended to call this function as the first link operation upon HPD event 2018 /* Enable HPD interrupt handler for a given link */ 2021 /* Disable HPD interrupt handler for a given link */ 2037 /* query current hpd pin value 2038 * return - true HPD is asserted (HPD high), false otherwise (HPD low) 2046 /* enable/disable hardware HPD filter. 2048 * @link - The link the HPD pin is associated with. 2049 * @enable = true - enable hardware HPD filter. HPD event will only queued to irq [all …]
|
| /linux/drivers/gpu/drm/amd/display/dc/gpio/dcn21/ |
| H A D | hw_factory_dcn21.c | 47 #define block HPD 196 struct hw_hpd *hpd = HW_HPD_FROM_BASE(pin); in define_hpd_registers() local 198 hpd->regs = &hpd_regs[en]; in define_hpd_registers() 199 hpd->shifts = &hpd_shift; in define_hpd_registers() 200 hpd->masks = &hpd_mask; in define_hpd_registers() 201 hpd->base.regs = &hpd_regs[en].gpio; in define_hpd_registers()
|
| /linux/drivers/gpu/drm/amd/display/dc/gpio/dce80/ |
| H A D | hw_factory_dce80.c | 143 struct hw_hpd *hpd = HW_HPD_FROM_BASE(pin); in define_hpd_registers() local 145 hpd->regs = &hpd_regs[en]; in define_hpd_registers() 146 hpd->shifts = &hpd_shift; in define_hpd_registers() 147 hpd->masks = &hpd_mask; in define_hpd_registers() 148 hpd->base.regs = &hpd_regs[en].gpio; in define_hpd_registers()
|
| /linux/drivers/gpu/drm/amd/display/dc/gpio/dce60/ |
| H A D | hw_factory_dce60.c | 143 struct hw_hpd *hpd = HW_HPD_FROM_BASE(pin); in define_hpd_registers() local 145 hpd->regs = &hpd_regs[en]; in define_hpd_registers() 146 hpd->shifts = &hpd_shift; in define_hpd_registers() 147 hpd->masks = &hpd_mask; in define_hpd_registers() 148 hpd->base.regs = &hpd_regs[en].gpio; in define_hpd_registers()
|
| /linux/drivers/gpu/drm/amd/display/dc/gpio/dce110/ |
| H A D | hw_factory_dce110.c | 139 struct hw_hpd *hpd = HW_HPD_FROM_BASE(pin); in define_hpd_registers() local 141 hpd->regs = &hpd_regs[en]; in define_hpd_registers() 142 hpd->shifts = &hpd_shift; in define_hpd_registers() 143 hpd->masks = &hpd_mask; in define_hpd_registers() 144 hpd->base.regs = &hpd_regs[en].gpio; in define_hpd_registers()
|
| /linux/drivers/gpu/drm/amd/display/dc/gpio/dcn30/ |
| H A D | hw_factory_dcn30.c | 56 #define block HPD 225 struct hw_hpd *hpd = HW_HPD_FROM_BASE(pin); in define_hpd_registers() local 227 hpd->regs = &hpd_regs[en]; in define_hpd_registers() 228 hpd->shifts = &hpd_shift; in define_hpd_registers() 229 hpd->masks = &hpd_mask; in define_hpd_registers() 230 hpd->base.regs = &hpd_regs[en].gpio; in define_hpd_registers()
|
| /linux/drivers/gpu/drm/amd/display/dc/gpio/dcn315/ |
| H A D | hw_factory_dcn315.c | 53 #define block HPD 217 struct hw_hpd *hpd = HW_HPD_FROM_BASE(pin); in define_hpd_registers() local 219 hpd->regs = &hpd_regs[en]; in define_hpd_registers() 220 hpd->shifts = &hpd_shift; in define_hpd_registers() 221 hpd->masks = &hpd_mask; in define_hpd_registers() 222 hpd->base.regs = &hpd_regs[en].gpio; in define_hpd_registers()
|