• Dmitry Torokhov's avatar
    software node: allow embedding of small arrays into property_entry · 996b0830
    Dmitry Torokhov authored
    We should not conflate whether a property data is an array or a single
    value with where it is stored (embedded into property_entry structure or
    out-of-line). All single-value properties are in effect 1-element
    arrays, and we can figure the amount of data stored in a property by
    examining its length and the data type. And arrays can be as easily
    stored in property entry instances as single values are, provided that
    we have enough space (we have up to 8 bytes). We can embed:
    
     - up to 8 bytes from U8 arrays
     - up to 4 words
     - up to 2 double words
     - one U64 value
     - one (on 64 bit architectures) or 2 (on 32 bit) strings.
    
    This change also has an effect of switching properties with small amount
    of data to embed it instead of keeping it separate when copying such
    properties.
    Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    996b0830
swnode.c 18.5 KB