yintao
38af7001b6
drivers/rpmsg: fix the race condtion about rpmsg_device_created
...
xxx_rpmsg_device_created may be called repeatedly.
rptun thread app thread
rptun_dev_start xxx_rpmsg_init
... rpmsg_register_callback
priv->...= rpmsg_ns_unbind;
priv->..= rptun_notify_wait;
if (ns_unbind_cb)
(switch app thread) device_created()
xxx_rpmsg_device_created
metal_list_add_tail(g_cb);
...
rpmsg_device_created();
cb->device_created
xxx_rpmsg_device_created;
Signed-off-by: yintao <yintao@xiaomi.com>
2024-09-14 17:34:52 +08:00
wangyongrong
00b6495419
rpmsg/CMakeLists.txt: add rpmsg_virtio_ivshmem.c in this file
...
rpmsg_virtio_ivshmem support Cmake compile too
Signed-off-by: wangyongrong <wangyongrong@xiaomi.com>
2024-09-14 17:34:52 +08:00
Xiang Xiao
a235ada719
rpmsg_virtio_ivshmem: Replace work with wdog
...
Just rename, since it's a wdog, not a work.
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2024-09-14 17:34:52 +08:00
wangyongrong
ff399054c1
rptun/rpmsg_virtio: fix addrenv/raddrenv num error
...
Buf fix, simple_addrenv assume the last addrenv in addrenv array
be zero value
Signed-off-by: wangyongrong <wangyongrong@xiaomi.com>
2024-09-14 17:34:52 +08:00
liaoao
58c9c23765
rpmsg_ping:only sleep when ping->sleep is larger than 0
...
To avoid call sleep when sleep <= 0
Signed-off-by: liaoao <liaoao@xiaomi.com>
2024-09-14 17:34:52 +08:00
wangyongrong
c84409a2cd
rpmsg_virtio_ivshmem.c: Replace work queue with wdog
...
rpmsg_virtio_ivshmem polling mode use wdog to loop instead work
queue, beacause wdog has better performance
Signed-off-by: wangyongrong <wangyongrong@xiaomi.com>
2024-09-14 17:34:52 +08:00
wangyongrong
57cb0cb66f
rpmsg_virtio_ivshmem.c: rpmsg virtio ivshmem msix interrupt support
...
Change the rpmsg_virtio_ivshmem from pci bus based to
pci-ivshmem bus based, so rpmsg_virtio_ivshmem can support interrupt
mode and also support the multi instance.
Signed-off-by: wangyongrong <wangyongrong@xiaomi.com>
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-09-14 17:34:52 +08:00
wangyongrong
3ca717ef4a
rpmsg_virtio_ivshmem.c: fix VIRTIO_RPMSG_F_BUFSZ not used caused restart err
...
Signed-off-by: wangyongrong <wangyongrong@xiaomi.com>
2024-09-14 17:34:52 +08:00
wangyongrong
d96fe98591
nuttx/rpmsg_virtio.c: fix invalid use of undefined type ‘struct rpmsg_hdr’ err
...
rpmsg/rpmsg_virtio.c:320:49: error: invalid use of undefined type ‘struct rpmsg_hdr’
320 | rx ? hdr->dst : hdr->src);
Signed-off-by: wangyongrong <wangyongrong@xiaomi.com>
2024-09-14 17:34:52 +08:00
Bowen Wang
1f96a0b5e9
drivers/rpmsg: fix recursive assert when call rpmsg_dump_all() in irq
...
Because call mutex lock is forbidden in interrupt.
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-09-14 17:34:52 +08:00
Yongrong Wang
67e41d0e32
rpmsg/rpmsg_virtio_ivshmem: add rpmsg virtio ivshmem support
...
rpmsg_virtio_ivshmem is a ivshmem based rpmsg virtio driver,
with this driver, we can use the rpmsg virtio in qemu platfrom
Signed-off-by: Yongrong Wang <wangyongrong@xiaomi.com>
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-09-14 17:34:52 +08:00
Yongrong Wang
af0bde8bca
rpmsg virtio: add rpmsg virtio wrapper support
...
Rpmsg VirtIO is a virtio transport implementation for Rpmsg, and
it's different to the rptun framework.
rpmsg_virtio.c implements the rpmsg virtio transport layer by itself
to avoid use the remoteproc implementation in OpenAMP to save code
size, so it can be treated as a lightweight version of rptun.
Therefore, rpmsg_virtio.c only support the communication feature and
do not support contoll the life cycle of the remote core.
But benefit by it's small footprint, it can be used in the chips with
small flash.
Signed-off-by: Yongrong Wang <wangyongrong@xiaomi.com>
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-09-14 17:34:52 +08:00
Yongrong Wang
e359c661d8
rpmsg ping: fix rpmsg_ping_ept_cb rpmsg send length
...
The rpmsg ping response length should not include the data length.
Signed-off-by: Yongrong Wang <wangyongrong@xiaomi.com>
2024-09-14 17:34:52 +08:00
ligd
981bda5cf0
ramlog: workaround the unsafe critical section
...
thread1: thread2:
ramlog_addbuf()
enter_critical_section()
ramlog_pollnotify()
foreach rl_list
--> switch out
ramlog_file_close
enter_critical_section()
list_delete()
leave_critical_section()
<--- switch back
rl_list error
leave_critical_section()
Signed-off-by: ligd <liguiding1@xiaomi.com>
2024-09-14 13:13:39 +08:00
ligd
78d93eb628
ramlog: unify the lock to critical section
...
Signed-off-by: ligd <liguiding1@xiaomi.com>
2024-09-14 13:13:39 +08:00
fangpeina
11f06eb0f5
drivers/serial: fix deadlock when executing rexec in a user task
...
CPU0 CPU1
task:nsh_main task:user_app rexecd
nsh_consolemain system
uart_read rexec ---
got recv.lock poll ---
uart_poll rpmsg_socket_poll rpmsg_socket_close
wait recvsem get recv.lock poll_notify
deadlock routine work
the error accurs in CPU0 when waiting console input
resolve: unlock recv.lock when waiting recvsem
Signed-off-by: fangpeina <fangpeina@xiaomi.com>
2024-09-14 10:27:40 +08:00
zhanghu5
10e7d8fe44
set min read length in uart_ioctl
...
set min read length in uart_ioctl
Signed-off-by: zhanghu5 <zhanghu5@xiaomi.com>
2024-09-14 10:27:40 +08:00
Bowen Wang
7a495fabb6
pci/pci_uio_ivshmem: pci uio ivshmem msix interrupt support
...
1. Change pci uio ivshmem driver from pci bus based tp pci-ivshmem
bus based;
2. Add the interrupt support by usin the pci_ivshmem API;
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-09-14 08:39:52 +08:00
liaoao
40e34b5b58
spi_slave: keep consistent with the parameter of the spi_slave_receive function declaration
...
Signed-off-by: liaoao <liaoao@xiaomi.com>
2024-09-13 12:27:31 +08:00
p-szafonimateusz
4a147fc86b
drivers/pci_qemu_edu: add MSI test
...
Add simple MSI test for QEMU PCI EDU device so we can verify if MSI works correctly
Signed-off-by: p-szafonimateusz <p-szafonimateusz@xiaomi.com>
2024-09-13 09:42:08 +08:00
p-szafonimateusz
db6d0bd356
drivers/pci: add MSI/MSI-X support
...
Add support for MSI and MSI-X in PCI framework
Signed-off-by: p-szafonimateusz <p-szafonimateusz@xiaomi.com>
2024-09-13 09:42:08 +08:00
liaoao
e4ad92cb03
rpmsgblk: split multi_cmd only when it is too large to be placed into payload buffer
...
Signed-off-by: liaoao <liaoao@xiaomi.com>
2024-09-13 09:26:35 +08:00
rongyichang
83c2a7f54e
drivers/fb: add panbuffer clear ioctl
...
Some devices need to clear the fb panbuf when waking up from sleep
to avoid outputting residual buffers from before sleeping
Signed-off-by: rongyichang <rongyichang@xiaomi.com>
2024-09-13 09:15:38 +08:00
liaoao
d8d7f3c38e
bits.h: replace all inline defination of __set_bit/__clear_bit
...
Signed-off-by: liaoao <liaoao@xiaomi.com>
2024-09-13 09:09:19 +08:00
liaoao
d04e1ebf4e
coresight: return -EEXIST when register a device which has been registered
...
Signed-off-by: liaoao <liaoao@xiaomi.com>
2024-09-13 09:09:19 +08:00
liaoao
6f770fb4b1
coresight: disable device before unregister
...
coresight_claim_device will fail when unregister device
which has been enabled. device should be the init state when
it is unregistered.
Signed-off-by: liaoao <liaoao@xiaomi.com>
2024-09-13 09:09:19 +08:00
liaoao
8a57dafdcf
coresight: add clk control for coresight system
...
Signed-off-by: liaoao <liaoao@xiaomi.com>
2024-09-13 09:09:19 +08:00
liaoao
df33c392ae
coresight:add tmc device support
...
Signed-off-by: liaoao <liaoao@xiaomi.com>
2024-09-13 09:09:19 +08:00
liaoao
79af05c4ae
coresight:add etb device support
...
Signed-off-by: liaoao <liaoao@xiaomi.com>
2024-09-13 09:09:19 +08:00
liaoao
71e4267a7a
coresight: add etm3 device support
...
Signed-off-by: liaoao <liaoao@xiaomi.com>
2024-09-13 09:09:19 +08:00
liaoao
e3e23f7eaf
coresight:add stm device
...
Signed-off-by: liaoao <liaoao@xiaomi.com>
2024-09-13 09:09:19 +08:00
liaoao
c0e40fc19f
coresight:add tpiu device support
...
Signed-off-by: liaoao <liaoao@xiaomi.com>
2024-09-13 09:09:19 +08:00
liaoao
5324f69b58
coresight:add link coresight device support
...
Signed-off-by: liaoao <liaoao@xiaomi.com>
2024-09-13 09:09:19 +08:00
liaoao
8cc0c24318
coresight:add common api for coresight system
...
Signed-off-by: liaoao <liaoao@xiaomi.com>
2024-09-13 09:09:19 +08:00
liaoao
24050ba59f
coresight: add coresight_core
...
Signed-off-by: liaoao <liaoao@xiaomi.com>
2024-09-13 09:09:19 +08:00
ligd
6a2c03732f
clock: Replace all ts and tick conversion functions
...
Using the ts/tick conversion functions provided in clock.h
Do this caused we want speed up the time calculation, so change:
clock_time2ticks, clock_ticks2time, clock_timespec_add,
clock_timespec_compare, clock_timespec_subtract... to MACRO
Signed-off-by: ligd <liguiding1@xiaomi.com>
2024-09-12 18:14:39 +08:00
chao an
7223a1d0d4
serial/uart_16550: remove up_putc spinlock
...
putc atomicity should be guaranteed by common code rather than add similar hack to lower half driver
Signed-off-by: chao an <anchao@lixiang.com>
2024-09-12 18:11:30 +08:00
p-szafonimateusz
ff2fe986cf
cmake: add support for PCI
...
PCI framework can be build with cmake
Signed-off-by: p-szafonimateusz <p-szafonimateusz@xiaomi.com>
2024-09-12 18:11:13 +08:00
Bowen Wang
4fe2a0daf8
pci/pci.c: fix some pci BUGs
...
fix some pci BUGs that make it impossible to match PCI device
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-09-12 18:10:46 +08:00
chao an
c19bdf204c
serial/uart_pl011: default syslog needs to check flow control in up_putc
...
default syslog needs to check flow control in up_putc(), otherwise
up_puts() will lose character if the hardware fifo is full.
2024-09-12 17:15:40 +08:00
caijie
fe4526c7f9
mtd:ramtron MB85RS256B address length is 2
2024-09-12 13:41:51 +08:00
dongjiuzhu1
881cd3f7db
driver/usbdev: support userspace to access ep0
...
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2024-09-11 22:00:26 +08:00
ligd
ccd87767da
timers: add weak function up_timer_gettime()
...
Signed-off-by: ligd <liguiding1@xiaomi.com>
2024-09-10 23:32:30 +08:00
zhangshoukui
1413fc0c1b
drivers/rwbuffer: Set nblocks 0 after using wrflush(skip rwbuffer)
...
Signed-off-by: zhangshoukui <zhangshoukui@xiaomi.com>
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2024-09-10 15:22:03 +08:00
fangpeina
cd15d37396
drivers/input: add dummy force feedback driver
...
Signed-off-by: fangpeina <fangpeina@xiaomi.com>
2024-09-10 15:21:42 +08:00
fangpeina
947a32184b
drivers/include: clean up compilation warning about aw86225.c
...
Signed-off-by: fangpeina <fangpeina@xiaomi.com>
2024-09-10 15:21:42 +08:00
dongjiuzhu1
84b3b1daa0
ff/aw86225: implement aw86225 vibrator driver base on ff
...
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2024-09-10 15:21:42 +08:00
dongjiuzhu1
f65491ba44
input/ff: support force feedback driver framework
...
Add new driver frameworks: force feedback for vibrator, like linux,
unify vendor vibrator driver using.
Incorporating a force feedback-based driving framework to replace the
conventional driver/motor setup for controlling vibrators not only
enhances the precision and responsiveness of the haptic feedback but
also aligns better with the advancements in Linux-based driver systems.
refs docs link: https://www.kernel.org/doc/html/v4.19/input/ff.html
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2024-09-10 15:21:42 +08:00
Bowen Wang
6c339daa86
rptun/rptun_ivshmem: interrupt mode support
...
1. Change rptun_ivshmem from pci bus based to pci_ivshmem bus based;
2. Support the interrupt mode.
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-09-10 14:34:31 +08:00
Bowen Wang
9c91ed2360
pci/pci_ivshmem: fix bug in remove and add vmid check
...
1. Should check the vmid in ivshmem_remove() when release irq instead
check the ivdev->reg;
2. Add vmid check in ivshmem_probe() because ivshmem driver only support
vmid == 0 or 1 for now in NuttX;
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-09-10 14:34:31 +08:00