diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-11-28 13:01:15 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-11-28 13:01:15 -0500 |
commit | 43f462f1c2e111d2882b48baeeff774ae42e7c56 (patch) | |
tree | 79132a0dbe5cf418025585ee315b5a441844d655 | |
parent | 3c02a6d946657e1ae0688e0d89f2dd2cfe9afba8 (diff) | |
parent | c209101fc1c91a318422733a3721ff6a9ff7899f (diff) |
Merge tag 'drm-for-v4.15-part2-fixes' of git://people.freedesktop.org/~airlied/linux
Pull drm fixes from Dave Airlie:
- TTM regression fix for some virt gpus (bochs vga)
- a few i915 stable fixes
- one vc4 fix
- one uapi fix
* tag 'drm-for-v4.15-part2-fixes' of git://people.freedesktop.org/~airlied/linux:
drm/ttm: don't attempt to use hugepages if dma32 requested (v2)
drm/vblank: Pass crtc_id to page_flip_ioctl.
drm/i915: Fix init_clock_gating for resume
drm/i915: Mark the userptr invalidate workqueue as WQ_MEM_RECLAIM
drm/i915: Clear breadcrumb node when cancelling signaling
drm/i915/gvt: ensure -ve return value is handled correctly
drm/i915: Re-register PMIC bus access notifier on runtime resume
drm/i915: Fix false-positive assert_rpm_wakelock_held in i915_pmic_bus_access_notifier v2
drm/edid: Don't send non-zero YQ in AVI infoframe for HDMI 1.x sinks
drm/vc4: Account for interrupts in flight
-rw-r--r-- | drivers/gpu/drm/drm_edid.c | 12 | ||||
-rw-r--r-- | drivers/gpu/drm/drm_plane.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/gvt/cmd_parser.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem_userptr.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_breadcrumbs.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_hdmi.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_uncore.c | 13 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_uncore.h | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/ttm/ttm_page_alloc.c | 36 | ||||
-rw-r--r-- | drivers/gpu/drm/vc4/vc4_hdmi.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/vc4/vc4_irq.c | 6 | ||||
-rw-r--r-- | include/drm/drm_edid.h | 3 |
13 files changed, 66 insertions, 24 deletions
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index 2e8fb51282ef..5dfe14763871 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c | |||
@@ -4831,7 +4831,8 @@ void | |||
4831 | drm_hdmi_avi_infoframe_quant_range(struct hdmi_avi_infoframe *frame, | 4831 | drm_hdmi_avi_infoframe_quant_range(struct hdmi_avi_infoframe *frame, |
4832 | const struct drm_display_mode *mode, | 4832 | const struct drm_display_mode *mode, |
4833 | enum hdmi_quantization_range rgb_quant_range, | 4833 | enum hdmi_quantization_range rgb_quant_range, |
4834 | bool rgb_quant_range_selectable) | 4834 | bool rgb_quant_range_selectable, |
4835 | bool is_hdmi2_sink) | ||
4835 | { | 4836 | { |
4836 | /* | 4837 | /* |
4837 | * CEA-861: | 4838 | * CEA-861: |
@@ -4855,8 +4856,15 @@ drm_hdmi_avi_infoframe_quant_range(struct hdmi_avi_infoframe *frame, | |||
4855 | * YQ-field to match the RGB Quantization Range being transmitted | 4856 | * YQ-field to match the RGB Quantization Range being transmitted |
4856 | * (e.g., when Limited Range RGB, set YQ=0 or when Full Range RGB, | 4857 | * (e.g., when Limited Range RGB, set YQ=0 or when Full Range RGB, |
4857 | * set YQ=1) and the Sink shall ignore the YQ-field." | 4858 | * set YQ=1) and the Sink shall ignore the YQ-field." |
4859 | * | ||
4860 | * Unfortunate certain sinks (eg. VIZ Model 67/E261VA) get confused | ||
4861 | * by non-zero YQ when receiving RGB. There doesn't seem to be any | ||
4862 | * good way to tell which version of CEA-861 the sink supports, so | ||
4863 | * we limit non-zero YQ to HDMI 2.0 sinks only as HDMI 2.0 is based | ||
4864 | * on on CEA-861-F. | ||
4858 | */ | 4865 | */ |
4859 | if (rgb_quant_range == HDMI_QUANTIZATION_RANGE_LIMITED) | 4866 | if (!is_hdmi2_sink || |
4867 | rgb_quant_range == HDMI_QUANTIZATION_RANGE_LIMITED) | ||
4860 | frame->ycc_quantization_range = | 4868 | frame->ycc_quantization_range = |
4861 | HDMI_YCC_QUANTIZATION_RANGE_LIMITED; | 4869 | HDMI_YCC_QUANTIZATION_RANGE_LIMITED; |
4862 | else | 4870 | else |
diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c index 19404e34cd59..37a93cdffb4a 100644 --- a/drivers/gpu/drm/drm_plane.c +++ b/drivers/gpu/drm/drm_plane.c | |||
@@ -1030,6 +1030,7 @@ retry: | |||
1030 | e->event.base.type = DRM_EVENT_FLIP_COMPLETE; | 1030 | e->event.base.type = DRM_EVENT_FLIP_COMPLETE; |
1031 | e->event.base.length = sizeof(e->event); | 1031 | e->event.base.length = sizeof(e->event); |
1032 | e->event.vbl.user_data = page_flip->user_data; | 1032 | e->event.vbl.user_data = page_flip->user_data; |
1033 | e->event.vbl.crtc_id = crtc->base.id; | ||
1033 | ret = drm_event_reserve_init(dev, file_priv, &e->base, &e->event.base); | 1034 | ret = drm_event_reserve_init(dev, file_priv, &e->base, &e->event.base); |
1034 | if (ret) { | 1035 | if (ret) { |
1035 | kfree(e); | 1036 | kfree(e); |
diff --git a/drivers/gpu/drm/i915/gvt/cmd_parser.c b/drivers/gpu/drm/i915/gvt/cmd_parser.c index 701a3c6f1669..85d4c57870fb 100644 --- a/drivers/gpu/drm/i915/gvt/cmd_parser.c +++ b/drivers/gpu/drm/i915/gvt/cmd_parser.c | |||
@@ -1628,7 +1628,7 @@ static int perform_bb_shadow(struct parser_exec_state *s) | |||
1628 | struct intel_shadow_bb_entry *entry_obj; | 1628 | struct intel_shadow_bb_entry *entry_obj; |
1629 | struct intel_vgpu *vgpu = s->vgpu; | 1629 | struct intel_vgpu *vgpu = s->vgpu; |
1630 | unsigned long gma = 0; | 1630 | unsigned long gma = 0; |
1631 | uint32_t bb_size; | 1631 | int bb_size; |
1632 | void *dst = NULL; | 1632 | void *dst = NULL; |
1633 | int ret = 0; | 1633 | int ret = 0; |
1634 | 1634 | ||
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 960d3d8b95b8..2cf10d17acfb 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c | |||
@@ -1714,6 +1714,7 @@ static int i915_drm_resume(struct drm_device *dev) | |||
1714 | intel_guc_resume(dev_priv); | 1714 | intel_guc_resume(dev_priv); |
1715 | 1715 | ||
1716 | intel_modeset_init_hw(dev); | 1716 | intel_modeset_init_hw(dev); |
1717 | intel_init_clock_gating(dev_priv); | ||
1717 | 1718 | ||
1718 | spin_lock_irq(&dev_priv->irq_lock); | 1719 | spin_lock_irq(&dev_priv->irq_lock); |
1719 | if (dev_priv->display.hpd_irq_setup) | 1720 | if (dev_priv->display.hpd_irq_setup) |
@@ -2618,6 +2619,8 @@ static int intel_runtime_resume(struct device *kdev) | |||
2618 | ret = vlv_resume_prepare(dev_priv, true); | 2619 | ret = vlv_resume_prepare(dev_priv, true); |
2619 | } | 2620 | } |
2620 | 2621 | ||
2622 | intel_uncore_runtime_resume(dev_priv); | ||
2623 | |||
2621 | /* | 2624 | /* |
2622 | * No point of rolling back things in case of an error, as the best | 2625 | * No point of rolling back things in case of an error, as the best |
2623 | * we can do is to hope that things will still work (and disable RPM). | 2626 | * we can do is to hope that things will still work (and disable RPM). |
diff --git a/drivers/gpu/drm/i915/i915_gem_userptr.c b/drivers/gpu/drm/i915/i915_gem_userptr.c index 135fc750a837..382a77a1097e 100644 --- a/drivers/gpu/drm/i915/i915_gem_userptr.c +++ b/drivers/gpu/drm/i915/i915_gem_userptr.c | |||
@@ -172,7 +172,9 @@ i915_mmu_notifier_create(struct mm_struct *mm) | |||
172 | spin_lock_init(&mn->lock); | 172 | spin_lock_init(&mn->lock); |
173 | mn->mn.ops = &i915_gem_userptr_notifier; | 173 | mn->mn.ops = &i915_gem_userptr_notifier; |
174 | mn->objects = RB_ROOT_CACHED; | 174 | mn->objects = RB_ROOT_CACHED; |
175 | mn->wq = alloc_workqueue("i915-userptr-release", WQ_UNBOUND, 0); | 175 | mn->wq = alloc_workqueue("i915-userptr-release", |
176 | WQ_UNBOUND | WQ_MEM_RECLAIM, | ||
177 | 0); | ||
176 | if (mn->wq == NULL) { | 178 | if (mn->wq == NULL) { |
177 | kfree(mn); | 179 | kfree(mn); |
178 | return ERR_PTR(-ENOMEM); | 180 | return ERR_PTR(-ENOMEM); |
@@ -827,7 +829,7 @@ int i915_gem_init_userptr(struct drm_i915_private *dev_priv) | |||
827 | 829 | ||
828 | dev_priv->mm.userptr_wq = | 830 | dev_priv->mm.userptr_wq = |
829 | alloc_workqueue("i915-userptr-acquire", | 831 | alloc_workqueue("i915-userptr-acquire", |
830 | WQ_HIGHPRI | WQ_MEM_RECLAIM, | 832 | WQ_HIGHPRI | WQ_UNBOUND, |
831 | 0); | 833 | 0); |
832 | if (!dev_priv->mm.userptr_wq) | 834 | if (!dev_priv->mm.userptr_wq) |
833 | return -ENOMEM; | 835 | return -ENOMEM; |
diff --git a/drivers/gpu/drm/i915/intel_breadcrumbs.c b/drivers/gpu/drm/i915/intel_breadcrumbs.c index 48e1ba01ccf8..5f8b9f1f40f1 100644 --- a/drivers/gpu/drm/i915/intel_breadcrumbs.c +++ b/drivers/gpu/drm/i915/intel_breadcrumbs.c | |||
@@ -517,6 +517,7 @@ static void __intel_engine_remove_wait(struct intel_engine_cs *engine, | |||
517 | 517 | ||
518 | GEM_BUG_ON(RB_EMPTY_NODE(&wait->node)); | 518 | GEM_BUG_ON(RB_EMPTY_NODE(&wait->node)); |
519 | rb_erase(&wait->node, &b->waiters); | 519 | rb_erase(&wait->node, &b->waiters); |
520 | RB_CLEAR_NODE(&wait->node); | ||
520 | 521 | ||
521 | out: | 522 | out: |
522 | GEM_BUG_ON(b->irq_wait == wait); | 523 | GEM_BUG_ON(b->irq_wait == wait); |
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c index 5132dc814788..4dea833f9d1b 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c +++ b/drivers/gpu/drm/i915/intel_hdmi.c | |||
@@ -487,7 +487,8 @@ static void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder, | |||
487 | crtc_state->limited_color_range ? | 487 | crtc_state->limited_color_range ? |
488 | HDMI_QUANTIZATION_RANGE_LIMITED : | 488 | HDMI_QUANTIZATION_RANGE_LIMITED : |
489 | HDMI_QUANTIZATION_RANGE_FULL, | 489 | HDMI_QUANTIZATION_RANGE_FULL, |
490 | intel_hdmi->rgb_quant_range_selectable); | 490 | intel_hdmi->rgb_quant_range_selectable, |
491 | is_hdmi2_sink); | ||
491 | 492 | ||
492 | /* TODO: handle pixel repetition for YCBCR420 outputs */ | 493 | /* TODO: handle pixel repetition for YCBCR420 outputs */ |
493 | intel_write_infoframe(encoder, crtc_state, &frame); | 494 | intel_write_infoframe(encoder, crtc_state, &frame); |
diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c index 20e3c65c0999..8c2ce81f01c2 100644 --- a/drivers/gpu/drm/i915/intel_uncore.c +++ b/drivers/gpu/drm/i915/intel_uncore.c | |||
@@ -434,6 +434,12 @@ void intel_uncore_resume_early(struct drm_i915_private *dev_priv) | |||
434 | i915_check_and_clear_faults(dev_priv); | 434 | i915_check_and_clear_faults(dev_priv); |
435 | } | 435 | } |
436 | 436 | ||
437 | void intel_uncore_runtime_resume(struct drm_i915_private *dev_priv) | ||
438 | { | ||
439 | iosf_mbi_register_pmic_bus_access_notifier( | ||
440 | &dev_priv->uncore.pmic_bus_access_nb); | ||
441 | } | ||
442 | |||
437 | void intel_uncore_sanitize(struct drm_i915_private *dev_priv) | 443 | void intel_uncore_sanitize(struct drm_i915_private *dev_priv) |
438 | { | 444 | { |
439 | i915_modparams.enable_rc6 = | 445 | i915_modparams.enable_rc6 = |
@@ -1240,8 +1246,15 @@ static int i915_pmic_bus_access_notifier(struct notifier_block *nb, | |||
1240 | * bus, which will be busy after this notification, leading to: | 1246 | * bus, which will be busy after this notification, leading to: |
1241 | * "render: timed out waiting for forcewake ack request." | 1247 | * "render: timed out waiting for forcewake ack request." |
1242 | * errors. | 1248 | * errors. |
1249 | * | ||
1250 | * The notifier is unregistered during intel_runtime_suspend(), | ||
1251 | * so it's ok to access the HW here without holding a RPM | ||
1252 | * wake reference -> disable wakeref asserts for the time of | ||
1253 | * the access. | ||
1243 | */ | 1254 | */ |
1255 | disable_rpm_wakeref_asserts(dev_priv); | ||
1244 | intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL); | 1256 | intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL); |
1257 | enable_rpm_wakeref_asserts(dev_priv); | ||
1245 | break; | 1258 | break; |
1246 | case MBI_PMIC_BUS_ACCESS_END: | 1259 | case MBI_PMIC_BUS_ACCESS_END: |
1247 | intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL); | 1260 | intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL); |
diff --git a/drivers/gpu/drm/i915/intel_uncore.h b/drivers/gpu/drm/i915/intel_uncore.h index 582771251b57..9ce079b5dd0d 100644 --- a/drivers/gpu/drm/i915/intel_uncore.h +++ b/drivers/gpu/drm/i915/intel_uncore.h | |||
@@ -134,6 +134,7 @@ bool intel_uncore_arm_unclaimed_mmio_detection(struct drm_i915_private *dev_priv | |||
134 | void intel_uncore_fini(struct drm_i915_private *dev_priv); | 134 | void intel_uncore_fini(struct drm_i915_private *dev_priv); |
135 | void intel_uncore_suspend(struct drm_i915_private *dev_priv); | 135 | void intel_uncore_suspend(struct drm_i915_private *dev_priv); |
136 | void intel_uncore_resume_early(struct drm_i915_private *dev_priv); | 136 | void intel_uncore_resume_early(struct drm_i915_private *dev_priv); |
137 | void intel_uncore_runtime_resume(struct drm_i915_private *dev_priv); | ||
137 | 138 | ||
138 | u64 intel_uncore_edram_size(struct drm_i915_private *dev_priv); | 139 | u64 intel_uncore_edram_size(struct drm_i915_private *dev_priv); |
139 | void assert_forcewakes_inactive(struct drm_i915_private *dev_priv); | 140 | void assert_forcewakes_inactive(struct drm_i915_private *dev_priv); |
diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc.c b/drivers/gpu/drm/ttm/ttm_page_alloc.c index 316f831ad5f0..b0551aa677b8 100644 --- a/drivers/gpu/drm/ttm/ttm_page_alloc.c +++ b/drivers/gpu/drm/ttm/ttm_page_alloc.c | |||
@@ -744,12 +744,14 @@ static void ttm_put_pages(struct page **pages, unsigned npages, int flags, | |||
744 | } | 744 | } |
745 | 745 | ||
746 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE | 746 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE |
747 | for (j = 0; j < HPAGE_PMD_NR; ++j) | 747 | if (!(flags & TTM_PAGE_FLAG_DMA32)) { |
748 | if (p++ != pages[i + j]) | 748 | for (j = 0; j < HPAGE_PMD_NR; ++j) |
749 | break; | 749 | if (p++ != pages[i + j]) |
750 | break; | ||
750 | 751 | ||
751 | if (j == HPAGE_PMD_NR) | 752 | if (j == HPAGE_PMD_NR) |
752 | order = HPAGE_PMD_ORDER; | 753 | order = HPAGE_PMD_ORDER; |
754 | } | ||
753 | #endif | 755 | #endif |
754 | 756 | ||
755 | if (page_count(pages[i]) != 1) | 757 | if (page_count(pages[i]) != 1) |
@@ -865,20 +867,22 @@ static int ttm_get_pages(struct page **pages, unsigned npages, int flags, | |||
865 | 867 | ||
866 | i = 0; | 868 | i = 0; |
867 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE | 869 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE |
868 | while (npages >= HPAGE_PMD_NR) { | 870 | if (!(gfp_flags & GFP_DMA32)) { |
869 | gfp_t huge_flags = gfp_flags; | 871 | while (npages >= HPAGE_PMD_NR) { |
872 | gfp_t huge_flags = gfp_flags; | ||
870 | 873 | ||
871 | huge_flags |= GFP_TRANSHUGE; | 874 | huge_flags |= GFP_TRANSHUGE; |
872 | huge_flags &= ~__GFP_MOVABLE; | 875 | huge_flags &= ~__GFP_MOVABLE; |
873 | huge_flags &= ~__GFP_COMP; | 876 | huge_flags &= ~__GFP_COMP; |
874 | p = alloc_pages(huge_flags, HPAGE_PMD_ORDER); | 877 | p = alloc_pages(huge_flags, HPAGE_PMD_ORDER); |
875 | if (!p) | 878 | if (!p) |
876 | break; | 879 | break; |
877 | 880 | ||
878 | for (j = 0; j < HPAGE_PMD_NR; ++j) | 881 | for (j = 0; j < HPAGE_PMD_NR; ++j) |
879 | pages[i++] = p++; | 882 | pages[i++] = p++; |
880 | 883 | ||
881 | npages -= HPAGE_PMD_NR; | 884 | npages -= HPAGE_PMD_NR; |
885 | } | ||
882 | } | 886 | } |
883 | #endif | 887 | #endif |
884 | 888 | ||
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c index fa37a1c07cf6..0b2088264039 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c | |||
@@ -424,7 +424,8 @@ static void vc4_hdmi_set_avi_infoframe(struct drm_encoder *encoder) | |||
424 | vc4_encoder->limited_rgb_range ? | 424 | vc4_encoder->limited_rgb_range ? |
425 | HDMI_QUANTIZATION_RANGE_LIMITED : | 425 | HDMI_QUANTIZATION_RANGE_LIMITED : |
426 | HDMI_QUANTIZATION_RANGE_FULL, | 426 | HDMI_QUANTIZATION_RANGE_FULL, |
427 | vc4_encoder->rgb_range_selectable); | 427 | vc4_encoder->rgb_range_selectable, |
428 | false); | ||
428 | 429 | ||
429 | vc4_hdmi_write_infoframe(encoder, &frame); | 430 | vc4_hdmi_write_infoframe(encoder, &frame); |
430 | } | 431 | } |
diff --git a/drivers/gpu/drm/vc4/vc4_irq.c b/drivers/gpu/drm/vc4/vc4_irq.c index 7d7af3a93d94..61b2e5377993 100644 --- a/drivers/gpu/drm/vc4/vc4_irq.c +++ b/drivers/gpu/drm/vc4/vc4_irq.c | |||
@@ -208,6 +208,9 @@ vc4_irq_postinstall(struct drm_device *dev) | |||
208 | { | 208 | { |
209 | struct vc4_dev *vc4 = to_vc4_dev(dev); | 209 | struct vc4_dev *vc4 = to_vc4_dev(dev); |
210 | 210 | ||
211 | /* Undo the effects of a previous vc4_irq_uninstall. */ | ||
212 | enable_irq(dev->irq); | ||
213 | |||
211 | /* Enable both the render done and out of memory interrupts. */ | 214 | /* Enable both the render done and out of memory interrupts. */ |
212 | V3D_WRITE(V3D_INTENA, V3D_DRIVER_IRQS); | 215 | V3D_WRITE(V3D_INTENA, V3D_DRIVER_IRQS); |
213 | 216 | ||
@@ -225,6 +228,9 @@ vc4_irq_uninstall(struct drm_device *dev) | |||
225 | /* Clear any pending interrupts we might have left. */ | 228 | /* Clear any pending interrupts we might have left. */ |
226 | V3D_WRITE(V3D_INTCTL, V3D_DRIVER_IRQS); | 229 | V3D_WRITE(V3D_INTCTL, V3D_DRIVER_IRQS); |
227 | 230 | ||
231 | /* Finish any interrupt handler still in flight. */ | ||
232 | disable_irq(dev->irq); | ||
233 | |||
228 | cancel_work_sync(&vc4->overflow_mem_work); | 234 | cancel_work_sync(&vc4->overflow_mem_work); |
229 | } | 235 | } |
230 | 236 | ||
diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h index 6f35909b8add..2ec41d032e56 100644 --- a/include/drm/drm_edid.h +++ b/include/drm/drm_edid.h | |||
@@ -362,7 +362,8 @@ void | |||
362 | drm_hdmi_avi_infoframe_quant_range(struct hdmi_avi_infoframe *frame, | 362 | drm_hdmi_avi_infoframe_quant_range(struct hdmi_avi_infoframe *frame, |
363 | const struct drm_display_mode *mode, | 363 | const struct drm_display_mode *mode, |
364 | enum hdmi_quantization_range rgb_quant_range, | 364 | enum hdmi_quantization_range rgb_quant_range, |
365 | bool rgb_quant_range_selectable); | 365 | bool rgb_quant_range_selectable, |
366 | bool is_hdmi2_sink); | ||
366 | 367 | ||
367 | /** | 368 | /** |
368 | * drm_eld_mnl - Get ELD monitor name length in bytes. | 369 | * drm_eld_mnl - Get ELD monitor name length in bytes. |