ChanServ changed the topic of #linux-rockchip to: Rockchip development discussion | IRC log | Community GH | Rockchip GH | ML
lkcl has joined #linux-rockchip
lurchi_ has quit [Ping timeout: 240 seconds]
cnxsoft has joined #linux-rockchip
_whitelogger has joined #linux-rockchip
descend-irc has joined #linux-rockchip
cnxsoft has quit [Read error: Connection reset by peer]
cnxsoft has joined #linux-rockchip
_whitelogger has joined #linux-rockchip
cnxsoft has quit [Read error: Connection reset by peer]
kaspter has joined #linux-rockchip
kaspter1 has joined #linux-rockchip
kaspter has quit [Ping timeout: 260 seconds]
kaspter1 is now known as kaspter
kaspter has quit [Quit: kaspter]
cnxsoft has joined #linux-rockchip
_whitelogger has joined #linux-rockchip
descend-irc has quit [Quit: Connection closed for inactivity]
_whitelogger has joined #linux-rockchip
_whitelogger has joined #linux-rockchip
ayufan has joined #linux-rockchip
aalm has quit [Ping timeout: 248 seconds]
phinxy has joined #linux-rockchip
phinxy has left #linux-rockchip [#linux-rockchip]
aalm has joined #linux-rockchip
JohnDoe_71Rus has joined #linux-rockchip
aalm has quit [Ping timeout: 248 seconds]
cnxsoft has quit [Quit: cnxsoft]
aalm has joined #linux-rockchip
afaerber has quit [Ping timeout: 255 seconds]
afaerber has joined #linux-rockchip
BenG83 has joined #linux-rockchip
nighty- has joined #linux-rockchip
vagrantc has joined #linux-rockchip
aalm has quit [Ping timeout: 255 seconds]
aalm has joined #linux-rockchip
Myy has joined #linux-rockchip
<Myy> Meow
<Myy> So this morning, I thought I had the VPU completely working again, however turns out that it was a false positive. Still, today I've been able to repair the IOMMU DMA ScatterGather lists mapping unmapping side and I'm now able to, at least, invoke mpv with MPP without having the VPU driver crashing horribly.
<Myy> I don't know if MPV or MPP is not passing the format correctly, or if the movie I tried to play wasn't supported by the VPU so now I'm trying various MP4/MKV files.
<Myy> Meanwhile, I'll still push my modifications on the driver and generate a big patch containing all the modifications done on the kernel side.
<Myy> Turns out that using the IOMMU_DMA API was a good idea. However casting the iommu_domain->iova_cookie to a iova_domain structure was not. When using that API, that kind of cast missed the Iova domain address by 4 bytes, causing a lot of issues due to not reading exactly at the right address.
aalm has quit [Ping timeout: 260 seconds]
aalm has joined #linux-rockchip
<Myy> So, long story short : I still cannot check the "acceleration" part (The VPU driver informs MPV that it does not support the format) but at least it doesn't crash horribly when mapping DMA buffers.
<phh> vpu driver = mpp?
ckeepax has quit [Ping timeout: 260 seconds]
<Myy> Well, the VPU driver used through the MPP library informs MPV that the format was not recognized
<Myy> The VPU code I'm using is this one :
<Myy> And these are the kernel modifications I applied to test this code :
JohnDoe6 has joined #linux-rockchip
<Myy> Basically, the modifications are : export the iommu_dma_init function to initialize the cache used by the IOVA functions (else you get a NPE) and add two signatures for iommu_dma_(un)map_sg that accepts a domain as an argument directly, instead of trying to get it through iommu_get_domain_for_dev
<Myy> The reason being iommu_get_domain_for_dev returns NULL everytime :C
<phh> uh, sounds like iommu is not properly declared in dts?
<Myy> Ah... You might need...
<Myy> Wait a minute
JohnDoe_71Rus has quit [Ping timeout: 246 seconds]
<phh> I'm speaking for iommu_get_domain_for_dev returning null
<Myy> Ah, it seems that it tries to get the iommu_group attached to the device structure
<Myy> And then ask the iommu group to give the domain attached
<Myy> However, sometimes the device does NOT have a iommu group for some reasons and then it fails miserably :C
<Myy> I tried a few blind combinations of iommu_attach and iommu_group_add but that only led to freezes so I'll have to poke some #armlinux guys for more infos
<Myy> So, yeah, I'll try to grab the hevc from that Google drive link again and see if I can decode it with MPV<->MPP<->VPU-Driver
<phh> but, iommu attachment should be done based on dts anyway, not by vpu driver
<Myy> That's entirely possible, some parts of the IOMMU driver are still witchcraft to me. If you have a good idea, I'm all ears. I've setup a small driver skeleton to test various things with IOMMU and the VPU so I could give a try again.
<phh> do you have a37b19a384914c60b7e1264a6c21e7bf96b637e8 ?
<phh> yes
<phh> I'm not too sure if it will help, I can't tell if it makes probe_defer change behaviour or not
<Myy> I'll check that. Meanwhile playing some samples from stdint seem to work fine...
<Myy> However I'll need something longer than 7 seconds
<Myy> I'll try with the 140 MB WebM file. If that works, that means that the VPU works with 4.13 kernels. I'll then have to remove the ugly hacks and everything should be fine.
<Myy> Looks like it's working... Yay...
<Myy> I'll provide a build of the patched kernel
<Myy> So that anyone can test this
<Myy> I'll even do this right now
<phh> Nice!
ckeepax has joined #linux-rockchip
<Myy> I'll tag the one with the module for easy download
<Myy> Meanwhile, I'll update the RockMyy script and patches repo to include my (ugly) kernel patches so that anyone can modify it and recompile the OOT driver
<Myy> So, I'm testing a recompilation of my kernel with the new patches. If everything goes fine, I'm pushing it too and everything should be ready for testing.
JohnDoe6 has quit [Quit: KVIrc 4.9.2 Aria]
<Myy> The patches and compilation script are now available here :
aalm has quit [Ping timeout: 248 seconds]
lurchi_ has joined #linux-rockchip
aalm has joined #linux-rockchip
lurchi_ is now known as lurchi__
vagrantc has quit [Quit: leaving]
lurchi__ is now known as lurchi_
cyteen has quit [Ping timeout: 248 seconds]
lurchi_ is now known as lurchi__
nighty- has quit [Quit: Disappears in a puff of smoke]
BenG83 has quit [Quit: Leaving]
Myy has quit [Quit: Leaving]
gnufan has quit [Quit: Leaving.]