On Fri, May 24, 2024 at 11:17:32AM +0300, Jani Nikula wrote: > On Thu, 23 May 2024, Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> wrote: > > On Wed, May 22, 2024 at 08:33:42PM +0300, Jani Nikula wrote: > >> We'll need to start identifying the platforms independently in display > >> code in order to break free from the i915 and xe IS_<PLATFORM>() > >> macros. This is fairly straightforward, as we already identify most > >> platforms by PCI ID in display probe anyway. > >> > >> As the first step, add platform descriptors with pointers to display > >> info. We'll have more platforms than display info, so minimize > >> duplication: > >> > >> - Add separate skl/kbl/cfl/cml descriptors while they share the display > >> info. > >> > >> - Add separate jsl/ehl descriptors while they share the display info. > >> > >> Identify ADL-P (and derivatives) and DG2 descriptors by their names even > >> though their display info is Xe LPD or HPD. > >> > >> Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> > >> --- > >> .../drm/i915/display/intel_display_device.c | 558 ++++++++++-------- > >> 1 file changed, 326 insertions(+), 232 deletions(-) > >> > >> diff --git a/drivers/gpu/drm/i915/display/intel_display_device.c b/drivers/gpu/drm/i915/display/intel_display_device.c > >> index 56b27546d1b3..d1e03437abb3 100644 > >> --- a/drivers/gpu/drm/i915/display/intel_display_device.c > >> +++ b/drivers/gpu/drm/i915/display/intel_display_device.c > >> @@ -20,6 +20,10 @@ > >> __diag_push(); > >> __diag_ignore_all("-Woverride-init", "Allow field initialization overrides for display info"); > >> > >> +struct platform_desc { > >> + const struct intel_display_device_info *info; > >> +}; > > > > I had to jump to the latest patch to understand why this single item > > in a new struct... later it makes sense... > > Yeah... > > >> -#define GEN3_DISPLAY \ > >> +#define GEN3_DISPLAY \ > > > > I had noticed a trend in all of your recent series, to replace the long tab > > or space before '\' with a single space. But then here you change the single > > space to multiple spaces. Intentional? > > Accidental. > > Emacs wants to indent and align \'s in a specific way, in a nice column > towards the right. Usually I follow that when adding new stuff manually. > > Here, that happened on a line I didn't mean to change. > > In the PCI ID patches I intentionally used a single space because I > scripted the whole thing, and I couldn't be bothered to figure out how > to align the \'s any other way! :) As an emacs user I also tend to do that right alignment hitting the 'tab' key. But I really never care if it is all to the right or all the 1 space. > > >> static const struct { > >> u32 devid; > >> - const struct intel_display_device_info *info; > >> + const struct platform_desc *desc; > >> } intel_display_ids[] = { > >> - INTEL_I830_IDS(INTEL_DISPLAY_DEVICE, &i830_display), > >> - INTEL_I845G_IDS(INTEL_DISPLAY_DEVICE, &i845_display), > >> - INTEL_I85X_IDS(INTEL_DISPLAY_DEVICE, &i85x_display), > >> - INTEL_I865G_IDS(INTEL_DISPLAY_DEVICE, &i865g_display), > >> - INTEL_I915G_IDS(INTEL_DISPLAY_DEVICE, &i915g_display), > >> - INTEL_I915GM_IDS(INTEL_DISPLAY_DEVICE, &i915gm_display), > >> - INTEL_I945G_IDS(INTEL_DISPLAY_DEVICE, &i945g_display), > >> - INTEL_I945GM_IDS(INTEL_DISPLAY_DEVICE, &i945gm_display), > >> - INTEL_I965G_IDS(INTEL_DISPLAY_DEVICE, &i965g_display), > >> - INTEL_G33_IDS(INTEL_DISPLAY_DEVICE, &g33_display), > >> - INTEL_I965GM_IDS(INTEL_DISPLAY_DEVICE, &i965gm_display), > >> - INTEL_GM45_IDS(INTEL_DISPLAY_DEVICE, &gm45_display), > >> - INTEL_G45_IDS(INTEL_DISPLAY_DEVICE, &g45_display), > >> - INTEL_PNV_IDS(INTEL_DISPLAY_DEVICE, &pnv_display), > >> - INTEL_ILK_D_IDS(INTEL_DISPLAY_DEVICE, &ilk_d_display), > >> - INTEL_ILK_M_IDS(INTEL_DISPLAY_DEVICE, &ilk_m_display), > >> - INTEL_SNB_IDS(INTEL_DISPLAY_DEVICE, &snb_display), > >> - INTEL_IVB_IDS(INTEL_DISPLAY_DEVICE, &ivb_display), > >> - INTEL_HSW_IDS(INTEL_DISPLAY_DEVICE, &hsw_display), > >> - INTEL_VLV_IDS(INTEL_DISPLAY_DEVICE, &vlv_display), > >> - INTEL_BDW_IDS(INTEL_DISPLAY_DEVICE, &bdw_display), > >> - INTEL_CHV_IDS(INTEL_DISPLAY_DEVICE, &chv_display), > >> - INTEL_SKL_IDS(INTEL_DISPLAY_DEVICE, &skl_display), > >> - INTEL_BXT_IDS(INTEL_DISPLAY_DEVICE, &bxt_display), > >> - INTEL_GLK_IDS(INTEL_DISPLAY_DEVICE, &glk_display), > >> - INTEL_KBL_IDS(INTEL_DISPLAY_DEVICE, &skl_display), > >> - INTEL_CFL_IDS(INTEL_DISPLAY_DEVICE, &skl_display), > >> - INTEL_WHL_IDS(INTEL_DISPLAY_DEVICE, &skl_display), > >> - INTEL_CML_IDS(INTEL_DISPLAY_DEVICE, &skl_display), > >> - INTEL_ICL_IDS(INTEL_DISPLAY_DEVICE, &icl_display), > >> - INTEL_EHL_IDS(INTEL_DISPLAY_DEVICE, &jsl_ehl_display), > >> - INTEL_JSL_IDS(INTEL_DISPLAY_DEVICE, &jsl_ehl_display), > >> - INTEL_TGL_IDS(INTEL_DISPLAY_DEVICE, &tgl_display), > >> - INTEL_DG1_IDS(INTEL_DISPLAY_DEVICE, &dg1_display), > >> - INTEL_RKL_IDS(INTEL_DISPLAY_DEVICE, &rkl_display), > >> - INTEL_ADLS_IDS(INTEL_DISPLAY_DEVICE, &adl_s_display), > >> - INTEL_RPLS_IDS(INTEL_DISPLAY_DEVICE, &adl_s_display), > >> - INTEL_ADLP_IDS(INTEL_DISPLAY_DEVICE, &xe_lpd_display), > >> - INTEL_ADLN_IDS(INTEL_DISPLAY_DEVICE, &xe_lpd_display), > >> - INTEL_RPLU_IDS(INTEL_DISPLAY_DEVICE, &xe_lpd_display), > >> - INTEL_RPLP_IDS(INTEL_DISPLAY_DEVICE, &xe_lpd_display), > >> - INTEL_DG2_IDS(INTEL_DISPLAY_DEVICE, &xe_hpd_display), > >> + INTEL_I830_IDS(INTEL_DISPLAY_DEVICE, &i830_desc), > > > > But here is what I'm not sure if I completely understand/agree... > > before this patch is a display device with a display struct > > but then it becomes a display device with a platform description > > but a platform that is not used by the driver... > > > > I'm probably missing some later jump there. > > Yeah, I did not want to put too much stuff in the same patch. I think > easier to review this way, though I guess I should've made my intentions > more clear in the commit message! Also, easy to squash if so desired. > > So this one adds the platform descs with just the display struct, and > later patches add more content in the descs. yeap, indeed... let's go with this then. Reviewed-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> > > > BR, > Jani. > > > -- > Jani Nikula, Intel