1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3 * Copyright (c) 2020, The Linux Foundation. All rights reserved.
4 */
5 #include "hfi_platform.h"
6
hfi_platform_get(enum hfi_version version)7 const struct hfi_platform *hfi_platform_get(enum hfi_version version)
8 {
9 switch (version) {
10 case HFI_VERSION_4XX:
11 return &hfi_plat_v4;
12 case HFI_VERSION_6XX:
13 return &hfi_plat_v6;
14 default:
15 break;
16 }
17
18 return NULL;
19 }
20
21 unsigned long
hfi_platform_get_codec_vpp_freq(enum hfi_version version,u32 codec,u32 session_type)22 hfi_platform_get_codec_vpp_freq(enum hfi_version version, u32 codec, u32 session_type)
23 {
24 const struct hfi_platform *plat;
25 unsigned long freq = 0;
26
27 plat = hfi_platform_get(version);
28 if (!plat)
29 return 0;
30
31 if (plat->codec_vpp_freq)
32 freq = plat->codec_vpp_freq(session_type, codec);
33
34 return freq;
35 }
36
37 unsigned long
hfi_platform_get_codec_vsp_freq(enum hfi_version version,u32 codec,u32 session_type)38 hfi_platform_get_codec_vsp_freq(enum hfi_version version, u32 codec, u32 session_type)
39 {
40 const struct hfi_platform *plat;
41 unsigned long freq = 0;
42
43 plat = hfi_platform_get(version);
44 if (!plat)
45 return 0;
46
47 if (plat->codec_vpp_freq)
48 freq = plat->codec_vsp_freq(session_type, codec);
49
50 return freq;
51 }
52
53 unsigned long
hfi_platform_get_codec_lp_freq(enum hfi_version version,u32 codec,u32 session_type)54 hfi_platform_get_codec_lp_freq(enum hfi_version version, u32 codec, u32 session_type)
55 {
56 const struct hfi_platform *plat;
57 unsigned long freq = 0;
58
59 plat = hfi_platform_get(version);
60 if (!plat)
61 return 0;
62
63 if (plat->codec_lp_freq)
64 freq = plat->codec_lp_freq(session_type, codec);
65
66 return freq;
67 }
68
hfi_platform_num_vpp_pipes(enum hfi_version version)69 u8 hfi_platform_num_vpp_pipes(enum hfi_version version)
70 {
71 const struct hfi_platform *plat;
72
73 plat = hfi_platform_get(version);
74 if (!plat)
75 return 0;
76
77 if (plat->num_vpp_pipes)
78 return plat->num_vpp_pipes();
79
80 return 0;
81 }
82