No output on display with Weston using fbdev backend

nsolanki at codeaurora.org nsolanki at codeaurora.org
Thu Mar 22 08:52:58 UTC 2018


On 2018-03-21 20:24, Pekka Paalanen wrote:
> On Wed, 21 Mar 2018 19:45:36 +0530
> nsolanki at codeaurora.org wrote:
> 
>> On 2018-03-21 19:42, nsolanki at codeaurora.org wrote:
>> > On 2018-03-21 14:52, Pekka Paalanen wrote:
>> >> On Wed, 21 Mar 2018 14:40:13 +0530
>> >> nsolanki at codeaurora.org wrote:
>> >>
>> >>> Hi Wayland Team,
>> >>>
>> >>>
>> >>> I am using weston 1.9.0-r0 version and compiled weston for fbdev
>> >>> backend.
>> >>>
>> >>> But I do not see any output on display. Basically I do not see call
>> >>> reaching to "ioctl(fd, FBIOPUT_VSCREENINFO, &varinfo)" in function
>> >>> fbdev_set_screen_info().
>> >>>
>> >>>
>> >>> So, if I add a call "ioctl(fd,  FBIOPUT_VSCREENINFO, &varinfo)" in
>> >>> function fbdev_output_repaint_pixman(), I can see output on display.
>> >>>
>> >>> Should I add FBIOPUT_VSCREENINFO ioctl in function
>> >>> fbdev_output_repaint_pixman() ?
>> >>> Can you please help me regarding this?
>> >>
>> >> Hi,
>> >>
>> >> it is unlikely to find help with such an old Weston, even more so with
>> >> the fbdev backend which at least I would like to just delete already.
>> >>
>> >> But the fbdev backend is still in Weston, so I'd recommend trying a
>> >> more recent version. You can also check git to see if there are code
>> >> changes in the fbdev-backend.
>> >>
>> >> I don't think FBIOPUT_VSCREENINFO at every repaint is good in any
>> >> case.
>> >>
>> >> You might be interested in reviewing this patch or the whole series:
>> >> https://patchwork.freedesktop.org/patch/200333/
>> >>
>> >> What I've occasionally tested the fbdev-backend, I've never needed a
>> >> call to FBIOPUT_VSCREENINFO, so your use case must be somehow
>> >> different. Explaining exactly how and in what kind of a system and
>> >> environment you are running Weston could help. E.g. is it a secondary
>> >> fbdev device, or using UDL driver.
>> >>
>> >>
>> >> Thanks,
>> >> pq
>> >
>> > Hi,
>> >
>> > In our FB driver FBIOPUT_VSCREENINFO internally calls a commit() call,
>> > which actually displays content on panel.
>> > So, it is needed it seems. I am not sure how drawing in mmap() ed
>> > memory by opening /dev/fb0 can display content on panel without a
>> > commit() call as weston is currently doing.
> 
> Hi,
> 
> it works because the mmapped memory is already continuously and
> repeatedly being scanned out. There is no per-frame "commit" in fbdev
> ABI. The ABI implies that any change to the mmapped memory will be
> immediately visible on screen, if you write to the on-screen memory
> area. This is just how fbdev works.
> 
> There are some cases where the ioctl is needed to wake up the fbdev
> device, but it is not needed on every frame.
> 
> If your fbdev driver needs an ioctl each frame, then your fbdev driver
> is broken. I would recommend to *not* fix your fbdev driver, but write
> a DRM driver instead. Then you can use Weston's DRM-backend which is
> actually developed and maintained.
> 
>> One more query is when (on what events) function 
>> fbdev_output_reenable()
>> should be called?
>> I am not seeing session_notify() fnction call .
> 
> There is a
> 	->session_listener.notify = session_notify;
> assignment, which will get that function called on VT switch.
> 
> Mind, fbdev-backend's VT switching is probably broken - it was some
> years ago when I last tried it.
> 
> 
> Thanks,
> pq


Thank you for your help.

--Namit


More information about the wayland-devel mailing list