1*437bfbebSnyanmisaka /*
2*437bfbebSnyanmisaka * Copyright 2021 Rockchip Electronics Co. LTD
3*437bfbebSnyanmisaka *
4*437bfbebSnyanmisaka * Licensed under the Apache License, Version 2.0 (the "License");
5*437bfbebSnyanmisaka * you may not use this file except in compliance with the License.
6*437bfbebSnyanmisaka * You may obtain a copy of the License at
7*437bfbebSnyanmisaka *
8*437bfbebSnyanmisaka * http://www.apache.org/licenses/LICENSE-2.0
9*437bfbebSnyanmisaka *
10*437bfbebSnyanmisaka * Unless required by applicable law or agreed to in writing, software
11*437bfbebSnyanmisaka * distributed under the License is distributed on an "AS IS" BASIS,
12*437bfbebSnyanmisaka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*437bfbebSnyanmisaka * See the License for the specific language governing permissions and
14*437bfbebSnyanmisaka * limitations under the License.
15*437bfbebSnyanmisaka */
16*437bfbebSnyanmisaka
17*437bfbebSnyanmisaka #define MODULE_TAG "mpp_cluster_test"
18*437bfbebSnyanmisaka
19*437bfbebSnyanmisaka #include "mpp_log.h"
20*437bfbebSnyanmisaka #include "mpp_time.h"
21*437bfbebSnyanmisaka #include "mpp_common.h"
22*437bfbebSnyanmisaka
23*437bfbebSnyanmisaka #include "mpp_cluster.h"
24*437bfbebSnyanmisaka
25*437bfbebSnyanmisaka typedef struct MppTestNode_t {
26*437bfbebSnyanmisaka MppNode node;
27*437bfbebSnyanmisaka } MppTestNode;
28*437bfbebSnyanmisaka
29*437bfbebSnyanmisaka MppTestNode test_node;
30*437bfbebSnyanmisaka
mpp_cluster_test_worker(void * param)31*437bfbebSnyanmisaka static RK_S32 mpp_cluster_test_worker(void *param)
32*437bfbebSnyanmisaka {
33*437bfbebSnyanmisaka RK_S32 ret = MPP_NOK;
34*437bfbebSnyanmisaka (void) param;
35*437bfbebSnyanmisaka
36*437bfbebSnyanmisaka mpp_log_f("worker run start\n");
37*437bfbebSnyanmisaka mpp_log_f("worker run ret %d\n", ret);
38*437bfbebSnyanmisaka
39*437bfbebSnyanmisaka return ret;
40*437bfbebSnyanmisaka }
41*437bfbebSnyanmisaka
main()42*437bfbebSnyanmisaka int main()
43*437bfbebSnyanmisaka {
44*437bfbebSnyanmisaka MPP_RET ret = MPP_OK;
45*437bfbebSnyanmisaka MppNode node = test_node.node;
46*437bfbebSnyanmisaka RK_U32 total_run = 2;
47*437bfbebSnyanmisaka
48*437bfbebSnyanmisaka mpp_log("mpp_cluster_test start\n");
49*437bfbebSnyanmisaka
50*437bfbebSnyanmisaka ret = mpp_node_init(&node);
51*437bfbebSnyanmisaka if (ret) {
52*437bfbebSnyanmisaka mpp_err("mpp_node_init failed ret %d\n", ret);
53*437bfbebSnyanmisaka goto DONE;
54*437bfbebSnyanmisaka }
55*437bfbebSnyanmisaka
56*437bfbebSnyanmisaka mpp_log("mpp_cluster_test init node done\n");
57*437bfbebSnyanmisaka
58*437bfbebSnyanmisaka /* setup node info */
59*437bfbebSnyanmisaka mpp_node_set_func(node, mpp_cluster_test_worker, &test_node);
60*437bfbebSnyanmisaka
61*437bfbebSnyanmisaka mpp_log("mpp_cluster_test attach node start\n");
62*437bfbebSnyanmisaka ret = mpp_node_attach(node, VPU_CLIENT_RKVDEC);
63*437bfbebSnyanmisaka if (ret) {
64*437bfbebSnyanmisaka mpp_err("mpp_node_attach failed ret %d\n", ret);
65*437bfbebSnyanmisaka goto DONE;
66*437bfbebSnyanmisaka }
67*437bfbebSnyanmisaka
68*437bfbebSnyanmisaka mpp_log("mpp_cluster_test trigger start\n");
69*437bfbebSnyanmisaka
70*437bfbebSnyanmisaka do {
71*437bfbebSnyanmisaka ret = mpp_node_trigger(node, 1);
72*437bfbebSnyanmisaka if (ret) {
73*437bfbebSnyanmisaka mpp_err("mpp_node_trigger failed ret %d\n", ret);
74*437bfbebSnyanmisaka goto DONE;
75*437bfbebSnyanmisaka }
76*437bfbebSnyanmisaka
77*437bfbebSnyanmisaka mpp_log("mpp_cluster_test trigger %d left\n", total_run);
78*437bfbebSnyanmisaka
79*437bfbebSnyanmisaka msleep(5);
80*437bfbebSnyanmisaka } while (--total_run);
81*437bfbebSnyanmisaka
82*437bfbebSnyanmisaka mpp_log("mpp_cluster_test detach start\n");
83*437bfbebSnyanmisaka
84*437bfbebSnyanmisaka ret = mpp_node_detach(node);
85*437bfbebSnyanmisaka if (ret) {
86*437bfbebSnyanmisaka mpp_err("mpp_node_detach failed ret %d\n", ret);
87*437bfbebSnyanmisaka goto DONE;
88*437bfbebSnyanmisaka }
89*437bfbebSnyanmisaka
90*437bfbebSnyanmisaka mpp_log("mpp_cluster_test deinit start\n");
91*437bfbebSnyanmisaka
92*437bfbebSnyanmisaka ret = mpp_node_deinit(node);
93*437bfbebSnyanmisaka if (ret) {
94*437bfbebSnyanmisaka mpp_err("mpp_node_deinit failed ret %d\n", ret);
95*437bfbebSnyanmisaka goto DONE;
96*437bfbebSnyanmisaka }
97*437bfbebSnyanmisaka
98*437bfbebSnyanmisaka mpp_log("mpp_cluster_test deinit done\n");
99*437bfbebSnyanmisaka
100*437bfbebSnyanmisaka DONE:
101*437bfbebSnyanmisaka mpp_log("mpp_cluster_test done %s\n", ret ? "failed" : "success");
102*437bfbebSnyanmisaka return ret;
103*437bfbebSnyanmisaka }
104