#include "evga-card.h"

struct device_offset {
	unsigned short device_id;
	int vram_offset;
	int hotspot_offset;
};

static struct device_offset device_offset_info[] = 
{
	{.device_id = NVIDIA_RTX3090TI_DEV,			.vram_offset = 0x0000E2A8,	.hotspot_offset = 0x0002046c},	/* RTX 3090 Ti */
	{.device_id = NVIDIA_RTX3090_DEV,			.vram_offset = 0x0000E2A8,	.hotspot_offset = 0x0002046c},	/* RTX 3090 */
	{.device_id = NVIDIA_RTX3080TI_DEV,			.vram_offset = 0x0000E2A8,	.hotspot_offset = 0x0002046c},	/* RTX 3080 Ti */
	{.device_id = NVIDIA_RTX3080_12G_LHR_DEV,	.vram_offset = 0x0000E2A8,	.hotspot_offset = 0x0002046c},	/* RTX 3080 12G LHR */
	{.device_id = NVIDIA_RTX3080_LHR_DEV,		.vram_offset = 0x0000E2A8,	.hotspot_offset = 0x0002046c},	/* RTX 3080 LHR */
	{.device_id = NVIDIA_RTX3080_DEV,			.vram_offset = 0x0000E2A8,	.hotspot_offset = 0x0002046c},	/* RTX 3080 */
	{.device_id = NVIDIA_RTX3080_DEV,			.vram_offset = 0x0000E2A8,	.hotspot_offset = 0x0002046c},	/* RTX 3080 */
	{.device_id = NVIDIA_RTX3070TI_GA102_DEV,	.vram_offset = 0x0000EE50,	.hotspot_offset = 0x0002046c},	/* RTX 3070 Ti GA102 TODO:check */
	{.device_id = NVIDIA_RTX3070TI_DEV,			.vram_offset = 0x0000EE50,	.hotspot_offset = 0x0002046c},	/* RTX 3070 Ti TODO:check */
	{.device_id = NVIDIA_RTX3070_LHR_DEV,		.vram_offset = 0x0000EE50,	.hotspot_offset = 0x0002046c},	/* RTX 3070 */
	{.device_id = NVIDIA_RTX3070_DEV,			.vram_offset = 0x0000EE50,	.hotspot_offset = 0x0002046c},	/* RTX 3070 LHR */
};

void init_gddr6(struct card_info *card);
float get_vram_temp(struct card_info *card);
float get_hotspot_temp(struct card_info *card);