LCOV - code coverage report
Current view: top level - drivers/remoteproc - remoteproc_internal.h (source / functions) Hit Total Coverage
Test: combined.info Lines: 0 18 0.0 %
Date: 2022-03-28 16:04:14 Functions: 0 0 -
Branches: 0 12 0.0 %

           Branch data     Line data    Source code
       1                 :            : /* SPDX-License-Identifier: GPL-2.0-only */
       2                 :            : /*
       3                 :            :  * Remote processor framework
       4                 :            :  *
       5                 :            :  * Copyright (C) 2011 Texas Instruments, Inc.
       6                 :            :  * Copyright (C) 2011 Google, Inc.
       7                 :            :  *
       8                 :            :  * Ohad Ben-Cohen <ohad@wizery.com>
       9                 :            :  * Brian Swetland <swetland@google.com>
      10                 :            :  */
      11                 :            : 
      12                 :            : #ifndef REMOTEPROC_INTERNAL_H
      13                 :            : #define REMOTEPROC_INTERNAL_H
      14                 :            : 
      15                 :            : #include <linux/irqreturn.h>
      16                 :            : #include <linux/firmware.h>
      17                 :            : 
      18                 :            : struct rproc;
      19                 :            : 
      20                 :            : struct rproc_debug_trace {
      21                 :            :         struct rproc *rproc;
      22                 :            :         struct dentry *tfile;
      23                 :            :         struct list_head node;
      24                 :            :         struct rproc_mem_entry trace_mem;
      25                 :            : };
      26                 :            : 
      27                 :            : /* from remoteproc_core.c */
      28                 :            : void rproc_release(struct kref *kref);
      29                 :            : irqreturn_t rproc_vq_interrupt(struct rproc *rproc, int vq_id);
      30                 :            : void rproc_vdev_release(struct kref *ref);
      31                 :            : 
      32                 :            : /* from remoteproc_virtio.c */
      33                 :            : int rproc_add_virtio_dev(struct rproc_vdev *rvdev, int id);
      34                 :            : int rproc_remove_virtio_dev(struct device *dev, void *data);
      35                 :            : 
      36                 :            : /* from remoteproc_debugfs.c */
      37                 :            : void rproc_remove_trace_file(struct dentry *tfile);
      38                 :            : struct dentry *rproc_create_trace_file(const char *name, struct rproc *rproc,
      39                 :            :                                        struct rproc_debug_trace *trace);
      40                 :            : void rproc_delete_debug_dir(struct rproc *rproc);
      41                 :            : void rproc_create_debug_dir(struct rproc *rproc);
      42                 :            : void rproc_init_debugfs(void);
      43                 :            : void rproc_exit_debugfs(void);
      44                 :            : 
      45                 :            : /* from remoteproc_sysfs.c */
      46                 :            : extern struct class rproc_class;
      47                 :            : int rproc_init_sysfs(void);
      48                 :            : void rproc_exit_sysfs(void);
      49                 :            : 
      50                 :            : void rproc_free_vring(struct rproc_vring *rvring);
      51                 :            : int rproc_alloc_vring(struct rproc_vdev *rvdev, int i);
      52                 :            : 
      53                 :            : void *rproc_da_to_va(struct rproc *rproc, u64 da, int len);
      54                 :            : phys_addr_t rproc_va_to_pa(void *cpu_addr);
      55                 :            : int rproc_trigger_recovery(struct rproc *rproc);
      56                 :            : 
      57                 :            : int rproc_elf_sanity_check(struct rproc *rproc, const struct firmware *fw);
      58                 :            : u32 rproc_elf_get_boot_addr(struct rproc *rproc, const struct firmware *fw);
      59                 :            : int rproc_elf_load_segments(struct rproc *rproc, const struct firmware *fw);
      60                 :            : int rproc_elf_load_rsc_table(struct rproc *rproc, const struct firmware *fw);
      61                 :            : struct resource_table *rproc_elf_find_loaded_rsc_table(struct rproc *rproc,
      62                 :            :                                                        const struct firmware *fw);
      63                 :            : struct rproc_mem_entry *
      64                 :            : rproc_find_carveout_by_name(struct rproc *rproc, const char *name, ...);
      65                 :            : 
      66                 :            : static inline
      67                 :          0 : int rproc_fw_sanity_check(struct rproc *rproc, const struct firmware *fw)
      68                 :            : {
      69         [ #  # ]:          0 :         if (rproc->ops->sanity_check)
      70                 :          0 :                 return rproc->ops->sanity_check(rproc, fw);
      71                 :            : 
      72                 :            :         return 0;
      73                 :            : }
      74                 :            : 
      75                 :            : static inline
      76                 :          0 : u32 rproc_get_boot_addr(struct rproc *rproc, const struct firmware *fw)
      77                 :            : {
      78         [ #  # ]:          0 :         if (rproc->ops->get_boot_addr)
      79                 :          0 :                 return rproc->ops->get_boot_addr(rproc, fw);
      80                 :            : 
      81                 :            :         return 0;
      82                 :            : }
      83                 :            : 
      84                 :            : static inline
      85                 :          0 : int rproc_load_segments(struct rproc *rproc, const struct firmware *fw)
      86                 :            : {
      87         [ #  # ]:          0 :         if (rproc->ops->load)
      88                 :          0 :                 return rproc->ops->load(rproc, fw);
      89                 :            : 
      90                 :            :         return -EINVAL;
      91                 :            : }
      92                 :            : 
      93                 :          0 : static inline int rproc_parse_fw(struct rproc *rproc, const struct firmware *fw)
      94                 :            : {
      95         [ #  # ]:          0 :         if (rproc->ops->parse_fw)
      96                 :          0 :                 return rproc->ops->parse_fw(rproc, fw);
      97                 :            : 
      98                 :            :         return 0;
      99                 :            : }
     100                 :            : 
     101                 :            : static inline
     102                 :          0 : int rproc_handle_rsc(struct rproc *rproc, u32 rsc_type, void *rsc, int offset,
     103                 :            :                      int avail)
     104                 :            : {
     105         [ #  # ]:          0 :         if (rproc->ops->handle_rsc)
     106                 :          0 :                 return rproc->ops->handle_rsc(rproc, rsc_type, rsc, offset,
     107                 :            :                                               avail);
     108                 :            : 
     109                 :            :         return RSC_IGNORED;
     110                 :            : }
     111                 :            : 
     112                 :            : static inline
     113                 :          0 : struct resource_table *rproc_find_loaded_rsc_table(struct rproc *rproc,
     114                 :            :                                                    const struct firmware *fw)
     115                 :            : {
     116         [ #  # ]:          0 :         if (rproc->ops->find_loaded_rsc_table)
     117                 :          0 :                 return rproc->ops->find_loaded_rsc_table(rproc, fw);
     118                 :            : 
     119                 :            :         return NULL;
     120                 :            : }
     121                 :            : 
     122                 :            : #endif /* REMOTEPROC_INTERNAL_H */

Generated by: LCOV version 1.14