iommu/arm-smmu-v3: Make symbols public for CONFIG_TEGRA241_CMDQV
authorNicolin Chen <nicolinc@nvidia.com>
Thu, 29 Aug 2024 22:34:33 +0000 (15:34 -0700)
committerWill Deacon <will@kernel.org>
Fri, 30 Aug 2024 14:18:42 +0000 (15:18 +0100)
The symbols __arm_smmu_cmdq_skip_err(), arm_smmu_init_one_queue(), and
arm_smmu_cmdq_init() need to be used by the tegra241-cmdqv compilation
unit in a following patch.

Remove the static and put prototypes in the header.

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Link: https://lore.kernel.org/r/c4f2aa5f5f40a2e7c68b132c6d3171d6403de57a.1724970714.git.nicolinc@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h

index 22578d1aa2680b6cb921908042b679f937ff42be..061a61f4ff0ab421b48e0e34ae2845829bb92e1e 100644 (file)
@@ -371,8 +371,8 @@ static void arm_smmu_cmdq_build_sync_cmd(u64 *cmd, struct arm_smmu_device *smmu,
        arm_smmu_cmdq_build_cmd(cmd, &ent);
 }
 
-static void __arm_smmu_cmdq_skip_err(struct arm_smmu_device *smmu,
-                                    struct arm_smmu_cmdq *cmdq)
+void __arm_smmu_cmdq_skip_err(struct arm_smmu_device *smmu,
+                             struct arm_smmu_cmdq *cmdq)
 {
        static const char * const cerror_str[] = {
                [CMDQ_ERR_CERROR_NONE_IDX]      = "No error",
@@ -3521,12 +3521,10 @@ static struct iommu_dirty_ops arm_smmu_dirty_ops = {
 };
 
 /* Probing and initialisation functions */
-static int arm_smmu_init_one_queue(struct arm_smmu_device *smmu,
-                                  struct arm_smmu_queue *q,
-                                  void __iomem *page,
-                                  unsigned long prod_off,
-                                  unsigned long cons_off,
-                                  size_t dwords, const char *name)
+int arm_smmu_init_one_queue(struct arm_smmu_device *smmu,
+                           struct arm_smmu_queue *q, void __iomem *page,
+                           unsigned long prod_off, unsigned long cons_off,
+                           size_t dwords, const char *name)
 {
        size_t qsz;
 
@@ -3564,8 +3562,8 @@ static int arm_smmu_init_one_queue(struct arm_smmu_device *smmu,
        return 0;
 }
 
-static int arm_smmu_cmdq_init(struct arm_smmu_device *smmu,
-                             struct arm_smmu_cmdq *cmdq)
+int arm_smmu_cmdq_init(struct arm_smmu_device *smmu,
+                      struct arm_smmu_cmdq *cmdq)
 {
        unsigned int nents = 1 << cmdq->q.llq.max_n_shift;
 
index ba24f9efc5c9d57fbb3ac546715b1143fc4dbcc7..50efc804f91c8c7b3cbe9b4c2dd9a77b15deccc7 100644 (file)
@@ -816,6 +816,15 @@ void arm_smmu_tlb_inv_range_asid(unsigned long iova, size_t size, int asid,
 int arm_smmu_atc_inv_domain(struct arm_smmu_domain *smmu_domain,
                            unsigned long iova, size_t size);
 
+void __arm_smmu_cmdq_skip_err(struct arm_smmu_device *smmu,
+                             struct arm_smmu_cmdq *cmdq);
+int arm_smmu_init_one_queue(struct arm_smmu_device *smmu,
+                           struct arm_smmu_queue *q, void __iomem *page,
+                           unsigned long prod_off, unsigned long cons_off,
+                           size_t dwords, const char *name);
+int arm_smmu_cmdq_init(struct arm_smmu_device *smmu,
+                      struct arm_smmu_cmdq *cmdq);
+
 #ifdef CONFIG_ARM_SMMU_V3_SVA
 bool arm_smmu_sva_supported(struct arm_smmu_device *smmu);
 bool arm_smmu_master_sva_supported(struct arm_smmu_master *master);