Sysfw provides an option for requesting exclusive access for a device using the flags MSG_FLAG_DEVICE_EXCLUSIVE. If this flag is not used, the device is meant to be shared across hosts. Once a device is requested from a host with this flag set, any request to this device from a different host will be nacked by sysfw. Current tisci driver enables this flag for every device requests. But this may not be true for all the devices. So provide a separate commands in driver for exclusive and shared device requests.
Showing the changes to include/linux (1 of 2 files). Show all
Unified · Split
| @@ -97,7 +97,10 @@ struct ti_sci_core_ops { · 96 unmodified lines | |||
| 97 | */ | 97 | */ |
| 98 | struct ti_sci_dev_ops { | 98 | struct ti_sci_dev_ops { |
| 99 | int (*get_device)(const struct ti_sci_handle *handle, u32 id); | 99 | int (*get_device)(const struct ti_sci_handle *handle, u32 id); |
| 100 | int (*get_device_exclusive)(const struct ti_sci_handle *handle, u32 id); | ||
| 100 | int (*idle_device)(const struct ti_sci_handle *handle, u32 id); | 101 | int (*idle_device)(const struct ti_sci_handle *handle, u32 id); |
| 102 | int (*idle_device_exclusive)(const struct ti_sci_handle *handle, | ||
| 103 | u32 id); | ||
| 101 | int (*put_device)(const struct ti_sci_handle *handle, u32 id); | 104 | int (*put_device)(const struct ti_sci_handle *handle, u32 id); |
| 102 | int (*is_valid)(const struct ti_sci_handle *handle, u32 id); | 105 | int (*is_valid)(const struct ti_sci_handle *handle, u32 id); |
| 103 | int (*get_context_loss_count)(const struct ti_sci_handle *handle, | 106 | int (*get_context_loss_count)(const struct ti_sci_handle *handle, |