linux/drivers/media/usb/pvrusb2/pvrusb2-hdw-internal.h

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 *
 *  Copyright (C) 2005 Mike Isely <[email protected]>
 */
#ifndef __PVRUSB2_HDW_INTERNAL_H
#define __PVRUSB2_HDW_INTERNAL_H

/*

  This header sets up all the internal structures and definitions needed to
  track and coordinate the driver's interaction with the hardware.  ONLY
  source files which actually implement part of that whole circus should be
  including this header.  Higher levels, like the external layers to the
  various public APIs (V4L, sysfs, etc) should NOT ever include this
  private, internal header.  This means that pvrusb2-hdw, pvrusb2-encoder,
  etc will include this, but pvrusb2-v4l should not.

*/

#include <linux/videodev2.h>
#include <linux/i2c.h>
#include <linux/workqueue.h>
#include <linux/mutex.h>
#include "pvrusb2-hdw.h"
#include "pvrusb2-io.h"
#include <media/v4l2-device.h>
#include <media/drv-intf/cx2341x.h>
#include <media/i2c/ir-kbd-i2c.h>
#include "pvrusb2-devattr.h"

/* Legal values for PVR2_CID_HSM */
#define PVR2_CVAL_HSM_FAIL
#define PVR2_CVAL_HSM_FULL
#define PVR2_CVAL_HSM_HIGH

#define PVR2_VID_ENDPOINT
#define PVR2_UNK_ENDPOINT
#define PVR2_VBI_ENDPOINT

#define PVR2_CTL_BUFFSIZE

#define FREQTABLE_SIZE

#define LOCK_TAKE(x)
#define LOCK_GIVE(x)

pvr2_ctlf_is_dirty;
pvr2_ctlf_clear_dirty;
pvr2_ctlf_check_value;
pvr2_ctlf_get_value;
pvr2_ctlf_set_value;
pvr2_ctlf_val_to_sym;
pvr2_ctlf_sym_to_val;
pvr2_ctlf_get_v4lflags;

/* This structure describes a specific control.  A table of these is set up
   in pvrusb2-hdw.c. */
struct pvr2_ctl_info {};


/* Same as pvr2_ctl_info, but includes storage for the control description */
#define PVR2_CTLD_INFO_DESC_SIZE
struct pvr2_ctld_info {};

struct pvr2_ctrl {};



/* Disposition of firmware1 loading situation */
#define FW1_STATE_UNKNOWN
#define FW1_STATE_MISSING
#define FW1_STATE_FAILED
#define FW1_STATE_RELOAD
#define FW1_STATE_OK

/* What state the device is in if it is a hybrid */
#define PVR2_PATHWAY_UNKNOWN
#define PVR2_PATHWAY_ANALOG
#define PVR2_PATHWAY_DIGITAL

pvr2_i2c_func;
#define PVR2_I2C_FUNC_CNT

/* This structure contains all state data directly needed to
   manipulate the hardware (as opposed to complying with a kernel
   interface) */
struct pvr2_hdw {};

/* This function gets the current frequency */
unsigned long pvr2_hdw_get_cur_freq(struct pvr2_hdw *);

void pvr2_hdw_status_poll(struct pvr2_hdw *);

#endif /* __PVRUSB2_HDW_INTERNAL_H */