linux/drivers/media/usb/as102/as10x_cmd.h

/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * Abilis Systems Single DVB-T Receiver
 * Copyright (C) 2008 Pierrick Hascoet <[email protected]>
 */
#ifndef _AS10X_CMD_H_
#define _AS10X_CMD_H_

#include <linux/kernel.h>

#include "as102_fe_types.h"

/*********************************/
/*       MACRO DEFINITIONS       */
/*********************************/
#define AS10X_CMD_ERROR

#define SERVICE_PROG_ID
#define SERVICE_PROG_VERSION

#define HIER_NONE
#define HIER_LOW_PRIORITY

#define HEADER_SIZE

/* context request types */
#define GET_CONTEXT_DATA
#define SET_CONTEXT_DATA

/* ODSP suspend modes */
#define CFG_MODE_ODSP_RESUME
#define CFG_MODE_ODSP_SUSPEND

/* Dump memory size */
#define DUMP_BLOCK_SIZE_MAX

/*********************************/
/*     TYPE DEFINITION           */
/*********************************/
enum control_proc {};

as10x_turn_on __packed;

as10x_turn_off __packed;

as10x_set_tune __packed;

as10x_get_tune_status __packed;

as10x_get_tps __packed;

as10x_common __packed;

as10x_add_pid_filter __packed;

as10x_del_pid_filter __packed;

as10x_start_streaming __packed;

as10x_stop_streaming __packed;

as10x_get_demod_stats __packed;

as10x_get_impulse_resp __packed;

as10x_fw_context __packed;

as10x_set_register __packed;

as10x_get_register __packed;

as10x_cfg_change_mode __packed;

struct as10x_cmd_header_t {} __packed;

#define DUMP_BLOCK_SIZE

as10x_dump_memory __packed;

as10x_dumplog_memory __packed;

as10x_raw_data __packed;

struct as10x_cmd_t {} __packed;

struct as10x_token_cmd_t {} __packed;


/**************************/
/* FUNCTION DECLARATION   */
/**************************/

void as10x_cmd_build(struct as10x_cmd_t *pcmd, uint16_t proc_id,
		      uint16_t cmd_len);
int as10x_rsp_parse(struct as10x_cmd_t *r, uint16_t proc_id);

/* as10x cmd */
int as10x_cmd_turn_on(struct as10x_bus_adapter_t *adap);
int as10x_cmd_turn_off(struct as10x_bus_adapter_t *adap);

int as10x_cmd_set_tune(struct as10x_bus_adapter_t *adap,
		       struct as10x_tune_args *ptune);

int as10x_cmd_get_tune_status(struct as10x_bus_adapter_t *adap,
			      struct as10x_tune_status *pstatus);

int as10x_cmd_get_tps(struct as10x_bus_adapter_t *adap,
		      struct as10x_tps *ptps);

int as10x_cmd_get_demod_stats(struct as10x_bus_adapter_t  *adap,
			      struct as10x_demod_stats *pdemod_stats);

int as10x_cmd_get_impulse_resp(struct as10x_bus_adapter_t *adap,
			       uint8_t *is_ready);

/* as10x cmd stream */
int as10x_cmd_add_PID_filter(struct as10x_bus_adapter_t *adap,
			     struct as10x_ts_filter *filter);
int as10x_cmd_del_PID_filter(struct as10x_bus_adapter_t *adap,
			     uint16_t pid_value);

int as10x_cmd_start_streaming(struct as10x_bus_adapter_t *adap);
int as10x_cmd_stop_streaming(struct as10x_bus_adapter_t *adap);

/* as10x cmd cfg */
int as10x_cmd_set_context(struct as10x_bus_adapter_t *adap,
			  uint16_t tag,
			  uint32_t value);
int as10x_cmd_get_context(struct as10x_bus_adapter_t *adap,
			  uint16_t tag,
			  uint32_t *pvalue);

int as10x_cmd_eLNA_change_mode(struct as10x_bus_adapter_t *adap, uint8_t mode);
int as10x_context_rsp_parse(struct as10x_cmd_t *prsp, uint16_t proc_id);
#endif