170c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs#ifndef __NOUVEAU_BIOS_H__ 270c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs#define __NOUVEAU_BIOS_H__ 370c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs 470c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs#include <core/subdev.h> 570c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs#include <core/device.h> 670c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs 770c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggsstruct nouveau_bios { 870c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs struct nouveau_subdev base; 970c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs u32 size; 1070c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs u8 *data; 1170c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs 1270c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs u32 bmp_offset; 1370c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs u32 bit_offset; 1470c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs 1570c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs struct { 1670c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs u8 major; 1770c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs u8 chip; 1870c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs u8 minor; 1970c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs u8 micro; 200dd660d4ab9ceb48f24f4df2ebab3e73d908a1e8Ben Skeggs u8 patch; 2170c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs } version; 2270c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs}; 2370c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs 2470c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggsstatic inline struct nouveau_bios * 2570c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggsnouveau_bios(void *obj) 2670c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs{ 2770c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_VBIOS]; 2870c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs} 2970c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs 3070c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggsu8 nvbios_checksum(const u8 *data, int size); 3170c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggsu16 nvbios_findstr(const u8 *data, int size, const char *str, int len); 3270c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs 3370c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggsextern struct nouveau_oclass nouveau_bios_oclass; 3470c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs 3570c0f263cc2eb12e02506eb75f0a71490e7dea4dBen Skeggs#endif 36