The first patch in this series change the em28xx to don't require coherent memory for DMA transfers. This should bring some performance gains on non-x86 archs.
The other patches in this series are results of my tests with the first patch :-) patch 2 does some cleanups at i2c and Xclock speed settings. Patches 3 and 4 do something that I'm intending to do for a long time: it constifies most static structs inside the driver. Before that, the cards list were modified in runtime, with is a bad idea when multiple (but different) boards use the same entry (for example, a webcam and a em28xx capture "generic" board). Patch 5 solves a FIXME. Patch 6 was written by Arnd, as a way to solve an issue with KASAN: without it, more than 4Kbytes were spent at the stack, with can cause very bad things. He sent it sometime ago. As I answered when the patchset was sent, I didn't like very much that approach, as a way to solve KASAN, as the real solution is to improve the I2C binding logic inside this (and other) drivers. Yet, it brings a nice cleanup at em28xx. So, patch 7 does that! It is something that I'm wanting to do for a long time, but only today I found the needed time: it adds helper functions at the DVB core in order to bind/unbind I2C modules to a driver. It is aligned with the new I2C binding work made by Antti. Patch 8 converts em28xx-dvb to use the new dvb_module_probe() and dvb_module_release() fuctions, with caused a reduction of almost 10% on the size of this module! A side effect of patches 7 and 8 is that we don't to use noinline_for_stack "black" magic there anymore, with is a good thing. Arnd Bergmann (1): media: em28xx: split up em28xx_dvb_init to reduce stack size Mauro Carvalho Chehab (7): media: em28xx: don't use coherent buffer for DMA transfers media: em28xx: improve the logic with sets Xclk and I2C speed media: em28xx: stop rewriting device's struct media: em28xx: constify most static structs media: em28xx: adjust I2C timeout according with I2C speed media: dvb-core: add helper functions for I2C binding media: em28xx-dvb: simplify DVB module probing logic drivers/media/dvb-core/dvbdev.c | 48 ++ drivers/media/usb/em28xx/em28xx-cards.c | 163 +++---- drivers/media/usb/em28xx/em28xx-core.c | 57 ++- drivers/media/usb/em28xx/em28xx-dvb.c | 775 ++++++++++++-------------------- drivers/media/usb/em28xx/em28xx-i2c.c | 36 +- drivers/media/usb/em28xx/em28xx-input.c | 6 +- drivers/media/usb/em28xx/em28xx-video.c | 24 +- drivers/media/usb/em28xx/em28xx.h | 39 +- include/media/dvbdev.h | 65 ++- 9 files changed, 579 insertions(+), 634 deletions(-) -- 2.14.3