msm8953-mainline / linux

Linux mainline kernel with WIP patches for msm8953 devices
Other
113 stars 59 forks source link

Use in kernel BAM for ipa2-lite driver #193

Closed spasswolf closed 5 months ago

spasswolf commented 5 months ago

This uses the bam dmaengine driver for the ipa2-lite driver. There are still some issues to be resolved:

  1. While pinging and wikipedia seem to work trying to youtube seems to crash the phone
  2. I had to remove the iommu nodes from the ipa and ipa_bam nodes to make dma work
  3. When pinging with the using the mobile data interface, received packets in the rmnet_ipa0 interface seems to be double counted
  4. This is still based on 6.7.0/main
vldly commented 5 months ago

Question is why? One of the reasons i've made this driver is to get rid of dmaengine API usage and now you bring it back... Why? To make it easier to maintain and more reliable (not going to break because of API or BAM changes in upstream). Also as you've already figured with BAM dmaengine iommu can't be used because context bank is shared between ipa and bam devices. Another reason is that i wanted to practice writing network driver with proper NAPI implementation, with this API it isn't possible.

spasswolf commented 5 months ago

The main reason for writing this was to figure out what was wrong with the ipa_legacy driver where kernel BAM was used, but no packets could be received.

By proper NAPI implementation, do you mean disabling the dma interrupt while polling?