On Wed, Apr 05, 2023 at 12:00:23AM +0300, Ville Syrjälä wrote: > On Tue, Apr 04, 2023 at 10:46:00PM +0200, Daniel Vetter wrote: > > On Mon, Apr 03, 2023 at 09:07:35AM -0700, Rob Clark wrote: > > > From: Rob Clark <robdclark@xxxxxxxxxxxx> > > > > > > What does vblank have to do with num_crtcs? Well, this was technically > > > correct, but you'd have to go look at where num_crtcs is initialized to > > > understand why. Lets just replace it with the simpler and more obvious > > > check. > > > > If you want to fix this, then I think the right fix is to rename num_crtcs > > to be something like num_vblank_crtcs. It's a historical accident back > > when vblanks without kms was a thing. > > > > Plan B is someone gets really busy and fixes up the entire vblank mess and > > moves it into drm_crtc struct. Now that the dri1 drivers are gone we could > > indeed do that. > > And easy first step could to simply wrap all the naked > &dev->vblank[drm_crtc_index()] things into a function > call with some cocci/etc. That way most of the vblank > code doesn't need to care where that thing actually lives. Yeah I think that might work out. Roughly: - Wrap all the drm_vblank_crtc lookups - Emebed it into drm_crtc, delete the drm_device->vblank array - rename drm_device->num_crtc to something more meaningful maybe and move into drm_modeset_config The big holdup always was step 2 because we still had to care about legacy drivers without drm_crtc, which meant you'd have to have two paths, which was kinda really annoying. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch