~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/driver-api/soundwire/locking.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/driver-api/soundwire/locking.rst (Version linux-6.12-rc7) and /Documentation/driver-api/soundwire/locking.rst (Version linux-4.11.12)


  1 =================                                 
  2 SoundWire Locking                                 
  3 =================                                 
  4                                                   
  5 This document explains locking mechanism of th    
  6 following locks in order to avoid race conditi    
  7 shared resources.                                 
  8                                                   
  9   - Bus lock                                      
 10                                                   
 11   - Message lock                                  
 12                                                   
 13 Bus lock                                          
 14 ========                                          
 15                                                   
 16 SoundWire Bus lock is a mutex and is part of B    
 17 (sdw_bus) which is used for every Bus instance    
 18 serialize each of the following operations(s)     
 19                                                   
 20   - Addition and removal of Slave(s), changing    
 21                                                   
 22   - Prepare, Enable, Disable and De-prepare st    
 23                                                   
 24   - Access of Stream data structure.              
 25                                                   
 26 Message lock                                      
 27 ============                                      
 28                                                   
 29 SoundWire message transfer lock. This mutex is    
 30 Bus data structure (sdw_bus). This lock is use    
 31 transfers (read/write) within a SoundWire Bus     
 32                                                   
 33 Below examples show how locks are acquired.       
 34                                                   
 35 Example 1                                         
 36 ---------                                         
 37                                                   
 38 Message transfer.                                 
 39                                                   
 40   1. For every message transfer                   
 41                                                   
 42      a. Acquire Message lock.                     
 43                                                   
 44      b. Transfer message (Read/Write) to Slave    
 45         Bus in case of bank switch.               
 46                                                   
 47      c. Release Message lock                      
 48                                                   
 49      ::                                           
 50                                                   
 51         +----------+                    +-----    
 52         |          |                    |         
 53         |   Bus    |                    | Mast    
 54         |          |                    | Driv    
 55         |          |                    |         
 56         +----+-----+                    +----+    
 57              |                               |    
 58              |     bus->ops->xfer_msg()      |    
 59              <-------------------------------+    
 60              |                               |    
 61              |                               |    
 62              +------------------------------->    
 63              |    return success/error       |    
 64              |                               |    
 65              +                               +    
 66                                                   
 67 Example 2                                         
 68 ---------                                         
 69                                                   
 70 Prepare operation.                                
 71                                                   
 72   1. Acquire lock for Bus instance associated     
 73                                                   
 74   2. For every message transfer in Prepare ope    
 75                                                   
 76      a. Acquire Message lock.                     
 77                                                   
 78      b. Transfer message (Read/Write) to Slave    
 79         Bus in case of bank switch.               
 80                                                   
 81      c. Release Message lock.                     
 82                                                   
 83   3. Release lock for Bus instance associated     
 84                                                   
 85         +----------+                    +-----    
 86         |          |                    |         
 87         |   Bus    |                    | Mast    
 88         |          |                    | Driv    
 89         |          |                    |         
 90         +----+-----+                    +----+    
 91              |                               |    
 92              |    sdw_prepare_stream()       |    
 93              <-------------------------------+    
 94              |                               |    
 95              |                               |    
 96              |                               |    
 97              |     bus->ops->xfer_msg()      |    
 98              <-------------------------------+    
 99              |                               |    
100              |                               |    
101              +------------------------------->    
102              |    return success/error       |    
103              |                               |    
104              |                               |    
105              |    return success/error       |    
106              +------------------------------->    
107              |                               |    
108              +                               +    
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php