On Mon, Sep 28, 2026 at 04:56:10PM +1000, Jonathan Gray wrote:
> On Mon, Sep 28, 2026 at 08:09:34AM +0200, [email protected] wrote:
> > hi
> > 
> > upgraded my work t470s this morning to latest snap (previously running a
> > snap from the 6), first noticed that wsconsctl during boot was stuck on
> > ww_mutex_lock (^T showed it making no progress) and the laptop lid was
> > 'flashing' every ~10s or so.
> > 
> > moved my wsconsctl.conf away, X wouldnt start anyway (Xorg.0.log
> > attached)
> > 
> > bisected previous kernels from the archive:
> > #56: Fri Sep 25 11:32:45 MDT 2026 is bad
> > #55: Wed Sep 23 14:37:23 MDT 2026 is good (eg screen wont flash during
> > boot msgs and X starts)
> 
> Likely the sleep changes.  Does this diff to revert them help?

alternatively, avoid sleep when cold

Index: sys/dev/pci/drm/include/linux/delay.h
===================================================================
RCS file: /cvs/src/sys/dev/pci/drm/include/linux/delay.h,v
diff -u -p -r1.9 delay.h
--- sys/dev/pci/drm/include/linux/delay.h       25 Sep 2026 12:12:53 -0000      
1.9
+++ sys/dev/pci/drm/include/linux/delay.h       28 Sep 2026 07:05:35 -0000
@@ -21,7 +21,10 @@ ndelay(unsigned long nsecs)
 static inline void
 usleep_range(unsigned long min, unsigned long max)
 {
-       tsleep_nsec(&nowake, PWAIT, "usleep", USEC_TO_NSEC(min));
+       if (cold)
+               DELAY(min);
+       else
+               tsleep_nsec(&nowake, PWAIT, "usleep", USEC_TO_NSEC(min));
 }
 
 /* XXX assumes state is TASK_UNINTERRUPTIBLE */
@@ -42,13 +45,16 @@ mdelay(unsigned long msecs)
 static inline void
 drm_msleep(unsigned int msecs)
 {
-       tsleep_nsec(&nowake, PWAIT, "drmmsleep", MSEC_TO_NSEC(msecs));
+       if (cold)
+               mdelay(msecs);
+       else
+               tsleep_nsec(&nowake, PWAIT, "drmmsleep", MSEC_TO_NSEC(msecs));
 }
 
 static inline void
 fsleep(unsigned long usecs)
 {
-       if (usecs <= 10)
+       if (usecs <= 10 || cold)
                DELAY(usecs);
        else
                tsleep_nsec(&nowake, PWAIT, "fsleep", USEC_TO_NSEC(usecs));

Reply via email to