qseecom: Enable DFAB clock during bus scaling.
The driver returns a failure when calling to vote for DFAB clock.
- The clock was not enabled and set when bus scaling client
registration was successfull.
- Added warning messages when bus scaling ioctl requests fail.
- Initializing uninitialized variables.
Change-Id: I076218fcccbb9144609311efde1eb4225d1729bf
Signed-off-by: Ramesh Masavarapu <rameshm@codeaurora.org>
diff --git a/drivers/misc/qseecom.c b/drivers/misc/qseecom.c
index 26a69f1..60e1e55 100644
--- a/drivers/misc/qseecom.c
+++ b/drivers/misc/qseecom.c
@@ -1132,11 +1132,13 @@
int ret = 0;
if (!qsee_perf_client)
- return -EINVAL;
+ return ret;
/* Check if the clk is valid */
- if (IS_ERR_OR_NULL(qseecom_bus_clk))
+ if (IS_ERR_OR_NULL(qseecom_bus_clk)) {
+ pr_warn("qseecom bus clock is null or error");
return -EINVAL;
+ }
mutex_lock(&qsee_bw_mutex);
if (!qsee_bw_count) {
@@ -1166,8 +1168,10 @@
return;
/* Check if the clk is valid */
- if (IS_ERR_OR_NULL(qseecom_bus_clk))
+ if (IS_ERR_OR_NULL(qseecom_bus_clk)) {
+ pr_warn("qseecom bus clock is null or error");
return;
+ }
mutex_lock(&qsee_bw_mutex);
if (qsee_bw_count > 0) {
@@ -1420,6 +1424,10 @@
char qsee_not_legacy = 0;
uint32_t system_call_id = QSEOS_CHECK_VERSION_CMD;
+ qsee_bw_count = 0;
+ qseecom_bus_clk = NULL;
+ qsee_perf_client = 0;
+
rc = alloc_chrdev_region(&qseecom_device_no, 0, 1, QSEECOM_DEV);
if (rc < 0) {
pr_err("alloc_chrdev_region failed %d\n", rc);
@@ -1483,8 +1491,8 @@
&qsee_bus_pdata);
if (!qsee_perf_client) {
pr_err("Unable to register bus client\n");
-
- qseecom_bus_clk = clk_get(class_dev, "qseecom");
+ } else {
+ qseecom_bus_clk = clk_get(class_dev, "bus_clk");
if (IS_ERR(qseecom_bus_clk)) {
qseecom_bus_clk = NULL;
} else if (qseecom_bus_clk != NULL) {