blob: b9491c0b2a2552123876155fe8fa2444b427a1f5 [file] [log] [blame]
hai.cao8c827c02023-02-28 11:12:05 +08001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2019 Amlogic, Inc. All rights reserved.
4 */
5
6#include <common.h>
7#include <command.h>
8#include <amlogic/media/vpp/vpp.h>
9
10static int do_vpp_pq(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
11{
12 short brightness, contrast, sat, hue;
13
14 if (argc < 1) {
15 printf("[vpp] pq val error !!!\n");
16 return cmd_usage(cmdtp);
17 }
18
19 if (strcmp(argv[0], "pq") == 0) {
20 if (argc == 5) {
21 brightness = simple_strtol(argv[1], NULL, 10);
22 contrast = simple_strtol(argv[2], NULL, 10);
23 sat = simple_strtol(argv[3], NULL, 10);
24 hue = simple_strtol(argv[4], NULL, 10);
25
26 printf("[vpp] bri:%d, cont:%d,sat: %d, hue: %d\n",
27 brightness, contrast, sat, hue);
28 vpp_pq_init(brightness, contrast, sat, hue);
29 } else {
30 printf("[vpp]arg cnt error: %x !!!\n", argc);
31 return cmd_usage(cmdtp);
32 }
33 } else {
34 printf("[vpp]arg val error !!!\n");
35 return cmd_usage(cmdtp);
36 }
37
38 return CMD_RET_SUCCESS;
39}
40
41static int do_hdr_packet(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
42{
43
44 if (argc < 1) {
45 printf("[vpp] hdr packet error !!!\n");
46 return cmd_usage(cmdtp);
47 }
48
49 extern bool check_dolby_vision_on(void);
50 if (!check_dolby_vision_on()) {
51 printf("hdr_packet\n");
52 hdr_tx_pkt_cb();
53 }
54
55 return CMD_RET_SUCCESS;
56}
57
58static int do_vpp_init(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
59{
60 vpp_init();
61 return CMD_RET_SUCCESS;
62
63}
64
65static cmd_tbl_t cmd_vpp_sub[] = {
66 U_BOOT_CMD_MKENT(pq, 5, 1, do_vpp_pq, "", ""),
67 U_BOOT_CMD_MKENT(hdrpkt, 1, 1, do_hdr_packet, "", ""),
68 U_BOOT_CMD_MKENT(init, 2, 0, do_vpp_init, "", ""),
69};
70
71static int do_vpp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
72{
73 cmd_tbl_t *c;
74
75 /* Strip off leading 'bmp' command argument */
76 argc--;
77 argv++;
78
79 c = find_cmd_tbl(argv[0], &cmd_vpp_sub[0], ARRAY_SIZE(cmd_vpp_sub));
80
81 if (c) {
82 return c->cmd(cmdtp, flag, argc, argv);
83 } else {
84 cmd_usage(cmdtp);
85 return 1;
86 }
87}
88
89U_BOOT_CMD(vpp, CONFIG_SYS_MAXARGS, 0, do_vpp,
90 "vpp sub-system",
91 "osd+video pq value brightness/contrast/saturation/hue parameters\n"
92 "vpp init - init vpp\n"
93);