thunderbolt: Add 'boot' attribute for devices
In various cases, Thunderbolt device can be connected by ICM on boot without waiting for approval from user. Most cases are related to OEM-specific BIOS configurations. This information is interesting for user-space as if the device isn't in SW ACL, it may create a friction in the user experience where the device is automatically authorized if it's connected on boot but requires an explicit user action if connected after OS is up. User-space can use this information to suggest adding the device to SW ACL for auto-authorization on later connections. Signed-off-by: Yehezkel Bernat <yehezkel.bernat@intel.com> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
This commit is contained in:
committed by
Mika Westerberg
parent
3080e197e9
commit
14862ee308
@@ -775,6 +775,15 @@ static ssize_t authorized_store(struct device *dev,
|
||||
}
|
||||
static DEVICE_ATTR_RW(authorized);
|
||||
|
||||
static ssize_t boot_show(struct device *dev, struct device_attribute *attr,
|
||||
char *buf)
|
||||
{
|
||||
struct tb_switch *sw = tb_to_switch(dev);
|
||||
|
||||
return sprintf(buf, "%u\n", sw->boot);
|
||||
}
|
||||
static DEVICE_ATTR_RO(boot);
|
||||
|
||||
static ssize_t device_show(struct device *dev, struct device_attribute *attr,
|
||||
char *buf)
|
||||
{
|
||||
@@ -951,6 +960,7 @@ static DEVICE_ATTR_RO(unique_id);
|
||||
|
||||
static struct attribute *switch_attrs[] = {
|
||||
&dev_attr_authorized.attr,
|
||||
&dev_attr_boot.attr,
|
||||
&dev_attr_device.attr,
|
||||
&dev_attr_device_name.attr,
|
||||
&dev_attr_key.attr,
|
||||
@@ -979,6 +989,10 @@ static umode_t switch_attr_is_visible(struct kobject *kobj,
|
||||
if (sw->dma_port)
|
||||
return attr->mode;
|
||||
return 0;
|
||||
} else if (attr == &dev_attr_boot.attr) {
|
||||
if (tb_route(sw))
|
||||
return attr->mode;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return sw->safe_mode ? 0 : attr->mode;
|
||||
|
||||
Reference in New Issue
Block a user