blob: c0f4eb8cd163f9a79ca61b6365e5f380ded1e6bb [file] [log] [blame]
/*
* drivers/amlogic/media/common/codec_mm/configs/configs_test.c
*
* Copyright (C) 2017 Amlogic, Inc. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
*/
#include <linux/amlogic/media/codec_mm/configs.h>
static struct mconfig_node media;
static struct mconfig_node vdec;
static struct mconfig_node decoder;
static struct mconfig_node parser;
static struct mconfig_node codec;
static struct mconfig_node fast;
static struct mconfig_node fast2;
static struct mconfig vdec_configs[] = {
MC_I32("vdec", 1),
MC_I32("vdec1", 1),
MC_I32("vdec2", 2),
MC_I32("vdec3", 3),
MC_I32("vdec4", 4),
};
static struct mconfig decoder_configs[] = {
MC_I32("264", 1),
MC_I32("265", 1),
MC_U32("vp9", 2),
MC_U32("vc1", 3),
MC_U32("rmvb", 4),
};
static struct mconfig parser_configs[] = {
MC_I32("ts", 1),
MC_I32("es", 1),
MC_I32("demux", 2),
MC_U32("rm", 3),
MC_U32("ps", 4),
};
static struct mconfig vdec_profile[] = {
MC_CSTR("265", "compress,di,c,mmu"),
MC_CSTR("264", "compress,di,c,4k"),
MC_CSTR("263", "compress,di,c"),
MC_CSTR("vc1", "compress,di,c"),
MC_CSTR("rm", "compress,di,di,ps"),
};
static int a, b, c, d, e;
struct mconfig fast_profile[] = {
MC_PI32("265", &a),
MC_PI32("264", &b),
MC_PI32("263", &c),
MC_PI32("vc1", &d),
MC_PI32("rm", &e),
};
int dump_set(const char *trigger, int id, const char *buf, int size)
{
pr_err("trigger-->[%s]\n", buf);
return size;
}
struct mconfig fast2_profile[] = {
MC_FUN("trigger", NULL, &dump_set),
};
static int config_test(void)
{
static int init;
if (init > 0)
return 0;
init++;
configs_init_new_node(&media, "debug", CONFIG_FOR_RW);
configs_register_node(NULL, &media);
configs_init_new_node(&vdec, "vdec", CONFIG_FOR_RW);
configs_register_node(&media, &vdec);
REG_CONFIGS(&vdec, vdec_configs);
configs_init_new_node(&decoder, "decoder", CONFIG_FOR_RW);
REG_CONFIGS(&decoder, decoder_configs);
configs_register_node(&media, &decoder);
configs_init_new_node(&parser, "parser", CONFIG_FOR_W);
REG_CONFIGS(&parser, parser_configs);
configs_register_node(&media, &parser);
configs_init_new_node(&codec, "codec", CONFIG_FOR_R);
REG_CONFIGS(&codec, vdec_profile);
configs_register_node(&media, &codec);
configs_init_new_node(&fast, "fast", CONFIG_FOR_RW);
REG_CONFIGS(&fast, fast_profile);
configs_register_node(&media, &fast);
configs_init_new_node(&fast2, "trigger", CONFIG_FOR_W);
REG_CONFIGS(&fast2, fast2_profile);
configs_register_node(&media, &fast2);
/* configs_register_configs(); */
return 0;
}
int config_dump(void *buf, int size)
{
config_test();
b++;
c = b+3;
a++;
d += 2;
return configs_list_nodes(NULL, buf, size,
LIST_MODE_FULL_CMDVAL_ALL);
}
int configs_config_setstr(const char *buf)
{
int ret;
config_test();
pr_info("-----------start configs_config_setstr\n\n");
ret = configs_set_path_valonpath(buf);
pr_info("-----------end configs_config_setstr\n\n");
return ret;
}