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));