Lines Matching +full:hpd +full:- +full:absent +full:- +full:delay
17 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
25 #include <linux/delay.h>
46 * struct panel_delay - Describes delays for a simple panel.
50 * @hpd_reliable: Time for HPD to be reliable
53 * before the HPD signal is reliable. Ideally this is 0 but some panels,
57 * Presumably some old panels simply didn't have HPD hooked up and put
59 * hpd_absent. While that works, it's non-ideal.
64 * @hpd_absent: Time to wait if HPD isn't hooked up.
66 * Add this to the prepare delay if we know Hot Plug Detect isn't used.
68 * This is T3-max on eDP timing diagrams or the delay from power on
69 * until HPD is guaranteed to be asserted.
81 * If a fixed enable delay is also specified, we'll start
82 * counting before delaying for the fixed delay.
84 * If a fixed prepare delay is also specified, we won't start
85 * counting until after the fixed delay. We can't overlap this
86 * fixed delay with the min time because the fixed delay
87 * doesn't happen at the end of the function if a HPD GPIO was
93 * // do fixed prepare delay
94 * // wait for HPD GPIO if applicable
98 * // do fixed enable delay
102 * It is effectively the time from HPD going high till you can
114 * This is (T6-min + max(T7-max, T8-min)) on eDP timing diagrams or
115 * the delay after link training finishes until we can turn the
126 * This is T9-min (delay from backlight off to end of valid video
142 * This is T12-min on eDP timing diagrams.
148 * struct panel_desc - Describes a simple panel.
190 /** @delay: Structure containing various delay values for this panel. */
191 struct panel_delay delay; member
195 * struct edp_panel_entry - Maps panel ID to delay / panel name.
198 /** @panel_id: 32-bit ID for panel, encoded with drm_edid_encode_panel_id(). */
201 /** @delay: The power sequencing delays needed for this panel. */
202 const struct panel_delay *delay; member
250 for (i = 0; i < panel->desc->num_timings; i++) { in panel_edp_get_timings_modes()
251 const struct display_timing *dt = &panel->desc->timings[i]; in panel_edp_get_timings_modes()
255 mode = drm_mode_create(connector->dev); in panel_edp_get_timings_modes()
257 dev_err(panel->base.dev, "failed to add mode %ux%u\n", in panel_edp_get_timings_modes()
258 dt->hactive.typ, dt->vactive.typ); in panel_edp_get_timings_modes()
264 mode->type |= DRM_MODE_TYPE_DRIVER; in panel_edp_get_timings_modes()
266 if (panel->desc->num_timings == 1) in panel_edp_get_timings_modes()
267 mode->type |= DRM_MODE_TYPE_PREFERRED; in panel_edp_get_timings_modes()
282 for (i = 0; i < panel->desc->num_modes; i++) { in panel_edp_get_display_modes()
283 const struct drm_display_mode *m = &panel->desc->modes[i]; in panel_edp_get_display_modes()
285 mode = drm_mode_duplicate(connector->dev, m); in panel_edp_get_display_modes()
287 dev_err(panel->base.dev, "failed to add mode %ux%u@%u\n", in panel_edp_get_display_modes()
288 m->hdisplay, m->vdisplay, in panel_edp_get_display_modes()
293 mode->type |= DRM_MODE_TYPE_DRIVER; in panel_edp_get_display_modes()
295 if (panel->desc->num_modes == 1) in panel_edp_get_display_modes()
296 mode->type |= DRM_MODE_TYPE_PREFERRED; in panel_edp_get_display_modes()
313 mode = drm_mode_duplicate(connector->dev, override_mode); in panel_edp_override_edid_mode()
315 dev_err(panel->base.dev, "failed to add additional mode\n"); in panel_edp_override_edid_mode()
319 mode->type |= DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; in panel_edp_override_edid_mode()
329 bool has_override = panel->override_mode.type; in panel_edp_get_non_edid_modes()
332 if (!panel->desc) in panel_edp_get_non_edid_modes()
336 mode = drm_mode_duplicate(connector->dev, in panel_edp_get_non_edid_modes()
337 &panel->override_mode); in panel_edp_get_non_edid_modes()
342 dev_err(panel->base.dev, "failed to add override mode\n"); in panel_edp_get_non_edid_modes()
347 if (num == 0 && panel->desc->num_timings) in panel_edp_get_non_edid_modes()
356 WARN_ON(panel->desc->num_timings && panel->desc->num_modes); in panel_edp_get_non_edid_modes()
360 connector->display_info.bpc = panel->desc->bpc; in panel_edp_get_non_edid_modes()
361 connector->display_info.width_mm = panel->desc->size.width; in panel_edp_get_non_edid_modes()
362 connector->display_info.height_mm = panel->desc->size.height; in panel_edp_get_non_edid_modes()
385 if (!p->enabled) in panel_edp_disable()
388 if (p->desc->delay.disable) in panel_edp_disable()
389 msleep(p->desc->delay.disable); in panel_edp_disable()
391 p->enabled = false; in panel_edp_disable()
400 drm_dp_dpcd_set_powered(p->aux, false); in panel_edp_suspend()
401 gpiod_set_value_cansleep(p->enable_gpio, 0); in panel_edp_suspend()
402 regulator_disable(p->supply); in panel_edp_suspend()
403 p->unprepared_time = ktime_get_boottime(); in panel_edp_suspend()
413 /* Unpreparing when already unprepared is a no-op */ in panel_edp_unprepare()
414 if (!p->prepared) in panel_edp_unprepare()
417 ret = pm_runtime_put_sync_suspend(panel->dev); in panel_edp_unprepare()
420 p->prepared = false; in panel_edp_unprepare()
427 p->hpd_gpio = devm_gpiod_get_optional(dev, "hpd", GPIOD_IN); in panel_edp_get_hpd_gpio()
428 if (IS_ERR(p->hpd_gpio)) in panel_edp_get_hpd_gpio()
429 return dev_err_probe(dev, PTR_ERR(p->hpd_gpio), in panel_edp_get_hpd_gpio()
430 "failed to get 'hpd' GPIO\n"); in panel_edp_get_hpd_gpio()
437 return !p->no_hpd && (p->hpd_gpio || (p->aux && p->aux->wait_hpd_asserted)); in panel_edp_can_read_hpd()
442 struct device *dev = p->base.dev; in panel_edp_prepare_once()
443 unsigned int delay; in panel_edp_prepare_once() local
448 panel_edp_wait(p->unprepared_time, p->desc->delay.unprepare); in panel_edp_prepare_once()
450 err = regulator_enable(p->supply); in panel_edp_prepare_once()
456 gpiod_set_value_cansleep(p->enable_gpio, 1); in panel_edp_prepare_once()
457 drm_dp_dpcd_set_powered(p->aux, true); in panel_edp_prepare_once()
459 delay = p->desc->delay.hpd_reliable; in panel_edp_prepare_once()
460 if (p->no_hpd) in panel_edp_prepare_once()
461 delay = max(delay, p->desc->delay.hpd_absent); in panel_edp_prepare_once()
462 if (delay) in panel_edp_prepare_once()
463 msleep(delay); in panel_edp_prepare_once()
466 if (p->desc->delay.hpd_absent) in panel_edp_prepare_once()
467 hpd_wait_us = p->desc->delay.hpd_absent * 1000UL; in panel_edp_prepare_once()
471 if (p->hpd_gpio) { in panel_edp_prepare_once()
473 p->hpd_gpio, hpd_asserted, in panel_edp_prepare_once()
478 err = p->aux->wait_hpd_asserted(p->aux, hpd_wait_us); in panel_edp_prepare_once()
482 if (err != -ETIMEDOUT) in panel_edp_prepare_once()
484 "error waiting for hpd GPIO: %d\n", err); in panel_edp_prepare_once()
489 p->prepared_time = ktime_get_boottime(); in panel_edp_prepare_once()
494 drm_dp_dpcd_set_powered(p->aux, false); in panel_edp_prepare_once()
495 gpiod_set_value_cansleep(p->enable_gpio, 0); in panel_edp_prepare_once()
496 regulator_disable(p->supply); in panel_edp_prepare_once()
497 p->unprepared_time = ktime_get_boottime(); in panel_edp_prepare_once()
516 if (ret != -ETIMEDOUT) in panel_edp_resume()
520 if (ret == -ETIMEDOUT) in panel_edp_resume()
533 /* Preparing when already prepared is a no-op */ in panel_edp_prepare()
534 if (p->prepared) in panel_edp_prepare()
537 ret = pm_runtime_get_sync(panel->dev); in panel_edp_prepare()
539 pm_runtime_put_autosuspend(panel->dev); in panel_edp_prepare()
543 p->prepared = true; in panel_edp_prepare()
551 unsigned int delay; in panel_edp_enable() local
553 if (p->enabled) in panel_edp_enable()
556 delay = p->desc->delay.enable; in panel_edp_enable()
559 * If there is a "prepare_to_enable" delay then that's supposed to be in panel_edp_enable()
560 * the delay from HPD going high until we can turn the backlight on. in panel_edp_enable()
561 * However, we can only count this if HPD is readable by the panel in panel_edp_enable()
564 * If we aren't handling the HPD pin ourselves then the best we in panel_edp_enable()
565 * can do is assume that HPD went high immediately before we were in panel_edp_enable()
566 * called (and link training took zero time). Note that "no-hpd" in panel_edp_enable()
567 * actually counts as handling HPD ourselves since we're doing the in panel_edp_enable()
568 * worst case delay (in prepare) ourselves. in panel_edp_enable()
571 * guaranteed that the panel_edp_wait() call below will do no delay. in panel_edp_enable()
575 if (p->desc->delay.prepare_to_enable && in panel_edp_enable()
576 !panel_edp_can_read_hpd(p) && !p->no_hpd) in panel_edp_enable()
577 delay = max(delay, p->desc->delay.prepare_to_enable); in panel_edp_enable()
579 if (delay) in panel_edp_enable()
580 msleep(delay); in panel_edp_enable()
582 panel_edp_wait(p->prepared_time, p->desc->delay.prepare_to_enable); in panel_edp_enable()
584 p->enabled = true; in panel_edp_enable()
594 bool has_override_edid_mode = p->detected_panel && in panel_edp_get_modes()
595 p->detected_panel != ERR_PTR(-EINVAL) && in panel_edp_get_modes()
596 p->detected_panel->override_edid_mode; in panel_edp_get_modes()
599 if (p->ddc) { in panel_edp_get_modes()
600 pm_runtime_get_sync(panel->dev); in panel_edp_get_modes()
602 if (!p->edid) in panel_edp_get_modes()
603 p->edid = drm_get_edid(connector, p->ddc); in panel_edp_get_modes()
604 if (p->edid) { in panel_edp_get_modes()
611 p->detected_panel->override_edid_mode); in panel_edp_get_modes()
613 num += drm_add_edid_modes(connector, p->edid); in panel_edp_get_modes()
617 pm_runtime_mark_last_busy(panel->dev); in panel_edp_get_modes()
618 pm_runtime_put_autosuspend(panel->dev); in panel_edp_get_modes()
622 * Add hard-coded panel modes. Don't call this if there are no timings in panel_edp_get_modes()
623 * and no modes (the generic edp-panel case) because it will clobber in panel_edp_get_modes()
626 if (p->desc->num_timings || p->desc->num_modes) in panel_edp_get_modes()
629 dev_warn(p->base.dev, "No display modes\n"); in panel_edp_get_modes()
635 drm_connector_set_panel_orientation(connector, p->orientation); in panel_edp_get_modes()
647 if (p->desc->num_timings < num_timings) in panel_edp_get_timings()
648 num_timings = p->desc->num_timings; in panel_edp_get_timings()
652 timings[i] = p->desc->timings[i]; in panel_edp_get_timings()
654 return p->desc->num_timings; in panel_edp_get_timings()
661 return p->orientation; in panel_edp_get_orientation()
666 struct drm_panel *panel = s->private; in detected_panel_show()
669 if (IS_ERR(p->detected_panel)) in detected_panel_show()
671 else if (!p->detected_panel) in detected_panel_show()
674 seq_printf(s, "%s\n", p->detected_panel->name); in detected_panel_show()
698 (to_check->field.typ >= bounds->field.min && \
699 to_check->field.typ <= bounds->field.max)
704 const struct panel_desc *desc = panel->desc; in panel_edp_parse_panel_timing_node()
708 if (WARN_ON(desc->num_modes)) { in panel_edp_parse_panel_timing_node()
712 if (WARN_ON(!desc->num_timings)) { in panel_edp_parse_panel_timing_node()
717 for (i = 0; i < panel->desc->num_timings; i++) { in panel_edp_parse_panel_timing_node()
718 const struct display_timing *dt = &panel->desc->timings[i]; in panel_edp_parse_panel_timing_node()
730 if (ot->flags != dt->flags) in panel_edp_parse_panel_timing_node()
734 drm_display_mode_from_videomode(&vm, &panel->override_mode); in panel_edp_parse_panel_timing_node()
735 panel->override_mode.type |= DRM_MODE_TYPE_DRIVER | in panel_edp_parse_panel_timing_node()
740 if (WARN_ON(!panel->override_mode.type)) in panel_edp_parse_panel_timing_node()
758 return -ENOMEM; in generic_edp_panel_probe()
759 panel->desc = desc; in generic_edp_panel_probe()
766 of_property_read_u32(dev->of_node, "hpd-reliable-delay-ms", &reliable_ms); in generic_edp_panel_probe()
767 desc->delay.hpd_reliable = reliable_ms; in generic_edp_panel_probe()
768 of_property_read_u32(dev->of_node, "hpd-absent-delay-ms", &absent_ms); in generic_edp_panel_probe()
769 desc->delay.hpd_absent = absent_ms; in generic_edp_panel_probe()
778 panel_id = drm_edid_get_panel_id(panel->ddc); in generic_edp_panel_probe()
781 ret = -EIO; in generic_edp_panel_probe()
786 panel->detected_panel = find_edp_panel(panel_id); in generic_edp_panel_probe()
789 * We're using non-optimized timings and want it really obvious that in generic_edp_panel_probe()
793 if (WARN_ON(!panel->detected_panel)) { in generic_edp_panel_probe()
801 * the HPD-related delays must have worked since we got this in generic_edp_panel_probe()
804 * overlaps the "enable" delay anyway. in generic_edp_panel_probe()
806 * Nearly all panels have a "unprepare" delay of 500 ms though in generic_edp_panel_probe()
810 * An "enable" delay of 80 ms seems the most common, but we'll in generic_edp_panel_probe()
813 desc->delay.unprepare = 2000; in generic_edp_panel_probe()
814 desc->delay.enable = 200; in generic_edp_panel_probe()
816 panel->detected_panel = ERR_PTR(-EINVAL); in generic_edp_panel_probe()
819 vend, panel->detected_panel->name, product_id); in generic_edp_panel_probe()
821 /* Update the delay; everything else comes from EDID */ in generic_edp_panel_probe()
822 desc->delay = *panel->detected_panel->delay; in generic_edp_panel_probe()
843 return -ENOMEM; in panel_edp_probe()
845 panel->enabled = false; in panel_edp_probe()
846 panel->prepared_time = 0; in panel_edp_probe()
847 panel->desc = desc; in panel_edp_probe()
848 panel->aux = aux; in panel_edp_probe()
850 panel->no_hpd = of_property_read_bool(dev->of_node, "no-hpd"); in panel_edp_probe()
851 if (!panel->no_hpd) { in panel_edp_probe()
857 panel->supply = devm_regulator_get(dev, "power"); in panel_edp_probe()
858 if (IS_ERR(panel->supply)) in panel_edp_probe()
859 return PTR_ERR(panel->supply); in panel_edp_probe()
861 panel->enable_gpio = devm_gpiod_get_optional(dev, "enable", in panel_edp_probe()
863 if (IS_ERR(panel->enable_gpio)) in panel_edp_probe()
864 return dev_err_probe(dev, PTR_ERR(panel->enable_gpio), in panel_edp_probe()
867 err = of_drm_get_panel_orientation(dev->of_node, &panel->orientation); in panel_edp_probe()
869 dev_err(dev, "%pOF: failed to get orientation %d\n", dev->of_node, err); in panel_edp_probe()
873 ddc = of_parse_phandle(dev->of_node, "ddc-i2c-bus", 0); in panel_edp_probe()
875 panel->ddc = of_find_i2c_adapter_by_node(ddc); in panel_edp_probe()
878 if (!panel->ddc) in panel_edp_probe()
879 return -EPROBE_DEFER; in panel_edp_probe()
881 panel->ddc = &aux->ddc; in panel_edp_probe()
884 if (!of_get_display_timing(dev->of_node, "panel-timing", &dt)) in panel_edp_probe()
889 drm_panel_init(&panel->base, dev, &panel_edp_funcs, DRM_MODE_CONNECTOR_eDP); in panel_edp_probe()
891 err = drm_panel_of_backlight(&panel->base); in panel_edp_probe()
905 if (of_device_is_compatible(dev->of_node, "edp-panel")) { in panel_edp_probe()
913 desc = panel->desc; in panel_edp_probe()
914 } else if (desc->bpc != 6 && desc->bpc != 8 && desc->bpc != 10) { in panel_edp_probe()
915 dev_warn(dev, "Expected bpc in {6,8,10} but got: %u\n", desc->bpc); in panel_edp_probe()
918 if (!panel->base.backlight && panel->aux) { in panel_edp_probe()
920 err = drm_panel_dp_aux_backlight(&panel->base, panel->aux); in panel_edp_probe()
927 drm_panel_add(&panel->base); in panel_edp_probe()
935 if (panel->ddc && (!panel->aux || panel->ddc != &panel->aux->ddc)) in panel_edp_probe()
936 put_device(&panel->ddc->dev); in panel_edp_probe()
945 drm_panel_remove(&panel->base); in panel_edp_remove()
946 drm_panel_disable(&panel->base); in panel_edp_remove()
947 drm_panel_unprepare(&panel->base); in panel_edp_remove()
951 if (panel->ddc && (!panel->aux || panel->ddc != &panel->aux->ddc)) in panel_edp_remove()
952 put_device(&panel->ddc->dev); in panel_edp_remove()
954 kfree(panel->edid); in panel_edp_remove()
955 panel->edid = NULL; in panel_edp_remove()
962 drm_panel_disable(&panel->base); in panel_edp_shutdown()
963 drm_panel_unprepare(&panel->base); in panel_edp_shutdown()
1009 .delay = {
1036 .delay = {
1063 .delay = {
1112 .delay = {
1152 .delay = {
1153 /* TODO: should be hpd-absent and no-hpd should be set? */
1195 .delay = {
1226 .delay = {
1229 * spike on the HPD line. It was explained that this spike
1232 * in the prepare delay just to be safe. That means:
1233 * - If HPD isn't hooked up you still have 200 ms delay.
1234 * - If HPD is hooked up we won't try to look at it for the
1266 .delay = {
1267 /* TODO: should be hpd-absent and no-hpd should be set? */
1295 .delay = {
1305 * - total horizontal time: { 1506, 1592, 1716 }
1306 * - total vertical time: { 788, 800, 868 }
1379 .delay = {
1406 .delay = {
1433 .delay = {
1559 .delay = {
1653 .delay = {
1694 .delay = {
1721 .delay = {
1722 /* TODO: should be hpd-absent and no-hpd should be set? */
1732 .compatible = "edp-panel",
1755 .compatible = "boe,nv110wtm-n61",
1758 .compatible = "boe,nv133fhm-n61",
1761 .compatible = "boe,nv133fhm-n62",
1767 .compatible = "innolux,n116bca-ea1",
1773 .compatible = "innolux,n125hce-gn1",
1776 .compatible = "innolux,p120zdg-bf1",
1779 .compatible = "ivo,m133nwf4-r0",
1782 .compatible = "kingdisplay,kd116n21-30nv-a010",
1785 .compatible = "lg,lp079qx1-sp0v",
1788 .compatible = "lg,lp097qx1-spa1",
1800 .compatible = "samsung,lsn122dl01-c01",
1803 .compatible = "samsung,ltn140at29-301",
1806 .compatible = "sharp,ld-d5116z01b",
1865 .delay = _delay \
1873 .delay = _delay, \
1890 EDP_PANEL_ENTRY('A', 'U', 'O', 0x405c, &auo_b116xak01.delay, "B116XAK01.0"),
1895 EDP_PANEL_ENTRY('B', 'O', 'E', 0x0786, &delay_200_500_p2e80, "NV116WHM-T01"),
1896 EDP_PANEL_ENTRY('B', 'O', 'E', 0x07d1, &boe_nv133fhm_n61.delay, "NV133FHM-N61"),
1897 EDP_PANEL_ENTRY('B', 'O', 'E', 0x082d, &boe_nv133fhm_n61.delay, "NV133FHM-N62"),
1898 EDP_PANEL_ENTRY('B', 'O', 'E', 0x09c3, &delay_200_500_e50, "NT116WHM-N21,836X2"),
1899 EDP_PANEL_ENTRY('B', 'O', 'E', 0x094b, &delay_200_500_e50, "NT116WHM-N21"),
1900 EDP_PANEL_ENTRY('B', 'O', 'E', 0x095f, &delay_200_500_e50, "NE135FBM-N41 v8.1"),
1901 EDP_PANEL_ENTRY('B', 'O', 'E', 0x0979, &delay_200_500_e50, "NV116WHM-N49 V8.0"),
1902 EDP_PANEL_ENTRY('B', 'O', 'E', 0x098d, &boe_nv110wtm_n61.delay, "NV110WTM-N61"),
1903 EDP_PANEL_ENTRY('B', 'O', 'E', 0x09dd, &delay_200_500_e50, "NT116WHM-N21"),
1904 EDP_PANEL_ENTRY('B', 'O', 'E', 0x0a5d, &delay_200_500_e50, "NV116WHM-N45"),
1905 EDP_PANEL_ENTRY('B', 'O', 'E', 0x0ac5, &delay_200_500_e50, "NV116WHM-N4C"),
1907 EDP_PANEL_ENTRY('C', 'M', 'N', 0x1139, &delay_200_500_e80_d50, "N116BGE-EA2"),
1908 EDP_PANEL_ENTRY('C', 'M', 'N', 0x114c, &innolux_n116bca_ea1.delay, "N116BCA-EA1"),
1909 EDP_PANEL_ENTRY('C', 'M', 'N', 0x1152, &delay_200_500_e80_d50, "N116BCN-EA1"),
1910 EDP_PANEL_ENTRY('C', 'M', 'N', 0x1153, &delay_200_500_e80_d50, "N116BGE-EA2"),
1911 EDP_PANEL_ENTRY('C', 'M', 'N', 0x1154, &delay_200_500_e80_d50, "N116BCA-EA2"),
1912 EDP_PANEL_ENTRY('C', 'M', 'N', 0x1247, &delay_200_500_e80_d50, "N120ACA-EA1"),
1913 EDP_PANEL_ENTRY('C', 'M', 'N', 0x14d4, &delay_200_500_e80_d50, "N140HCA-EAC"),
1917 EDP_PANEL_ENTRY('I', 'V', 'O', 0x854b, &delay_200_500_p2e100, "R133NW4K-R0"),
1919 EDP_PANEL_ENTRY('K', 'D', 'B', 0x0624, &kingdisplay_kd116n21_30nv_a010.delay, "116N21-30NV-A010"),
1920 EDP_PANEL_ENTRY('K', 'D', 'B', 0x1120, &delay_200_500_e80_d50, "116N29-30NK-C007"),
1923 EDP_PANEL_ENTRY('S', 'H', 'P', 0x1523, &sharp_lq140m1jw46.delay, "LQ140M1JW46"),
1926 EDP_PANEL_ENTRY('S', 'T', 'A', 0x0100, &delay_100_500_e200, "2081116HHD028001-51D"),
1938 for (panel = edp_panels; panel->panel_id; panel++) in find_edp_panel()
1939 if (panel->panel_id == panel_id) in find_edp_panel()
1949 /* Skip one since "edp-panel" is only supported on DP AUX bus */ in panel_edp_platform_probe()
1950 id = of_match_node(platform_of_match + 1, pdev->dev.of_node); in panel_edp_platform_probe()
1952 return -ENODEV; in panel_edp_platform_probe()
1954 return panel_edp_probe(&pdev->dev, id->data, NULL); in panel_edp_platform_probe()
1959 panel_edp_remove(&pdev->dev); in panel_edp_platform_remove()
1964 panel_edp_shutdown(&pdev->dev); in panel_edp_platform_shutdown()
1975 .name = "panel-edp",
1988 id = of_match_node(platform_of_match, aux_ep->dev.of_node); in panel_edp_dp_aux_ep_probe()
1990 return -ENODEV; in panel_edp_dp_aux_ep_probe()
1992 return panel_edp_probe(&aux_ep->dev, id->data, aux_ep->aux); in panel_edp_dp_aux_ep_probe()
1997 panel_edp_remove(&aux_ep->dev); in panel_edp_dp_aux_ep_remove()
2002 panel_edp_shutdown(&aux_ep->dev); in panel_edp_dp_aux_ep_shutdown()
2007 .name = "panel-simple-dp-aux",