Posts by jahutchi

    I gave this a go on my Arch linux NUC 8i3BEH using the build kindly supplied by chcore.


    Played some 4k HDR content with DRM Prime & HDR enabled in kodi settings.

    Seemed to work nicely and the content was correctly recognised by my TV as HDR.


    However, whenever I play such files I find the following dump in my kernel log:



    This doesn't seem to effect playback as far as I can tell.


    This was on the latest stable kernel v5.19.9 with all arch linux packages upto date, and libva-intel-driver installed for VAAPI.

    Did some testing, and it seems to work pretty well (thanks again smp). Did notice a couple of issues though:


    1. Deinterlacing does not work/cannot be enabled when DRM PRIME is enabled. This means I will need to manually turn on DRM PRIME whenever I intend to watch HDR content, then turn it back off. Not ideal, how far off is deinterlacing support? Maybe a good idea to have an option or advancedsetting that uses DRM PRIME only for HDR content until it is implemented.


    2. Is it just me, or is text noticeably more aliased when HDR is active? Both subtitles and OSD are affected

    chcore I also run archlinux on my intel nuc 8i3beh and was about to try compiling a hdr nexus build like you did. Before I go to all that bother, would you consider posting your pre-compiled binaries (zst files) somewhere?

    What do I have to do to apply it to my RPI myself?

    A few choices:


    1) Compile & install your own kernel from the raspbian sources, with my patch applied: Kernel building - Raspberry Pi Documentation


    2) My patch found it's way into media_tree just a couple of days ago: media_tree.git - Upstream media tree for Remote Controllers, V4L and DVB so you could to build and install the drivers yourself from media_tree to run within your existing kernel: https://www.linuxtv.org/wiki/index.php/how_to_obtain,_build_and_install_v4l-dvb_device_drivers


    3) (If both above options are too scary), then wait until the patch filters it's way down to mainstream raspbian kernel.

    smp In light of the kernel mutex handoff changes I do wonder whether it'd be wise to adjust the i2c mutex lock in dvbsky.c to be non-interruptible. I can see this is the way it's done in several other of the dvb-usb-v2 drivers (though not all)


    I have no idea whether this will make things better or worse, but just thought it may be worth a shot if you have time to test it (find attached).


    This builds on my previous patch to use a single mutex for all r/w ops, but also adjusts the i2c mutex lock to be non-interruptible.


    Note: I had to give the attachment a .txt extension in order for it to upload.


    Other than this I'm all out of ideas.

    I didn't check dmesg. It failed like it always did with newer kernels - it works for a while but a brief signal disruption randomly triggers the failure. I'm now back to kernel 4.8.16 for everyday use.

    Fair enough - I suspect we would have seen a bunch of timeout (-110) errors as previously, but without much indication of exactly why the device has started to timeout.


    Just spent a fair amount of time ploughing through the debug traces on bugzilla, and cross-checking some commits that happened during the 4.10 kernel developments.


    This one looks suspect since the attach logic in dvbsky.c appears to attempt to modify fe->ops


    Does the attached patch to revert this change for the m88ds3103 driver have any effect ?

    Unfortunately, I do not currently have an environment upon which to beta test this myself.

    Sadly, that patch didn't fix the issue. I was able to quickly reproduce it by disconnecting the antenna cable for 10 minutes and trying to tune to a bunch of transponders (when the cable was disconnected). When I reconnected the cable the device was unable to lock the transponders anymore until a reboot.

    Do you get any errors in dmesg under these circumstances? Such as the -110 timeout errors seen by others.

    I recently tried upgrading to a later 4.9.x kernel (4.9.111), as I'd noticed this fix which seemed related:

    kernel/git/stable/linux.git - Linux kernel stable tree


    However, I've just hit the problem again (admittedly, it took a couple of weeks to surface)...


    I have the following errors in my tvheadend logfile:

    Code
    2018-07-26 10:45:48.356 [   INFO] mpegts: 11778V in Freesat - tuning on Montage Technology M88DS3103 #0 : DVB-S #0
    2018-07-26 10:45:50.462 [  ERROR] diseqc: failed to set voltage (e=Resource temporarily unavailable)


    And the following messages repeating in dmesg:

    Code
    [934966.146448] m88ds3103 1-0068: i2c wr failed=-110
    [934968.283100] usb 1-1: dvb_usb_v2: usb_bulk_msg() failed=-110
    [934968.283107] usb 1-1: failed=-110


    Only thing I can do to get the darn thing working again is power cycle.


    I am therefore reverting back to kernel 4.9.88.


    Since my previous post, it's also worth noting that I've hit the problem (just once) on kernel v4.9.88. This was at a time when my machine was extremely sluggish because a process (tvheadend) ran out of control and chewed all my memory, causing excessive swapping.


    I downgraded tvheadend from 4.2.6 -> 4.2.5 where I don't see the memory leakage (reported here: timeshift buffer size problems - Tvheadend). So this could also be related to how busy the machine is at the point you perform the channel switch.