yoq Posted April 21, 2020 Share Posted April 21, 2020 I know most of you probably don't want to hear any more about this chip, but I recently fixed quite a few long standing issues. It's not perfect yet, but it improves scanning/reliable reconnect, incoming frames missed in powersave, ping times, and rate selection. Here's the patch set: https://github.com/fifteenhex/xradio/pull/12 Edit: rebased from karabek: https://github.com/dbeinder/xradio/commits/karabek_rebase And some important comments about powersave: https://github.com/fifteenhex/xradio/pull/11#issuecomment-616226880 In short, relative to the current version, with powersave on, idle consumption is lower by 200mW, but with powersave off, it is 300mW higher - so that should be a consideration if you want to integrate this into Armbian builds for tiny boards like OPZero. Of course a 65MBit chip will never be fast, but I'd say it is pretty usable as an IoT node now. This hasn't seen much testing, so your comments are appreciated. 3 Quote Link to comment Share on other sites More sharing options...
Tido Posted April 21, 2020 Share Posted April 21, 2020 Sounds indeed interesting There are many people here who will help you to test, but will lack of know how to get this into their Linux. If you have a step-by-step or a .deb or something to extract at the right place. People will walk with you that way. 2 hours ago, yoq said: but if left off, it's up by 300mW Do you mean if you 'switch off XR819" or if you power off the device? Because the latter is known, and is not related to XR819. Keyword AR100, you find plenty in the forum and if you have some improvements there as well 0 Quote Link to comment Share on other sites More sharing options...
yoq Posted April 21, 2020 Author Share Posted April 21, 2020 I repharsed that sentence, I was talking about WiFi powersave polling, check my github comments for more details. In the current version, it is active but somewhat broken, and in idle uses about 200mW more than it needs to. On the other hand if you switch powersave mode fully off, the XR819 uses 300mW more in idle than the current driver. My patches enable setting powersave mode from userspace with iwconfig, and so power consumption can go up quite a bit if powersave is not ON by default. OPZ idle at 816MHz, WiFi driver not loaded: 610mW Connected to WiFi network & idle/no traffic: Current XR819 driver armbian/karabek: 910mW (slightly broken powersave) My patch: 700mW (powersave ON) My patch: 1220mW (powersave OFF, enables low latency incoming pings) Unfortunately, I believe kernel modules are not redistributable as compiled binaries, I think they only load if the kernel version matches perfectly. 0 Quote Link to comment Share on other sites More sharing options...
Igor Posted April 21, 2020 Share Posted April 21, 2020 4 hours ago, yoq said: I know most of you probably don't want to hear any more This is nice to hear! Its not complaining and ranting @karabek also added some improvements - currently we use his branch, which improvements we want to keep. So some git-merge-fu and we can proceed to testing ... 0 Quote Link to comment Share on other sites More sharing options...
yoq Posted April 21, 2020 Author Share Posted April 21, 2020 Alright, I rebased my changes on karabek's repository: https://github.com/dbeinder/xradio/tree/karabek_rebase The powersave commit is now split, with the power-lowering fix in the first part, and enabling userspace control over powersave in the second. After some more direct comparison, I'm starting to think the part about removing driver-level TX rate selection doesn't make a measurable difference, in either throughput or dropped packets. But since my much simpler code doesn't seem to make it worse either, I think that was just hacks built around the CW11x0 and simply never removed. But as long as there is no upside, it's probably better not to diverge too much from the CW1200 mainline version, so I left that in a separate branch for now: https://github.com/dbeinder/xradio/commits/karabek_rebase_minstrel 1 Quote Link to comment Share on other sites More sharing options...
Igor Posted April 22, 2020 Share Posted April 22, 2020 11 hours ago, yoq said: Alright, I rebased my changes I had in mind all relevant changes. I see karabek is also not much up2date with commits from upstream > https://github.com/fifteenhex/xradio I would do myself, but in that case I risk changing my good mood ... "do i relly need to dig into this xradio stuff " 0 Quote Link to comment Share on other sites More sharing options...
peterbmckinley Posted November 20, 2020 Share Posted November 20, 2020 Congratulations and thanks to dbeinder (yoq) and fifteenhex for their patience and good work on the XR819 driver. What do we need to do to get the XR819 driver finally adopted into the mainline kernel? Excuse my ignorance, and if this is a naive question! I'm keen on using the Orange Pi Zero for a fairly substantial project. I had this from Xunlong about an alternative wifi chip with the same footprint: "We dont have plan to use alternative wifi chip for this model and have no idea on this. BR. Steven" I'd love to see the XR819 driver in mainline, to reward all this fantastic effort, and to improve confidence in the OPi0 LTS for our project. Any thoughts? Peter 1 Quote Link to comment Share on other sites More sharing options...
Igor Posted August 24, 2022 Share Posted August 24, 2022 On 4/21/2020 at 3:28 PM, yoq said: most of you probably don't want to hear any more about this chip Changes in kernel 5.19.2 -> are responsible to adjust the code yet again I tried, but I find myself running in the circles ... Anyone more familiar with this driver? @arclight @piknew @Skupsy @Icenowy We are still attached to @karabekfork https://github.com/armbian/build/blob/master/lib/compilation-prepare.sh#L418-L424 but this https://github.com/dbeinder/xradio/commits/karabek_rebase looks like most recent. 0 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.