Commit graph

60363 commits

Author SHA1 Message Date
wangchengdong
9f44bff3cc sched/sched:merge tickless and tick process together
Merge tickless and tick process into  nxsched_process_timer
    to improve code level efficient

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2026-01-12 16:20:42 +08:00
Matteo Golin
a22e26924d cmocka/defconfig: Update defconfigs to include cmocka application
The cmocka test framework is compiled as a library by default in
(apache/nuttx-apps#3270), and does not include the cmocka application
binary unless CONFIG_TESTING_CMOCKA_PROG=y. This commit updates the
defconfigs which include cmocka to also compile the cmocka binary, which
is the behaviour they were created with.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-01-12 10:15:00 +08:00
shichunma
52e67d167a net/route: need clear old cached route info when do reset cache
When do net_flushcache_ip4/6, it may have old info at that time.

Signed-off-by: Jerry Ma <masc2008@gmail.com>
2026-01-11 23:23:34 +08:00
hujun5
46ec836e56 sched: binfmt remove csection
use small lock to replace big lock

Signed-off-by: hujun5 <hujun5@xiaomi.com>
2026-01-11 20:44:35 +08:00
liamHowatt
081c2337b7 fs/userfs: keep lock while reading iobuffer
Fix a race on userfs_state_s iobuffer.

1. Task 1 takes the mutex and does a userfs operation.
2. A higher priority task 2 blocks on the mutex.
3. Task 1 releases the mutex when finished. The iobuffer response has not
   been processed by task 1 yet, but task 2 is higher priority
   and control switches to it.
4. Task 2 does a userfs operation and releases the mutex.
   The iobuffer now contains task 2's response.
5. Control returns to task 1 for it to check the iobuffer
   response. It contains task 2's response, not its own.

Fix it by releasing the mutex only after the exclusive iobuffer
usage lifecycle is complete.

Signed-off-by: liamHowatt <liamjmh0@gmail.com>
2026-01-11 09:01:45 -03:00
Huang Qi
8b3862d19b style: Fix case statement formatting in power management callbacks.
Remove unnecessary parentheses around case labels in switch statements
for power management callback functions. This fixes checkpatch style
violations for case statement formatting.

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2026-01-10 12:59:14 -03:00
chenzihan1
664d2d7213 drivers/sensors: add get_info interface for gnss_uorb
Implement gnss_get_info callback function to support device information query for GNSS sensor devices through the sensor framework.

Signed-off-by: chenzihan1 <chenzihan1@xiaomi.com>
2026-01-10 17:30:33 +08:00
ouyangxiangzhen
4c1228059f sched/sched: Fix comments in sched_timerexpiration.
This commit fixed comments in sched_timerexpiration.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2026-01-10 17:30:25 +08:00
ouyangxiangzhen
c69cf36b7c sched/wdog: Simplify the wdog expiration handling.
This commit simplified the wdog expiration handling by introducing the
`g_sched_event` timer.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2026-01-10 17:30:25 +08:00
ouyangxiangzhen
7b47b9de17 sched/wdog: Simplify the wd_gettime.
This commit simplified the wd_gettime.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2026-01-10 17:30:25 +08:00
ouyangxiangzhen
df74d0c5b2 sched/wdog: Remove wd_restart API.
According to the test results, the restart interface offers no
performance improvement and requires additional state to encode the
non-pending state. This commit removed the wd_restart API to simplify
the wdog module.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2026-01-10 17:30:25 +08:00
guoshengyuan1
fac76746ea arch/arm: Fix TLS initialization to account for padding between sections
The TLS initialization logic needs to be updated to match the modified
linker script section definitions. The previous implementation assumed
that _END_TDATA and _START_TBSS were contiguous, but there may be
padding between these sections for alignment purposes.

This commit updates up_tls_initialize() to explicitly account for the
padding gap between _END_TDATA and _START_TBSS when zeroing the .tbss
section. The size calculation in up_tls_size() is also updated to use
_END_TBSS instead of the previous _END_TXXX definition to match the
current linker script layout.

Changes:
- Calculate padding gap: (_START_TBSS - _END_TDATA)
- Zero .tbss at correct offset accounting for padding
- Update size calculation to use proper section boundaries

Signed-off-by: guoshengyuan1 <guoshengyuan1@xiaomi.com>
2026-01-09 21:48:28 +08:00
guoshengyuan1
dd9f666ad2 arch/arm: Refactor __aeabi_read_tp to ensure EABI compliance
Reimplement __aeabi_read_tp using naked function with inline assembly
to strictly follow ARM EABI TLS helper specification.

The ARM EABI specifies that __aeabi_read_tp may only modify r0, and
compilers rely on this guarantee by NOT saving r1-r3 registers when
calling this function. The previous simple C implementation could
potentially clobber these registers through compiler optimizations,
violating the ABI contract and causing subtle bugs.

Changes:
- Add __aeabi_read_tp_core() helper to allow tls_get_info() macro
  expansion in C context
- Explicitly preserve r1-r3 registers per EABI requirement

This ensures proper register usage compliance for all calling contexts
while maintaining the ability to use tls_get_info() macro correctly.

Reference: ARM EABI TLS Helper Specification
https://github.com/ARM-software/abi-aa/blob/main/rtabi32/rtabi32.rst#thread-local-storage-new-in-v2-01

Signed-off-by: guoshengyuan1 <guoshengyuan1@xiaomi.com>
2026-01-09 21:48:28 +08:00
wangchen
96fcc8bb1d net:modify check condition from IFF_UP to IFF_RUNNING in the sending process
Modify check condition from IFF_UP  to IFF_RUNNING in the sending process

Signed-off-by: wangchen <wangchen41@xiaomi.com>
2026-01-09 21:48:18 +08:00
dongjiuzhu1
148f0ce7dd fs/inode: use file_allocate,file_dup to avoid racecondition to allocate fd
issue description:
task A:                                            NSH:
1.open->                                           reboot->sync->task_fsfsync
2.nx_vopen->               context switch
3.fdlist_allocate:            ---->                4.fsync->file_sync->assert(inode or priv is empty)
(new fd with empty filep)
5.file_vopen:
(init empty filep)
6.return fd

Task A allocates a new fd with an empty filep in fdlist_allocate. Before
it can fully initialize the filep in file_vopen, the NSH task triggers a
file - system sync operation. The sync operation encounters the empty
filep associated with the newly allocated fd, causing the assertion to
fail and the system to crash.

To resolve this race condition, we should modify the fd allocation
process. Instead of allocating a new fd with an empty filep first and
then initializing it later, we should use the file_allocate_from_inode
function. This function allows us to initialize the file structure first
and then bind it to the new filep when allocating the fd. By doing so,
we ensure that the filep is always properly initialized before it is
used in any file - system operations, thus preventing the assertion
failure and the subsequent system crash.

Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2026-01-09 17:11:25 +08:00
zhangshuai39
4b5bd23957 netlib: Supplement the netlib_check_httpconnectivity documentation
A brief introduction to the interface functions, parameters, and return values.

Signed-off-by: zhangshuai39 <zhangshuai39@xiaomi.com>
2026-01-09 17:11:04 +08:00
xucheng5
f989860c4a timer: add timer operation support
Add basic timer operations to the kernel, including registration,
start/stop, and callback handling. This provides a consistent timer
interface for use by kernel components and drivers.

Signed-off-by: zhaohaiyang1 <zhaohaiyang1@xiaomi.com>
2026-01-09 17:10:43 +08:00
Bowen Wang
2a8acac159 rpmsg/rpmsg_port_uart: drop all the packets when reconnect to peer
1. move drop packets function from port spi to port;
2. add drop packets logic when reconnect to peer;

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
Signed-off-by: liaoao <liaoao@xiaomi.com>
2026-01-09 09:48:18 +08:00
Bowen Wang
3d764939c8 rpmsg/rpmsg_port_uart: set the signals based on the suspend/reusme state
Now peer's state can be get by the rpmsg_get_signals() api

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-01-09 09:48:18 +08:00
Bowen Wang
b8ad562fcb rpmsg/rpmsg_port_uart: add poweroff support
Peer can send poweroff command and local will shutdown the uart
device and wait for the next connect

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-01-09 09:48:18 +08:00
Bowen Wang
8ba084329d rpmsg/rpmsg_port_uart: add wakeup feauture for rpmsg_port_uart
Wakeup peer when peer is in low power mode

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-01-09 09:48:18 +08:00
simbit18
ef1cee2f44 arch/arm/xmc4: Aligned Cmake with Make
- Add tickless support #11737

- Add XMC4 flash command sequence API #11728

- Add EtherCAT support on xmc4800-relax #11659

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-01-09 07:34:53 +08:00
simbit18
3015b87e97 boards/arm/xmc4: CMake added XMC4500 Relax and XMC4700 Relax
CMake added boards:

- XMC4500 Relax

- XMC4700 Relax

Signed-off-by: simbit18 <simbit18@gmail.com>

Update CMakeLists.txt
2026-01-09 07:34:53 +08:00
wangxiaoxin
87d74d141a LIN:adjust the LIN flag
Fix incorrect and non-existent flag usage in LIN handling:

- Replace undefined CANFD_FLAGS_BITS usage with valid bit definitions.
- Reassign CAN_TCF_FLAG to an available flag bit, as it is not defined in can.h.
- Add an identifier for LIN noise error frames.

Signed-off-by: wangxiaoxin <wangxiaoxin@xiaomi.com>
2026-01-08 23:15:31 +08:00
wangchengdong
96e8fce4de [EXPERIMENTAL] sched/hrtimer: add SYSTEM_TIME64 dependency
The hrtimer infrastructure only works with 64-bit system timers.
  Add a dependency on SYSTEM_TIME64 in the hrtimer Kconfig.

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2026-01-08 22:47:16 +08:00
wangchengdong
6bffad62de [EXPERIMENTAL] sched/hrtimer: separate SMP logic from hrtimer
Separate SMP-specific logic from the hrtimer core to improve
    performance and maintainability.

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2026-01-08 22:47:16 +08:00
Jiri Vlasak
7fa4a7f3b4 net/netdev: Fix best prefix in findby
When comparing with netmask, the best prefix len is netmask.

Signed-off-by: Jiri Vlasak <jvlasak@elektroline.cz>
2026-01-08 22:45:16 +08:00
mazhuang
45f6d86f37 drivers/rpmsg: add rpmsg_test to test rpmsg hold/release rx buffer
rpmsg_test is a rpmsg api test service inside the kernel, and user
can use ioctl to start this test.

Signed-off-by: mazhuang <mazhuang@xiaomi.com>
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
Signed-off-by: wangshaoxin <wangshaoxin@xiaomi.com>
2026-01-08 22:44:35 +08:00
Yongrong Wang
8eb4e46c8c sim rpserver/rpproxy: enable CONFIG_RPMSG_PING config
Be convenient to test the rpmsg feature

Signed-off-by: Yongrong Wang <wangyongrong@xiaomi.com>
2026-01-08 22:44:35 +08:00
ouyangxiangzhen
254df1721a sched/hrtimer: Fix functional correctness issue.
This commit added dependency on CONFIG_SYSTEM_TIME64 for the hrtimer, sin
ce the hrtimer use `clock_compare` to compare 64-bit time.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2026-01-08 22:26:11 +08:00
ouyangxiangzhen
6bd9ef6992 sched/hrtimer: Rename the callback type to hrtimer_entry_t.
This commit renamed the callback type to `hrtimer_entry_t`, aligning with
the `wdentry_t` in wdog..

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2026-01-08 22:26:11 +08:00
ouyangxiangzhen
8db732afb1 sched/hrtimer: Fix functional correctness issue.
The expired field can not be used to indicate the cancelled state. Because
the `UINT64_MAX` is valid expired time. A periodic hrtimer started with
the hrtimer_start_absolute(hrtimer, period_func, UINT64_MAX) can
not be cancelled via `hrtimer_cancel`.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2026-01-08 22:26:11 +08:00
ouyangxiangzhen
3fa62118f1 sched/hrtimer: Fix hrtimer compilation.
This commit fixed hrtimer compilation issue.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2026-01-08 22:26:11 +08:00
ouyangxiangzhen
740f518083 sched/hrtimer: Add const for hrtimer argument.
The callback function can not modify the hrtimer.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2026-01-08 22:26:11 +08:00
Zhe Weng
1d6068f6fb drivers/virtio-gpu: Use macro to indicate blocking cmd
Improving readability, because using bit without name makes people confused.

Signed-off-by: Zhe Weng <wengzhe@xiaomi.com>
2026-01-08 22:01:09 +08:00
Zhe Weng
f4bfde4d47 drivers/virtio-gpu: Avoid calling free in IRQ
Calling `virtio_free_buf` or `kmm_free` inside IRQ may lead to dead lock
inside `mm_free`, so we use a free list to store the buffer and reuse it
next time.  Fortunately, NuttX only uses one async buffer at same time,
so we don't need to consider how to free the buffer because we won't
have too many in the free list.

Signed-off-by: Zhe Weng <wengzhe@xiaomi.com>
2026-01-08 22:01:09 +08:00
zhanghongyu
02645974cb drivers/net/igc.c: add device id 0x15f3 support
add the network card models whose functions have been confirmed to the
id table.

Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
2026-01-08 09:49:07 -03:00
zhanghongyu
446aecdd61 drivers/net/e1000.c: add PIDVID of e1000 NIC
add the network card models whose functions have been confirmed to the
id table.

Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
2026-01-08 09:49:07 -03:00
xucheng5
380bcabba8 sja1000: replace enter_critical_section with spinlock
Replace enter_critical_section() with spinlock-based protection to
avoid sleeping in atomic or interrupt contexts.

Signed-off-by: xucheng5 <xucheng5@xiaomi.com>
2026-01-08 09:15:04 -03:00
xucheng5
f215bf6c67 timer: rename tick_settimeouot to tick_settimeout
Fix the misspelling of the tick timeout API name
(tick_settimeouot -> tick_settimeout) for clarity and correctness.

This corrects a typographical error in the function/config name that
could lead to confusion and incorrect usage. No functional logic is
changed by this rename.

Signed-off-by: zhaohaiyang1 <zhaohaiyang1@xiaomi.com>
2026-01-08 08:16:21 -03:00
dependabot[bot]
69d4e4101f build(deps): bump urllib3 from 2.6.0 to 2.6.3 in /Documentation
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.6.0 to 2.6.3.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.6.0...2.6.3)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-version: 2.6.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-08 09:05:02 +01:00
wangshaoxin
43d26e2890 drivers/rptun: solve the poweroff stuck problem
The rpmsg_ioctl() function will first obtain the read lock before
traversing g_rpmsg, then the rpmsg_dev_destory function will try
to obtain the write lock.

At this time, rpmsg_ioctl does not release the read lock, resulting
in a deadlock.

To solve this problem, add a standardalone list for the rptun instance
to avoid hold the rpmsg lock when execute rptun_poweroff()

Backtrace:
Thread 14 nsh_main
0  0x4412b9da in up_switch_context (tcb=0xeac03380, rtcb=0xe7f02480) at sim/sim_switchcontext.c:95
1  0x43fbe5e4 in nxsem_wait_slow (sem=0x5179d570 <g_rpmsg_lock+16>) at semaphore/sem_wait.c:170
2  0x43fbeacf in nxsem_wait (sem=0x5179d570 <g_rpmsg_lock+16>) at semaphore/sem_wait.c:272
3  0x44671a26 in down_write (rwsem=0x5179d560 <g_rpmsg_lock>) at semaphore/sem_rw.c:248
4  0x4401e255 in rpmsg_device_destory (rpmsg=0xe7b03280) at rpmsg/rpmsg.c:469
5  0x4402f5fe in rptun_dev_stop (rproc=0xe7b033e4, stop_ns=true) at rptun/rptun.c:973
6  0x4402aa28 in rptun_ioctl (rpmsg=0xe7b03280, cmd=11109, arg=0) at rptun/rptun.c:661
7  0x4401ba1e in rpmsg_dev_ioctl_ (rpmsg=0xe7b03280, cmd=11109, arg=0) at rpmsg/rpmsg.c:137
8  0x4401ee88 in rpmsg_ioctl (cpuname=0x0, cmd=11109, arg=0) at rpmsg/rpmsg.c:562
9  0x44030cb0 in rptun_poweroff (cpuname=0x0) at rptun/rptun.c:1183
10 0x43f27be2 in board_power_off (status=0) at sim/sim_head.c:211
11 0x446fd933 in boardctl (cmd=65283, arg=0) at boardctl.c:401
12 0x44313b95 in cmd_poweroff (vtbl=0xe7600e80, argc=1, argv=0xe7824350) at nsh_syscmds.c:368
13 0x442d148c in nsh_command (vtbl=0xe7600e80, argc=1, argv=0xe7824350) at nsh_command.c:1275
14 0x442f65f5 in nsh_execute (vtbl=0xe7600e80, argc=1, argv=0xe7824350, param=0xe78242b0) at nsh_parse.c:716
15 0x44304fb4 in nsh_parse_command (vtbl=0xe7600e80, cmdline=0xe7601338 "poweroff") at nsh_parse.c:2809
16 0x44305a50 in nsh_parse (vtbl=0xe7600e80, cmdline=0xe7601338 "poweroff") at nsh_parse.c:2919
17 0x442bdc91 in nsh_session (pstate=0xe7600e80, login=1, argc=1, argv=0xe7814870) at nsh_session.c:246
18 0x442bbbe5 in nsh_consolemain (argc=1, argv=0xe7814870) at nsh_consolemain.c:75
19 0x4422b4bb in nsh_main (argc=1, argv=0xe7814870) at nsh_main.c:74
20 0x440ee098 in nxtask_startup (entrypt=0x4422b39a <nsh_main>, argc=1, argv=0xe7814870) at sched/task_startup.c:72
21 0x43fa1d6e in nxtask_start () at task/task_start.c:116
22 0x4412982c in pre_start () at sim/sim_initialstate.c:53
23 0x00000000 in ?? ()

Signed-off-by: wangshaoxin <wangshaoxin@xiaomi.com>
2026-01-08 12:05:46 +08:00
mazhuang
183df1ef9e drivers/rptun: solve rptun_dev_stop crash in sim
When execute 'rptun stop /dev/rptun/proxy' in the nsh,
rpmsg_deinit_vdev(&priv->rvdev) will set rvdev->vdev = NULL,
then the remoteproc_remove_virtio(priv->rvdev.vdev) input is NULL,
which will cause crash, the backtrace as follow, so we save the
rvdev->vdev pointer on vdev to solve this problem.

(gdb) bt
0  _assert (filename=0x4002aecc <nxrmutex_destroy+8> "\005D\220\v", linenum=1038, msg=0x400a26a8 "tx_vq", regs=0x400a2768) at misc/assert.c:827
1  0x4002a1db in __assert (filename=0x400a2204 "open-amp/lib/remoteproc/remoteproc.c", linenum=1038, msg=0x0) at assert/lib_assert.c:38
2  0x4006fd83 in remoteproc_remove_virtio (rproc=0xf3ea1880, vdev=0x0) at open-amp/lib/remoteproc/remoteproc.c:1038
3  0x4001b01d in rptun_dev_stop (rproc=0xf3ea1880, stop_ns=true) at rptun/rptun.c:979
4  0x4001a45e in rptun_ioctl (rpmsg=0xf3ea16d0, cmd=11109, arg=0) at rptun/rptun.c:661
5  0x40017246 in rpmsg_dev_ioctl_ (rpmsg=0xf3ea16d0, cmd=11109, arg=0) at rpmsg/rpmsg.c:138
6  0x4001728e in rpmsg_dev_ioctl (filep=0xf3d70a14, cmd=11109, arg=0) at rpmsg/rpmsg.c:153
7  0x4005ef51 in file_vioctl (filep=0xf3d70a14, req=11109, ap=0xf3d80f2c "\352\r\004@F\023\004@\230\020\330\363\353;\354\363(7\354", <incomplete sequence \363>)
   at vfs/fs_ioctl.c:70
8  0x4005f2ff in ioctl (fd=3, req=11109) at vfs/fs_ioctl.c:294
9  0x40041049 in cmd_rpmsg_once (vtbl=0xf3ec3728, path=0xf3ec3beb "/dev/rptun/proxy", argv=0xf3d81098, rpmsg_cb=0x40041346 <cmd_rptun_cb>) at nsh_syscmds.c:616
10 0x400415c8 in cmd_rptun (vtbl=0xf3ec3728, argc=3, argv=0xf3d81098) at nsh_syscmds.c:766
11 0x40036024 in nsh_command (vtbl=0xf3ec3728, argc=3, argv=0xf3d81098) at nsh_command.c:1275
12 0x4003d044 in nsh_execute (vtbl=0xf3ec3728, argc=3, argv=0xf3d81098, param=0xf3d81078) at nsh_parse.c:716
13 0x4003efcc in nsh_parse_command (vtbl=0xf3ec3728, cmdline=0xf3ec3be0 "rptun") at nsh_parse.c:2809
14 0x4003f129 in nsh_parse (vtbl=0xf3ec3728, cmdline=0xf3ec3be0 "rptun") at nsh_parse.c:2919
15 0x40033ca4 in nsh_session (pstate=0xf3ec3728, login=1, argc=1, argv=0xf3d70ae0) at nsh_session.c:246
16 0x400338ea in nsh_consolemain (argc=1, argv=0xf3d70ae0) at nsh_consolemain.c:75
17 0x40033845 in nsh_main (argc=1, argv=0xf3d70ae0) at nsh_main.c:74
18 0x4002bc9f in nxtask_startup (entrypt=0x400337d0 <nsh_main>, argc=1, argv=0xf3d70ae0) at sched/task_startup.c:72
19 0x400077cc in nxtask_start () at task/task_start.c:116
20 0x40031d2f in pre_start () at sim/sim_initialstate.c:53
21 0x00000000 in ?? ()

Signed-off-by: mazhuang <mazhuang@xiaomi.com>
2026-01-08 12:05:46 +08:00
Bowen Wang
f4cfc9579d drivers/rptun: change the notify wait return type after upgrade OpenAMP
return -EAGAIN will cause rpmsg_virtio_get_tx_payload_buffer() in
OpenAMP break immediately, but should return to the sleep() logic
to wait buffer is return.

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
Signed-off-by: Yongrong Wang <wangyongrong@xiaomi.com>
2026-01-08 12:05:46 +08:00
fangpeina
5a22ad4dbb drivers/timers: use DEBUGASSERT check abnormal values
use DEBUGASSERT to check abnormal values in drivers/timers.c

Signed-off-by: fangpeina <fangpeina@xiaomi.com>
2026-01-08 11:56:18 +08:00
fangpeina
bc35ea17d2 drivers/timers: Remove redundant check for crefs > 0 before decrement
The reference count (upper->crefs) is incremented in timer_open()
only after ensuring it will not overflow, timer_close() is only
called after a successful open. Therefore, crefs should never be
zero when timer_close() is called. The check for crefs > 0 before
decrementing is unnecessary and has been removed to simplify the code.

Signed-off-by: fangpeina <fangpeina@xiaomi.com>
2026-01-08 11:56:18 +08:00
fangpeina
e4d4f7e2c3 drivers/math: use small lock to replace enter_critical_section
replace critical_section with spinlock

Signed-off-by: fangpeina <fangpeina@xiaomi.com>
2026-01-08 11:17:17 +08:00
fangpeina
e44690e22a drivers/leds: remove bo_closing as lu_lock can prevent race condition occurs
remove enter_critical_section

Signed-off-by: fangpeina <fangpeina@xiaomi.com>
2026-01-08 11:17:17 +08:00
fangpeina
a8214b0b1e drivers/input/ff: use small lock to replace enter_critical_section
replace critical_section with spinlock

Signed-off-by: fangpeina <fangpeina@xiaomi.com>
2026-01-08 11:17:17 +08:00
fangpeina
017df835ba drivers/motor: use small lock to replace enter_critical_section
replace critical_section with spinlock, and use atomic to
protect state.

Signed-off-by: fangpeina <fangpeina@xiaomi.com>
2026-01-08 11:17:17 +08:00