Hi Sylwester, On Fri, Jun 21, 2013 at 4:16 AM, Sylwester Nawrocki <sylvester.nawrocki@xxxxxxxxx> wrote: > Guys, I was wondering how difficult would be to make a common driver > for the Exynos4 and Exynos5 FIMC-IS ? My feeling is that it would allow > to save significant amount of code, since the hardware has many > similarities. I imagine it would be a lot of work, and testing would have > been a bit difficult. But would it really to troublesome to make a common > driver ? Could you list some arguments against it ? For the MFC we have > same driver, handling different firmware versions. Similarly for the other > media IPs. Only the FIMC-IS subsystems would have separate drivers. > My intentions is really only to reduce the amount of code we would have > to merge with this new driver, nothing else. But I'm not going to push > for the common driver if this is too much trouble. We have thought about it while starting the development and major arguments against common driver are : - FIMC-IS IP has significantly changed from Exynos4. In Exynos4, it has sub-components ISP, DRC and FD where as in exynos5, it has ISP, DRC, SCC, ODC, DIS. 3DNR, SCP and FD. - The FW design has changed considerably to make use of camera2 api interface. Most of the code in the new driver is for this FW interface which are done in fimc_is_pipeline.* and fimc_is_interface.*. This is the major reason against a common driver as the new FW expects each input frame to be passed along with the controls in a SHOT command. It is a request-response mode handled per-frame by the FW which is a major design philosophy change from exynos4. - Two scalers introduced in the pipeline capable of DMA out which again changes the pipeline design considerably compared to exynos4. - The only common part of code between exynos 4 and 5 now is in the fimc-isp.c and fimc-is-sensor.c and some control structures in header files. If re-used, only some user controls part can be re-used and most of the code will still be different. >From the exynos5 driver, still the fimc-is-scaler.*, fimc-is-pipeline.*, fimc-is-interface.* has to be retained which constitutes majority of the LOC. Regards Arun -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html