#ifndef ATOM_H
#define ATOM_H
#include <linux/mutex.h>
#include <linux/types.h>
#define ATOM_BIOS_MAGIC …
#define ATOM_ATI_MAGIC_PTR …
#define ATOM_ATI_MAGIC …
#define ATOM_ROM_TABLE_PTR …
#define ATOM_ROM_MAGIC …
#define ATOM_ROM_MAGIC_PTR …
#define ATOM_ROM_MSG_PTR …
#define ATOM_ROM_CMD_PTR …
#define ATOM_ROM_DATA_PTR …
#define ATOM_CMD_INIT …
#define ATOM_CMD_SETSCLK …
#define ATOM_CMD_SETMCLK …
#define ATOM_CMD_SETPCLK …
#define ATOM_CMD_SPDFANCNTL …
#define ATOM_DATA_FWI_PTR …
#define ATOM_DATA_IIO_PTR …
#define ATOM_FWI_DEFSCLK_PTR …
#define ATOM_FWI_DEFMCLK_PTR …
#define ATOM_FWI_MAXSCLK_PTR …
#define ATOM_FWI_MAXMCLK_PTR …
#define ATOM_CT_SIZE_PTR …
#define ATOM_CT_WS_PTR …
#define ATOM_CT_PS_PTR …
#define ATOM_CT_PS_MASK …
#define ATOM_CT_CODE_PTR …
#define ATOM_OP_CNT …
#define ATOM_OP_EOT …
#define ATOM_CASE_MAGIC …
#define ATOM_CASE_END …
#define ATOM_ARG_REG …
#define ATOM_ARG_PS …
#define ATOM_ARG_WS …
#define ATOM_ARG_FB …
#define ATOM_ARG_ID …
#define ATOM_ARG_IMM …
#define ATOM_ARG_PLL …
#define ATOM_ARG_MC …
#define ATOM_SRC_DWORD …
#define ATOM_SRC_WORD0 …
#define ATOM_SRC_WORD8 …
#define ATOM_SRC_WORD16 …
#define ATOM_SRC_BYTE0 …
#define ATOM_SRC_BYTE8 …
#define ATOM_SRC_BYTE16 …
#define ATOM_SRC_BYTE24 …
#define ATOM_WS_QUOTIENT …
#define ATOM_WS_REMAINDER …
#define ATOM_WS_DATAPTR …
#define ATOM_WS_SHIFT …
#define ATOM_WS_OR_MASK …
#define ATOM_WS_AND_MASK …
#define ATOM_WS_FB_WINDOW …
#define ATOM_WS_ATTRIBUTES …
#define ATOM_WS_REGPTR …
#define ATOM_IIO_NOP …
#define ATOM_IIO_START …
#define ATOM_IIO_READ …
#define ATOM_IIO_WRITE …
#define ATOM_IIO_CLEAR …
#define ATOM_IIO_SET …
#define ATOM_IIO_MOVE_INDEX …
#define ATOM_IIO_MOVE_ATTR …
#define ATOM_IIO_MOVE_DATA …
#define ATOM_IIO_END …
#define ATOM_IO_MM …
#define ATOM_IO_PCI …
#define ATOM_IO_SYSIO …
#define ATOM_IO_IIO …
struct card_info { … };
struct atom_context { … };
extern int atom_debug;
struct atom_context *atom_parse(struct card_info *, void *);
int atom_execute_table(struct atom_context *, int, uint32_t *, int);
int atom_execute_table_scratch_unlocked(struct atom_context *, int, uint32_t *, int);
int atom_asic_init(struct atom_context *);
void atom_destroy(struct atom_context *);
bool atom_parse_data_header(struct atom_context *ctx, int index, uint16_t *size,
uint8_t *frev, uint8_t *crev, uint16_t *data_start);
bool atom_parse_cmd_header(struct atom_context *ctx, int index,
uint8_t *frev, uint8_t *crev);
int atom_allocate_fb_scratch(struct atom_context *ctx);
struct i2c_msg;
struct i2c_adapter;
int radeon_atom_hw_i2c_xfer(struct i2c_adapter *i2c_adap,
struct i2c_msg *msgs, int num);
u32 radeon_atom_hw_i2c_func(struct i2c_adapter *adap);
#include "atom-types.h"
#include "atombios.h"
#include "ObjectID.h"
#endif