Commit Graph

220 Commits

Author SHA1 Message Date
SPRESENSE
d57324473e drivers/video/isx019: Increase waiting time for HW initialization 2022-10-26 03:57:26 +08:00
SPRESENSE
254139bcec drivers/video/isx012: Add missing FAR qualifier 2022-10-26 03:57:26 +08:00
SPRESENSE
e48f8be8c5 drivers/video/isx012: Support clip feature 2022-10-26 03:57:26 +08:00
SPRESENSE
277c8e368b drivers/video: Update API to dump register for debug 2022-10-26 03:57:26 +08:00
SPRESENSE
1332bdb9a7 drivers/video: Add get frame interval API 2022-10-26 03:57:26 +08:00
anjiahao
5724c6b2e4 sem:remove sem default protocl
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2022-10-22 14:50:48 +08:00
Xiang Xiao
6b31918b42 Remove the unnecessary cast for main_t, NULL and argv
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-10-18 08:51:45 +02:00
Xiang Xiao
dca5a3483f drivers: Destroy mutex and sem in the error path
also correct the order to ensure the memory free is last step

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-10-17 15:59:46 +09:00
anjiahao
d1d46335df Replace nxsem API when used as a lock with nxmutex API
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-10-17 15:59:46 +09:00
Xiang Xiao
40ef5bc6db libc: Move queue.h from include to include/nuttx
to avoid the conflict with libuv's queue.h

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-09-26 08:04:58 +02:00
Huang Qi
e4e3208180 Replace all strncpy with strlcpy for safety
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2022-08-25 13:38:36 +08:00
Huang Qi
70c0672598 vncserver: Support keyboard driver
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2022-07-12 10:05:15 -03:00
Huang Qi
e23bcb0e81 vncserver: Correct rfb_keyevent_s definition
Refer to https://datatracker.ietf.org/doc/html/rfc6143,
size of key is 4 byte.

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2022-07-11 14:11:43 +08:00
Huang Qi
4945c49c61 vncserver: Support pointer driver
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2022-07-08 13:28:34 +08:00
Nathan Hartman
849f760b77 Fix various typos 2022-07-08 02:15:54 +08:00
Alin Jerpelea
72f399e052 drivers: video: add isx019 camera sensor
The driver is provided by Spresense SDK

ISX019 has the DOL-HDR feature, which combines images with different exposure so that
both bright and dark data of high-contrast subject can be viewed at the same time.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2022-05-31 19:52:33 +08:00
SPRESENSE
247ad41bb2 drivers/video/isx012: Fix getting the iso sensitivity
Fix bug to get the value of iso sensitivity.
2022-05-30 20:38:47 +03:00
SPRESENSE
acde5fed49 drivers/video/isx012: Fix getting the value of auto exposure
Fix bug to get the current setting value at AE auto mode.
2022-05-30 20:38:47 +03:00
SPRESENSE
1613ded060 drivers/video/isx012: Add exclusive controls for I2C access
Add exclusive control to prevent from I2C write(for sending requst) and
I2C read(for receiving response).
2022-05-30 20:38:47 +03:00
SPRESENSE
bea6d3a7ef drivers/video: Fix bug that is_available() is false
is_available() may be false because chip id register does not
have unique value.
So, judge availability not by chip id but by i2c accessibility.
2022-05-30 20:38:47 +03:00
SPRESENSE
b296494fb8 drivers/video: Avoid additional overflow cases
Add clip size validation to avoid additional overflow.
2022-05-30 20:38:47 +03:00
SPRESENSE
1212d3b7d8 drivers/video: Fix multiplication overflow
Add cast to uint32_t type to avoid multiplication overflow.
2022-05-30 20:38:47 +03:00
SPRESENSE
c0ea6c5b49 drivers/video: Fix thumbnail size bug
Fix copy size to set thumbnail component, when thumbnail format is used
without clipping.
2022-05-30 20:38:47 +03:00
SPRESENSE
9c57850466 drivers/video: Support clip
Support clip by ioctl(VIDIOC_S_SELECTION) and ioctl(VIDIOC_G_SELECTION).
2022-05-30 20:38:47 +03:00
SPRESENSE
b45489753a drivers/video: Enable to select connected image sensor driver at runtime
Enable to select connected image sensor driver at runtime by adding is_available()
to image sensor I/F.
2022-05-30 20:38:47 +03:00
SPRESENSE
a25ac08774 boards: cxd56xx: Change pin initialization timing for camera
Change pin initialization timing for camera from board power on to camera device
power on for the following purposes.
- avoid unnecessary power consumption
- Make the corresponding pins available for other uses when camera is not in use
2022-05-30 20:38:47 +03:00
SPRESENSE
229c7d30b6 drivers/video: Support ioctl(VIDIOC_QUERYCAP)
Support ioctl(VIDIOC_QUERYCAP) to get driver's name.
2022-05-30 20:38:47 +03:00
Petro Karashchenko
09b3fb25ab drivers: remove unimplemented open/close/ioctl interfaces
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-04-15 16:56:25 +08:00
Petro Karashchenko
d08fbca679 nuttx: unify FAR attribute usage across the code
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-04-04 21:32:58 +08:00
Petro Karashchenko
98ba65c422 c89: get rid of designated initializers in common code
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-03-28 13:39:27 +08:00
Petro Karashchenko
68902d8732 pid_t: unify usage of special task IDs
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-03-22 21:22:32 +08:00
Huang Qi
1699f530a5 vncserver: Allow fb operation while no connection
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2022-02-23 23:18:30 +08:00
Xiang Xiao
1d1bdd85a3 Remove the double blank line from source files
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-02-20 20:10:14 +01:00
Huang Qi
ccc708a142 vncserver: Fix dead lock on re-connect
`vnc_remove_queue` would waiting for new frame update request forever
even if the connection is lost, the updater thread wouldn't exit.
But the server thread will join updater thread before accept new client
connection, then we can't re-conncet to vnc server.

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2022-02-16 22:57:21 +08:00
Petro Karashchenko
9551de7115 net: use HTONS, NTOHS, HTONL, NTOHL macro in kernel code
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-01-18 10:59:47 +01:00
Petro Karashchenko
8d3bf05fd2 include: fix double include pre-processor guards
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-01-16 11:11:14 -03:00
Xiang Xiao
40b1f0bee8 libc: Add include/nuttx/input/x11_keysym.h
to enable more key group inside x11_keysym.h

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-01-11 15:01:13 +08:00
Petro Karashchenko
a743fed63d file_operations: get back C89 compatible initializer
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-01-11 02:14:00 +08:00
Xiang Xiao
4e595a3fde Fix video/vnc/vnc_negotiate.c:396:3: error: ‘ret’ undeclared
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-01-03 11:19:32 +08:00
Xiang Xiao
3e85d81686 grahpics: Move VNC server to drivers/video
and remove the empty VNC client

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-01-03 11:19:32 +08:00
Petro Karashchenko
51a2db6ffc Kconfig: improve uniformity
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2021-12-14 07:32:48 -06:00
liushuai25
6c374fc06c feat: driver: support double buffer for display
add pan display for fb driver.

reference links:
https://github.com/torvalds/linux/blob/master/drivers/video/fbdev/core/fbmem.c
https://github.com/torvalds/linux/blob/master/drivers/video/fbdev/goldfishfb.c

Signed-off-by: liushuai25 <liushuai25@xiaomi.com>

Update include/nuttx/video/fb.h

Co-authored-by: Gustavo Henrique Nihei <38959758+gustavonihei@users.noreply.github.com>

Update include/nuttx/video/fb.h

Co-authored-by: Gustavo Henrique Nihei <38959758+gustavonihei@users.noreply.github.com>
2021-09-30 09:07:48 -03:00
Alin Jerpelea
48f92e6f1d author: Bill Gatliff : update licenses to Apache
Gregory Nutt has submitted the SGA
Bill Gatliff has submitted the ICLA

as a result we can migrate the licenses to Apache.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-09-16 21:56:08 -05:00
SPRESENSE
ebd736240e drivers/video: Replace error output macro to verr
Add video debug macros verr/vwarn/vinfo, and replace error output macro to verr.
2021-09-15 07:06:35 +02:00
SPRESENSE
74df4b70b3 drivers: video: Rearchitect video driver
Rearchitect video driver:
- Define two video I/F(struct imgsensor_ops_s and struct imgdata_ops_s),
  and support them.
- CISIF driver supports new video I/F struct imgdata_ops_s.
- ISX012 driver supports new video I/F struct imgsensor_ops_s.
- Move ISX012 driver to general driver directory.
2021-09-15 07:06:35 +02:00
liushuai25
3183251de0 feature: driver: add interface for fb driver
add get and set panel power interface for fb driver.
add get and set framerate interface for fb driver.
add panel information at videoinfo for fb driver.

Signed-off-by: liushuai25 <liushuai25@xiaomi.com>
2021-09-13 18:18:27 -03:00
Alin Jerpelea
9cb132e797 drivers: video: ov2640: add GPL build barrier
Exclude the ov2640 driver from build unless the license is set to
allow GPL code in the build.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-08-17 19:48:45 -07:00
Xiang Xiao
2e54df0f35 Don't include assert.h from public header file
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-06-03 08:36:03 -07:00
Xiang Xiao
d7f96003cf Don't include debug.h from public header file
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-06-01 06:42:02 +09:00
Gustavo Henrique Nihei
330eff36d7 sourcefiles: Fix relative path in file header 2021-03-09 23:18:28 +08:00
Gustavo Henrique Nihei
47cb41c92f makefiles: Fix relative path in file header 2021-03-09 23:18:28 +08:00
Alin Jerpelea
e5b6305f4a drivers: Author Gregory Nutt: update licenses to Apache
Gregory Nutt has submitted the SGA and we can migrate the licenses
 to Apache.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-03-04 18:32:27 -08:00
Alin Jerpelea
cb5d8b53cb drivers: video: altair: nxstyle fixes
Nxstyle fixes to pass CI

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-01-26 05:11:58 -08:00
Alin Jerpelea
f22683a0a6 drivers: replace licenses with Apache 2.0
This change is a license change to Apache 2.0 license.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-01-26 05:11:58 -08:00
YAMAMOTO Takashi
8c748f2d23 drivers/video/ov2640.c: Avoid assuming debug macro expansion 2020-12-06 09:03:09 -06:00
YAMAMOTO Takashi
fb93437380 drivers/video/ov2640.c: Appease nxstyle
The following nxstyle errors are left because i'm not sure
how they should be fixed.

These are initializers like:

  {0xff, 0x00},  {0x2c, 0xff},  {0x2e, 0xdf},  {0xff, 0x01},  {0x3c, 0x32},
  {0x11, 0x00},  {0x09, 0x02},  {0x04, 0x28},  {0x13, 0xe5},  {0x14, 0x48},
  {0x2c, 0x0c},  {0x33, 0x78},  {0x3a, 0x33},  {0x3b, 0xfb},  {0x3e, 0x00},
  {0x43, 0x11},  {0x16, 0x10},  {0x39, 0x02},  {0x35, 0x88},  {0x22, 0x0a},

drivers/video/ov2640.c:309:16: error: Left bracket not on separate line
drivers/video/ov2640.c:318:17: error: Left bracket not on separate line
drivers/video/ov2640.c:318:32: error: Left bracket not on separate line
drivers/video/ov2640.c:318:47: error: Left bracket not on separate line
drivers/video/ov2640.c:318:62: error: Left bracket not on separate line
drivers/video/ov2640.c:319:17: error: Left bracket not on separate line
drivers/video/ov2640.c:319:32: error: Left bracket not on separate line
drivers/video/ov2640.c:319:47: error: Left bracket not on separate line
drivers/video/ov2640.c:319:62: error: Left bracket not on separate line
drivers/video/ov2640.c:320:17: error: Left bracket not on separate line
drivers/video/ov2640.c:320:32: error: Left bracket not on separate line
drivers/video/ov2640.c:320:47: error: Left bracket not on separate line
drivers/video/ov2640.c:320:62: error: Left bracket not on separate line
drivers/video/ov2640.c:321:17: error: Left bracket not on separate line
drivers/video/ov2640.c:321:32: error: Left bracket not on separate line
drivers/video/ov2640.c:321:47: error: Left bracket not on separate line
drivers/video/ov2640.c:321:62: error: Left bracket not on separate line
drivers/video/ov2640.c:322:17: error: Left bracket not on separate line
drivers/video/ov2640.c:322:32: error: Left bracket not on separate line
drivers/video/ov2640.c:322:47: error: Left bracket not on separate line
drivers/video/ov2640.c:322:62: error: Left bracket not on separate line
drivers/video/ov2640.c:323:17: error: Left bracket not on separate line
drivers/video/ov2640.c:323:32: error: Left bracket not on separate line
drivers/video/ov2640.c:323:47: error: Left bracket not on separate line
drivers/video/ov2640.c:323:62: error: Left bracket not on separate line
drivers/video/ov2640.c:324:17: error: Left bracket not on separate line
drivers/video/ov2640.c:324:32: error: Left bracket not on separate line
drivers/video/ov2640.c:324:47: error: Left bracket not on separate line
drivers/video/ov2640.c:324:62: error: Left bracket not on separate line
drivers/video/ov2640.c:325:17: error: Left bracket not on separate line
drivers/video/ov2640.c:325:32: error: Left bracket not on separate line
drivers/video/ov2640.c:325:47: error: Left bracket not on separate line
drivers/video/ov2640.c:325:62: error: Left bracket not on separate line
drivers/video/ov2640.c:326:17: error: Left bracket not on separate line
drivers/video/ov2640.c:326:32: error: Left bracket not on separate line
drivers/video/ov2640.c:326:47: error: Left bracket not on separate line
drivers/video/ov2640.c:326:62: error: Left bracket not on separate line
drivers/video/ov2640.c:327:17: error: Left bracket not on separate line
drivers/video/ov2640.c:327:32: error: Left bracket not on separate line
drivers/video/ov2640.c:327:47: error: Left bracket not on separate line
drivers/video/ov2640.c:327:62: error: Left bracket not on separate line
drivers/video/ov2640.c:328:17: error: Left bracket not on separate line
drivers/video/ov2640.c:328:32: error: Left bracket not on separate line
drivers/video/ov2640.c:328:47: error: Left bracket not on separate line
drivers/video/ov2640.c:328:62: error: Left bracket not on separate line
drivers/video/ov2640.c:329:17: error: Left bracket not on separate line
drivers/video/ov2640.c:329:32: error: Left bracket not on separate line
drivers/video/ov2640.c:329:47: error: Left bracket not on separate line
drivers/video/ov2640.c:329:62: error: Left bracket not on separate line
drivers/video/ov2640.c:330:17: error: Left bracket not on separate line
drivers/video/ov2640.c:330:32: error: Left bracket not on separate line
drivers/video/ov2640.c:330:47: error: Left bracket not on separate line
drivers/video/ov2640.c:330:62: error: Left bracket not on separate line
drivers/video/ov2640.c:331:17: error: Left bracket not on separate line
drivers/video/ov2640.c:331:32: error: Left bracket not on separate line
drivers/video/ov2640.c:331:47: error: Left bracket not on separate line
drivers/video/ov2640.c:331:62: error: Left bracket not on separate line
drivers/video/ov2640.c:332:17: error: Left bracket not on separate line
drivers/video/ov2640.c:332:32: error: Left bracket not on separate line
drivers/video/ov2640.c:332:47: error: Left bracket not on separate line
drivers/video/ov2640.c:332:62: error: Left bracket not on separate line
drivers/video/ov2640.c:333:17: error: Left bracket not on separate line
drivers/video/ov2640.c:333:32: error: Left bracket not on separate line
drivers/video/ov2640.c:333:47: error: Left bracket not on separate line
drivers/video/ov2640.c:333:62: error: Left bracket not on separate line
drivers/video/ov2640.c:334:17: error: Left bracket not on separate line
drivers/video/ov2640.c:334:32: error: Left bracket not on separate line
drivers/video/ov2640.c:334:47: error: Left bracket not on separate line
drivers/video/ov2640.c:334:62: error: Left bracket not on separate line
drivers/video/ov2640.c:335:17: error: Left bracket not on separate line
drivers/video/ov2640.c:335:32: error: Left bracket not on separate line
drivers/video/ov2640.c:335:47: error: Left bracket not on separate line
drivers/video/ov2640.c:335:62: error: Left bracket not on separate line
drivers/video/ov2640.c:336:17: error: Left bracket not on separate line
drivers/video/ov2640.c:336:32: error: Left bracket not on separate line
drivers/video/ov2640.c:336:47: error: Left bracket not on separate line
drivers/video/ov2640.c:336:62: error: Left bracket not on separate line
drivers/video/ov2640.c:337:17: error: Left bracket not on separate line
drivers/video/ov2640.c:337:32: error: Left bracket not on separate line
drivers/video/ov2640.c:337:47: error: Left bracket not on separate line
drivers/video/ov2640.c:337:62: error: Left bracket not on separate line
drivers/video/ov2640.c:338:17: error: Left bracket not on separate line
drivers/video/ov2640.c:338:32: error: Left bracket not on separate line
drivers/video/ov2640.c:338:47: error: Left bracket not on separate line
drivers/video/ov2640.c:338:62: error: Left bracket not on separate line
drivers/video/ov2640.c:339:17: error: Left bracket not on separate line
drivers/video/ov2640.c:339:32: error: Left bracket not on separate line
drivers/video/ov2640.c:339:47: error: Left bracket not on separate line
drivers/video/ov2640.c:339:62: error: Left bracket not on separate line
drivers/video/ov2640.c:340:17: error: Left bracket not on separate line
drivers/video/ov2640.c:340:32: error: Left bracket not on separate line
drivers/video/ov2640.c:340:47: error: Left bracket not on separate line
drivers/video/ov2640.c:340:62: error: Left bracket not on separate line
drivers/video/ov2640.c:341:17: error: Left bracket not on separate line
drivers/video/ov2640.c:341:32: error: Left bracket not on separate line
drivers/video/ov2640.c:341:47: error: Left bracket not on separate line
drivers/video/ov2640.c:341:62: error: Left bracket not on separate line
drivers/video/ov2640.c:342:17: error: Left bracket not on separate line
drivers/video/ov2640.c:342:32: error: Left bracket not on separate line
drivers/video/ov2640.c:342:47: error: Left bracket not on separate line
drivers/video/ov2640.c:342:62: error: Left bracket not on separate line
drivers/video/ov2640.c:343:17: error: Left bracket not on separate line
drivers/video/ov2640.c:343:32: error: Left bracket not on separate line
drivers/video/ov2640.c:343:47: error: Left bracket not on separate line
drivers/video/ov2640.c:343:62: error: Left bracket not on separate line
drivers/video/ov2640.c:344:17: error: Left bracket not on separate line
drivers/video/ov2640.c:344:32: error: Left bracket not on separate line
drivers/video/ov2640.c:344:47: error: Left bracket not on separate line
drivers/video/ov2640.c:344:62: error: Left bracket not on separate line
drivers/video/ov2640.c:345:17: error: Left bracket not on separate line
drivers/video/ov2640.c:345:32: error: Left bracket not on separate line
drivers/video/ov2640.c:345:47: error: Left bracket not on separate line
drivers/video/ov2640.c:345:62: error: Left bracket not on separate line
drivers/video/ov2640.c:346:17: error: Left bracket not on separate line
drivers/video/ov2640.c:346:32: error: Left bracket not on separate line
drivers/video/ov2640.c:346:47: error: Left bracket not on separate line
drivers/video/ov2640.c:346:62: error: Left bracket not on separate line
drivers/video/ov2640.c:347:17: error: Left bracket not on separate line
drivers/video/ov2640.c:347:32: error: Left bracket not on separate line
drivers/video/ov2640.c:347:47: error: Left bracket not on separate line
drivers/video/ov2640.c:347:62: error: Left bracket not on separate line
drivers/video/ov2640.c:348:17: error: Left bracket not on separate line
drivers/video/ov2640.c:348:32: error: Left bracket not on separate line
drivers/video/ov2640.c:348:47: error: Left bracket not on separate line
drivers/video/ov2640.c:348:62: error: Left bracket not on separate line
drivers/video/ov2640.c:349:17: error: Left bracket not on separate line
drivers/video/ov2640.c:349:32: error: Left bracket not on separate line
drivers/video/ov2640.c:349:47: error: Left bracket not on separate line
drivers/video/ov2640.c:349:62: error: Left bracket not on separate line
drivers/video/ov2640.c:350:17: error: Left bracket not on separate line
drivers/video/ov2640.c:350:32: error: Left bracket not on separate line
drivers/video/ov2640.c:350:47: error: Left bracket not on separate line
drivers/video/ov2640.c:350:62: error: Left bracket not on separate line
drivers/video/ov2640.c:351:17: error: Left bracket not on separate line
drivers/video/ov2640.c:351:32: error: Left bracket not on separate line
drivers/video/ov2640.c:351:47: error: Left bracket not on separate line
drivers/video/ov2640.c:351:62: error: Left bracket not on separate line
drivers/video/ov2640.c:359:17: error: Left bracket not on separate line
drivers/video/ov2640.c:359:32: error: Left bracket not on separate line
drivers/video/ov2640.c:359:47: error: Left bracket not on separate line
drivers/video/ov2640.c:359:62: error: Left bracket not on separate line
drivers/video/ov2640.c:360:17: error: Left bracket not on separate line
drivers/video/ov2640.c:360:32: error: Left bracket not on separate line
drivers/video/ov2640.c:360:47: error: Left bracket not on separate line
drivers/video/ov2640.c:360:62: error: Left bracket not on separate line
drivers/video/ov2640.c:368:17: error: Left bracket not on separate line
drivers/video/ov2640.c:368:32: error: Left bracket not on separate line
drivers/video/ov2640.c:368:47: error: Left bracket not on separate line
drivers/video/ov2640.c:368:62: error: Left bracket not on separate line
drivers/video/ov2640.c:376:17: error: Left bracket not on separate line
drivers/video/ov2640.c:376:32: error: Left bracket not on separate line
drivers/video/ov2640.c:376:47: error: Left bracket not on separate line
drivers/video/ov2640.c:376:62: error: Left bracket not on separate line
drivers/video/ov2640.c:384:17: error: Left bracket not on separate line
drivers/video/ov2640.c:384:32: error: Left bracket not on separate line
drivers/video/ov2640.c:384:47: error: Left bracket not on separate line
drivers/video/ov2640.c:384:62: error: Left bracket not on separate line
drivers/video/ov2640.c:392:17: error: Left bracket not on separate line
drivers/video/ov2640.c:392:32: error: Left bracket not on separate line
drivers/video/ov2640.c:392:47: error: Left bracket not on separate line
drivers/video/ov2640.c:392:62: error: Left bracket not on separate line
drivers/video/ov2640.c:400:17: error: Left bracket not on separate line
drivers/video/ov2640.c:400:32: error: Left bracket not on separate line
drivers/video/ov2640.c:400:47: error: Left bracket not on separate line
drivers/video/ov2640.c:400:62: error: Left bracket not on separate line
drivers/video/ov2640.c:408:17: error: Left bracket not on separate line
drivers/video/ov2640.c:408:32: error: Left bracket not on separate line
drivers/video/ov2640.c:408:47: error: Left bracket not on separate line
drivers/video/ov2640.c:408:62: error: Left bracket not on separate line
drivers/video/ov2640.c:409:17: error: Left bracket not on separate line
drivers/video/ov2640.c:416:17: error: Left bracket not on separate line
drivers/video/ov2640.c:416:32: error: Left bracket not on separate line
drivers/video/ov2640.c:416:47: error: Left bracket not on separate line
drivers/video/ov2640.c:416:62: error: Left bracket not on separate line
drivers/video/ov2640.c:417:17: error: Left bracket not on separate line
drivers/video/ov2640.c:417:32: error: Left bracket not on separate line
drivers/video/ov2640.c:424:17: error: Left bracket not on separate line
drivers/video/ov2640.c:424:32: error: Left bracket not on separate line
drivers/video/ov2640.c:424:47: error: Left bracket not on separate line
drivers/video/ov2640.c:424:62: error: Left bracket not on separate line
drivers/video/ov2640.c:425:17: error: Left bracket not on separate line
drivers/video/ov2640.c:425:32: error: Left bracket not on separate line
drivers/video/ov2640.c:437:17: error: Left bracket not on separate line
drivers/video/ov2640.c:444:17: error: Left bracket not on separate line
drivers/video/ov2640.c:444:32: error: Left bracket not on separate line
drivers/video/ov2640.c:444:47: error: Left bracket not on separate line
drivers/video/ov2640.c:444:62: error: Left bracket not on separate line
drivers/video/ov2640.c:452:17: error: Left bracket not on separate line
drivers/video/ov2640.c:452:32: error: Left bracket not on separate line
drivers/video/ov2640.c:452:47: error: Left bracket not on separate line
drivers/video/ov2640.c:464:17: error: Left bracket not on separate line
drivers/video/ov2640.c:464:32: error: Left bracket not on separate line
drivers/video/ov2640.c:464:47: error: Left bracket not on separate line
drivers/video/ov2640.c:464:62: error: Left bracket not on separate line
drivers/video/ov2640.c:465:17: error: Left bracket not on separate line
drivers/video/ov2640.c:465:32: error: Left bracket not on separate line
drivers/video/ov2640.c:465:47: error: Left bracket not on separate line
drivers/video/ov2640.c:465:62: error: Left bracket not on separate line
drivers/video/ov2640.c:466:17: error: Left bracket not on separate line
drivers/video/ov2640.c:466:32: error: Left bracket not on separate line
drivers/video/ov2640.c:466:47: error: Left bracket not on separate line
drivers/video/ov2640.c:466:62: error: Left bracket not on separate line
drivers/video/ov2640.c:467:17: error: Left bracket not on separate line
drivers/video/ov2640.c:467:32: error: Left bracket not on separate line
drivers/video/ov2640.c:467:47: error: Left bracket not on separate line
drivers/video/ov2640.c:467:62: error: Left bracket not on separate line
drivers/video/ov2640.c:468:17: error: Left bracket not on separate line
drivers/video/ov2640.c:468:32: error: Left bracket not on separate line
drivers/video/ov2640.c:468:47: error: Left bracket not on separate line
drivers/video/ov2640.c:468:62: error: Left bracket not on separate line
drivers/video/ov2640.c:469:17: error: Left bracket not on separate line
drivers/video/ov2640.c:469:32: error: Left bracket not on separate line
drivers/video/ov2640.c:469:47: error: Left bracket not on separate line
drivers/video/ov2640.c:469:62: error: Left bracket not on separate line
drivers/video/ov2640.c:470:17: error: Left bracket not on separate line
drivers/video/ov2640.c:470:32: error: Left bracket not on separate line
drivers/video/ov2640.c:470:47: error: Left bracket not on separate line
drivers/video/ov2640.c:470:62: error: Left bracket not on separate line
drivers/video/ov2640.c:471:17: error: Left bracket not on separate line
drivers/video/ov2640.c:471:32: error: Left bracket not on separate line
drivers/video/ov2640.c:471:47: error: Left bracket not on separate line
drivers/video/ov2640.c:471:62: error: Left bracket not on separate line
drivers/video/ov2640.c:472:17: error: Left bracket not on separate line
drivers/video/ov2640.c:472:32: error: Left bracket not on separate line
drivers/video/ov2640.c:472:47: error: Left bracket not on separate line
drivers/video/ov2640.c:472:62: error: Left bracket not on separate line
drivers/video/ov2640.c:473:17: error: Left bracket not on separate line
drivers/video/ov2640.c:473:32: error: Left bracket not on separate line
drivers/video/ov2640.c:473:47: error: Left bracket not on separate line
drivers/video/ov2640.c:473:62: error: Left bracket not on separate line
drivers/video/ov2640.c:474:17: error: Left bracket not on separate line
drivers/video/ov2640.c:474:32: error: Left bracket not on separate line
drivers/video/ov2640.c:474:47: error: Left bracket not on separate line
drivers/video/ov2640.c:474:62: error: Left bracket not on separate line
drivers/video/ov2640.c:475:17: error: Left bracket not on separate line
drivers/video/ov2640.c:475:32: error: Left bracket not on separate line
drivers/video/ov2640.c:475:47: error: Left bracket not on separate line
drivers/video/ov2640.c:475:62: error: Left bracket not on separate line
drivers/video/ov2640.c:476:17: error: Left bracket not on separate line
drivers/video/ov2640.c:476:32: error: Left bracket not on separate line
drivers/video/ov2640.c:476:47: error: Left bracket not on separate line
drivers/video/ov2640.c:476:62: error: Left bracket not on separate line
drivers/video/ov2640.c:477:17: error: Left bracket not on separate line
drivers/video/ov2640.c:477:32: error: Left bracket not on separate line
drivers/video/ov2640.c:477:47: error: Left bracket not on separate line
drivers/video/ov2640.c:477:62: error: Left bracket not on separate line
drivers/video/ov2640.c:478:17: error: Left bracket not on separate line
drivers/video/ov2640.c:478:32: error: Left bracket not on separate line
drivers/video/ov2640.c:478:47: error: Left bracket not on separate line
drivers/video/ov2640.c:478:62: error: Left bracket not on separate line
drivers/video/ov2640.c:479:17: error: Left bracket not on separate line
drivers/video/ov2640.c:479:32: error: Left bracket not on separate line
drivers/video/ov2640.c:479:47: error: Left bracket not on separate line
drivers/video/ov2640.c:479:62: error: Left bracket not on separate line
drivers/video/ov2640.c:480:17: error: Left bracket not on separate line
drivers/video/ov2640.c:480:32: error: Left bracket not on separate line
drivers/video/ov2640.c:480:47: error: Left bracket not on separate line
drivers/video/ov2640.c:480:62: error: Left bracket not on separate line
drivers/video/ov2640.c:481:17: error: Left bracket not on separate line
drivers/video/ov2640.c:481:32: error: Left bracket not on separate line
drivers/video/ov2640.c:481:47: error: Left bracket not on separate line
drivers/video/ov2640.c:481:62: error: Left bracket not on separate line
drivers/video/ov2640.c:482:17: error: Left bracket not on separate line
drivers/video/ov2640.c:482:32: error: Left bracket not on separate line
drivers/video/ov2640.c:482:47: error: Left bracket not on separate line
drivers/video/ov2640.c:482:62: error: Left bracket not on separate line
drivers/video/ov2640.c:483:17: error: Left bracket not on separate line
drivers/video/ov2640.c:483:32: error: Left bracket not on separate line
drivers/video/ov2640.c:483:47: error: Left bracket not on separate line
drivers/video/ov2640.c:483:62: error: Left bracket not on separate line
drivers/video/ov2640.c:484:17: error: Left bracket not on separate line
drivers/video/ov2640.c:484:32: error: Left bracket not on separate line
drivers/video/ov2640.c:484:47: error: Left bracket not on separate line
drivers/video/ov2640.c:484:62: error: Left bracket not on separate line
drivers/video/ov2640.c:485:17: error: Left bracket not on separate line
drivers/video/ov2640.c:485:32: error: Left bracket not on separate line
drivers/video/ov2640.c:485:47: error: Left bracket not on separate line
drivers/video/ov2640.c:485:62: error: Left bracket not on separate line
drivers/video/ov2640.c:486:17: error: Left bracket not on separate line
drivers/video/ov2640.c:486:32: error: Left bracket not on separate line
drivers/video/ov2640.c:486:47: error: Left bracket not on separate line
drivers/video/ov2640.c:486:62: error: Left bracket not on separate line
drivers/video/ov2640.c:487:17: error: Left bracket not on separate line
drivers/video/ov2640.c:487:32: error: Left bracket not on separate line
drivers/video/ov2640.c:487:47: error: Left bracket not on separate line
drivers/video/ov2640.c:487:62: error: Left bracket not on separate line
drivers/video/ov2640.c:488:17: error: Left bracket not on separate line
drivers/video/ov2640.c:488:32: error: Left bracket not on separate line
drivers/video/ov2640.c:488:47: error: Left bracket not on separate line
drivers/video/ov2640.c:488:62: error: Left bracket not on separate line
drivers/video/ov2640.c:489:17: error: Left bracket not on separate line
drivers/video/ov2640.c:489:32: error: Left bracket not on separate line
drivers/video/ov2640.c:489:47: error: Left bracket not on separate line
drivers/video/ov2640.c:489:62: error: Left bracket not on separate line
drivers/video/ov2640.c:490:17: error: Left bracket not on separate line
drivers/video/ov2640.c:490:32: error: Left bracket not on separate line
drivers/video/ov2640.c:490:47: error: Left bracket not on separate line
drivers/video/ov2640.c:490:62: error: Left bracket not on separate line
drivers/video/ov2640.c:491:17: error: Left bracket not on separate line
drivers/video/ov2640.c:491:32: error: Left bracket not on separate line
drivers/video/ov2640.c:491:47: error: Left bracket not on separate line
drivers/video/ov2640.c:491:62: error: Left bracket not on separate line
drivers/video/ov2640.c:492:17: error: Left bracket not on separate line
drivers/video/ov2640.c:492:32: error: Left bracket not on separate line
drivers/video/ov2640.c:492:47: error: Left bracket not on separate line
drivers/video/ov2640.c:492:62: error: Left bracket not on separate line
drivers/video/ov2640.c:493:17: error: Left bracket not on separate line
drivers/video/ov2640.c:493:32: error: Left bracket not on separate line
drivers/video/ov2640.c:493:47: error: Left bracket not on separate line
drivers/video/ov2640.c:493:62: error: Left bracket not on separate line
drivers/video/ov2640.c:494:17: error: Left bracket not on separate line
drivers/video/ov2640.c:494:32: error: Left bracket not on separate line
drivers/video/ov2640.c:494:47: error: Left bracket not on separate line
drivers/video/ov2640.c:494:62: error: Left bracket not on separate line
drivers/video/ov2640.c:495:17: error: Left bracket not on separate line
drivers/video/ov2640.c:495:32: error: Left bracket not on separate line
drivers/video/ov2640.c:495:47: error: Left bracket not on separate line
drivers/video/ov2640.c:495:62: error: Left bracket not on separate line
drivers/video/ov2640.c:496:17: error: Left bracket not on separate line
drivers/video/ov2640.c:496:32: error: Left bracket not on separate line
drivers/video/ov2640.c:496:47: error: Left bracket not on separate line
drivers/video/ov2640.c:496:62: error: Left bracket not on separate line
drivers/video/ov2640.c:497:17: error: Left bracket not on separate line
drivers/video/ov2640.c:497:32: error: Left bracket not on separate line
drivers/video/ov2640.c:497:47: error: Left bracket not on separate line
drivers/video/ov2640.c:497:62: error: Left bracket not on separate line
drivers/video/ov2640.c:498:17: error: Left bracket not on separate line
drivers/video/ov2640.c:498:32: error: Left bracket not on separate line
drivers/video/ov2640.c:498:47: error: Left bracket not on separate line
drivers/video/ov2640.c:498:62: error: Left bracket not on separate line
drivers/video/ov2640.c:499:17: error: Left bracket not on separate line
drivers/video/ov2640.c:499:32: error: Left bracket not on separate line
drivers/video/ov2640.c:499:47: error: Left bracket not on separate line
drivers/video/ov2640.c:499:62: error: Left bracket not on separate line
drivers/video/ov2640.c:500:17: error: Left bracket not on separate line
drivers/video/ov2640.c:500:32: error: Left bracket not on separate line
drivers/video/ov2640.c:500:47: error: Left bracket not on separate line
drivers/video/ov2640.c:500:62: error: Left bracket not on separate line
drivers/video/ov2640.c:501:17: error: Left bracket not on separate line
drivers/video/ov2640.c:501:32: error: Left bracket not on separate line
drivers/video/ov2640.c:501:47: error: Left bracket not on separate line
drivers/video/ov2640.c:501:62: error: Left bracket not on separate line
drivers/video/ov2640.c:510:17: error: Left bracket not on separate line
drivers/video/ov2640.c:510:32: error: Left bracket not on separate line
drivers/video/ov2640.c:510:47: error: Left bracket not on separate line
drivers/video/ov2640.c:510:62: error: Left bracket not on separate line
drivers/video/ov2640.c:511:17: error: Left bracket not on separate line
drivers/video/ov2640.c:511:32: error: Left bracket not on separate line
drivers/video/ov2640.c:511:47: error: Left bracket not on separate line
drivers/video/ov2640.c:520:17: error: Left bracket not on separate line
drivers/video/ov2640.c:520:32: error: Left bracket not on separate line
drivers/video/ov2640.c:520:47: error: Left bracket not on separate line
drivers/video/ov2640.c:520:62: error: Left bracket not on separate line
drivers/video/ov2640.c:521:17: error: Left bracket not on separate line
drivers/video/ov2640.c:521:32: error: Left bracket not on separate line
drivers/video/ov2640.c:532:17: error: Left bracket not on separate line
drivers/video/ov2640.c:532:32: error: Left bracket not on separate line
drivers/video/ov2640.c:532:47: error: Left bracket not on separate line
drivers/video/ov2640.c:532:62: error: Left bracket not on separate line
drivers/video/ov2640.c:533:17: error: Left bracket not on separate line
drivers/video/ov2640.c:533:32: error: Left bracket not on separate line
drivers/video/ov2640.c:533:47: error: Left bracket not on separate line
drivers/video/ov2640.c:533:62: error: Left bracket not on separate line
drivers/video/ov2640.c:534:17: error: Left bracket not on separate line
drivers/video/ov2640.c:534:32: error: Left bracket not on separate line
drivers/video/ov2640.c:534:47: error: Left bracket not on separate line
drivers/video/ov2640.c:534:62: error: Left bracket not on separate line
drivers/video/ov2640.c:535:17: error: Left bracket not on separate line
drivers/video/ov2640.c:535:32: error: Left bracket not on separate line
drivers/video/ov2640.c:535:47: error: Left bracket not on separate line
drivers/video/ov2640.c:535:62: error: Left bracket not on separate line
drivers/video/ov2640.c:536:17: error: Left bracket not on separate line
drivers/video/ov2640.c:536:32: error: Left bracket not on separate line
drivers/video/ov2640.c:536:47: error: Left bracket not on separate line
drivers/video/ov2640.c:536:62: error: Left bracket not on separate line
drivers/video/ov2640.c:537:17: error: Left bracket not on separate line
drivers/video/ov2640.c:537:32: error: Left bracket not on separate line
drivers/video/ov2640.c:537:47: error: Left bracket not on separate line
drivers/video/ov2640.c:537:62: error: Left bracket not on separate line
drivers/video/ov2640.c:538:17: error: Left bracket not on separate line
drivers/video/ov2640.c:538:32: error: Left bracket not on separate line
drivers/video/ov2640.c:538:47: error: Left bracket not on separate line
drivers/video/ov2640.c:538:62: error: Left bracket not on separate line
drivers/video/ov2640.c:539:17: error: Left bracket not on separate line
drivers/video/ov2640.c:539:32: error: Left bracket not on separate line
drivers/video/ov2640.c:539:47: error: Left bracket not on separate line
drivers/video/ov2640.c:550:17: error: Left bracket not on separate line
drivers/video/ov2640.c:550:32: error: Left bracket not on separate line
drivers/video/ov2640.c:550:47: error: Left bracket not on separate line
drivers/video/ov2640.c:550:62: error: Left bracket not on separate line
drivers/video/ov2640.c:551:17: error: Left bracket not on separate line
drivers/video/ov2640.c:551:32: error: Left bracket not on separate line
drivers/video/ov2640.c:551:47: error: Left bracket not on separate line
drivers/video/ov2640.c:551:62: error: Left bracket not on separate line
drivers/video/ov2640.c:552:17: error: Left bracket not on separate line
drivers/video/ov2640.c:552:32: error: Left bracket not on separate line
drivers/video/ov2640.c:552:47: error: Left bracket not on separate line
drivers/video/ov2640.c:552:62: error: Left bracket not on separate line
drivers/video/ov2640.c:553:17: error: Left bracket not on separate line
drivers/video/ov2640.c:553:32: error: Left bracket not on separate line
drivers/video/ov2640.c:553:47: error: Left bracket not on separate line
drivers/video/ov2640.c:553:62: error: Left bracket not on separate line
drivers/video/ov2640.c:554:17: error: Left bracket not on separate line
drivers/video/ov2640.c:554:32: error: Left bracket not on separate line
drivers/video/ov2640.c:554:47: error: Left bracket not on separate line
drivers/video/ov2640.c:554:62: error: Left bracket not on separate line
drivers/video/ov2640.c:555:17: error: Left bracket not on separate line
drivers/video/ov2640.c:555:32: error: Left bracket not on separate line
drivers/video/ov2640.c:555:47: error: Left bracket not on separate line
drivers/video/ov2640.c:555:62: error: Left bracket not on separate line
drivers/video/ov2640.c:556:17: error: Left bracket not on separate line
drivers/video/ov2640.c:556:32: error: Left bracket not on separate line
drivers/video/ov2640.c:556:47: error: Left bracket not on separate line
drivers/video/ov2640.c:556:62: error: Left bracket not on separate line
drivers/video/ov2640.c:557:17: error: Left bracket not on separate line
drivers/video/ov2640.c:557:32: error: Left bracket not on separate line
drivers/video/ov2640.c:557:47: error: Left bracket not on separate line
drivers/video/ov2640.c:568:17: error: Left bracket not on separate line
drivers/video/ov2640.c:568:32: error: Left bracket not on separate line
drivers/video/ov2640.c:568:47: error: Left bracket not on separate line
drivers/video/ov2640.c:568:62: error: Left bracket not on separate line
drivers/video/ov2640.c:569:17: error: Left bracket not on separate line
drivers/video/ov2640.c:569:32: error: Left bracket not on separate line
drivers/video/ov2640.c:569:47: error: Left bracket not on separate line
drivers/video/ov2640.c:569:62: error: Left bracket not on separate line
drivers/video/ov2640.c:570:17: error: Left bracket not on separate line
drivers/video/ov2640.c:570:32: error: Left bracket not on separate line
drivers/video/ov2640.c:570:47: error: Left bracket not on separate line
drivers/video/ov2640.c:570:62: error: Left bracket not on separate line
drivers/video/ov2640.c:571:17: error: Left bracket not on separate line
drivers/video/ov2640.c:571:32: error: Left bracket not on separate line
drivers/video/ov2640.c:571:47: error: Left bracket not on separate line
drivers/video/ov2640.c:571:62: error: Left bracket not on separate line
drivers/video/ov2640.c:572:17: error: Left bracket not on separate line
drivers/video/ov2640.c:572:32: error: Left bracket not on separate line
drivers/video/ov2640.c:572:47: error: Left bracket not on separate line
drivers/video/ov2640.c:572:62: error: Left bracket not on separate line
drivers/video/ov2640.c:573:17: error: Left bracket not on separate line
drivers/video/ov2640.c:573:32: error: Left bracket not on separate line
drivers/video/ov2640.c:573:47: error: Left bracket not on separate line
drivers/video/ov2640.c:573:62: error: Left bracket not on separate line
drivers/video/ov2640.c:574:17: error: Left bracket not on separate line
drivers/video/ov2640.c:574:32: error: Left bracket not on separate line
drivers/video/ov2640.c:574:47: error: Left bracket not on separate line
drivers/video/ov2640.c:574:62: error: Left bracket not on separate line
drivers/video/ov2640.c:575:17: error: Left bracket not on separate line
drivers/video/ov2640.c:575:32: error: Left bracket not on separate line
drivers/video/ov2640.c:575:47: error: Left bracket not on separate line
drivers/video/ov2640.c:586:17: error: Left bracket not on separate line
drivers/video/ov2640.c:586:32: error: Left bracket not on separate line
drivers/video/ov2640.c:586:47: error: Left bracket not on separate line
drivers/video/ov2640.c:586:62: error: Left bracket not on separate line
drivers/video/ov2640.c:587:17: error: Left bracket not on separate line
drivers/video/ov2640.c:587:32: error: Left bracket not on separate line
drivers/video/ov2640.c:587:47: error: Left bracket not on separate line
drivers/video/ov2640.c:587:62: error: Left bracket not on separate line
drivers/video/ov2640.c:588:17: error: Left bracket not on separate line
drivers/video/ov2640.c:588:32: error: Left bracket not on separate line
drivers/video/ov2640.c:588:47: error: Left bracket not on separate line
drivers/video/ov2640.c:588:62: error: Left bracket not on separate line
drivers/video/ov2640.c:589:17: error: Left bracket not on separate line
drivers/video/ov2640.c:589:32: error: Left bracket not on separate line
drivers/video/ov2640.c:589:47: error: Left bracket not on separate line
drivers/video/ov2640.c:589:62: error: Left bracket not on separate line
drivers/video/ov2640.c:590:17: error: Left bracket not on separate line
drivers/video/ov2640.c:590:32: error: Left bracket not on separate line
drivers/video/ov2640.c:590:47: error: Left bracket not on separate line
drivers/video/ov2640.c:590:62: error: Left bracket not on separate line
drivers/video/ov2640.c:591:17: error: Left bracket not on separate line
drivers/video/ov2640.c:591:32: error: Left bracket not on separate line
drivers/video/ov2640.c:591:47: error: Left bracket not on separate line
drivers/video/ov2640.c:591:62: error: Left bracket not on separate line
drivers/video/ov2640.c:592:17: error: Left bracket not on separate line
drivers/video/ov2640.c:592:32: error: Left bracket not on separate line
drivers/video/ov2640.c:592:47: error: Left bracket not on separate line
drivers/video/ov2640.c:592:62: error: Left bracket not on separate line
drivers/video/ov2640.c:593:17: error: Left bracket not on separate line
drivers/video/ov2640.c:593:32: error: Left bracket not on separate line
drivers/video/ov2640.c:593:47: error: Left bracket not on separate line
drivers/video/ov2640.c:593:62: error: Left bracket not on separate line
drivers/video/ov2640.c:604:17: error: Left bracket not on separate line
drivers/video/ov2640.c:604:32: error: Left bracket not on separate line
drivers/video/ov2640.c:604:47: error: Left bracket not on separate line
drivers/video/ov2640.c:604:62: error: Left bracket not on separate line
drivers/video/ov2640.c:605:17: error: Left bracket not on separate line
drivers/video/ov2640.c:605:32: error: Left bracket not on separate line
drivers/video/ov2640.c:605:47: error: Left bracket not on separate line
drivers/video/ov2640.c:605:62: error: Left bracket not on separate line
drivers/video/ov2640.c:606:17: error: Left bracket not on separate line
drivers/video/ov2640.c:606:32: error: Left bracket not on separate line
drivers/video/ov2640.c:606:47: error: Left bracket not on separate line
drivers/video/ov2640.c:606:62: error: Left bracket not on separate line
drivers/video/ov2640.c:607:17: error: Left bracket not on separate line
drivers/video/ov2640.c:607:32: error: Left bracket not on separate line
drivers/video/ov2640.c:607:47: error: Left bracket not on separate line
drivers/video/ov2640.c:607:62: error: Left bracket not on separate line
drivers/video/ov2640.c:608:17: error: Left bracket not on separate line
drivers/video/ov2640.c:608:32: error: Left bracket not on separate line
drivers/video/ov2640.c:608:47: error: Left bracket not on separate line
drivers/video/ov2640.c:608:62: error: Left bracket not on separate line
drivers/video/ov2640.c:609:17: error: Left bracket not on separate line
drivers/video/ov2640.c:609:32: error: Left bracket not on separate line
drivers/video/ov2640.c:609:47: error: Left bracket not on separate line
drivers/video/ov2640.c:609:62: error: Left bracket not on separate line
drivers/video/ov2640.c:610:17: error: Left bracket not on separate line
drivers/video/ov2640.c:610:32: error: Left bracket not on separate line
drivers/video/ov2640.c:610:47: error: Left bracket not on separate line
drivers/video/ov2640.c:610:62: error: Left bracket not on separate line
drivers/video/ov2640.c:611:17: error: Left bracket not on separate line
drivers/video/ov2640.c:611:32: error: Left bracket not on separate line
drivers/video/ov2640.c:611:47: error: Left bracket not on separate line
drivers/video/ov2640.c:611:62: error: Left bracket not on separate line
drivers/video/ov2640.c:622:17: error: Left bracket not on separate line
drivers/video/ov2640.c:622:32: error: Left bracket not on separate line
drivers/video/ov2640.c:622:47: error: Left bracket not on separate line
drivers/video/ov2640.c:622:62: error: Left bracket not on separate line
drivers/video/ov2640.c:623:17: error: Left bracket not on separate line
drivers/video/ov2640.c:623:32: error: Left bracket not on separate line
drivers/video/ov2640.c:623:47: error: Left bracket not on separate line
drivers/video/ov2640.c:623:62: error: Left bracket not on separate line
drivers/video/ov2640.c:624:17: error: Left bracket not on separate line
drivers/video/ov2640.c:624:32: error: Left bracket not on separate line
drivers/video/ov2640.c:624:47: error: Left bracket not on separate line
drivers/video/ov2640.c:624:62: error: Left bracket not on separate line
drivers/video/ov2640.c:625:17: error: Left bracket not on separate line
drivers/video/ov2640.c:625:32: error: Left bracket not on separate line
drivers/video/ov2640.c:625:47: error: Left bracket not on separate line
drivers/video/ov2640.c:625:62: error: Left bracket not on separate line
drivers/video/ov2640.c:626:17: error: Left bracket not on separate line
drivers/video/ov2640.c:626:32: error: Left bracket not on separate line
drivers/video/ov2640.c:626:47: error: Left bracket not on separate line
drivers/video/ov2640.c:626:62: error: Left bracket not on separate line
drivers/video/ov2640.c:627:17: error: Left bracket not on separate line
drivers/video/ov2640.c:627:32: error: Left bracket not on separate line
drivers/video/ov2640.c:627:47: error: Left bracket not on separate line
drivers/video/ov2640.c:627:62: error: Left bracket not on separate line
drivers/video/ov2640.c:628:17: error: Left bracket not on separate line
drivers/video/ov2640.c:628:32: error: Left bracket not on separate line
drivers/video/ov2640.c:628:47: error: Left bracket not on separate line
drivers/video/ov2640.c:628:62: error: Left bracket not on separate line
drivers/video/ov2640.c:629:17: error: Left bracket not on separate line
drivers/video/ov2640.c:629:32: error: Left bracket not on separate line
drivers/video/ov2640.c:640:17: error: Left bracket not on separate line
drivers/video/ov2640.c:640:32: error: Left bracket not on separate line
drivers/video/ov2640.c:640:47: error: Left bracket not on separate line
drivers/video/ov2640.c:640:62: error: Left bracket not on separate line
drivers/video/ov2640.c:641:17: error: Left bracket not on separate line
drivers/video/ov2640.c:641:32: error: Left bracket not on separate line
drivers/video/ov2640.c:641:47: error: Left bracket not on separate line
drivers/video/ov2640.c:641:62: error: Left bracket not on separate line
drivers/video/ov2640.c:642:17: error: Left bracket not on separate line
drivers/video/ov2640.c:642:32: error: Left bracket not on separate line
drivers/video/ov2640.c:642:47: error: Left bracket not on separate line
drivers/video/ov2640.c:642:62: error: Left bracket not on separate line
drivers/video/ov2640.c:643:17: error: Left bracket not on separate line
drivers/video/ov2640.c:643:32: error: Left bracket not on separate line
drivers/video/ov2640.c:643:47: error: Left bracket not on separate line
drivers/video/ov2640.c:643:62: error: Left bracket not on separate line
drivers/video/ov2640.c:644:17: error: Left bracket not on separate line
drivers/video/ov2640.c:644:32: error: Left bracket not on separate line
drivers/video/ov2640.c:644:47: error: Left bracket not on separate line
drivers/video/ov2640.c:644:62: error: Left bracket not on separate line
drivers/video/ov2640.c:645:17: error: Left bracket not on separate line
drivers/video/ov2640.c:645:32: error: Left bracket not on separate line
drivers/video/ov2640.c:645:47: error: Left bracket not on separate line
drivers/video/ov2640.c:645:62: error: Left bracket not on separate line
drivers/video/ov2640.c:646:17: error: Left bracket not on separate line
drivers/video/ov2640.c:646:32: error: Left bracket not on separate line
drivers/video/ov2640.c:646:47: error: Left bracket not on separate line
drivers/video/ov2640.c:646:62: error: Left bracket not on separate line
drivers/video/ov2640.c:647:17: error: Left bracket not on separate line
drivers/video/ov2640.c:647:32: error: Left bracket not on separate line
drivers/video/ov2640.c:647:47: error: Left bracket not on separate line
drivers/video/ov2640.c:647:62: error: Left bracket not on separate line
drivers/video/ov2640.c:658:17: error: Left bracket not on separate line
drivers/video/ov2640.c:658:32: error: Left bracket not on separate line
drivers/video/ov2640.c:658:47: error: Left bracket not on separate line
drivers/video/ov2640.c:658:62: error: Left bracket not on separate line
drivers/video/ov2640.c:659:17: error: Left bracket not on separate line
drivers/video/ov2640.c:659:32: error: Left bracket not on separate line
drivers/video/ov2640.c:659:47: error: Left bracket not on separate line
drivers/video/ov2640.c:659:62: error: Left bracket not on separate line
drivers/video/ov2640.c:660:17: error: Left bracket not on separate line
drivers/video/ov2640.c:660:32: error: Left bracket not on separate line
drivers/video/ov2640.c:660:47: error: Left bracket not on separate line
drivers/video/ov2640.c:660:62: error: Left bracket not on separate line
drivers/video/ov2640.c:661:17: error: Left bracket not on separate line
drivers/video/ov2640.c:661:32: error: Left bracket not on separate line
drivers/video/ov2640.c:661:47: error: Left bracket not on separate line
drivers/video/ov2640.c:661:62: error: Left bracket not on separate line
drivers/video/ov2640.c:662:17: error: Left bracket not on separate line
drivers/video/ov2640.c:662:32: error: Left bracket not on separate line
drivers/video/ov2640.c:662:47: error: Left bracket not on separate line
drivers/video/ov2640.c:662:62: error: Left bracket not on separate line
drivers/video/ov2640.c:663:17: error: Left bracket not on separate line
drivers/video/ov2640.c:663:32: error: Left bracket not on separate line
drivers/video/ov2640.c:663:47: error: Left bracket not on separate line
drivers/video/ov2640.c:663:62: error: Left bracket not on separate line
drivers/video/ov2640.c:664:17: error: Left bracket not on separate line
drivers/video/ov2640.c:664:32: error: Left bracket not on separate line
drivers/video/ov2640.c:664:47: error: Left bracket not on separate line
drivers/video/ov2640.c:664:62: error: Left bracket not on separate line
drivers/video/ov2640.c:665:17: error: Left bracket not on separate line
drivers/video/ov2640.c:665:32: error: Left bracket not on separate line
drivers/video/ov2640.c:665:47: error: Left bracket not on separate line
drivers/video/ov2640.c:665:62: error: Left bracket not on separate line
2020-12-05 08:13:32 -06:00
Huang Qi
fd78f83e02 drivers/video: Refine the update region notification mechanism
1.Expose the notification through fb_vtable_s::updatearea
2.Incorporate old nx_notify_rectangle into the new updatearea callback
3.Migrate the calle of nx_notify_rectangle to fb_vtable_s::updatearea

Change-Id: Ia3d1f73e8757b2d381586d76ec6adc16c810018d
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2020-08-10 08:08:33 +02:00
SPRESENSE
15be5e5e11 drivers/video: Store device operations table
Fix a bug which the device operation structure is not stored in
video_initialize().
2020-07-31 09:37:20 +02:00
SPRESENSE
3befe16f52 drivers/video: Support JPEG format in VIDEO_CAPTURE
Add support for the VIDEO stream with JPEG frames supported by ISX012.
2020-07-31 09:37:20 +02:00
Xiang Xiao
a5ef3731b1 drivers/video: fb_read/fb_write need consider the current file position
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Id3a475dac928ed3dff4eee96150badadf5210f44
2020-07-24 10:49:37 +02:00
Alin Jerpelea
c6c0214f9a boards: arm: cxd56: initilize the video stream driver from the board
The video stream driver must be intialized from the board to comply with NuttX

NOTE:
Please remove the initalization from any camera example

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2020-06-15 08:10:49 +09:00
Alin Jerpelea
8fdfb745d6 drivers: video: fix uninitialized variables
Fix the build error by initializing the variables before we perform
th querry for the ext control.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2020-06-15 08:10:49 +09:00
Gregory Nutt
0e425584b8 include/nuttx/video/video.h: Move global variable declaration out of header file
Move global variable declaration out of include/nuttx/video/video.h and into the file where it is initialized.  With some toolchains/environments, declaring globals in header files results in multiply defined symobl errors at link time.  This corrects that build problem.
2020-06-01 20:22:40 +01:00
Xiang Xiao
5eae32577e build: Move INCDIROPT to common place
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-18 15:02:55 -06:00
Gregory Nutt
57bc329aac Run nxstyle all .c and .h files modified by PR. 2020-05-17 14:01:00 -03:00
Gregory Nutt
a569006fd8 sched/: Make more naming consistent
Rename various functions per the quidelines of https://cwiki.apache.org/confluence/display/NUTTX/Naming+of+OS+Internal+Functions

    nxsem_setprotocol -> nxsem_set_protocol
    nxsem_getprotocol -> nxsem_get_protocol
    nxsem_getvalue -> nxsem_get_value
2020-05-17 14:01:00 -03:00
Gregory Nutt
5c0e8e88b1 Revert "Makefile: move INCDIROPT to common place (#625)"
This reverts commit b9ace36fcc.

This change was added by PR 625 but has a serious logic flaw.  It removes all occurrences of INCDIROPT and replaces it with a definition in tools/Config.mk:

    else ifeq ($(WINTOOL),y)
      DEFINE = "$(TOPDIR)/tools/define.sh"
      INCDIR = "$(TOPDIR)/tools/incdir.sh" -w

This logic flaw is the Config.mk is included in all Make.defs files BEFORE WINTOOL is defined.  As a result, the definition is wrong in many places when building under Cygwin with a Windows native toolchain.
2020-03-26 08:50:29 -07:00
Xiang Xiao
b9ace36fcc
Makefile: move INCDIROPT to common place (#625) 2020-03-26 08:09:59 -06:00
Alin Jerpelea
34f274f9c0 cxd56: move ISX012 camera sensor driver
This sensor driver needs rework to match the needed layout for standar NuttX driver.
In the meantime it is moved to board specific sensors to fix the violation.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2020-03-06 08:58:57 -06:00
Xiang Xiao
cde88cabcc Run codespell -w with the latest dictonary again
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-02-23 22:27:46 +01:00
Xiang Xiao
bd4e8e19d3 Run codespell -w against all files
and fix the wrong correction
2020-02-22 14:45:07 -06:00
Gregory Nutt
21aef0dd68 drivers/*/Kconfig: Consolidate driver Kconfig Files.
This commit does two things:

1. First, it reorganizes the driver Kconfig files so that each is self contained.  Before, a part of the driver configuration was in drivers/Kconfig and the rest was in in drivers/xyz/Konfig.  Now, all of the driver configuration is consolitated in the latter.

2. Second, this commit correct numerous serious errors introduced in a previous reorganization of the driver Kconfig files.  This was first noted by Nicholas Chin in PR270 for the case of the drivers/i2c/Kconfig but some examination indicates that the error was introduced into several other Kconfig files as well.

The nature of the introduced error was basically this:

- Nothing must intervene between the menuconfig selection and the following conditional configuration otpions.
- A previous PR erroneously introduced unconditional options between the menuconfig and the following confditional logic, thus corrupting the driver menus.

This error was easy to make because the driver Kconfig files were not well modularized.  Making them fully self-contained should eliminate this kind of error in the future.
2020-02-15 15:19:11 +01:00
Xiang Xiao
3cb259daa6 drivers/Kconfig: Move if/endif to subfolder Kconfig
Move if/endif to subfolder Kconfig and make ARCH_HAVE_XXX option always selectable by moving out of if/endif
2020-02-08 08:04:05 -06:00
Xiang Xiao
ac2aec96e0 Refine Kconfig under drivers folder
1.Move subsystem config into sub folder
2.Remove the duplicated if/endif

Change-Id: I0b96ac0570ee1ba62bbb95586381f5410b90bcf0
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-02-06 08:47:30 -03:00
Xiang Xiao
5c80b94820 Replace #include <semaphore.h> to #include <nuttx/semaphore.h>
Since the kernel side should call nxsem_xxx instead and remove the unused inclusion
2020-02-01 08:27:30 -06:00
Xiang Xiao
80277d1630
Refine the preprocessor conditional guard style (#190) 2020-01-31 19:07:39 +01:00
Xiang Xiao
6a3c2aded6 Fix wait loop and void cast (#24)
* Simplify EINTR/ECANCEL error handling

1. Add semaphore uninterruptible wait function
2 .Replace semaphore wait loop with a single uninterruptible wait
3. Replace all sem_xxx to nxsem_xxx

* Unify the void cast usage

1. Remove void cast for function because many place ignore the returned value witout cast
2. Replace void cast for variable with UNUSED macro
2020-01-02 10:54:43 -06:00
Gregory Nutt
244437257b drivers/: Within the OS, nxisg_usleep() should be used instead of usleep(). usleep() is a cancellation point and sets the errno value. Neither of which should be done inside the OS. 2019-11-29 17:37:39 -06:00
Xiang Xiao
3bc62f1ccc Change space to tab and help to ---help--- in Kconfig files. 2019-10-05 21:39:12 -06:00
Juha Niskanen
e8b5dd4528 Fix use of undefined pp-token #errror, other typos. 2019-09-19 18:19:18 -06:00
Alin Jerpelea
54ef3efc35 Merged in alinjerpelea/nuttx (pull request #1033)
boards: spresense: Add board initialization for isx012

Add isx012 initialization to the board and include the needed headers

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2019-09-18 11:42:35 +00:00
Gregory Nutt
cb340cbfdb Correct more uses of C11 features in common code. 2019-08-24 17:59:26 -06:00
Alin Jerpelea
9b8c4a355d Merged in alinjerpelea/nuttx (pull request #935)
drivers: video: add ISX012 Image sensor

* arch: arm: src: cxd56xx: add cisif support

    add cisif support on cxd56xx chip to be able to use cameras

    Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>

* drivers: video: add ISX012 Image sensor

    add driver for ISX012 Image sensor

    Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2019-07-04 14:02:05 +00:00
Alin Jerpelea
128c1f1430 Merged in alinjerpelea/nuttx (pull request #934)
drivers: video: add basic Video Stream support

basic video stream and capture implementation based on the
spresense SDK code release

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2019-07-04 13:30:50 +00:00
Gregory Nutt
b49be4bb20 Squashed commit of the following:
arch/:  Removed all references to CONFIG_DISABLE_POLL.  The standard POSIX poll() can not longer be disabled.
    sched/ audio/ crypto/:  Removed all references to CONFIG_DISABLE_POLL.  The standard POSIX poll() can not longer be disabled.
    Documentation/:  Removed all references to CONFIG_DISABLE_POLL.  The standard POSIX poll() can not longer be disabled.
    fs/:  Removed all references to CONFIG_DISABLE_POLL.  The standard POSIX poll() can not longer be disabled.
    graphics/:  Removed all references to CONFIG_DISABLE_POLL.  The standard POSIX poll() can not longer be disabled.
    net/:  Removed all references to CONFIG_DISABLE_POLL.  The standard POSIX poll() can not longer be disabled.
    drivers/:  Removed all references to CONFIG_DISABLE_POLL.  The standard POSIX poll() can not longer be disabled.
    include/, syscall/, wireless/:  Removed all references to CONFIG_DISABLE_POLL.  The standard POSIX poll() can not longer be disabled.
    configs/:  Remove all references to CONFIG_DISABLE_POLL.  Standard POSIX poll can no longer be disabled.
2019-05-21 18:57:54 -06:00
Bill Gatliff
a9f0cbdba7 drivers/video/max7456.c: Adds a read-only (for now) /dev/osd0/CM interface for obtaining the chip's onboard NVM character map data. Use seek() to position the cursor over a desired subset of bytes, or request a large read to obtain the entire EEPROM memory contents. Values are returned in binary form. Use hexdump, etc. to format them for viewing. 2019-03-26 22:29:06 -06:00
Gregory Nutt
a31fc4c5b6 Grrr.. last (cosmetic) edits were still in editor. 2019-03-24 06:55:47 -06:00
Bill Gatliff
38f2346bdb drivers/video/max7456.c: Support for the Maxim MAX7456 on-screen-display chip. 2019-03-24 06:49:34 -06:00
Gregory Nutt
af8b1abf73 Merged fboverlay into master 2018-05-17 16:11:09 -06:00
Gregory Nutt
b54ffe858a Standardization of some function headers. 2018-03-13 09:52:27 -06:00
Gregory Nutt
2fb52cf3d9 Framebuffer Driver: Small modification convention for multi-planar displays (of which there are none). 2017-11-29 07:06:53 -06:00
Gregory Nutt
0942b5441d Update some comments 2017-11-04 14:33:20 -06:00
Gregory Nutt
205fe8053f Kconfigs: Add CONFIG_LCD_UPDATE that works like CONFIG_NX_UPDATE but can be enabled without enabling the graphics subsystem. 2017-11-04 14:08:21 -06:00
Gregory Nutt
725aa4add8 Fix some typos in comments; Fix some bad spacing in fb.h 2017-09-18 09:03:26 -06:00
Gregory Nutt
882adb2c82 drivers/video/fb.c: Fix a typo introduced in previous commit. 2017-09-17 14:07:08 -06:00
Gregory Nutt
cfd44639b2 Fix some cosmetic stuff in the framebuffer character driver and in the LCD framebuffer driver front-end. 2017-09-17 13:48:10 -06:00
Gregory Nutt
b90b4d40b6 Fix typos/spelling. SAMV71-XULT: Update README, add support for fb_driver. 2017-09-17 10:38:34 -06:00
Gregory Nutt
b747192f20 Squashed commit of the following:
drivers/video:     fb driver now clears framebuffer initially.  Eliminates (or minimizes) initial garbage on the display.
    configs/open1788:  Initialization now follows the pattern of other boards.  Add initialization of fb driver.
    configs/open1788:  Add a configuration for testing the framebuffer driver.
2017-09-16 12:49:16 -06:00
Gregory Nutt
278532eb44 drivers/video/fb.c: File offset is in units of bytes, not pixels. 2017-09-14 08:43:41 -06:00
Gregory Nutt
831ee3bb72 Rename CONFIG_VIDEO_DEVICES to CONFIG_DRIVERS_VIDEO to conform better to the evolving configuration naming standard. 2017-09-12 14:03:51 -06:00
Gregory Nutt
107866c00e sim/configs/fb: Add a configuration for non-graphical testing of the frambuffer character driver using apps/example/fb
drivers/video/fb.c and include/nuttx/video.fb.h:  Some improvements and fixes from early testing sith the sim/fb cnofiguration.
2017-09-12 09:48:47 -06:00
Gregory Nutt
acfa706df3 drivers/video/fb.c: Remove some logic that is not currently used. 2017-09-11 17:55:04 -06:00
Gregory Nutt
f3fc9c0d03 drivers/video/fb.c: Add support for LCD drivers that use a simulated framebuffer and must receive explicit notification when there is an update to a region in the framebuffer. 2017-09-11 16:43:12 -06:00
Gregory Nutt
bf33f1d63e Squashed commit of the following:
drivers/video/fb.c:  Framebuffer driver is code complete but as of yet untested.
    drivers/video/fb.c:  Add framebuffer character device.  This is basically only the framework for the driver; a lot of logic is still missing.
2017-09-11 16:26:18 -06:00
Gregory Nutt
d5207efb5a Be consistent... Use Name: consistent in function headers vs Function: 2017-04-21 16:33:14 -06:00
Gregory Nutt
0c8c7fecf0 Add _ to the beginning of all debug macros to avoid name collisions 2016-06-16 12:33:32 -06:00
Gregory Nutt
a1469a3e95 Add CONFIG_DEBUG_ERROR. Change names of *dbg() * *err() 2016-06-11 15:50:49 -06:00
Gregory Nutt
1cdc746726 Rename CONFIG_DEBUG to CONFIG_DEBUG_FEATURES 2016-06-11 14:14:08 -06:00
Gregory Nutt
fc3540cffe Replace all occurrences of vdbg with vinfo 2016-06-11 11:59:51 -06:00
Gregory Nutt
69ce24c70c I2C: Remove the setfrequency method from the interface 2016-02-01 16:31:13 -06:00
Gregory Nutt
f9053182d3 I2C: Remove setaddress method 2016-02-01 12:14:31 -06:00
Gregory Nutt
8c9bddf998 I2C: Eliminate the I2C_WRITE and I2C_READ macros 2016-02-01 08:57:22 -06:00
Gregory Nutt
3a781a2d3f Remove I2C slave methods from I2C master interface; rename i2c_dev_s to i2c_master_s. 2016-01-30 08:36:47 -06:00
Gregory Nutt
ceb415204e Move include/nuttx/i2c.h to include/nuttx/i2c/i2c_master.h 2016-01-30 08:00:16 -06:00
Gregory Nutt
c6d967e632 OVR2640: Reverse frequency/address 2016-01-16 09:05:39 -06:00
Paul A. Patience
3b89eabd50 Correct #if to #ifdef when the macro can be undefined. Fix bug in AT24XX driver: it should compare AT24XX_ADDRSIZE to 2. 2015-09-01 13:52:29 -04:00
Gregory Nutt
342f5fe33d Fix references to the no-longer-existent misc/ directory in comments, README files, and documentation 2015-06-28 08:08:57 -06:00
Gregory Nutt
3a1324741a More trailing whilespace removal 2014-04-13 14:32:20 -06:00
Gregory Nutt
bdfb2f7eb6 More OV2640 initialization logic 2013-12-10 09:10:39 -06:00
Gregory Nutt
4d07c15932 Add OV2640 camera support to test the SAMA5 ISI peripheral 2013-12-09 10:51:22 -06:00