User:Rellla

= Hardware =

A10

 * Cubieboard
 * Mele A100
 * Mele A2000

A20

 * Cubietech Cubieboard2
 * Cubietech Cubietruck
 * LeMaker Banana Pi

H3

 * Xunlong Orange Pi Plus

H5

 * Xunlong Orange Pi PC 2

= Software = The software i'm currently dealing with:
 * Kernel: stage/sunxi-3.4
 * Filesystem/ Distribution: Debian Jessie  from scratch (User:Rellla/Debian as my own helpful installation record)
 * Armbian
 * VDPAU for sunxi
 * VDR: VDR for Sunxi Devices
 * XBMC: XBMCA10
 * Logitech Media Server for armhf
 * ... to complete

= Projects = Server usage: Possible server scenarios:
 * MiniDLNA Server (Cubietruck)
 * Logitech Media Server (Cubietruck)
 * VDR Server (Cubietruck)
 * Git Server (Cubietruck)
 * Apache, PHP, MySQL, Samba (Cubietruck)
 * controlling a 5x relay board for multiroom audio via android clients
 * In-/ outside-temperature and humidity logger

Client usage (testing with Cubieboard2 and legacy kernel):
 * MPD
 * squeezelite
 * (WIP) VDR client (Cedrus/libvdpau_integration_matrix)
 * (WIP) XBMC client

= Todos =
 * refactor libvdpau-sunxi fork for upstream branch
 * Add 'real' queue - done
 * Add deinterlacer - done
 * Fix CSC handling - done
 * Add NV OpenGL/ES interop feature - preliminary work done
 * Improve performance of OSD handling
 * Improve logging, introduce loglevels
 * Add XEvent handling
 * OpenGL/ES Vdpau interop integration in libvdpau-sunxi
 * OpenGL/ES accelerated softhddevice - preliminary work done

= Notices = Sunxi display driver bugs collection:
 * https://github.com/linux-sunxi/linux-sunxi/blob/sunxi-3.4/drivers/video/sunxi/disp/disp_layer.c#L566
 * https://github.com/linux-sunxi/linux-sunxi/blob/sunxi-3.4/drivers/video/sunxi/disp/disp_video.c#L77
 * https://github.com/linux-sunxi/linux-sunxi/blob/sunxi-3.4/drivers/video/sunxi/disp/de_fe.c#L1385
 * Ve_tile_format_v1.pdf
 * Tile format conversion code

Useful links

 * https://github.com/dvdhrm/docs/tree/master/drm-howto
 * http://events.linuxfoundation.org/sites/events/files/slides/brezillon-drm-kms.pdf

[DISP] not supported image0 pixel sequence
Sometimes we have some issues with the 3.4 display driver. dmesg is flooded with messages like: [DISP] not supported image0 pixel sequence:208 in img_sw_para_to_reg or [DISP] not supported yuv channel pixel sequence:0 in img_sw_para_to_reg I think, this can be tracked down to https://github.com/linux-sunxi/linux-sunxi/blob/sunxi-3.4/drivers/video/sunxi/disp/disp_video.c#L388 Hal_Set_Frame executes https://github.com/linux-sunxi/linux-sunxi/blob/sunxi-3.4/drivers/video/sunxi/disp/disp_video.c#L357 and https://github.com/linux-sunxi/linux-sunxi/blob/sunxi-3.4/drivers/video/sunxi/disp/disp_video.c#L362 which could be both responsible for the dmesg output in case the parameters don't exist anymore in memory. This would explain the different and not-reasonable values. Hal_Set_Frame is executed during VBlanking, which would explain the massive flooding. This all can happen when ((g_video[sel][id].enable == TRUE) && (g_video[sel][id].have_got_frame == TRUE)), which is triggered by the DISP_CMD_VIDEO_START and DISP_CMD_VIDEO_SET_FB ioctl. Both are set false with DISP_CMD_VIDEO_STOP again.

So, in case we forget the DISP_CMD_VIDEO_STOP ioctl, we may run into some issues with faulty parameters in Hal_Set_Frame itself. To debug that kernel bug, we could set some logs into Hal_Set_Frame, to see what happens. Or simply try to consequently use DISP_CMD_VIDEO_STOP. I could see this issue sometimes, if i CTRL-C a running program (e.g. sth. with libvdpau-sunxi) and then do another CTRL-C. Maybe everything is killed but g_video[sel][id].enable isn't set to FALSE again, which keeps Hal_Set_Frame executed every VBlank.

I think it has nothing to do with the other ioctls which trigger the img_sw_para_to_reg function in the end because of the massive (most likely 50Hz) flood of dmesg. With this background, one maybe can reproduce the issue.