mbox series

[0/5] Add HDMI PLL Algorithm for SNPS/C10PHY

Message ID 20250120042122.1029481-1-ankit.k.nautiyal@intel.com (mailing list archive)
Headers show
Series Add HDMI PLL Algorithm for SNPS/C10PHY | expand

Message

Nautiyal, Ankit K Jan. 20, 2025, 4:21 a.m. UTC
The HDMI PLL programming involves pre-calculated values for specific
frequencies and an algorithm to compute values for other frequencies.
While the algorithm itself wasn't part of the driver, tables were
added based on it for known modes.

Some HDMI modes were pruned due to lack of support (for example issues
[1],[2], and [3]).
This series adds the algorithm for computing HDMI PLLs for SNPS/C10PHY
to work with all modes supported by the hardware.

The original algorithm uses floating-point math, which has been
converted to integers while preserving precision. As a result,
the values in the existing computable tables are very close but not
exact. Testing with DG2 and MTL on various panels revealed no issues.

[1] https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9722
[2] https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10654
[3] https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10956

Rev2:
-Change the name of the new file for HDMI PLL algorithm.
-Fix styling issues and bit refactoring for readbility.
-Fix issues reported by kernel test bot.

Rev3:
-Modify the names of helper functions to align with filename.

Rev4:
-Rebase, added Bspec references, and address review comments.

Ankit Nautiyal (5):
  drm/i915/display: Add support for SNPS PHY HDMI PLL algorithm for DG2
  drm/i915/snps_phy: Use HDMI PLL algorithm for DG2
  drm/i915/cx0_phy_regs: Add C10 registers bits
  drm/i915/intel_snps_hdmi_pll: Compute C10 HDMI PLLs with algorithm
  drm/i915/cx0_phy: Use HDMI PLL algorithm for C10 PHY

 drivers/gpu/drm/i915/Makefile                 |   1 +
 drivers/gpu/drm/i915/display/intel_cx0_phy.c  |  49 +--
 drivers/gpu/drm/i915/display/intel_cx0_phy.h  |   1 -
 .../gpu/drm/i915/display/intel_cx0_phy_regs.h |  24 ++
 drivers/gpu/drm/i915/display/intel_hdmi.c     |  12 -
 .../drm/i915/display/intel_snps_hdmi_pll.c    | 364 ++++++++++++++++++
 .../drm/i915/display/intel_snps_hdmi_pll.h    |  17 +
 drivers/gpu/drm/i915/display/intel_snps_phy.c |  37 +-
 drivers/gpu/drm/i915/display/intel_snps_phy.h |   1 -
 drivers/gpu/drm/xe/Makefile                   |   1 +
 10 files changed, 427 insertions(+), 80 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/display/intel_snps_hdmi_pll.c
 create mode 100644 drivers/gpu/drm/i915/display/intel_snps_hdmi_pll.h

Comments

Almahallawy, Khaled Jan. 21, 2025, 10:45 p.m. UTC | #1
Thank You for the series. 
Tested a modeline that is not pre-computed and able to see pixel clock
calculation done correctly and the analyzer turns on:

adjusted mode: "3440x1440": 50 265250 3440 3488 3520 3600 1440 1443
1453 1474 0x48 0x9
crtc timings: clock=265250, hd=3440 hb=3440-3600 hs=3488-3520 ht=3600,
vd=1440 vb=1440-1474 vs=1443-1453 vt=1474, flags=0x9

Tested-by: Khaled Almahallawy <khaled.almahallawy@intel.com>

On Mon, 2025-01-20 at 09:51 +0530, Ankit Nautiyal wrote:
> The HDMI PLL programming involves pre-calculated values for specific
> frequencies and an algorithm to compute values for other frequencies.
> While the algorithm itself wasn't part of the driver, tables were
> added based on it for known modes.
> 
> Some HDMI modes were pruned due to lack of support (for example
> issues
> [1],[2], and [3]).
> This series adds the algorithm for computing HDMI PLLs for
> SNPS/C10PHY
> to work with all modes supported by the hardware.
> 
> The original algorithm uses floating-point math, which has been
> converted to integers while preserving precision. As a result,
> the values in the existing computable tables are very close but not
> exact. Testing with DG2 and MTL on various panels revealed no issues.
> 
> [1] https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9722
> [2] https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10654
> [3] https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10956
> 
> Rev2:
> -Change the name of the new file for HDMI PLL algorithm.
> -Fix styling issues and bit refactoring for readbility.
> -Fix issues reported by kernel test bot.
> 
> Rev3:
> -Modify the names of helper functions to align with filename.
> 
> Rev4:
> -Rebase, added Bspec references, and address review comments.
> 
> Ankit Nautiyal (5):
>   drm/i915/display: Add support for SNPS PHY HDMI PLL algorithm for
> DG2
>   drm/i915/snps_phy: Use HDMI PLL algorithm for DG2
>   drm/i915/cx0_phy_regs: Add C10 registers bits
>   drm/i915/intel_snps_hdmi_pll: Compute C10 HDMI PLLs with algorithm
>   drm/i915/cx0_phy: Use HDMI PLL algorithm for C10 PHY
> 
>  drivers/gpu/drm/i915/Makefile                 |   1 +
>  drivers/gpu/drm/i915/display/intel_cx0_phy.c  |  49 +--
>  drivers/gpu/drm/i915/display/intel_cx0_phy.h  |   1 -
>  .../gpu/drm/i915/display/intel_cx0_phy_regs.h |  24 ++
>  drivers/gpu/drm/i915/display/intel_hdmi.c     |  12 -
>  .../drm/i915/display/intel_snps_hdmi_pll.c    | 364
> ++++++++++++++++++
>  .../drm/i915/display/intel_snps_hdmi_pll.h    |  17 +
>  drivers/gpu/drm/i915/display/intel_snps_phy.c |  37 +-
>  drivers/gpu/drm/i915/display/intel_snps_phy.h |   1 -
>  drivers/gpu/drm/xe/Makefile                   |   1 +
>  10 files changed, 427 insertions(+), 80 deletions(-)
>  create mode 100644
> drivers/gpu/drm/i915/display/intel_snps_hdmi_pll.c
>  create mode 100644
> drivers/gpu/drm/i915/display/intel_snps_hdmi_pll.h
>
Nautiyal, Ankit K Jan. 22, 2025, 9:10 a.m. UTC | #2
On 1/22/2025 4:15 AM, Almahallawy, Khaled wrote:
> Thank You for the series.
> Tested a modeline that is not pre-computed and able to see pixel clock
> calculation done correctly and the analyzer turns on:
>
> adjusted mode: "3440x1440": 50 265250 3440 3488 3520 3600 1440 1443
> 1453 1474 0x48 0x9
> crtc timings: clock=265250, hd=3440 hb=3440-3600 hs=3488-3520 ht=3600,
> vd=1440 vb=1440-1474 vs=1443-1453 vt=1474, flags=0x9
>
> Tested-by: Khaled Almahallawy <khaled.almahallawy@intel.com>

Thanks Khaled for the testing.

Jani, does the series looks alright to merge?


Regards,

Ankit

>
> On Mon, 2025-01-20 at 09:51 +0530, Ankit Nautiyal wrote:
>> The HDMI PLL programming involves pre-calculated values for specific
>> frequencies and an algorithm to compute values for other frequencies.
>> While the algorithm itself wasn't part of the driver, tables were
>> added based on it for known modes.
>>
>> Some HDMI modes were pruned due to lack of support (for example
>> issues
>> [1],[2], and [3]).
>> This series adds the algorithm for computing HDMI PLLs for
>> SNPS/C10PHY
>> to work with all modes supported by the hardware.
>>
>> The original algorithm uses floating-point math, which has been
>> converted to integers while preserving precision. As a result,
>> the values in the existing computable tables are very close but not
>> exact. Testing with DG2 and MTL on various panels revealed no issues.
>>
>> [1] https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9722
>> [2] https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10654
>> [3] https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10956
>>
>> Rev2:
>> -Change the name of the new file for HDMI PLL algorithm.
>> -Fix styling issues and bit refactoring for readbility.
>> -Fix issues reported by kernel test bot.
>>
>> Rev3:
>> -Modify the names of helper functions to align with filename.
>>
>> Rev4:
>> -Rebase, added Bspec references, and address review comments.
>>
>> Ankit Nautiyal (5):
>>    drm/i915/display: Add support for SNPS PHY HDMI PLL algorithm for
>> DG2
>>    drm/i915/snps_phy: Use HDMI PLL algorithm for DG2
>>    drm/i915/cx0_phy_regs: Add C10 registers bits
>>    drm/i915/intel_snps_hdmi_pll: Compute C10 HDMI PLLs with algorithm
>>    drm/i915/cx0_phy: Use HDMI PLL algorithm for C10 PHY
>>
>>   drivers/gpu/drm/i915/Makefile                 |   1 +
>>   drivers/gpu/drm/i915/display/intel_cx0_phy.c  |  49 +--
>>   drivers/gpu/drm/i915/display/intel_cx0_phy.h  |   1 -
>>   .../gpu/drm/i915/display/intel_cx0_phy_regs.h |  24 ++
>>   drivers/gpu/drm/i915/display/intel_hdmi.c     |  12 -
>>   .../drm/i915/display/intel_snps_hdmi_pll.c    | 364
>> ++++++++++++++++++
>>   .../drm/i915/display/intel_snps_hdmi_pll.h    |  17 +
>>   drivers/gpu/drm/i915/display/intel_snps_phy.c |  37 +-
>>   drivers/gpu/drm/i915/display/intel_snps_phy.h |   1 -
>>   drivers/gpu/drm/xe/Makefile                   |   1 +
>>   10 files changed, 427 insertions(+), 80 deletions(-)
>>   create mode 100644
>> drivers/gpu/drm/i915/display/intel_snps_hdmi_pll.c
>>   create mode 100644
>> drivers/gpu/drm/i915/display/intel_snps_hdmi_pll.h
>>
Jani Nikula Jan. 22, 2025, 4:52 p.m. UTC | #3
On Wed, 22 Jan 2025, "Nautiyal, Ankit K" <ankit.k.nautiyal@intel.com> wrote:
> On 1/22/2025 4:15 AM, Almahallawy, Khaled wrote:
>> Thank You for the series.
>> Tested a modeline that is not pre-computed and able to see pixel clock
>> calculation done correctly and the analyzer turns on:
>>
>> adjusted mode: "3440x1440": 50 265250 3440 3488 3520 3600 1440 1443
>> 1453 1474 0x48 0x9
>> crtc timings: clock=265250, hd=3440 hb=3440-3600 hs=3488-3520 ht=3600,
>> vd=1440 vb=1440-1474 vs=1443-1453 vt=1474, flags=0x9
>>
>> Tested-by: Khaled Almahallawy <khaled.almahallawy@intel.com>
>
> Thanks Khaled for the testing.
>
> Jani, does the series looks alright to merge?

Acked-by: Jani Nikula <jani.nikula@intel.com>


>
>
> Regards,
>
> Ankit
>
>>
>> On Mon, 2025-01-20 at 09:51 +0530, Ankit Nautiyal wrote:
>>> The HDMI PLL programming involves pre-calculated values for specific
>>> frequencies and an algorithm to compute values for other frequencies.
>>> While the algorithm itself wasn't part of the driver, tables were
>>> added based on it for known modes.
>>>
>>> Some HDMI modes were pruned due to lack of support (for example
>>> issues
>>> [1],[2], and [3]).
>>> This series adds the algorithm for computing HDMI PLLs for
>>> SNPS/C10PHY
>>> to work with all modes supported by the hardware.
>>>
>>> The original algorithm uses floating-point math, which has been
>>> converted to integers while preserving precision. As a result,
>>> the values in the existing computable tables are very close but not
>>> exact. Testing with DG2 and MTL on various panels revealed no issues.
>>>
>>> [1] https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9722
>>> [2] https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10654
>>> [3] https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10956
>>>
>>> Rev2:
>>> -Change the name of the new file for HDMI PLL algorithm.
>>> -Fix styling issues and bit refactoring for readbility.
>>> -Fix issues reported by kernel test bot.
>>>
>>> Rev3:
>>> -Modify the names of helper functions to align with filename.
>>>
>>> Rev4:
>>> -Rebase, added Bspec references, and address review comments.
>>>
>>> Ankit Nautiyal (5):
>>>    drm/i915/display: Add support for SNPS PHY HDMI PLL algorithm for
>>> DG2
>>>    drm/i915/snps_phy: Use HDMI PLL algorithm for DG2
>>>    drm/i915/cx0_phy_regs: Add C10 registers bits
>>>    drm/i915/intel_snps_hdmi_pll: Compute C10 HDMI PLLs with algorithm
>>>    drm/i915/cx0_phy: Use HDMI PLL algorithm for C10 PHY
>>>
>>>   drivers/gpu/drm/i915/Makefile                 |   1 +
>>>   drivers/gpu/drm/i915/display/intel_cx0_phy.c  |  49 +--
>>>   drivers/gpu/drm/i915/display/intel_cx0_phy.h  |   1 -
>>>   .../gpu/drm/i915/display/intel_cx0_phy_regs.h |  24 ++
>>>   drivers/gpu/drm/i915/display/intel_hdmi.c     |  12 -
>>>   .../drm/i915/display/intel_snps_hdmi_pll.c    | 364
>>> ++++++++++++++++++
>>>   .../drm/i915/display/intel_snps_hdmi_pll.h    |  17 +
>>>   drivers/gpu/drm/i915/display/intel_snps_phy.c |  37 +-
>>>   drivers/gpu/drm/i915/display/intel_snps_phy.h |   1 -
>>>   drivers/gpu/drm/xe/Makefile                   |   1 +
>>>   10 files changed, 427 insertions(+), 80 deletions(-)
>>>   create mode 100644
>>> drivers/gpu/drm/i915/display/intel_snps_hdmi_pll.c
>>>   create mode 100644
>>> drivers/gpu/drm/i915/display/intel_snps_hdmi_pll.h
>>>
Nautiyal, Ankit K Jan. 23, 2025, 5:01 a.m. UTC | #4
Hi,

The below failure is not related to the patch series.

The test was passing in previous revision v4: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v4/bat-adlp-9/igt@i915_selftest@live.html

The v5 is just a minor change in macro in patch#2, sent in-reply-to it, 
so both versions are practically same.

Therefore, went ahead and merged the series since BAT and CI are already 
clean for v4.


Regards,

Ankit

On 1/22/2025 11:20 PM, Patchwork wrote:
> Project List - Patchwork *Patch Details*
> *Series:* 	Add HDMI PLL Algorithm for SNPS/C10PHY (rev5)
> *URL:* 	https://patchwork.freedesktop.org/series/135397/
> *State:* 	failure
> *Details:* 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/index.html
>
>
>   CI Bug Log - changes from CI_DRM_16001 -> Patchwork_135397v5
>
>
>     Summary
>
> *FAILURE*
>
> Serious unknown changes coming with Patchwork_135397v5 absolutely need 
> to be
> verified manually.
>
> If you think the reported changes have nothing to do with the changes
> introduced in Patchwork_135397v5, please notify your bug team 
> (I915-ci-infra@lists.freedesktop.org) to allow them
> to document this new failure mode, which will reduce false positives 
> in CI.
>
> External URL: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/index.html
>
>
>     Participating hosts (45 -> 44)
>
> Missing (1): fi-snb-2520m
>
>
>     Possible new issues
>
> Here are the unknown changes that may have been introduced in 
> Patchwork_135397v5:
>
>
>       IGT changes
>
>
>         Possible regressions
>
>   * igt@i915_selftest@live:
>       o bat-adlp-9: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16001/bat-adlp-9/igt@i915_selftest@live.html>
>         -> ABORT
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/bat-adlp-9/igt@i915_selftest@live.html>
>
>
>     Known issues
>
> Here are the changes found in Patchwork_135397v5 that come from known 
> issues:
>
>
>       IGT changes
>
>
>         Issues hit
>
>  *
>
>     igt@dmabuf@all-tests:
>
>       o bat-apl-1: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16001/bat-apl-1/igt@dmabuf@all-tests.html>
>         -> INCOMPLETE
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/bat-apl-1/igt@dmabuf@all-tests.html>
>         (i915#12904
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12904>)
>         +1 other test incomplete
>  *
>
>     igt@gem_lmem_swapping@verify-random:
>
>       o fi-cfl-8109u: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/fi-cfl-8109u/igt@gem_lmem_swapping@verify-random.html>
>         (i915#4613
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613>)
>         +3 other tests skip
>  *
>
>     igt@i915_module_load@load:
>
>       o fi-pnv-d510: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16001/fi-pnv-d510/igt@i915_module_load@load.html>
>         -> ABORT
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/fi-pnv-d510/igt@i915_module_load@load.html>
>         (i915#13203
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13203>)
>  *
>
>     igt@i915_pm_rpm@module-reload:
>
>       o bat-dg2-11: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16001/bat-dg2-11/igt@i915_pm_rpm@module-reload.html>
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/bat-dg2-11/igt@i915_pm_rpm@module-reload.html>
>         (i915#13401
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13401>)
>       o bat-dg1-7: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16001/bat-dg1-7/igt@i915_pm_rpm@module-reload.html>
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/bat-dg1-7/igt@i915_pm_rpm@module-reload.html>
>         (i915#13401
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13401>)
>  *
>
>     igt@i915_selftest@live:
>
>       o bat-arlh-3: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16001/bat-arlh-3/igt@i915_selftest@live.html>
>         -> DMESG-FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/bat-arlh-3/igt@i915_selftest@live.html>
>         (i915#12061
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061>
>         / i915#12435
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12435>)
>  *
>
>     igt@i915_selftest@live@gt_mocs:
>
>       o bat-adlp-9: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16001/bat-adlp-9/igt@i915_selftest@live@gt_mocs.html>
>         -> ABORT
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/bat-adlp-9/igt@i915_selftest@live@gt_mocs.html>
>         (i915#13399
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13399>)
>  *
>
>     igt@i915_selftest@live@workarounds:
>
>       o bat-arlh-3: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16001/bat-arlh-3/igt@i915_selftest@live@workarounds.html>
>         -> DMESG-FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/bat-arlh-3/igt@i915_selftest@live@workarounds.html>
>         (i915#12061
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061>)
>  *
>
>     igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence:
>
>       o bat-dg2-11: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16001/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html>
>         -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html>
>         (i915#9197
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9197>)
>         +3 other tests skip
>
>
>         Possible fixes
>
>  *
>
>     igt@i915_module_load@reload:
>
>       o fi-cfl-8109u: ABORT
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16001/fi-cfl-8109u/igt@i915_module_load@reload.html>
>         -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/fi-cfl-8109u/igt@i915_module_load@reload.html>
>  *
>
>     igt@i915_pm_rpm@module-reload:
>
>       o bat-dg2-9: ABORT
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16001/bat-dg2-9/igt@i915_pm_rpm@module-reload.html>
>         -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/bat-dg2-9/igt@i915_pm_rpm@module-reload.html>
>  *
>
>     igt@kms_force_connector_basic@prune-stale-modes:
>
>       o bat-dg2-13: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16001/bat-dg2-13/igt@kms_force_connector_basic@prune-stale-modes.html>
>         (i915#5274
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5274>)
>         -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/bat-dg2-13/igt@kms_force_connector_basic@prune-stale-modes.html>
>       o bat-dg2-9: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16001/bat-dg2-9/igt@kms_force_connector_basic@prune-stale-modes.html>
>         (i915#5274
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5274>)
>         -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/bat-dg2-9/igt@kms_force_connector_basic@prune-stale-modes.html>
>       o bat-mtlp-6: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16001/bat-mtlp-6/igt@kms_force_connector_basic@prune-stale-modes.html>
>         (i915#5274
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5274>
>         / i915#9792
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9792>)
>         -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/bat-mtlp-6/igt@kms_force_connector_basic@prune-stale-modes.html>
>       o bat-dg2-14: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16001/bat-dg2-14/igt@kms_force_connector_basic@prune-stale-modes.html>
>         (i915#5274
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5274>)
>         -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/bat-dg2-14/igt@kms_force_connector_basic@prune-stale-modes.html>
>       o bat-dg2-11: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16001/bat-dg2-11/igt@kms_force_connector_basic@prune-stale-modes.html>
>         (i915#5274
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5274>)
>         -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/bat-dg2-11/igt@kms_force_connector_basic@prune-stale-modes.html>
>       o bat-mtlp-8: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16001/bat-mtlp-8/igt@kms_force_connector_basic@prune-stale-modes.html>
>         (i915#5274
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5274>)
>         -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/bat-mtlp-8/igt@kms_force_connector_basic@prune-stale-modes.html>
>       o bat-dg2-8: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16001/bat-dg2-8/igt@kms_force_connector_basic@prune-stale-modes.html>
>         (i915#5274
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5274>)
>         -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/bat-dg2-8/igt@kms_force_connector_basic@prune-stale-modes.html>
>       o {bat-mtlp-9}: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16001/bat-mtlp-9/igt@kms_force_connector_basic@prune-stale-modes.html>
>         (i915#5274
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5274>)
>         -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/bat-mtlp-9/igt@kms_force_connector_basic@prune-stale-modes.html>
>       o bat-arlh-3: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16001/bat-arlh-3/igt@kms_force_connector_basic@prune-stale-modes.html>
>         (i915#12648
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12648>)
>         -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135397v5/bat-arlh-3/igt@kms_force_connector_basic@prune-stale-modes.html>
>
> {name}: This element is suppressed. This means it is ignored when 
> computing
> the status of the difference (SUCCESS, WARNING, or FAILURE).
>
>
>     Build changes
>
>   * Linux: CI_DRM_16001 -> Patchwork_135397v5
>
> CI-20190529: 20190529
> CI_DRM_16001: 6834acba715b85cbecfeb660b9695806e98c9a0a @ 
> git://anongit.freedesktop.org/gfx-ci/linux
> IGT_8206: 48d7780a026179e5de232142df3ac59fec6487ee @ 
> https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
> Patchwork_135397v5: 6834acba715b85cbecfeb660b9695806e98c9a0a @ 
> git://anongit.freedesktop.org/gfx-ci/linux
>
Nautiyal, Ankit K Jan. 23, 2025, 5:26 a.m. UTC | #5
On 1/22/2025 10:22 PM, Jani Nikula wrote:
> On Wed, 22 Jan 2025, "Nautiyal, Ankit K" <ankit.k.nautiyal@intel.com> wrote:
>> On 1/22/2025 4:15 AM, Almahallawy, Khaled wrote:
>>> Thank You for the series.
>>> Tested a modeline that is not pre-computed and able to see pixel clock
>>> calculation done correctly and the analyzer turns on:
>>>
>>> adjusted mode: "3440x1440": 50 265250 3440 3488 3520 3600 1440 1443
>>> 1453 1474 0x48 0x9
>>> crtc timings: clock=265250, hd=3440 hb=3440-3600 hs=3488-3520 ht=3600,
>>> vd=1440 vb=1440-1474 vs=1443-1453 vt=1474, flags=0x9
>>>
>>> Tested-by: Khaled Almahallawy <khaled.almahallawy@intel.com>
>> Thanks Khaled for the testing.
>>
>> Jani, does the series looks alright to merge?
> Acked-by: Jani Nikula <jani.nikula@intel.com>


Thanks Jani, Suraj and Khaled. This is now pushed to drm-intel-next.

Regards,

Ankit

>
>
>>
>> Regards,
>>
>> Ankit
>>
>>> On Mon, 2025-01-20 at 09:51 +0530, Ankit Nautiyal wrote:
>>>> The HDMI PLL programming involves pre-calculated values for specific
>>>> frequencies and an algorithm to compute values for other frequencies.
>>>> While the algorithm itself wasn't part of the driver, tables were
>>>> added based on it for known modes.
>>>>
>>>> Some HDMI modes were pruned due to lack of support (for example
>>>> issues
>>>> [1],[2], and [3]).
>>>> This series adds the algorithm for computing HDMI PLLs for
>>>> SNPS/C10PHY
>>>> to work with all modes supported by the hardware.
>>>>
>>>> The original algorithm uses floating-point math, which has been
>>>> converted to integers while preserving precision. As a result,
>>>> the values in the existing computable tables are very close but not
>>>> exact. Testing with DG2 and MTL on various panels revealed no issues.
>>>>
>>>> [1] https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9722
>>>> [2] https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10654
>>>> [3] https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10956
>>>>
>>>> Rev2:
>>>> -Change the name of the new file for HDMI PLL algorithm.
>>>> -Fix styling issues and bit refactoring for readbility.
>>>> -Fix issues reported by kernel test bot.
>>>>
>>>> Rev3:
>>>> -Modify the names of helper functions to align with filename.
>>>>
>>>> Rev4:
>>>> -Rebase, added Bspec references, and address review comments.
>>>>
>>>> Ankit Nautiyal (5):
>>>>     drm/i915/display: Add support for SNPS PHY HDMI PLL algorithm for
>>>> DG2
>>>>     drm/i915/snps_phy: Use HDMI PLL algorithm for DG2
>>>>     drm/i915/cx0_phy_regs: Add C10 registers bits
>>>>     drm/i915/intel_snps_hdmi_pll: Compute C10 HDMI PLLs with algorithm
>>>>     drm/i915/cx0_phy: Use HDMI PLL algorithm for C10 PHY
>>>>
>>>>    drivers/gpu/drm/i915/Makefile                 |   1 +
>>>>    drivers/gpu/drm/i915/display/intel_cx0_phy.c  |  49 +--
>>>>    drivers/gpu/drm/i915/display/intel_cx0_phy.h  |   1 -
>>>>    .../gpu/drm/i915/display/intel_cx0_phy_regs.h |  24 ++
>>>>    drivers/gpu/drm/i915/display/intel_hdmi.c     |  12 -
>>>>    .../drm/i915/display/intel_snps_hdmi_pll.c    | 364
>>>> ++++++++++++++++++
>>>>    .../drm/i915/display/intel_snps_hdmi_pll.h    |  17 +
>>>>    drivers/gpu/drm/i915/display/intel_snps_phy.c |  37 +-
>>>>    drivers/gpu/drm/i915/display/intel_snps_phy.h |   1 -
>>>>    drivers/gpu/drm/xe/Makefile                   |   1 +
>>>>    10 files changed, 427 insertions(+), 80 deletions(-)
>>>>    create mode 100644
>>>> drivers/gpu/drm/i915/display/intel_snps_hdmi_pll.c
>>>>    create mode 100644
>>>> drivers/gpu/drm/i915/display/intel_snps_hdmi_pll.h
>>>>