coresight: cti: Don't disable ect device if it's not enabled
If associated ect device is not enabled at first place, disable routine should not be called. Add ect_enabled flag to check whether ect device is enabled. Fix the issue in below case. Ect device is not available when associated coresight device enabled and the association is established after coresight device is enabled. Signed-off-by: Mike Leach <mike.leach@linaro.org> Signed-off-by: Tingwei Zhang <tingwei@codeaurora.org> Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> Link: https://lore.kernel.org/r/20200928163513.70169-20-mathieu.poirier@linaro.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
cab280bf35
commit
f2ccc7b7bf
|
@ -244,13 +244,18 @@ coresight_control_assoc_ectdev(struct coresight_device *csdev, bool enable)
|
|||
|
||||
if (!ect_csdev)
|
||||
return 0;
|
||||
if ((!ect_ops(ect_csdev)->enable) || (!ect_ops(ect_csdev)->disable))
|
||||
return 0;
|
||||
|
||||
if (enable) {
|
||||
if (ect_ops(ect_csdev)->enable)
|
||||
ect_ret = ect_ops(ect_csdev)->enable(ect_csdev);
|
||||
ect_ret = ect_ops(ect_csdev)->enable(ect_csdev);
|
||||
if (!ect_ret)
|
||||
csdev->ect_enabled = true;
|
||||
} else {
|
||||
if (ect_ops(ect_csdev)->disable)
|
||||
if (csdev->ect_enabled) {
|
||||
ect_ret = ect_ops(ect_csdev)->disable(ect_csdev);
|
||||
csdev->ect_enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
/* output warning if ECT enable is preventing trace operation */
|
||||
|
|
|
@ -208,6 +208,7 @@ struct coresight_device {
|
|||
/* sysfs links between components */
|
||||
int nr_links;
|
||||
bool has_conns_grp;
|
||||
bool ect_enabled; /* true only if associated ect device is enabled */
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue