On Fri, Aug 16, 2019 at 3:14 AM Shankar, Uma <uma.shan...@intel.com> wrote:
>
>
>
> >-----Original Message-----
> >From: Intel-gfx [mailto:intel-gfx-boun...@lists.freedesktop.org] On Behalf 
> >Of Lucas
> >De Marchi
> >Sent: Thursday, August 15, 2019 5:25 AM
> >To: intel-gfx@lists.freedesktop.org
> >Subject: [Intel-gfx] [PATCH] drm/i915/tgl: disable DDIC
> >
> >The current SKUs added for Tiger Lake don't have DDIC hooked up, even though 
> >it is
> >supported by the SoC. The current state for these SKUs is problematic since 
> >while
> >enabling the combo phy, PORT_COMP_DW* return 0xFFFFFFFF, which is invalid per
> >register definition.
> >
> >During initialization we check what phys are not yet enabled by reading 
> >PHY_MISC_C
> >and try to enable it by toggling the "DE to IO Comp Pwr Down"
> >bit.  But after that any read to the PORT_COMP_DW* returns invalid results. 
> >This
> >removes the following warning
> >
> >[56997.634353] Missing case (val == 4294967295) [56997.639241] WARNING: CPU: 
> >5
> >PID: 768 at drivers/gpu/drm/i915/display/intel_combo_phy.c:54
> >cnl_get_procmon_ref_values+0xc9/0xf0 [i915] [56997.639808] Modules linked in:
> >i915(+) prime_numbers x86_pkg_temp_thermal coretemp kvm_intel kvm irqbypass
> >crct10dif_pclmul crc32_pclmul ghash_clmulni_intel e1000e [last unloaded:
> >prime_numbers]
> >[56997.639808] CPU: 5 PID: 768 Comm: insmod Tainted: G     U  W         
> >5.2.0-
> >demarchi+ #65
> >[56997.639808] Hardware name: Intel Corporation Tiger Lake Client
> >Platform/TigerLake U DDR4 SODIMM RVP, BIOS
> >TGLSFWI1.R00.2252.A03.1906270154 06/27/2019 [56997.639808] RIP:
> >0010:cnl_get_procmon_ref_values+0xc9/0xf0 [i915] [56997.639808] Code: 2c a0 
> >85
> >c9 74 e0 81 f9 00 00 00 01 75 09 48 c7 c0 0c a4 2c a0 eb cf 48 c7 c6 3c 3a 
> >31 a0 48 c7
> >c7 40 3a 31 a0 e8 6b 4d ea e0 <0f> 0b 48 c7 c0 00 a4 2c a0 eb b1 48 c7 c0 24 
> >a4 2 c a0
> >eb a8 e8 be [56997.639808] RSP: 0018:ffffc9000068f8a8 EFLAGS: 00010286
> >[56997.639808] RAX: 0000000000000000 RBX: ffff88848fa90000 RCX:
> >0000000000000000 [56997.639808] RDX: ffff8884a08b5ef8 RSI: ffff8884a08a6658
> >RDI: 00000000ffffffff [56997.639808] RBP: 0000000000000002 R08:
> >0000000000000000 R09: 0000000000000000 [56997.639808] R10:
> >0000000000000000 R11: 0000000000000000 R12: ffff88848fa90000 [56997.639808]
> >R13: 0000000000000000 R14: 0000000000000002 R15: 0006c00000162000
> >[56997.639808] FS:  00007f61ca3d12c0(0000) GS:ffff8884a0880000(0000)
> >knlGS:0000000000000000 [56997.639808] CS:  0010 DS: 0000 ES: 0000 CR0:
> >0000000080050033 [56997.639808] CR2: 00007f71be6a92c0 CR3:
> >0000000494750006 CR4: 0000000000760ee0 [56997.639808] PKRU: 55555554
> >[56997.639808] Call Trace:
> >[56997.639808]  cnl_verify_procmon_ref_values+0x36/0xf0 [i915] 
> >[56997.639808]  ?
> >rcu_read_lock_sched_held+0x6f/0x80
> >[56997.639808]  ? gen11_fwtable_read32+0x257/0x290 [i915] [56997.639808]
> >icl_combo_phy_verify_state.part.0+0x22/0xa0 [i915] [56997.639808]
> >intel_combo_phy_init+0x17e/0x3e0 [i915] [56997.639808]  ?
> >icl_display_core_init+0x2c/0x1a0 [i915] [56997.639808]  ?
> >_raw_spin_unlock_irqrestore+0x4c/0x60
> >[56997.639808]  icl_display_core_init+0x34/0x1a0 [i915] [56997.639808]
> >intel_power_domains_init_hw+0x200/0x570 [i915] [56997.639808]
> >i915_driver_probe+0x103b/0x17e0 [i915] [56997.639808]  ? printk+0x53/0x6a
> >[56997.639808]  i915_pci_probe+0x3b/0x190 [i915]
> >
> >We may or may not need to change the implementation to account for DDIC being
> >available on other SKUs. For now I think the best thing to do is to just 
> >disable the port.
>
> This information ideally should be coming from VBT and based on that driver 
> can take a call
> whether to enable the port or not. So is this an interim solution and later 
> would be dropped,
> since there will/may be SKU's with PORT C enabled.
>
> I feel revocation of this port in VBT should be the right approach, instead 
> of an interim solution.

Ideally yes, but it's better something that works than the ideal
solution that doesn't. I wanted to go the VBT
route, but it wouldn't work with any machine that I have available.
Hence this patch.

When/if there's one sku with ddic, hopefully VBT will already be fixed
or we may go the route of differentiating
by PCI id.

Lucas De Marchi

>
> Regards,
> Uma Shankar
>
> >Cc: José Roberto de Souza <jose.so...@intel.com>
> >Signed-off-by: Lucas De Marchi <lucas.demar...@intel.com>
> >---
> > drivers/gpu/drm/i915/display/intel_display.c | 3 +--
> > 1 file changed, 1 insertion(+), 2 deletions(-)
> >
> >diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> >b/drivers/gpu/drm/i915/display/intel_display.c
> >index 5b733e38eae3..6c6a5a5f41bb 100644
> >--- a/drivers/gpu/drm/i915/display/intel_display.c
> >+++ b/drivers/gpu/drm/i915/display/intel_display.c
> >@@ -6683,7 +6683,7 @@ bool intel_phy_is_combo(struct drm_i915_private
> >*dev_priv, enum phy phy)
> >       if (phy == PHY_NONE)
> >               return false;
> >
> >-      if (IS_ELKHARTLAKE(dev_priv) || INTEL_GEN(dev_priv) >= 12)
> >+      if (IS_ELKHARTLAKE(dev_priv))
> >               return phy <= PHY_C;
> >
> >       if (INTEL_GEN(dev_priv) >= 11)
> >@@ -15317,7 +15317,6 @@ static void intel_setup_outputs(struct 
> >drm_i915_private
> >*dev_priv)
> >               /* TODO: initialize TC ports as well */
> >               intel_ddi_init(dev_priv, PORT_A);
> >               intel_ddi_init(dev_priv, PORT_B);
> >-              intel_ddi_init(dev_priv, PORT_C);
> >               icl_dsi_init(dev_priv);
> >       } else if (IS_ELKHARTLAKE(dev_priv)) {
> >               intel_ddi_init(dev_priv, PORT_A);
> >--
> >2.21.0
> >
> >_______________________________________________
> >Intel-gfx mailing list
> >Intel-gfx@lists.freedesktop.org
> >https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx



-- 
Lucas De Marchi
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to