On 2/10/26 00:04, Hamza Mahfooz wrote:
> On Mon, Feb 09, 2026 at 10:35:05AM +0100, Christian König wrote:
>>> +   /**
>>> +    * @page_flip_timeout:
>>> +    *
>>> +    * This optional hook is called if &drm_crtc_commit.flip_done times out,
>>> +    * and can be used by drivers to attempt to recover from a page flip
>>> +    * timeout.
>>> +    */
>>> +   void (*page_flip_timeout)(struct drm_crtc *crtc);
>>
>> As far as I can see a callback is clearly not the right approach.
>>
>> The drm_atomic_helper_wait_for_flip_done() helper is called by the driver, 
>> isn't it?
>>
>> So what we need is just to give an error code back to the driver.
>>
> 
> I guess we could just have the function return -ETIMEOUT, but then
> drivers wouldn't know which crtc is timing out and AFAIK drivers aren't
> supposed to touch `drm_crtc_commit`s so they don't really have a
> sanctioned means to figure that out on their own.

Well we can add a helper to allow the driver to query each crtc for pending 
flips.

What you do here is usually called mid-layering (e.g. driver calls function, 
function calls back into driver) and is a clear no-go for acceptable upstream 
code.

Regards,
Christian.

Reply via email to