aboutsummaryrefslogtreecommitdiff
path: root/drivers/media/i2c/ov2740.c
AgeCommit message (Collapse)AuthorFilesLines
2021-04-06media: v4l: fwnode: Rename v4l2_async_register_subdev_sensor_commonSakari Ailus1-1/+1
Rename v4l2_async_register_subdev_sensor_common as v4l2_async_register_subdev_sensor. This is a part of the effort to make the long names present in V4L2 fwnode and async frameworks shorter. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-12-02media: ov2740: fix dereference before null check on pointer nvmColin Ian King1-2/+5
Currently pointer nvm is being dereferenced before it is being null checked. Fix this by moving the assignments of pointers client and ov2740 so that are after the null check hence avoiding any potential null pointer dereferences on pointer nvm. Fixes: 5e6fd339b68d ("media: ov2740: allow OTP data access during streaming") Signed-off-by: Colin Ian King <colin.king@canonical.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-11-25media: ov2740: allow OTP data access during streamingBingbu Cao1-93/+96
OTP data access of ov2740 need enable the streaming mode to load and it could be done in any time, so driver need allow the OTP data access during streaming instead of return EBUSY, this patch try to read the OTP data out in STREAMON if OTP data is not ready before first time streaming start. Signed-off-by: Bingbu Cao <bingbu.cao@intel.com> Signed-off-by: Qingwu Zhang <qingwu.zhang@intel.com> Reviewed-by: Tomasz Figa <tfiga@chromium.org> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-11-25media: ov2740: only do OTP data read on demand from userBingbu Cao1-32/+84
OTP data access of ov2740 in probe need power up, it may cause the camera flash LED blink during probe if the LED use same power rail with camera, this patch move the OTP data access out of probe, it will only occur on demand from user by nvmem sysfs. Signed-off-by: Bingbu Cao <bingbu.cao@intel.com> Signed-off-by: Qingwu Zhang <qingwu.zhang@intel.com> Reviewed-by: Tomasz Figa <tfiga@chromium.org> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-11-16media: ov2740: change the minimal exposure value to 4Bingbu Cao1-1/+1
The minimal valid exposure value should be 4 lines instead of 8 for ov2740 mannual exposure control. Signed-off-by: Bingbu Cao <bingbu.cao@intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-11-16media: i2c: ov2740: simplify getting state containerKrzysztof Kozlowski1-4/+2
The pointer to 'struct v4l2_subdev' is stored in drvdata via v4l2_i2c_subdev_init() so there is no point of a dance like: struct i2c_client *client = to_i2c_client(struct device *dev) struct v4l2_subdev *sd = i2c_get_clientdata(client); This allows to remove local variable 'client' and few pointer dereferences. Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-09-01media: i2c: ov2740: get OTP data ready before nvmem registrationBingbu Cao1-12/+12
The OTP data was not ready after registered as nvmem device, it is risky as the nvmem read may happen once the device exists, this patch get the OTP data ready before registering the nvmem device. OTP data missing should not break the normal camera sensor probe, so use a warning instead of an error message. Signed-off-by: Bingbu Cao <bingbu.cao@intel.com> Signed-off-by: Qingwu Zhang <qingwu.zhang@intel.com> Suggested-by: Sergey Senozhatsky <senozhatsky@chromium.org> Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-06-23media: ov2740: add NVMEM interface to read customized OTP dataQingwu Zhang1-0/+145
ov2740 includes 512bytes of one-time programmable memory and 256 bytes are reserved for customers which can be used to store customized information. This patch provide an NVMEM interface to support read out the customized data in OTP. Signed-off-by: Bingbu Cao <bingbu.cao@intel.com> Signed-off-by: Qingwu Zhang <qingwu.zhang@intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-06-23media: ov2740: make ov2740 driver only work with ACPIBingbu Cao1-3/+1
As the ACPI id of ov2740 camera sensor was registered as "INT3474", current ov2740 driver is supposed to be working with ACPI only. Signed-off-by: Bingbu Cao <bingbu.cao@intel.com> Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-25media: i2c: Add ov2740 image sensor driverBingbu Cao1-0/+1016
OminiVision ov2740 is a 2 megapixels RAW RGB image sensor which can deliver 1920x1080@60fps frames. This driver add the support of vertical blanking, exposure, test pattern, digital and analog gain control for sensor. Signed-off-by: Bingbu Cao <bingbu.cao@intel.com> Signed-off-by: Shawn Tu <shawnx.tu@intel.com> Signed-off-by: Qiu, Tianshu <tian.shu.qiu@intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>