Thread (24 messages) 24 messages, 6 authors, 2018-08-30

Re: [PATCH v6 1/4] venus: firmware: add routine to reset ARM9

From: Stanimir Varbanov <hidden>
Date: 2018-08-24 08:57:59
Also in: linux-arm-msm, linux-media, lkml

Hi Alex,

On 08/24/2018 10:38 AM, Alexandre Courbot wrote:
On Thu, Aug 23, 2018 at 11:29 PM Vikash Garodia [off-list ref] wrote:
quoted
Add routine to reset the ARM9 and brings it out of reset. Also
abstract the Venus CPU state handling with a new function. This
is in preparation to add PIL functionality in venus driver.

Signed-off-by: Vikash Garodia <redacted>
---
 drivers/media/platform/qcom/venus/core.h         |  2 ++
 drivers/media/platform/qcom/venus/firmware.c     | 33 ++++++++++++++++++++++++
 drivers/media/platform/qcom/venus/firmware.h     | 11 ++++++++
 drivers/media/platform/qcom/venus/hfi_venus.c    | 13 +++-------
 drivers/media/platform/qcom/venus/hfi_venus_io.h |  7 +++++
 5 files changed, 57 insertions(+), 9 deletions(-)
diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platform/qcom/venus/core.h
index 2f02365..dfd5c10 100644
--- a/drivers/media/platform/qcom/venus/core.h
+++ b/drivers/media/platform/qcom/venus/core.h
@@ -98,6 +98,7 @@ struct venus_caps {
  * @dev:               convenience struct device pointer
  * @dev_dec:   convenience struct device pointer for decoder device
  * @dev_enc:   convenience struct device pointer for encoder device
+ * @no_tz:     a flag that suggests presence of trustzone
  * @lock:      a lock for this strucure
  * @instances: a list_head of all instances
  * @insts_count:       num of instances
@@ -129,6 +130,7 @@ struct venus_core {
        struct device *dev;
        struct device *dev_dec;
        struct device *dev_enc;
+       bool no_tz;
        struct mutex lock;
        struct list_head instances;
        atomic_t insts_count;
diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/platform/qcom/venus/firmware.c
index c4a5778..a9d042e 100644
--- a/drivers/media/platform/qcom/venus/firmware.c
+++ b/drivers/media/platform/qcom/venus/firmware.c
@@ -22,10 +22,43 @@
 #include <linux/sizes.h>
 #include <linux/soc/qcom/mdt_loader.h>

+#include "core.h"
 #include "firmware.h"
+#include "hfi_venus_io.h"

 #define VENUS_PAS_ID                   9
 #define VENUS_FW_MEM_SIZE              (6 * SZ_1M)
This is making a strong assumption about the size of the FW memory
region, which in practice is not always true (I had to reduce it to
5MB). How about having this as a member of venus_core, which is
Why you reduced to 5MB? Is there an issue with 6MB or you don't want to
waste reserved memory?
initialized in venus_load_fw() from the actual size of the memory
region? You could do this as an extra patch that comes before this
one.
The size is 6MB by historical reasons and they are no more valid, so I
think we could safely decrease to 5MB. I could prepare a patch for that.

-- 
regards,
Stan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help