mbox series

[00/19] Ultrajoiner basic functionality series

Message ID 20240911131349.933814-1-ankit.k.nautiyal@intel.com (mailing list archive)
Headers show
Series Ultrajoiner basic functionality series | expand

Message

Ankit Nautiyal Sept. 11, 2024, 1:13 p.m. UTC
This patch series attempts to implement basic support
for Ultrajoiner functionality.

Rev6:
-Upgrade the debugfs functionality to enable the joining of a
specified number of pipes.
-Modify the display helpers reliant on the pipe joiner mechanism
to use number of pipes joined, instead of joiner flag.
-Checkpatch fixes.

Rev7:
-Use struct intel_display, minor refactoring, and rebase.

Rev8:
-Address comments from Ville.
-Simplified debugfs for forcing joiner, and added option to disable
joiner.
-Modified the ultra/bigjoiner helpers as suggested by Ville. 
-Split few of the bigger patches as suggested.

Test-with: 20240911072204.22825-1-karthik.b.s@intel.com

Ankit Nautiyal (11):
  drm/i915/display: Check whether platform supports joiner
  drm/i915/display: Modify debugfs for joiner to force n pipes
  drm/i915/display_debugfs: Allow force joiner only if supported
  drm/i915/dp: Add helper to compute num pipes joined
  drm/i915/display: Add debugfs support to avoid joiner
  drm/i915/display: Simplify intel_joiner_num_pipes and its usage
  drm/i915/display: Use joined pipes in intel_dp_joiner_needs_dsc
  drm/i915/display: Use joined pipes in intel_mode_valid_max_plane_size
  drm/i915/display: Use joined pipes in dsc helpers for slices, bpp
  drm/i915/display: Consider ultrajoiner for computing maxdotclock
  drm/i915/intel_dp: Add support for forcing ultrajoiner

Stanislav Lisovskiy (8):
  drm/i915: Add some essential functionality for joiners
  drm/i915: Split current joiner hw state readout
  drm/i915: Add bigjoiner and uncompressed joiner hw readout sanity
    checks
  drm/i915: Implement hw state readout and checks for ultrajoiner
  drm/i915/display: Percolate ultrajoiner info to get_joiner_config
  drm/i915/display/vdsc: Add ultrajoiner support with DSC
  drm/i915: Add new abstraction layer to handle pipe order for different
    joiners
  drm/i915: Compute config and mode valid changes for ultrajoiner

 drivers/gpu/drm/i915/display/intel_ddi.c      |  19 +-
 drivers/gpu/drm/i915/display/intel_display.c  | 423 +++++++++++++++---
 drivers/gpu/drm/i915/display/intel_display.h  |  17 +-
 .../drm/i915/display/intel_display_debugfs.c  |  84 +++-
 .../drm/i915/display/intel_display_types.h    |   2 +-
 drivers/gpu/drm/i915/display/intel_dp.c       | 138 ++++--
 drivers/gpu/drm/i915/display/intel_dp.h       |  14 +-
 drivers/gpu/drm/i915/display/intel_dp_mst.c   |  54 ++-
 drivers/gpu/drm/i915/display/intel_dsi.c      |   2 +-
 drivers/gpu/drm/i915/display/intel_hdmi.c     |   2 +-
 drivers/gpu/drm/i915/display/intel_vdsc.c     |  30 +-
 .../gpu/drm/i915/display/intel_vdsc_regs.h    |   3 +
 12 files changed, 646 insertions(+), 142 deletions(-)

Comments

Ville Syrjala Sept. 11, 2024, 11:05 p.m. UTC | #1
On Wed, Sep 11, 2024 at 06:43:30PM +0530, Ankit Nautiyal wrote:
> This patch series attempts to implement basic support
> for Ultrajoiner functionality.
> 
> Rev6:
> -Upgrade the debugfs functionality to enable the joining of a
> specified number of pipes.
> -Modify the display helpers reliant on the pipe joiner mechanism
> to use number of pipes joined, instead of joiner flag.
> -Checkpatch fixes.
> 
> Rev7:
> -Use struct intel_display, minor refactoring, and rebase.
> 
> Rev8:
> -Address comments from Ville.
> -Simplified debugfs for forcing joiner, and added option to disable
> joiner.
> -Modified the ultra/bigjoiner helpers as suggested by Ville. 
> -Split few of the bigger patches as suggested.
> 
> Test-with: 20240911072204.22825-1-karthik.b.s@intel.com
> 
> Ankit Nautiyal (11):
>   drm/i915/display: Simplify intel_joiner_num_pipes and its usage
>   drm/i915/display: Use joined pipes in intel_dp_joiner_needs_dsc
>   drm/i915/display: Use joined pipes in intel_mode_valid_max_plane_size
>   drm/i915/display: Use joined pipes in dsc helpers for slices, bpp

I have a feeling those four at least could be merged ahead of
time, and thus shrink what's left quite decently already.
Granted, you probably won't have the num_pipes value passed
in all the way from the top yet, so might have to do some
'joiner ? 2 : 1' here and there as a temporary measure.

I think getting this stuff out of the way would help
avoid confusion with the debugfs/compute_config changes
to some degree at least, and might help with bisectability,
Presumably it builds, but I'm not really convinced all the
intermediate steps would actually work 100% correctly.

>   drm/i915/display: Check whether platform supports joiner

For this stuff I'd like to see a HAS_BIGJOINER() and
HAS_UNCOMPRESSED_JOINER() like we have for most platform
features. This also seems like good material for stuff to
merge on its own, ahead of the rest of the more complicated 
stuff below.

>   drm/i915/display: Modify debugfs for joiner to force n pipes
>   drm/i915/display_debugfs: Allow force joiner only if supported
>   drm/i915/dp: Add helper to compute num pipes joined
>   drm/i915/display: Add debugfs support to avoid joiner
>   drm/i915/display: Consider ultrajoiner for computing maxdotclock
>   drm/i915/intel_dp: Add support for forcing ultrajoiner
> 
> Stanislav Lisovskiy (8):
>   drm/i915: Add some essential functionality for joiners
>   drm/i915: Split current joiner hw state readout
>   drm/i915: Add bigjoiner and uncompressed joiner hw readout sanity
>     checks
>   drm/i915: Implement hw state readout and checks for ultrajoiner
>   drm/i915/display: Percolate ultrajoiner info to get_joiner_config
>   drm/i915/display/vdsc: Add ultrajoiner support with DSC
>   drm/i915: Add new abstraction layer to handle pipe order for different
>     joiners
>   drm/i915: Compute config and mode valid changes for ultrajoiner
> 
>  drivers/gpu/drm/i915/display/intel_ddi.c      |  19 +-
>  drivers/gpu/drm/i915/display/intel_display.c  | 423 +++++++++++++++---
>  drivers/gpu/drm/i915/display/intel_display.h  |  17 +-
>  .../drm/i915/display/intel_display_debugfs.c  |  84 +++-
>  .../drm/i915/display/intel_display_types.h    |   2 +-
>  drivers/gpu/drm/i915/display/intel_dp.c       | 138 ++++--
>  drivers/gpu/drm/i915/display/intel_dp.h       |  14 +-
>  drivers/gpu/drm/i915/display/intel_dp_mst.c   |  54 ++-
>  drivers/gpu/drm/i915/display/intel_dsi.c      |   2 +-
>  drivers/gpu/drm/i915/display/intel_hdmi.c     |   2 +-
>  drivers/gpu/drm/i915/display/intel_vdsc.c     |  30 +-
>  .../gpu/drm/i915/display/intel_vdsc_regs.h    |   3 +
>  12 files changed, 646 insertions(+), 142 deletions(-)
> 
> -- 
> 2.45.2
Ankit Nautiyal Sept. 12, 2024, 11:02 a.m. UTC | #2
On 9/12/2024 4:35 AM, Ville Syrjälä wrote:
> On Wed, Sep 11, 2024 at 06:43:30PM +0530, Ankit Nautiyal wrote:
>> This patch series attempts to implement basic support
>> for Ultrajoiner functionality.
>>
>> Rev6:
>> -Upgrade the debugfs functionality to enable the joining of a
>> specified number of pipes.
>> -Modify the display helpers reliant on the pipe joiner mechanism
>> to use number of pipes joined, instead of joiner flag.
>> -Checkpatch fixes.
>>
>> Rev7:
>> -Use struct intel_display, minor refactoring, and rebase.
>>
>> Rev8:
>> -Address comments from Ville.
>> -Simplified debugfs for forcing joiner, and added option to disable
>> joiner.
>> -Modified the ultra/bigjoiner helpers as suggested by Ville.
>> -Split few of the bigger patches as suggested.
>>
>> Test-with: 20240911072204.22825-1-karthik.b.s@intel.com
>>
>> Ankit Nautiyal (11):
>>    drm/i915/display: Simplify intel_joiner_num_pipes and its usage
>>    drm/i915/display: Use joined pipes in intel_dp_joiner_needs_dsc
>>    drm/i915/display: Use joined pipes in intel_mode_valid_max_plane_size
>>    drm/i915/display: Use joined pipes in dsc helpers for slices, bpp
> I have a feeling those four at least could be merged ahead of
> time, and thus shrink what's left quite decently already.
> Granted, you probably won't have the num_pipes value passed
> in all the way from the top yet, so might have to do some
> 'joiner ? 2 : 1' here and there as a temporary measure.
>
> I think getting this stuff out of the way would help
> avoid confusion with the debugfs/compute_config changes
> to some degree at least, and might help with bisectability,
> Presumably it builds, but I'm not really convinced all the
> intermediate steps would actually work 100% correctly.

Thanks for the comments and suggestions.

Agreed, will send this as a separate patch series shortly.

>
>>    drm/i915/display: Check whether platform supports joiner
> For this stuff I'd like to see a HAS_BIGJOINER() and
> HAS_UNCOMPRESSED_JOINER() like we have for most platform
> features. This also seems like good material for stuff to
> merge on its own, ahead of the rest of the more complicated
> stuff below.

Alright will make the changes accordingly, and send separately.


Thanks & Regards,

Ankit

>
>>    drm/i915/display: Modify debugfs for joiner to force n pipes
>>    drm/i915/display_debugfs: Allow force joiner only if supported
>>    drm/i915/dp: Add helper to compute num pipes joined
>>    drm/i915/display: Add debugfs support to avoid joiner
>>    drm/i915/display: Consider ultrajoiner for computing maxdotclock
>>    drm/i915/intel_dp: Add support for forcing ultrajoiner
>>
>> Stanislav Lisovskiy (8):
>>    drm/i915: Add some essential functionality for joiners
>>    drm/i915: Split current joiner hw state readout
>>    drm/i915: Add bigjoiner and uncompressed joiner hw readout sanity
>>      checks
>>    drm/i915: Implement hw state readout and checks for ultrajoiner
>>    drm/i915/display: Percolate ultrajoiner info to get_joiner_config
>>    drm/i915/display/vdsc: Add ultrajoiner support with DSC
>>    drm/i915: Add new abstraction layer to handle pipe order for different
>>      joiners
>>    drm/i915: Compute config and mode valid changes for ultrajoiner
>>
>>   drivers/gpu/drm/i915/display/intel_ddi.c      |  19 +-
>>   drivers/gpu/drm/i915/display/intel_display.c  | 423 +++++++++++++++---
>>   drivers/gpu/drm/i915/display/intel_display.h  |  17 +-
>>   .../drm/i915/display/intel_display_debugfs.c  |  84 +++-
>>   .../drm/i915/display/intel_display_types.h    |   2 +-
>>   drivers/gpu/drm/i915/display/intel_dp.c       | 138 ++++--
>>   drivers/gpu/drm/i915/display/intel_dp.h       |  14 +-
>>   drivers/gpu/drm/i915/display/intel_dp_mst.c   |  54 ++-
>>   drivers/gpu/drm/i915/display/intel_dsi.c      |   2 +-
>>   drivers/gpu/drm/i915/display/intel_hdmi.c     |   2 +-
>>   drivers/gpu/drm/i915/display/intel_vdsc.c     |  30 +-
>>   .../gpu/drm/i915/display/intel_vdsc_regs.h    |   3 +
>>   12 files changed, 646 insertions(+), 142 deletions(-)
>>
>> -- 
>> 2.45.2