ligd
23d1d4c42a
power: avoid sem_wait called in IRQ handler
...
error backrace:
_assert --- assert again
sem_wait
pm_unregister
wdog_notifier
panic_notifier_call_chain
_assert
dataabort
Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-01-17 01:25:27 +08:00
ligd
38c6f20d17
pm: add pm_domain_lock/unlock support
...
Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-01-17 01:25:27 +08:00
ligd
d2ef505684
pm: add lock for pm_auto_updatestate_cb()
...
Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-01-17 01:25:27 +08:00
Xiang Xiao
a851ad84c3
net: consistent the net sem wait naming conversion
...
to prepare the new mutex wait function
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-01-15 12:31:30 -03:00
TimJTi
f5e8c30808
Add ACT8945A power driver
...
Update act8945a.c
Update Kconfig
Update act8945a.c
Corrections (xiaoxiang781216)
2023-01-14 18:49:25 +08:00
liushuai25
ea67dafd93
Fix scope issues with "switch ... case"
...
Signed-off-by: liushuai25 <liushuai25@xiaomi.com>
2023-01-14 13:38:37 +08:00
liushuai25
57295d750d
Use C89 compatible initializer and modify code format
...
Signed-off-by: liushuai25 <liushuai25@xiaomi.com>
Update drivers/video/mipidsi/mipi_dsi_device.c
Co-authored-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2023-01-13 23:10:56 +08:00
liushuai25
6b729487fb
feat: add mipidsi support
...
add mipi dsi subsystem support.
reference links:
https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/drm_mipi_dsi.c
https://github.com/torvalds/linux/blob/master/include/video/mipi_display.h
Signed-off-by: liushuai25 <liushuai25@xiaomi.com>
2023-01-13 23:10:56 +08:00
Jani Paalijarvi
bd461a1016
drivers/eeprom/i2c_xx24xx.c: Fix compiler warnings
...
Debug prints were not able to handle 64bit off_t and size_t.
2023-01-13 23:08:58 +08:00
Lee Lup Yuen
6de5a862cd
drivers/input: Add driver for Goodix GT9XX Touch Panel
...
This PR adds the driver for Goodix GT9XX I2C Touch Panel, which will be called by PINE64 PinePhone.
Our driver follows the design of the NuttX Driver for [Cypress MBR3108](https://github.com/apache/nuttx/blob/master/drivers/input/cypress_mbr3108.c ).
We have documented our driver here: ["NuttX Touch Panel Driver for PinePhone"](https://lupyuen.github.io/articles/touch2#appendix-nuttx-touch-panel-driver-for-pinephone )
`drivers/input/Kconfig`: Added option `INPUT_GT9XX` to select GT9XX Driver
`drivers/input/Make.defs`: Added GT9XX Driver to Makefile
`drivers/input/gt9xx.c`, `gt9xx.h`: I2C Driver for GT9XX Touch Panel
2023-01-13 12:19:53 +08:00
zhanghongyu
48c9d10336
net_socket: add accept4 function
...
Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
2023-01-11 23:28:08 +08:00
xinbingnan
1ce93a7d9a
sensors/bmi160.c: fix i2C read and write behavior
...
There is a problem with the original driver reading and writing behavior, refer to the driver of mpu60x0 to make corresponding changes.
Signed-off-by: xinbingnan <xinbingnan@xiaomi.com>
2023-01-11 21:12:29 +08:00
梁超众
aca1a065a8
move usrsock to kernel space
...
Signed-off-by: 梁超众 <liangchaozhong@xiaomi.com>
2023-01-11 15:14:03 +08:00
chengkai
f864e5f657
wireless/bluetooth: add interrupt_context hander for netsnoop
...
Signed-off-by: chengkai <chengkai@xiaomi.com>
2023-01-10 18:08:22 +08:00
田昕
587305723e
drivers/pipe:add PIPEIOC_POLLTHRES to set POLLIN/POLLOUT threshold
...
Signed-off-by: 田昕 <tianxin7@xiaomi.com>
2023-01-10 13:33:13 +08:00
Zhe Weng
5e42bd97cd
virtio/net: Try fix virtnet logic
...
Signed-off-by: Zhe Weng <wengzhe@xiaomi.com>
2023-01-09 10:10:49 +09:00
anjiahao
96ec6983db
watchdog:use 'V' to stop watchdog
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2023-01-06 20:02:26 +08:00
yinshengkai
6064aa8bb5
drivers/note: remove choice in Kconfig
...
To support multiple note drivers to be used at the same time
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-01-06 16:23:00 +08:00
yinshengkai
2e4c4822eb
segger/sysview: add up_perf_freq result chaeck
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-01-06 15:06:15 +08:00
Sebastien Lorquet
af6c990498
add support for more is25 mtd devices
2023-01-06 11:52:37 +08:00
anjiahao
5e878186c7
watchdog:add a callback when painc stop the watchdog
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2023-01-06 10:42:37 +08:00
Xiang Xiao
1a59f4ed00
mm/map: Remove the unnessary map.h inclusion in various drivers
...
and Fix include/nuttx/mm/map.h:55:28: error: 'struct task_group_s' declared inside parameter list will not be visible outside of this definition or declaration
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-01-05 16:06:53 +02:00
yinshengkai
8f823ce320
sergger: add note_ prefix to sysview
...
change 1: rename sysview.c to note_sysview.c
change 2: add note_ prefix to sysview's public function
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-01-05 22:04:52 +08:00
yinshengkai
77466742c7
drivers/segger: register sysview to note drivers list
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-01-05 22:04:52 +08:00
yinshengkai
4ba7624804
Revert "Sysview add prefix kconfig to add an option to decouple sched_note calls"
...
This reverts commit f72f7ebee0
.
2023-01-05 22:04:52 +08:00
yinshengkai
e9ed994fec
syslog: merge multiple lib_sprintf into one
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-01-05 02:00:43 +08:00
yinshengkai
74b8776872
syslog: put variable initialization in the front
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-01-05 02:00:43 +08:00
yinshengkai
72b19200b5
syslog: replace the switch statement with an array of strings
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-01-05 02:00:43 +08:00
Xiang Xiao
7179d57026
fs: Check offset and length more carefully in mmap callback
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-01-04 17:43:59 +02:00
Xiang Xiao
b0a0ba3ad7
fs: Move mmap callback before truncate in [file|mountpt]_operations
...
since mmap may exist in block_operations, but truncate may not,
moving mmap beforee truncate could make three struct more compatible
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-01-04 17:43:59 +02:00
Xiang Xiao
779a610ca3
Remove the unnecessary NULL fields in global instance definition of file_operations
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-01-04 00:32:13 +02:00
Xiang Xiao
1815f8b731
drivers/note: Add const to g_notelog_ops
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-01-04 00:21:18 +02:00
Xiang Xiao
98ab55ef68
drivers/note: Replace the scritical section with spin_xxx_wo_note
...
to avoid to generate the unexpected schedule information
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-01-04 00:21:18 +02:00
zouboan
56c6943311
sensors/mpu60x0: fix build warning about data type
2023-01-03 01:45:56 +08:00
yinshengkai
1cee890aa7
drivers/note: unify the spinlock operation in noteram
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-01-02 22:29:01 +08:00
Jukka Laitinen
f33dc4df3f
Change FIOC_MMAP into file operation call
...
- Add mmap into file_operations and remove it from ioctl definitions.
- Add mm_map structure definitions to support future unmapping
- Modify all drivers to initialize the operations struct accordingly
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2023-01-02 11:23:20 -03:00
Jukka Laitinen
41e9df2f3e
Add ftruncate into file operation calls
...
- Add truncate into file_operations
- Move truncate to be common for mountpt_operations and file_operations
- Modify all drivers to initialize the operations struct accordingly
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2023-01-02 11:23:20 -03:00
yinshengkai
275b2e70a4
syslog: fix extra line breaks in syslog when SYSLOG_COLOR_OUTPUT is enabled
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-01-02 21:22:46 +08:00
Xiang Xiao
cc9166274a
drivers/note: Fix the mismatch of va_end call
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-31 14:57:47 +02:00
yinshengkai
f85102d81b
drivers/note: adjust note kconfig order
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-12-30 15:50:30 -03:00
yinshengkai
ca5fcc58c2
sched: move SCHED_INSTRUMENTATION_xxx to note Kconfig
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-12-30 15:50:30 -03:00
yinshengkai
64b6df42a4
drivers/note: register notelog device
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-12-30 22:21:12 +08:00
yinshengkai
376e30193b
drivers/note: remove sched_note_syscall_xxx in notelog
...
syslog is a system call, which will cause recursion after turning on SCHED_INSTRUMENTATION_SYSCALL
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-12-30 22:21:12 +08:00
yinshengkai
bc7c520eca
drivers/note: add note_syscall_enter parameter list
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-12-29 09:25:54 -03:00
yinshengkai
dd32eccfc3
drivers/note: Move taskname related functions to note_driver.c
...
so all note drivers can retrieve the task name even after the task exit
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-12-26 15:03:57 +08:00
Xiang Xiao
7322eafba7
drivers/usb: Fix the typo error in Kconfig
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-25 01:01:26 +02:00
Xiang Xiao
02e92d2ba5
Fix ower/pm/pm_procfs.c:46:15: error: format '%lu' expects argument of type 'long unsigned int', but argument 5 has type 'time_t' {aka 'long long int'}
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-24 11:26:48 -03:00
wangbowen6
069fac1c67
power/relay: add relay driver framework for NuttX
...
Signed-off-by: wangbowen6 <wangbowen6@xiaomi.com>
2022-12-22 20:30:49 +08:00
TimJTi
5f7bf743c5
Add LP503x RGB LED driver
...
style corrections
Update lp503x.h
Update lp503x.h
Update lp503x.c
Update lp503x.h
post review changes
2022-12-22 13:39:05 +08:00
Petro Karashchenko
b107e4f417
nuttx: unify MIN, MAX and ABS macro definition across the code
...
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-12-21 09:31:28 +08:00
pengyiqiang
72fdea5c13
video/fb: initializes the info structure
...
Signed-off-by: pengyiqiang <pengyiqiang@xiaomi.com>
2022-12-21 01:16:55 +02:00
zhanghongyu
ba9ef06970
tun: add ioctl cmd TUNGETIFF implement
...
Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
2022-12-20 21:15:50 +08:00
Peter Bee
2b11fd585f
drivers/video: fix typo
...
Wrong buf used
Signed-off-by: Peter Bee <bijunda1@xiaomi.com>
2022-12-20 17:00:44 +08:00
jihandong
8e6185f4ad
driver/fb: support linux info.
...
add struct fix_screeninfo and var_screeninfo, and related ioctl,
macro.
Signed-off-by: jihandong <jihandong@xiaomi.com>
2022-12-20 15:54:00 +08:00
Xiang Xiao
243983328a
drivers/video: Correct the code style
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-17 20:43:07 +08:00
Xiang Xiao
21e35362a3
drivers/video: Add stop_capture function
...
and ensure imgsensor_ops_s::stop_capture get called
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-17 20:43:07 +08:00
Xiang Xiao
eb4dabaac6
drivers/video: Check th size for IMGSENSOR_CTRL_TYPE_U[8|16|32]
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-17 20:43:07 +08:00
Xiang Xiao
4773eec916
drivers/video: Move the clip operation from video_s_selection to validate_frame_setting
...
to ensure the validation is same for VIDIOC_S_SELECTION, VIDIOC_S_PARM and VIDIOC_S_FMT
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-17 20:43:07 +08:00
Xiang Xiao
10d79195ba
drivers/video: Replace malloc/realloc/free with kmm_[malloc/realloc/free]
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-17 20:43:07 +08:00
Xiang Xiao
ec1cbed9b0
drivers/video: Zero all fields in an output struct
...
and don't zero fields which is used as input
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-17 20:43:07 +08:00
Xiang Xiao
5eb8189c26
drivers/video: Remove validate_frame_setting NULL check from video_[s|try]_fmt
...
since the check is already done in validate_frame_setting
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-17 20:43:07 +08:00
yinshengkai
6f66c0ea0b
drivers/note: sched_note support mulit-channel
...
call callbacks for different channels in sched_note_*
noteram channel is enabled by default
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-12-17 19:41:21 +08:00
Xiang Xiao
9cc608e4c4
drivers/serial: Don't call uart_shutdown if the serial work as a console
...
since uart_setup is skip at line 556 for the console device
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-17 01:04:15 +02:00
Xiang Xiao
d5689e070b
net/arp: Remove nuttx/net/arp.h
...
1.move ARPHRD_ETHER to netinet/arp.h
1.move arp_entry_s to net/arp/arp.h
2.move arp_input to nuttx/net/netdev.h
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-16 22:10:59 +02:00
Xiang Xiao
06842c824a
sched/note: Change sched_note_[begin|end] to macro
...
improve the speed
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-16 12:20:53 +02:00
yinshengkai
552cf4b549
merge sched_note_spinxx into sched_note_spincommon
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-12-16 17:03:53 +08:00
chao an
01eb4d586b
mm/iob: iob members are initialized after allocate
...
Signed-off-by: chao an <anchao@xiaomi.com>
2022-12-16 09:51:53 +08:00
yinshengkai
2460ff4f78
drivers/note: rename /dev/note to /dev/note/ram
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-12-15 15:53:49 +08:00
Xiang Xiao
03f07effc9
drivers/note: Fix the style issue
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-14 21:24:13 +02:00
Xiang Xiao
c36640e205
drivers/segger: Rename nuttx/note/note_sysview.h to nuttx/segger/sysview.h
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-14 21:24:13 +02:00
Xiang Xiao
126c93015f
drivers/node: Rename sched_note.c to to note_driver.c
...
prepare to support the multiple note driver
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-14 21:24:13 +02:00
Xiang Xiao
d7307ef26c
drivers/node: Rename note_register to note_initialize
...
prepare to support the multiple note driver
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-14 21:24:13 +02:00
Xiang Xiao
1555c9b8f8
drivers/video: Zero next field of dequeued buffer before return dequeue_vbuf_unsafe
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-13 21:38:22 +02:00
Xiang Xiao
e15bccaa71
drivers/video: Don't need update vbuf_tail in dequeue_vbuf_unsafe
...
since it is already done in video_framebuff_queue_container
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-13 21:38:22 +02:00
Xiang Xiao
01d7f44480
drivers/video: Merge vbuf_next assignment in video_framebuff_queue_container
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-13 21:38:22 +02:00
Xiang Xiao
d09f1fb186
drivers/video: Keep the old state in case of fail
...
and ensure the internal state get clear if sz equals zero
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-13 21:38:22 +02:00
Xiang Xiao
ae3cadf03c
drivers/video: Skip all action if video_framebuff_realloc_container doesn't change the container size
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-13 21:38:22 +02:00
Xiang Xiao
aa20b1e8bd
drivers/video: Zero all video_framebuff_t fields in video_framebuff_init
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-13 21:38:22 +02:00
chao an
cda8b79950
virtio/net: reschedule interrupt work If rx data remaining
...
Signed-off-by: chao an <anchao@xiaomi.com>
2022-12-12 16:56:11 +09:00
yinshengkai
026c8eede0
drivers/note: unify spinlock related functions
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-12-10 02:30:24 +08:00
Peter Bee
77504aa1b5
drivers/video: minor fix
...
Fix missing header for bool in imgsensor.h and FAR in video.c
Signed-off-by: Peter Bee <bijunda1@xiaomi.com>
2022-12-09 23:37:49 +08:00
yinshengkai
09814831b8
sched: move sched_note.c to drivers/note
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-12-09 23:36:11 +08:00
Peter van der Perk
f72f7ebee0
Sysview add prefix kconfig to add an option to decouple sched_note calls
2022-12-08 17:49:55 +01:00
zhangyuan21
d2c52db68e
usb/ft232r: fixed build issue
...
1. fixed build issue;
2. make sure the read data length must greater than or equal to 2;
Signed-off-by: zhangyuan21 <zhangyuan21@xiaomi.com>
2022-12-08 22:49:26 +08:00
zhangyuan21
5dc4e23bb7
usbdev/adb: fixed usbclass steup issue
...
1. set usbdev when usb class bind
2. don't call EP_SUBMIT when receive OUT message
Signed-off-by: zhangyuan21 <zhangyuan21@xiaomi.com>
2022-12-07 12:24:09 +08:00
sunkun3
d9acaeaccf
usbdev:resolve ADB compilation errors
...
Signed-off-by: sunkun3 <sunkun3@xiaomi.com>
2022-12-07 12:24:09 +08:00
zhangyuan21
9150ea0e95
arch_alarm: don't init local variable for fpu test case fail
...
D16 register will be cleared when compiling with gcc on some boards.
Signed-off-by: zhangyuan21 <zhangyuan21@xiaomi.com>
2022-12-07 12:21:16 +08:00
Peter Bee
31347da187
drivers/video: add support for V4L2 mmap-ed buffer
...
Support V4L2_MEMORY_MMAP memory mode
Signed-off-by: Peter Bee <bijunda1@xiaomi.com>
2022-12-07 01:21:46 +08:00
Xiang Xiao
b526e06de1
drivers/lcd: Reuse lib_meminstream_s as much as possible
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-05 14:27:55 +01:00
Xiang Xiao
055f1f33eb
libc/stream: Rename [lib_stream_](put|get) to [lib_stream_](putc|getc)
...
to make the naming style consistent with each other
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-05 14:27:55 +01:00
Xiang Xiao
4be9ec774b
Don't download tarballs if a local git repo found
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-05 10:47:36 +01:00
Xiang Xiao
f142cf0e55
drivers/video: Remove memset from cleanup_streamresources
...
since initialize_streamresources will do it
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-05 10:35:26 +01:00
Xiang Xiao
99311ed6a5
drivers/video: Should do uninitialization if is_initialized is true
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-05 10:35:26 +01:00
Xiang Xiao
92e72f8624
drivers/video: Return zero if gamma curve isn't supported in initialize_scene_gamma
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-05 10:35:26 +01:00
Xiang Xiao
c8868b3745
drivers/video: Return 0 in case g_video_sensor_ops or get_supported_value is NULL
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-05 10:35:26 +01:00
Xiang Xiao
c6e9edcbb6
net: Rename arp_arpin to arp_input
...
align with other similar function(e.g. ipv4_input and ipv6_input)
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-04 20:39:21 +08:00
chao an
34d2cde8a8
net/l2/l3/l4: add support of iob offload
...
1. Add new config CONFIG_NET_LL_GUARDSIZE to isolation of l2 stack,
which will benefit l3(IP) layer for multi-MAC(l2) implementation,
especially in some NICs such as celluler net driver.
new configuration options: CONFIG_NET_LL_GUARDSIZE
CONFIG_NET_LL_GUARDSIZE will reserved l2 buffer header size of
network buffer to isolate the L2/L3 (MAC/IP) data on network layer,
which will be beneficial to L3 network layer protocol transparent
transmission and forwarding
------------------------------------------------------------
Layout of frist iob entry:
iob_data (aligned by CONFIG_IOB_ALIGNMENT)
|
| io_offset(CONFIG_NET_LL_GUARDSIZE)
| |
-------------------------------------------------
iob | Reserved | io_len |
-------------------------------------------------
-------------------------------------------------------------
Layout of different NICs implementation:
iob_data (aligned by CONFIG_IOB_ALIGNMENT)
|
| io_offset(CONFIG_NET_LL_GUARDSIZE)
| |
-------------------------------------------------
Ethernet | Reserved | ETH_HDRLEN | io_len |
---------------------------------|---------------
8021Q | Reserved | ETH_8021Q_HDRLEN | io_len |
---------------------------------|---------------
ipforward | Reserved | io_len |
-------------------------------------------------
--------------------------------------------------------------------
2. Support iob offload to l2 driver to avoid unnecessary memory copy
Support send/receive iob vectors directly between the NICs and l3/l4
stack to avoid unnecessary memory copies, especially on hardware that
supports Scatter/gather, which can greatly improve performance.
new interface to support iob offload:
------------------------------------------
| IOB version | original |
|----------------------------------------|
| devif_iob_poll() | devif_poll() |
| ... | ... |
------------------------------------------
--------------------------------------------------------------------
1> NIC hardware support Scatter/gather transfer
TX:
tcp_poll()/udp_poll()/pkt_poll()/...(l3|l4)
/ \
/ \
devif_poll_[l3|l4]_connections() devif_iob_send() (nocopy:udp/icmp/...)
/ \ (copy:tcp)
/ \
devif_iob_poll("NIC"_txpoll) callback() // "NIC"_txpoll
|
dev->d_iob: |
--------------- ---------------
io_data iob1 | | | iob3 | | |
\ --------------- ---------------
--------------- | --------------- |
iob0 | | | | iob2 | | | |
--------------- | --------------- |
\ | / /
\ | / /
----------------------------------------------
NICs io vector | | | | | | | | | |
----------------------------------------------
RX:
[tcp|udp|icmp|...]ipv[4|6]_data_handler()(iob_concat/append to readahead)
|
|
[tcp|udp|icmp|...]_ipv[4|6]_in()/...
|
|
pkt/ipv[4/6]_input()/...
|
|
NICs io vector receive(iov_base to each iobs)
--------------------------------------------------------------------
2> CONFIG_IOB_BUFSIZE is greater than MTU:
TX:
"(CONFIG_IOB_BUFSIZE) > (MAX_NETDEV_PKTSIZE + CONFIG_NET_GUARDSIZE + CONFIG_NET_LL_GUARDSIZE)"
tcp_poll()/udp_poll()/pkt_poll()/...(l3|l4)
/ \
/ \
devif_poll_[l3|l4]_connections() devif_iob_send() (nocopy:udp/icmp/...)
/ \ (copy:tcp)
/ \
devif_iob_poll("NIC"_txpoll) callback() // "NIC"_txpoll
|
"NIC"_send()
(dev->d_iob->io_data[CONFIG_NET_LL_GUARDSIZE - NET_LL_HDRLEN(dev)])
RX:
[tcp|udp|icmp|...]ipv[4|6]_data_handler()(iob_concat/append to readahead)
|
|
[tcp|udp|icmp|...]_ipv[4|6]_in()/...
|
|
pkt/ipv[4/6]_input()/...
|
|
NICs io vector receive(iov_base to io_data)
--------------------------------------------------------------------
3> Compatible with all old flat buffer NICs
TX:
tcp_poll()/udp_poll()/pkt_poll()/...(l3|l4)
/ \
/ \
devif_poll_[l3|l4]_connections() devif_iob_send() (nocopy:udp/icmp/...)
/ \ (copy:tcp)
/ \
devif_iob_poll(devif_poll_callback()) devif_poll_callback() /* new interface, gather iobs to flat buffer */
/ \
/ \
devif_poll("NIC"_txpoll) "NIC"_send()(dev->d_buf)
RX:
[tcp|udp|icmp|...]ipv[4|6]_data_handler()(iob_concat/append to readahead)
|
|
[tcp|udp|icmp|...]_ipv[4|6]_in()/...
|
|
netdev_input() /* new interface, Scatter/gather flat/iob buffer */
|
|
pkt/ipv[4|6]_input()/...
|
|
NICs io vector receive(Orignal flat buffer)
3. Iperf passthrough on NuttX simulator:
-------------------------------------------------
| Protocol | Server | Client | |
|-----------------------------------------------|
| TCP | 813 | 834 | Mbits/sec |
| TCP(Offload) | 1720 | 1100 | Mbits/sec |
| UDP | 22 | 757 | Mbits/sec |
| UDP(Offload) | 25 | 1250 | Mbits/sec |
-------------------------------------------------
Signed-off-by: chao an <anchao@xiaomi.com>
2022-12-03 11:47:04 +08:00
Peter Bee
c26fd6565d
drivers/video: enhance v4l2 compatibility
...
Add common BSD v4l2 header file
Complete ioctls according to standard v4l2 drivers
Signed-off-by: Peter Bee <bijunda1@xiaomi.com>
2022-12-03 02:48:01 +08:00
Peter Bee
87e16c3694
drivers/video: add support for yuv420p
...
Add calc functions for buffer size (yuv420p is 6Byte/4px)
Signed-off-by: Peter Bee <bijunda1@xiaomi.com>
2022-12-02 13:18:20 +08:00
Peter Bee
365b1f4bb8
drivers/video: add support for YUYV format
...
Add YUYV format which is used by most USB Cameras
Signed-off-by: Peter Bee <bijunda1@xiaomi.com>
2022-12-02 13:18:20 +08:00