Hi All, Here is v8 of the patch to upstream the OV02C10 sensor driver originally writen by Intel which Heimir has been working on upstreaming. At Heimir's request I've taken over the upstreaming process. This new version addresses all the review remarks from Sakari, Bryan and Stanislaw, thank you all for the reviews. While working on fixing the review remarks I've also found and fixed / improved a bunch of other things myself. All in all there are quite a few changes, therefor I've chosen to send this as a patch series. I understand this cannot be merged in this form, I'll squash everything back together for v9. There are 2 reasons for sending this v8 as a series: 1. I don't have hardware to test. I hope that others can test this soon, if things don't work the idea is that people can apply my cleanups 1 by 1 and then we will know which change has broken things. 2. There are other sensor drivers from Intel at: https://github.com/intel/ipu6-drivers/tree/master/drivers/media/i2c/ which likely need similar changes. Doing this as an incremental series is also intended to document all the cleanups which likely need to be applied to other Intel drivers too. Note to reviewers there are some suboptimal things in this series wrt adding things and then later removing them again, like e.g. the use of guard(mutex)(&ov02c10->mutex). I did not bother to fix this since this will all get squashed together in v9 anyways. If it is easier for reviewing I can also (at request) post a v9 immediately with everything squashed together. Even then I still believe this admittedly weird v8 is useful for the reasons given above. Regards, Hans Hans de Goede (13): media: ov02c10: merge shared register settings into a shared reg_sequence array media: ov02c10: Fix hts for 2 lane mode media: ov02c10: Fix vts_min for 2 lane mode media: ov02c10: link-freq-index and pixel-rate fixes media: ov02c10: ov02c10_check_hwcfg() improvements media: ov02c10: CCI usage fixes media: ov02c10: Make modes lane-count independent media: ov02c10: Drop handshake pin support media: ov02c10: ov02c10_get_pm_resources() fixes media: ov02c10: Switch to {enable,disable}_streams media: ov02c10: Drop system suspend and resume handlers media: ov02c10: Switch to using the sub-device state lock media: ov02c10: Use v4l2_subdev_get_fmt() as v4l2_subdev_pad_ops.get_fmt() Heimir Thor Sverrisson (1): media: i2c: Add Omnivision OV02C10 sensor driver drivers/media/i2c/Kconfig | 10 + drivers/media/i2c/Makefile | 1 + drivers/media/i2c/ov02c10.c | 1012 +++++++++++++++++++++++++++++++++++ 3 files changed, 1023 insertions(+) create mode 100644 drivers/media/i2c/ov02c10.c -- 2.48.1