[PATCH 5/9] drm/xe/display: Use a single early init call for display

Maarten Lankhorst dev at lankhorst.se
Wed Nov 13 10:30:36 UTC 2024


Hey,

Den 2024-11-12 kl. 19:39, skrev Rodrigo Vivi:
> On Thu, Nov 07, 2024 at 11:01:36AM +0100, Maarten Lankhorst wrote:
>> Instead of 3 different calls, it should be safe to unify to a single
>> call now. This makes the init sequence cleaner, and display less
>> tangled.
>>
>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
>> Link: https://patchwork.freedesktop.org/patch/msgid/20241105121857.17389-5-maarten.lankhorst@linux.intel.com
>> Signed-off-by: Maarten Lankhorst,,, <dev at lankhorst.se>
>> ---
>>   drivers/gpu/drm/xe/display/xe_display.c | 72 +++++++------------------
>>   drivers/gpu/drm/xe/display/xe_display.h |  8 +--
>>   drivers/gpu/drm/xe/xe_device.c          | 10 +---
>>   3 files changed, 23 insertions(+), 67 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
>> index b5502f335f531..a9ce4f561e7aa 100644
>> --- a/drivers/gpu/drm/xe/display/xe_display.c
>> +++ b/drivers/gpu/drm/xe/display/xe_display.c
> 
> we should make every function in this file only a wrap to the i915
> side with the 	if (!xe->info.probe_display) being the only thing
> extra in here... so we consolidate the display side in a way
> that we could later really split the display to a separate driver.
> 
> I have the feeling that this patch takes display to the other direction...
> 
It should not matter much. I believe i915 had more split because of 
display being more connected to hardware. In Xe the display is from the 
start a separate driver or module on the chip , so we can do the 
different init calls in one go, as there are no interrupts
calling into the display driver yet.

So in Xe we can do a 2-stage init of display, xe_display_init_early 
which initialises everything required before enabling interrupts, 
completed with the takeover of the initial FB, and xe_display_init() for 
the normal init sequence that has to run afterwards.

Because of memirq's performing allocations by design, we really have to 
run the FB handover code without interrupts anyway.

I believe the same thing could be done on i915 on BDW+, but might be 
harder on legacy platforms.

Cheers,
~Maarten


More information about the Intel-gfx mailing list