habanalabs: pass device pointer to asic-specific function
authorOded Gabbay <oded.gabbay@gmail.com>
Sun, 12 May 2019 13:53:16 +0000 (16:53 +0300)
committerOded Gabbay <oded.gabbay@gmail.com>
Sun, 12 May 2019 13:53:16 +0000 (16:53 +0300)
This patch adds a new parameter that is passed to the
add_end_of_cb_packets() asic-specific function.

The parameter is the pointer to the driver's device structure. The
function needs this pointer for future ASICs.

Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
drivers/misc/habanalabs/goya/goya.c
drivers/misc/habanalabs/goya/goyaP.h
drivers/misc/habanalabs/habanalabs.h
drivers/misc/habanalabs/hw_queue.c

index ffc7997d4898775b007eddb338196cb297b34368..0c8e8bc7fb6ef2f8ca52944436316288d735b329 100644 (file)
@@ -3888,8 +3888,8 @@ int goya_cs_parser(struct hl_device *hdev, struct hl_cs_parser *parser)
                return goya_parse_cb_no_mmu(hdev, parser);
 }
 
-void goya_add_end_of_cb_packets(u64 kernel_address, u32 len, u64 cq_addr,
-                               u32 cq_val, u32 msix_vec)
+void goya_add_end_of_cb_packets(struct hl_device *hdev, u64 kernel_address,
+                               u32 len, u64 cq_addr, u32 cq_val, u32 msix_vec)
 {
        struct packet_msg_prot *cq_pkt;
        u32 tmp;
index c83cab0d641e2df257705ac12d7ade7b454e5526..066b1d3069772a35247a38a22b061ef1f534c7fd 100644 (file)
@@ -214,8 +214,8 @@ int goya_resume(struct hl_device *hdev);
 void goya_handle_eqe(struct hl_device *hdev, struct hl_eq_entry *eq_entry);
 void *goya_get_events_stat(struct hl_device *hdev, u32 *size);
 
-void goya_add_end_of_cb_packets(u64 kernel_address, u32 len, u64 cq_addr,
-                               u32 cq_val, u32 msix_vec);
+void goya_add_end_of_cb_packets(struct hl_device *hdev, u64 kernel_address,
+                               u32 len, u64 cq_addr, u32 cq_val, u32 msix_vec);
 int goya_cs_parser(struct hl_device *hdev, struct hl_cs_parser *parser);
 void *goya_get_int_queue_base(struct hl_device *hdev, u32 queue_id,
                                dma_addr_t *dma_handle, u16 *queue_len);
index 00b3339f4828fba2fbb2f4c99e177a86296eac13..2941838c04c155b3c57d54416ebde6b41b9cb6bb 100644 (file)
@@ -543,8 +543,9 @@ struct hl_asic_funcs {
                                enum dma_data_direction dir);
        u32 (*get_dma_desc_list_size)(struct hl_device *hdev,
                                        struct sg_table *sgt);
-       void (*add_end_of_cb_packets)(u64 kernel_address, u32 len, u64 cq_addr,
-                                       u32 cq_val, u32 msix_num);
+       void (*add_end_of_cb_packets)(struct hl_device *hdev,
+                                       u64 kernel_address, u32 len,
+                                       u64 cq_addr, u32 cq_val, u32 msix_num);
        void (*update_eq_ci)(struct hl_device *hdev, u32 val);
        int (*context_switch)(struct hl_device *hdev, u32 asid);
        void (*restore_phase_topology)(struct hl_device *hdev);
index 2894d8975933481ea4501ffcdab156b70a79d8cc..e3b5517897eabf1de40c28d54b28dd540282d5f3 100644 (file)
@@ -265,7 +265,7 @@ static void ext_hw_queue_schedule_job(struct hl_cs_job *job)
        cq = &hdev->completion_queue[q->hw_queue_id];
        cq_addr = cq->bus_address + cq->pi * sizeof(struct hl_cq_entry);
 
-       hdev->asic_funcs->add_end_of_cb_packets(cb->kernel_address, len,
+       hdev->asic_funcs->add_end_of_cb_packets(hdev, cb->kernel_address, len,
                                                cq_addr,
                                                __le32_to_cpu(cq_pkt.data),
                                                q->hw_queue_id);