Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[LE12] Allwiner: Implement 10-bit decoding & displaying and some fixes #8200

Merged
merged 7 commits into from
Oct 9, 2023

Conversation

jernejsk
Copy link
Member

@jernejsk jernejsk commented Oct 9, 2023

Mostly H6 related fixes and improvements. This finally brings H6 on par with some RK SoCs and possibly RPi4 too.

Note that HEVC 4k@60 10-bit decoding may not be smooth in all cases. Manual claims Level 5.1 support and some videos with aforementioned properties may be Level 5.2. These can be a bit jerky at times during playback. 30 fps are always smooth, though.

Fixes:

  • Add back ATF hack for regulators, since new approach broke ethernet on OrangePi 3 LTS.
  • Replace patch for H6 DRAM initialization which supposedly solves all cases
  • Fix potential issues with HEVC decoding
  • Fix some issues in DRM driver

Improvements:

  • Cedrus implements AFBC buffer compression (H6)
  • Implement true 10-bit display pipeline in monitor/TV native format (video is shown as-is, without processing) (H6)
  • Add GPU OPP table to all H6 boards for frequency scaling
  • Increase Cedrus frequency a bit

@HiassofT HiassofT merged commit 4de8d2e into LibreELEC:master Oct 9, 2023
@jernejsk jernejsk deleted the aw-10-bit branch October 10, 2023 04:01
@dhewg
Copy link
Contributor

dhewg commented Oct 16, 2023

Thanks, this fixes ethernet upon cold booting my non-LTS opi3!

But something still isn't right (tested with #8205 included too):
Upon suspend, ethernet isn't always properly disabled and/or powered down. The connected router then doesn't get the "interface is down" event (which worked with a build from a few months ago). Only upon waking up the device, the router first gets a down followed by an up event, but then ethernet still doesn't work, somewhat as before this PR.

Any idea?

@jernejsk
Copy link
Member Author

Probably revert of f8e03ea will help. New approach, targeted to be mainlined, seems to have some corner cases which are not covered yet. Please report if revert works. While I won't accept it as solution, I'll at least have better understanding.

@dhewg
Copy link
Contributor

dhewg commented Oct 16, 2023 via email

@jernejsk
Copy link
Member Author

No. Just reinstate deleted patches, remove added ones and most annoyingly, you need old DT patch, not new. I guess you'll need to do by hand...

@dhewg
Copy link
Contributor

dhewg commented Oct 21, 2023

With this patch, which also describes how I created it, it works again:
0001-revert-f8e03eae5f50e48f1d883fe268d2f45f56c74633-by-h.patch.txt

I could manually suspend and resume 3 times, and kodi is able to idle suspend too, followed by a crust IR wakeup. Each time the router got the proper "link is down" event.

Let me know if I messed something up or if I should add/remove some hunks

@jernejsk
Copy link
Member Author

as I said, this restores old state, but idea is to make new approach behave properly, since is the way to go for upstream. If you have some time, please try to fix new patch.

@dhewg
Copy link
Contributor

dhewg commented Oct 31, 2023

Time is sparse, and I would kinda poke in the dark. So if you have any ideas I'd prefer a patch to test drive.

Maybe it's just a missing delay?
Is it maybe the order of the two regulators that's wrong?
What about the rgmii-id/rgmii-txid change, is it worth trying to change that back?

@jernejsk
Copy link
Member Author

jernejsk commented Nov 4, 2023

rgmii change is related to rx/tx delay. If you change one, you should also change other. I took another look at board schematic and bsp based DT file and I would say new settings are correct (rgmii-id, without rx/tx delay). You can determine which settings are better by doing speed test.

I believe your issue comes from new regulator handling code and not timing settings. It seems that code needs some refinements. Going back to old code isn't something that I want. Anyway, please open issue with relevant details discussed here. Nobody tracks discussions in already merged PRs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants