All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alistair Francis <alistair23@gmail.com>
To: Sam Ravnborg <sam@ravnborg.org>
Cc: Marek Vasut <marex@denx.de>, Fabio Estevam <festevam@gmail.com>,
	Shawn Guo <shawnguo@kernel.org>,
	Sascha Hauer <kernel@pengutronix.de>,
	dl-linux-imx <linux-imx@nxp.com>,
	b.zolnierkie@samsung.com,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Alistair Francis <alistair@alistair23.me>
Subject: Re: Revert "video: fbdev: mxsfb: Remove driver"
Date: Thu, 14 Oct 2021 19:56:00 +1000	[thread overview]
Message-ID: <CAKmqyKP0cxOpD6HnuS5mwKbpoP8npQiMvqZNx91e+UmKUv2gRQ@mail.gmail.com> (raw)
In-Reply-To: <CAKmqyKOYk=O4ewBcL7hOz+8=gTsNzFb07m_qrNhKq9Bk2ByYrQ@mail.gmail.com>

On Fri, Aug 20, 2021 at 8:36 AM Alistair Francis <alistair23@gmail.com> wrote:
>
> On Fri, Aug 20, 2021 at 1:43 AM Sam Ravnborg <sam@ravnborg.org> wrote:
> >
> > Hi Alistair,
> >
> > On Thu, Aug 19, 2021 at 07:10:00PM +1000, Alistair Francis wrote:
> > > On Thu, Aug 19, 2021 at 4:38 AM Sam Ravnborg <sam@ravnborg.org> wrote:
> > > >
> > > > Hi Alistair,
> > > >
> > > > >
> > > > > These are the EINVAL strace tells me in the not working case:
> > > > >
> > > > > prctl(PR_CAPBSET_READ, 0x30 /* CAP_??? */) = -1 EINVAL (Invalid argument)
> > > > > prctl(PR_CAPBSET_READ, 0x2c /* CAP_??? */) = -1 EINVAL (Invalid argument)
> > > > > prctl(PR_CAPBSET_READ, 0x2a /* CAP_??? */) = -1 EINVAL (Invalid argument)
> > > > > prctl(PR_CAPBSET_READ, 0x29 /* CAP_??? */) = -1 EINVAL (Invalid argument)
> > > > > ioctl(5, FBIOPUT_VSCREENINFO, 0x4ce8e0) = -1 EINVAL (Invalid argument)
> > > > >
> > > > > I'm guessing it's related to FBIOPUT_VSCREENINFO then, is that
> > > > > something that could be added to the DRM emulation?
> > > >
> > > > If it turns out FBIOPUT_VSCREENINFO is the culprint it would also be
> > > > good to know why we see EINVAL.
> > > > One way is to sprinkle a number of printk's in fb_set_var(),
> > > > then you can see how far you get before it fails.
> > >
> > > Thanks for the help.
> > >
> > > I see this line:
> > >
> > > ret = info->fbops->fb_check_var(var, info);
> > >
> > > in fb_set_var()
> > >
> > > returning early.
> >
> > Super, then next step is to annotate drm_fb_helper_check_var()
> > to see where it fails.
> > Try this and let us know the result.
>
> Thanks!
>
> After adding some prints, I realised there are already some in there
> that are disabled by default. After enabling them I see this:
>
> "fbdev emulation doesn't support changing the pixel clock, value of
> pixclock is ignored"
>
> and
>
> "fb requested width/height/bpp can't fit in current fb request
> 260x1408-32 (virtual 260x23936) > 334x1405-32"
>
> which returns EINVAL.
>
> This is where I'm confused though. The values 334 and 1405 are taken
> from the vendor and in the working fbdev driver they are using the
> same values.
>
> I tried to add a similar print to mxsfb_check_var() for the working
> version, to check what the values are, but there doesn't seem to be
> any equivalent of fb->width and friends.

I dug into this some more.

In the working mxsfb and non-working fbdev emulation the userspace
software sets:

xres: 260
yres: 1408
xres_virtual: 260
yres_virtual: 23936

That passes the old mxsfb_check_var() and works.

While that fails the new fbdev emulation check. Even increasing the
width and height from 334x14085 to 260x23936 doesn't help as I get a
range of other errors and no display. Just removing the check also
doesn't work and results in kernel panics.

It seems there is some difference in handling the resolutions between
the mxsfb driver and the fbdev emulation on the new DRM driver. I'm
just not sure what the difference is.

Alistair

  reply	other threads:[~2021-10-14  9:57 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-15 12:16 Revert "video: fbdev: mxsfb: Remove driver" Alistair Francis
2021-08-15 12:31 ` Marek Vasut
2021-08-16  7:34   ` Alistair Francis
2021-08-16  7:55     ` Marek Vasut
2021-08-17  9:08       ` Alistair Francis
2021-08-17 10:03         ` Marek Vasut
2021-08-17 12:16           ` Alistair Francis
     [not found]             ` <YR1R7/nIUIN3LA7t@ravnborg.org>
2021-08-19  8:16               ` Alistair Francis
     [not found]             ` <YR1Th65KKRS4D/6+@ravnborg.org>
2021-08-19  9:10               ` Alistair Francis
     [not found]                 ` <YR58MvAYYEjBQ7l5@ravnborg.org>
2021-08-19 22:36                   ` Alistair Francis
2021-10-14  9:56                     ` Alistair Francis [this message]
2021-10-21 10:42                       ` Alistair Francis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAKmqyKP0cxOpD6HnuS5mwKbpoP8npQiMvqZNx91e+UmKUv2gRQ@mail.gmail.com \
    --to=alistair23@gmail.com \
    --cc=alistair@alistair23.me \
    --cc=b.zolnierkie@samsung.com \
    --cc=festevam@gmail.com \
    --cc=kernel@pengutronix.de \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marex@denx.de \
    --cc=sam@ravnborg.org \
    --cc=shawnguo@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.