18 Jan, 2021
1 commit
-
Exit due to "Not support WxH@fps=1024x768@8".
Since fps and resolutions are not set by one v4l2 command, so there
will be some mid-combinations such as 2592x1944@30. Remove the
judgement in ov5640_find_mode().Signed-off-by: fang hui
Change-Id: Iad77112911ad487cf08cdfe2500d4e110fc527ce
04 Jan, 2021
1 commit
-
This is the 5.10.4 stable release
* tag 'v5.10.4': (717 commits)
Linux 5.10.4
x86/CPU/AMD: Save AMD NodeId as cpu_die_id
drm/edid: fix objtool warning in drm_cvt_modes()
...Signed-off-by: Jason Liu
Conflicts:
drivers/gpu/drm/imx/dcss/dcss-plane.c
drivers/media/i2c/ov5640.c
30 Dec, 2020
7 commits
-
[ Upstream commit eb08c48132a1f594478ab9fa2b6ee646c3513a49 ]
If of_graph_get_endpoint_by_regs() return NULL, it will return 0 rather
than an errno, because we doesn't initialize the return value.Fixes: 0556f1d580d4 ("media: tvp5150: add input source selection of_graph support")
Reported-by: Hulk Robot
Signed-off-by: Zhang Xiaoxu
Reviewed-by: Marco Felsch
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab
Signed-off-by: Sasha Levin -
[ Upstream commit 1ed36ecd1459b653cced8929bfb37dba94b64c5d ]
To comply with the intended usage of the V4L2 selection target when
used to retrieve a sensor image properties, adjust the rectangles
returned by the imx219 driver.The top/left crop coordinates of the TGT_CROP rectangle were set to
(0, 0) instead of (8, 8) which is the offset from the larger physical
pixel array rectangle. This was also a mismatch with the default values
crop rectangle value, so this is corrected. Found with v4l2-compliance.While at it, add V4L2_SEL_TGT_CROP_BOUNDS support: CROP_DEFAULT and
CROP_BOUNDS have the same size as the non-active pixels are not readable
using the selection API. Found with v4l2-compliance.[reword commit message, use macros for pixel offsets]
Fixes: e6d4ef7d58aa7 ("media: i2c: imx219: Implement get_selection")
Signed-off-by: Hans Verkuil
Signed-off-by: Jacopo Mondi
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab
Signed-off-by: Sasha Levin -
[ Upstream commit 7fe1d4453fb6bf103d668a19d957a7b2fc21887c ]
The MAX9271 GPIO1 line that controls the sensor reset is by default
enabled after a serializer chip reset.As rdacm20 does not go through an explicit serializer reset, make sure
GPIO1 is enabled to make the camera module driver more robust.Fixes: 34009bffc1c6 ("media: i2c: Add RDACM20 driver")
Signed-off-by: Jacopo Mondi
Reviewed-by: Kieran Bingham
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab
Signed-off-by: Sasha Levin -
[ Upstream commit 909a0a189c677307edd461e21fd962784370d27f ]
Fix GPIO enable/disable operations which wrongly read the 0x0f register
to obtain the current mask of the enabled lines instead of using
the correct 0x0e register.Also fix access to bit 0 of the register which is marked as reserved.
Fixes: 34009bffc1c6 ("media: i2c: Add RDACM20 driver")
Signed-off-by: Jacopo Mondi
Reviewed-by: Geert Uytterhoeven
Reviewed-by: Kieran Bingham
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab
Signed-off-by: Sasha Levin -
[ Upstream commit 9b1b0cb0636166187478ef68d5b95f5caea062ec ]
This is supposed to return negative error codes but the type is bool so
it returns true instead.Fixes: b47b79d8a231 ("[media] media: i2c: max2175: Add MAX2175 support")
Signed-off-by: Dan Carpenter
Signed-off-by: Mauro Carvalho Chehab
Signed-off-by: Sasha Levin -
[ Upstream commit eeb76afbe8d91e112396c6281cd020725160f006 ]
Stop video streaming when requested.
When s_stream is called to stop the video streaming, if/else condition calls
start_streaming function instead of the one for stopping it.Fixes: 436190596241 ("media: imx214: Add imx214 camera sensor driver")
Signed-off-by: Daniel Gomez
Signed-off-by: Ricardo Ribalda
Signed-off-by: Mauro Carvalho Chehab
Signed-off-by: Sasha Levin -
[ Upstream commit 68579b32e786f9680e7c6b6c7d17e26943bb02b3 ]
Fix PCLK polarity not being taken into account.
Add comments about BT656 register control.
Remove useless ov5640_set_stream_bt656() function.
Refine comments about MIPI IO register control.Fixes: 4039b03720f7 ("media: i2c: ov5640: Add support for BT656 mode")
Signed-off-by: Hugues Fruchet
Reviewed-by: Jacopo Mondi
Tested-by: Lad Prabhakar
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab
Signed-off-by: Sasha Levin
14 Dec, 2020
10 commits
-
Variable streaming is used to track ov5640 working state and control to turn
on/off ov5640. For normal case, streaming will be set to false when user call
STREAMOFF ioctl, but for some special cases, process will be killed at any time
and STREAMOFF ioctl will be ignored in this case. It leads to sensor software
state is out of sync with its real state, so driver force to set streaming to
false when call ov5640_set_power_off(). It will keep software state sync with
sensor real state.Signed-off-by: Guoniu.zhou
Reviewed-by: Robby Cai -
Remove v4l2 subdev node for ov5640 because ISP media server
can't detect it.Signed-off-by: Guoniu.zhou
Reviewed-by: Robby.cai -
Ov5640 will output some black frames at first when switch to other
resolution. So add about 100ms delay and software powerdown sensor
after finishing current video stream and before starting another
video stream to wait for sensor stable.Signed-off-by: Guoniu.zhou
-
IMX8QXP MEK board connect data[9:2] lines of ov5640 sensor, so we need
to set sensor work at 10-bit mode.Signed-off-by: Guoniu.zhou
Reviewed-by: Sandor.yu -
Driver will enumerate all res@fps to user, but for ov5640,
when it work in DVP mode, 1080P only can reach 15fps. For
2592x1944, no matter which mode it works, it only support
about 8fps. So driver need to clarify these info and report
the real capability to user.Signed-off-by: Guoniu.zhou
-
Accroding to ov5640 datasheet, 2592x1944 only support 7.5fps.
But actually, it can reach about 8. For 1080P@30fps in DVP
mode, it can reach 1080P@15fsp, so adding valid mode and fps
checking before streaming.Signed-off-by: Guoniu.zhou
-
VSYNC signal trigger before a frame end when ov5640 work at MIPI
mode. It leads to the first frame content only hav some lines of
image. I tried many configuration and finally have the patch to
fix the issue. My thought is suspending sensor when update its
registers and resume after update.Signed-off-by: Guoniu.zhou
[ Aisheng: fix minior conflicts due to
92b9096c0fe0 ("media: ov5640: Fix 1920x1080 mode to remove extra enable/disable") ]
Sign-off-by: Dong Aisheng -
When setting ov5640 to XGA, 720P, 1080P and 2592x1944 at DVP mode,
receiver can't get data from sensor. After trying many configuration,
I found 0x3824[1] need to be set to control divide DVP PCLK and do
software power-down when configure sensor to XGA and 720P.For 1080P and 2592x1944, sensor don't support 30fps. So return NULL
when user try to get 1080P@30 and 2592x1944@30fps.Signed-off-by: Guoniu.zhou
-
Save the width and height info of new mode to sensor format data
in order to get the info by G_FMT ioctl commandSigned-off-by: Guoniu.zhou
[ Aisheng: fix minior conflicts due to cc196e48e517 ("media: ov5640: add PIXEL_RATE control") ]
Sign-off-by: Dong Aisheng -
Add link_setup callback for ov5640 sensor entity ops.
In some cases, driver will call the related entity ops
to notify the link setup eventsSigned-off-by: Guoniu.zhou
08 Oct, 2020
2 commits
-
tvp7002.c: In function 'tvp7002_g_register':
tvp7002.c:691:11: warning: 'val' may be used uninitialized in this function [-Wmaybe-uninitialized]
691 | reg->val = val;
| ~~~~~~~~~^~~~~Just return without setting 'reg' if tvp7002_read returns an error.
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
struct s5k5baf_fw ends with this:
struct {
u16 id;
u16 offset;
} seq[0];
u16 data[];
};which is rather confusing and can cause gcc warnings:
s5k5baf.c: In function 's5k5baf_load_setfile.isra':
s5k5baf.c:390:13: warning: array subscript 65535 is outside the bounds of an interior zero-length array 'struct [0]' [-Wzero-length-bounds]
390 | if (f->seq[i].offset + d seq[0].id and 'seq[0]' can be replaced by
'seq[]'.This is both more readable and solved that warnings.
Signed-off-by: Hans Verkuil
Cc: Kyungmin Park
Cc: Sylwester Nawrocki
Signed-off-by: Mauro Carvalho Chehab
26 Sep, 2020
2 commits
-
tc358743_cec_isr is misnammed, it is not the main isr.
So rename it to be consistent with its siblings,
tc358743_cec_handler.It also does not check if its input parameter 'handled' is
is non NULL like its siblings, so add a check.Fixes: a0ec8d1dc42e ("media: tc358743: add CEC support")
Signed-off-by: Tom Rix
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
clang static analysis flags this error
tc358743.c:1468:9: warning: Branch condition evaluates
to a garbage value
return handled ? IRQ_HANDLED : IRQ_NONE;
^~~~~~~
handled should be initialized to false.Fixes: d747b806abf4 ("[media] tc358743: add direct interrupt handling")
Signed-off-by: Tom Rix
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab
10 Sep, 2020
10 commits
-
OV8856 supports 3264x2448 @ 30 FPS, which is added
in this commit.Signed-off-by: Robert Foss
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab -
OV8856 supports 1632x1224 @ 60 FPS, which is added
in this commit.Signed-off-by: Robert Foss
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab -
v4l2_async_notifier_add_subdev() requires the asd to be allocated
dynamically, but the max9286 driver embeds it in the max9286_source
structure. This causes memory corruption when the notifier is destroyed
at remove time with v4l2_async_notifier_cleanup().Fix this issue by registering the asd with
v4l2_async_notifier_add_fwnode_subdev(), which allocates it dynamically
internally. A new max9286_asd structure is introduced, to store a
pointer to the corresonding max9286_source that needs to be accessed
from bound and unbind callbacks. There's no need to take an extra
explicit reference to the fwnode anymore as
v4l2_async_notifier_add_fwnode_subdev() does so internally.While at it, use %u instead of %d to print the unsigned index in the
error message from the v4l2_async_notifier_add_fwnode_subdev() error
path.Fixes: 66d8c9d2422d ("media: i2c: Add MAX9286 driver")
Signed-off-by: Laurent Pinchart
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab -
Fail probe if unsupported bus_type is detected.
Signed-off-by: Lad Prabhakar
Reviewed-by: Jacopo Mondi
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab -
Enable support for BT656 mode.
Signed-off-by: Lad Prabhakar
Reviewed-by: Biju Das
Reviewed-by: Jacopo Mondi
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab -
Configure HVP lines in s_power callback instead of configuring everytime
in ov5640_set_stream_dvp().Alongside also disable MIPI in DVP mode.
Signed-off-by: Lad Prabhakar
Reviewed-by: Biju Das
Tested-by: Jacopo Mondi
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab -
During testing this sensor on iW-RainboW-G21D-Qseven platform in 8-bit DVP
mode with rcar-vin bridge noticed the capture worked fine for the first run
(with yavta), but for subsequent runs the bridge driver waited for the
frame to be captured. Debugging further noticed the data lines were
enabled/disabled in stream on/off callback and dumping the register
contents 0x3017/0x3018 in ov5640_set_stream_dvp() reported the correct
values, but yet frame capturing failed.To get around this issue data lines are enabled in s_power callback.
(Also the sensor remains in power down mode if not streaming so power
consumption shouldn't be affected)Fixes: f22996db44e2d ("media: ov5640: add support of DVP parallel interface")
Signed-off-by: Lad Prabhakar
Reviewed-by: Biju Das
Tested-by: Jacopo Mondi
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab -
In preparation for adding DVP configuration in s_power callback
move mipi configuration into separate functionSigned-off-by: Lad Prabhakar
Reviewed-by: Biju Das
Tested-by: Jacopo Mondi
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab -
Keep the sensor in software power down mode and wake up only in
ov5640_set_stream_dvp() callback.Signed-off-by: Lad Prabhakar
Reviewed-by: Biju Das
Tested-by: Jacopo Mondi
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab -
Alan Chiang's e-mail address no longer works. Remove it.
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab
07 Sep, 2020
1 commit
-
Linux 5.9-rc4
* tag 'v5.9-rc4': (1001 commits)
Linux 5.9-rc4
io_uring: fix linked deferred ->files cancellation
io_uring: fix cancel of deferred reqs with ->files
include/linux/log2.h: add missing () around n in roundup_pow_of_two()
mm/khugepaged.c: fix khugepaged's request size in collapse_file
mm/hugetlb: fix a race between hugetlb sysctl handlers
mm/hugetlb: try preferred node first when alloc gigantic page from cma
mm/migrate: preserve soft dirty in remove_migration_pte()
mm/migrate: remove unnecessary is_zone_device_page() check
mm/rmap: fixup copying of soft dirty and uffd ptes
mm/migrate: fixup setting UFFD_WP flag
mm: madvise: fix vma user-after-free
checkpatch: fix the usage of capture group ( ... )
fork: adjust sysctl_max_threads definition to match prototype
ipc: adjust proc_ipc_sem_dointvec definition to match prototype
mm: track page table modifications in __apply_to_page_range()
MAINTAINERS: IA64: mark Status as Odd Fixes only
MAINTAINERS: add LLVM maintainers
MAINTAINERS: update Cavium/Marvell entries
mm: slub: fix conversion of freelist_corrupted()
...
03 Sep, 2020
1 commit
-
rc-core kapi uses nanoseconds for infrared durations for receiving, and
microseconds for sending. The uapi already uses microseconds for both,
so this patch does not change the uapi.Infrared durations do not need nanosecond resolution. IR protocols do not
have durations shorter than about 100 microseconds. Some IR hardware offers
250 microseconds resolution, which is sufficient for most protocols.
Better hardware has 50 microsecond resolution and is enough for every
protocol I am aware off.Unify on microseconds everywhere. This simplifies the code since less
conversion between microseconds and nanoseconds needs to be done.This affects:
- rx_resolution member of struct rc_dev
- timeout member of struct rc_dev
- duration member in struct ir_raw_eventCc: "Bruno Prémont"
Cc: Hans Verkuil
Cc: Maxim Levitsky
Cc: Patrick Lerda
Cc: Kevin Hilman
Cc: Neil Armstrong
Cc: Jerome Brunet
Cc: Martin Blumenstingl
Cc: Sean Wang
Cc: Matthias Brugger
Cc: Patrice Chotard
Cc: Maxime Ripard
Cc: Chen-Yu Tsai
Cc: "David Härdeman"
Cc: Benjamin Valentin
Cc: Antti Palosaari
Signed-off-by: Sean Young
Signed-off-by: Mauro Carvalho Chehab
01 Sep, 2020
5 commits
-
The unit of exposure value is different from other OmniVision sensors,
driver will divide by 2 before set register, the exposure range exposed
by v4l2 ctrl to user should be same as others, so the calculation for
the maximum exposure value in current driver need be fixed.Signed-off-by: Bingbu Cao
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab -
Make use of SCCB APIs for regmap operations.
Remove i2c_check_functionality as devm_regmap_init_sccb
does it for us.Signed-off-by: Raag Jadav
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab -
1) the numerator and/or denominator might be 0, in that case
fall back to the default frame interval. This is per the spec
and this caused a v4l2-compliance failure.2) the updated frame interval wasn't returned in the s_frame_interval
subdev op.Signed-off-by: Hans Verkuil
Reviewed-by: Luca Ceresoli
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab -
clang static analysis reports this error
m5mols_core.c:767:4: warning: Called function pointer
is null (null dereference) [core.CallAndMessage]
info->set_power(&client->dev, 0);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~In other places, the set_power ptr is checked.
So add a check.Fixes: bc125106f8af ("[media] Add support for M-5MOLS 8 Mega Pixel camera ISP")
Signed-off-by: Tom Rix
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab -
Currently the error return from the call to max9286_read is masked
with 0xf0 so the following check for a negative error return is
never true. Fix this by checking for an error first, then masking
the return value for subsequent conflink_mask checking.Addresses-Coverity: ("Logically dead code")
Fixes: 66d8c9d2422d ("media: i2c: Add MAX9286 driver")
Signed-off-by: Colin Ian King
Reviewed-by: Kieran Bingham
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab