On 2018-04-10 08:02 PM, Leo Li wrote: > On 2018-04-09 11:03 AM, Michel Dänzer wrote: >> On 2018-03-26 10:00 PM, sunpeng.li at amd.com wrote: >>> From: "Leo (Sunpeng) Li" <sunpeng.li at amd.com> >>> >>> The functions insert into the output resource creation, and property >>> change functions. CRTC destroy is also hooked-up for proper cleanup of >>> the CRTC property list. >>> >>> Signed-off-by: Leo (Sunpeng) Li <sunpeng.li at amd.com> >> >> [...] >> >>> @@ -1933,6 +1933,9 @@ static void >>> drmmode_output_create_resources(xf86OutputPtr output) >>>              } >>>          } >>>      } >>> + >>> +   if (output->crtc) >>> +       drmmode_crtc_create_resources(output->crtc, output); >> >> output->crtc is only non-NULL here for outputs which are enabled at Xorg >> startup; other outputs won't have the new properties. > > Is it necessary to have the CRTC properties on a output if the CRTC is > disabled for that output? The set of properties exposed by an output should be constant throughout its lifetime. > I've tested hot-plugging with this, and the properties do initialize on > hot-plug. I suspect you were testing something like DP MST, where the output is created dynamically on hot-plug. For "static" outputs such as DVI/HDMI/VGA/LVDS (and "normal" (e)DP), drmmode_output_create_resources is only called once during Xorg initialization, and output->crtc is NULL at that point unless the output is enabled from the beginning (which is only the case if either the output is connected at that point, or is explicitly configured in xorg.conf to be on). -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Mesa and X developer