Commit 01cd0f8
committed
NVIDIA: VR: SAUCE: firmware: smccc: lfa: handle LFA_BUSY in PRIME and ACTIVATE
DEN0147 §2.6: LFA_ACTIVATE can return LFA_BUSY when the firmware
postpones the activation. Although the rwsem in this driver prevents
concurrent ACTIVATE calls from kernel space, an external agent or
internal firmware state may still produce LFA_BUSY. Add an explicit
retry loop (same budget and delay as CALL_AGAIN) so the code does not
silently treat a retriable condition as a terminal failure. Catching
LFA_BUSY explicitly also surfaces potential firmware or driver bugs.
DEN0147 §2.5: LFA_PRIME returning LFA_BUSY means another CPU is
running LFA_PRIME concurrently. This driver never issues parallel PRIME,
so this is unexpected; log pr_warn and return so the caller can surface
the anomaly rather than swallowing it in the generic error path.
Signed-off-by: Vedashree Vidwans <vvidwans@nvidia.com>
Signed-off-by: Nirmoy Das <nirmoyd@nvidia.com>1 parent 1ca69bf commit 01cd0f8
1 file changed
Lines changed: 28 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
371 | 371 | | |
372 | 372 | | |
373 | 373 | | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
374 | 391 | | |
375 | 392 | | |
376 | 393 | | |
| |||
406 | 423 | | |
407 | 424 | | |
408 | 425 | | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
409 | 437 | | |
410 | 438 | | |
411 | 439 | | |
| |||
0 commit comments