root/include/linux/interconnect.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. icc_get
  2. of_icc_get
  3. icc_put
  4. icc_set_bw
  5. icc_set_tag

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * Copyright (c) 2018-2019, Linaro Ltd.
   4  * Author: Georgi Djakov <georgi.djakov@linaro.org>
   5  */
   6 
   7 #ifndef __LINUX_INTERCONNECT_H
   8 #define __LINUX_INTERCONNECT_H
   9 
  10 #include <linux/mutex.h>
  11 #include <linux/types.h>
  12 
  13 /* macros for converting to icc units */
  14 #define Bps_to_icc(x)   ((x) / 1000)
  15 #define kBps_to_icc(x)  (x)
  16 #define MBps_to_icc(x)  ((x) * 1000)
  17 #define GBps_to_icc(x)  ((x) * 1000 * 1000)
  18 #define bps_to_icc(x)   (1)
  19 #define kbps_to_icc(x)  ((x) / 8 + ((x) % 8 ? 1 : 0))
  20 #define Mbps_to_icc(x)  ((x) * 1000 / 8)
  21 #define Gbps_to_icc(x)  ((x) * 1000 * 1000 / 8)
  22 
  23 struct icc_path;
  24 struct device;
  25 
  26 #if IS_ENABLED(CONFIG_INTERCONNECT)
  27 
  28 struct icc_path *icc_get(struct device *dev, const int src_id,
  29                          const int dst_id);
  30 struct icc_path *of_icc_get(struct device *dev, const char *name);
  31 void icc_put(struct icc_path *path);
  32 int icc_set_bw(struct icc_path *path, u32 avg_bw, u32 peak_bw);
  33 void icc_set_tag(struct icc_path *path, u32 tag);
  34 
  35 #else
  36 
  37 static inline struct icc_path *icc_get(struct device *dev, const int src_id,
  38                                        const int dst_id)
  39 {
  40         return NULL;
  41 }
  42 
  43 static inline struct icc_path *of_icc_get(struct device *dev,
  44                                           const char *name)
  45 {
  46         return NULL;
  47 }
  48 
  49 static inline void icc_put(struct icc_path *path)
  50 {
  51 }
  52 
  53 static inline int icc_set_bw(struct icc_path *path, u32 avg_bw, u32 peak_bw)
  54 {
  55         return 0;
  56 }
  57 
  58 static inline void icc_set_tag(struct icc_path *path, u32 tag)
  59 {
  60 }
  61 
  62 #endif /* CONFIG_INTERCONNECT */
  63 
  64 #endif /* __LINUX_INTERCONNECT_H */

/* [<][>][^][v][top][bottom][index][help] */