diff options
Diffstat (limited to 'nvkm/include/subdev')
53 files changed, 0 insertions, 2451 deletions
diff --git a/nvkm/include/subdev/bar.h b/nvkm/include/subdev/bar.h deleted file mode 100644 index 960e33a30..000000000 --- a/nvkm/include/subdev/bar.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef __NOUVEAU_BAR_H__ -#define __NOUVEAU_BAR_H__ - -#include <core/subdev.h> -#include <core/device.h> - -struct nouveau_mem; -struct nouveau_vma; - -struct nouveau_bar { - struct nouveau_subdev base; - - int (*alloc)(struct nouveau_bar *, struct nouveau_object *, - struct nouveau_mem *, struct nouveau_object **); - - int (*kmap)(struct nouveau_bar *, struct nouveau_mem *, - u32 flags, struct nouveau_vma *); - int (*umap)(struct nouveau_bar *, struct nouveau_mem *, - u32 flags, struct nouveau_vma *); - void (*unmap)(struct nouveau_bar *, struct nouveau_vma *); - void (*flush)(struct nouveau_bar *); - - /* whether the BAR supports to be ioremapped WC or should be uncached */ - bool iomap_uncached; -}; - -static inline struct nouveau_bar * -nouveau_bar(void *obj) -{ - return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_BAR); -} - -extern struct nouveau_oclass nv50_bar_oclass; -extern struct nouveau_oclass nvc0_bar_oclass; -extern struct nouveau_oclass gk20a_bar_oclass; - -#endif diff --git a/nvkm/include/subdev/bios.h b/nvkm/include/subdev/bios.h deleted file mode 100644 index 39528a9f3..000000000 --- a/nvkm/include/subdev/bios.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __NOUVEAU_BIOS_H__ -#define __NOUVEAU_BIOS_H__ - -#include <core/subdev.h> -#include <core/device.h> - -struct nouveau_bios { - struct nouveau_subdev base; - u32 size; - u8 *data; - - u32 bmp_offset; - u32 bit_offset; - - struct { - u8 major; - u8 chip; - u8 minor; - u8 micro; - u8 patch; - } version; -}; - -static inline struct nouveau_bios * -nouveau_bios(void *obj) -{ - return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_VBIOS); -} - -u8 nvbios_checksum(const u8 *data, int size); -u16 nvbios_findstr(const u8 *data, int size, const char *str, int len); - -extern struct nouveau_oclass nouveau_bios_oclass; - -#endif diff --git a/nvkm/include/subdev/bios/M0203.h b/nvkm/include/subdev/bios/M0203.h deleted file mode 100644 index 1f84d3612..000000000 --- a/nvkm/include/subdev/bios/M0203.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef __NVBIOS_M0203_H__ -#define __NVBIOS_M0203_H__ - -struct nvbios_M0203T { -#define M0203T_TYPE_RAMCFG 0x00 - u8 type; - u16 pointer; -}; - -u32 nvbios_M0203Te(struct nouveau_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len); -u32 nvbios_M0203Tp(struct nouveau_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len, - struct nvbios_M0203T *); - -struct nvbios_M0203E { -#define M0203E_TYPE_DDR2 0x0 -#define M0203E_TYPE_DDR3 0x1 -#define M0203E_TYPE_GDDR3 0x2 -#define M0203E_TYPE_GDDR5 0x3 -#define M0203E_TYPE_SKIP 0xf - u8 type; - u8 strap; - u8 group; -}; - -u32 nvbios_M0203Ee(struct nouveau_bios *, int idx, u8 *ver, u8 *hdr); -u32 nvbios_M0203Ep(struct nouveau_bios *, int idx, u8 *ver, u8 *hdr, - struct nvbios_M0203E *); -u32 nvbios_M0203Em(struct nouveau_bios *, u8 ramcfg, u8 *ver, u8 *hdr, - struct nvbios_M0203E *); - -#endif diff --git a/nvkm/include/subdev/bios/M0205.h b/nvkm/include/subdev/bios/M0205.h deleted file mode 100644 index e171120ce..000000000 --- a/nvkm/include/subdev/bios/M0205.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef __NVBIOS_M0205_H__ -#define __NVBIOS_M0205_H__ - -struct nvbios_M0205T { - u16 freq; -}; - -u32 nvbios_M0205Te(struct nouveau_bios *, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, u8 *snr, u8 *ssz); -u32 nvbios_M0205Tp(struct nouveau_bios *, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, u8 *snr, u8 *ssz, - struct nvbios_M0205T *); - -struct nvbios_M0205E { - u8 type; -}; - -u32 nvbios_M0205Ee(struct nouveau_bios *, int idx, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len); -u32 nvbios_M0205Ep(struct nouveau_bios *, int idx, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, - struct nvbios_M0205E *); - -struct nvbios_M0205S { - u8 data; -}; - -u32 nvbios_M0205Se(struct nouveau_bios *, int ent, int idx, u8 *ver, u8 *hdr); -u32 nvbios_M0205Sp(struct nouveau_bios *, int ent, int idx, u8 *ver, u8 *hdr, - struct nvbios_M0205S *); - -#endif diff --git a/nvkm/include/subdev/bios/M0209.h b/nvkm/include/subdev/bios/M0209.h deleted file mode 100644 index 67dc50d83..000000000 --- a/nvkm/include/subdev/bios/M0209.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef __NVBIOS_M0209_H__ -#define __NVBIOS_M0209_H__ - -u32 nvbios_M0209Te(struct nouveau_bios *, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, u8 *snr, u8 *ssz); - -struct nvbios_M0209E { - u8 v00_40; - u8 bits; - u8 modulo; - u8 v02_40; - u8 v02_07; - u8 v03; -}; - -u32 nvbios_M0209Ee(struct nouveau_bios *, int idx, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len); -u32 nvbios_M0209Ep(struct nouveau_bios *, int idx, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, - struct nvbios_M0209E *); - -struct nvbios_M0209S { - u32 data[0x200]; -}; - -u32 nvbios_M0209Se(struct nouveau_bios *, int ent, int idx, u8 *ver, u8 *hdr); -u32 nvbios_M0209Sp(struct nouveau_bios *, int ent, int idx, u8 *ver, u8 *hdr, - struct nvbios_M0209S *); - -#endif diff --git a/nvkm/include/subdev/bios/P0260.h b/nvkm/include/subdev/bios/P0260.h deleted file mode 100644 index bba01ab1e..000000000 --- a/nvkm/include/subdev/bios/P0260.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef __NVBIOS_P0260_H__ -#define __NVBIOS_P0260_H__ - -u32 nvbios_P0260Te(struct nouveau_bios *, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, u8 *xnr, u8 *xsz); - -struct nvbios_P0260E { - u32 data; -}; - -u32 nvbios_P0260Ee(struct nouveau_bios *, int idx, u8 *ver, u8 *hdr); -u32 nvbios_P0260Ep(struct nouveau_bios *, int idx, u8 *ver, u8 *hdr, - struct nvbios_P0260E *); - -struct nvbios_P0260X { - u32 data; -}; - -u32 nvbios_P0260Xe(struct nouveau_bios *, int idx, u8 *ver, u8 *hdr); -u32 nvbios_P0260Xp(struct nouveau_bios *, int idx, u8 *ver, u8 *hdr, - struct nvbios_P0260X *); - -#endif diff --git a/nvkm/include/subdev/bios/bit.h b/nvkm/include/subdev/bios/bit.h deleted file mode 100644 index 73f060b07..000000000 --- a/nvkm/include/subdev/bios/bit.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef __NVBIOS_BIT_H__ -#define __NVBIOS_BIT_H__ - -struct bit_entry { - u8 id; - u8 version; - u16 length; - u16 offset; -}; - -int bit_entry(struct nouveau_bios *, u8 id, struct bit_entry *); - -#endif diff --git a/nvkm/include/subdev/bios/bmp.h b/nvkm/include/subdev/bios/bmp.h deleted file mode 100644 index 10e4dbca6..000000000 --- a/nvkm/include/subdev/bios/bmp.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef __NVBIOS_BMP_H__ -#define __NVBIOS_BMP_H__ - -static inline u16 -bmp_version(struct nouveau_bios *bios) -{ - if (bios->bmp_offset) { - return nv_ro08(bios, bios->bmp_offset + 5) << 8 | - nv_ro08(bios, bios->bmp_offset + 6); - } - - return 0x0000; -} - -static inline u16 -bmp_mem_init_table(struct nouveau_bios *bios) -{ - if (bmp_version(bios) >= 0x0300) - return nv_ro16(bios, bios->bmp_offset + 24); - return 0x0000; -} - -static inline u16 -bmp_sdr_seq_table(struct nouveau_bios *bios) -{ - if (bmp_version(bios) >= 0x0300) - return nv_ro16(bios, bios->bmp_offset + 26); - return 0x0000; -} - -static inline u16 -bmp_ddr_seq_table(struct nouveau_bios *bios) -{ - if (bmp_version(bios) >= 0x0300) - return nv_ro16(bios, bios->bmp_offset + 28); - return 0x0000; -} - -#endif diff --git a/nvkm/include/subdev/bios/boost.h b/nvkm/include/subdev/bios/boost.h deleted file mode 100644 index 662b20726..000000000 --- a/nvkm/include/subdev/bios/boost.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef __NVBIOS_BOOST_H__ -#define __NVBIOS_BOOST_H__ - -u16 nvbios_boostTe(struct nouveau_bios *, u8 *, u8 *, u8 *, u8 *, u8 *, u8 *); - -struct nvbios_boostE { - u8 pstate; - u32 min; - u32 max; -}; - -u16 nvbios_boostEe(struct nouveau_bios *, int idx, u8 *, u8 *, u8 *, u8 *); -u16 nvbios_boostEp(struct nouveau_bios *, int idx, u8 *, u8 *, u8 *, u8 *, - struct nvbios_boostE *); -u16 nvbios_boostEm(struct nouveau_bios *, u8, u8 *, u8 *, u8 *, u8 *, - struct nvbios_boostE *); - -struct nvbios_boostS { - u8 domain; - u8 percent; - u32 min; - u32 max; -}; - -u16 nvbios_boostSe(struct nouveau_bios *, int, u16, u8 *, u8 *, u8, u8); -u16 nvbios_boostSp(struct nouveau_bios *, int, u16, u8 *, u8 *, u8, u8, - struct nvbios_boostS *); - -#endif diff --git a/nvkm/include/subdev/bios/conn.h b/nvkm/include/subdev/bios/conn.h deleted file mode 100644 index f3930c27c..000000000 --- a/nvkm/include/subdev/bios/conn.h +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef __NVBIOS_CONN_H__ -#define __NVBIOS_CONN_H__ - -enum dcb_connector_type { - DCB_CONNECTOR_VGA = 0x00, - DCB_CONNECTOR_TV_0 = 0x10, - DCB_CONNECTOR_TV_1 = 0x11, - DCB_CONNECTOR_TV_3 = 0x13, - DCB_CONNECTOR_DVI_I = 0x30, - DCB_CONNECTOR_DVI_D = 0x31, - DCB_CONNECTOR_DMS59_0 = 0x38, - DCB_CONNECTOR_DMS59_1 = 0x39, - DCB_CONNECTOR_LVDS = 0x40, - DCB_CONNECTOR_LVDS_SPWG = 0x41, - DCB_CONNECTOR_DP = 0x46, - DCB_CONNECTOR_eDP = 0x47, - DCB_CONNECTOR_HDMI_0 = 0x60, - DCB_CONNECTOR_HDMI_1 = 0x61, - DCB_CONNECTOR_HDMI_C = 0x63, - DCB_CONNECTOR_DMS59_DP0 = 0x64, - DCB_CONNECTOR_DMS59_DP1 = 0x65, - DCB_CONNECTOR_NONE = 0xff -}; - -struct nvbios_connT { -}; - -u32 nvbios_connTe(struct nouveau_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len); -u32 nvbios_connTp(struct nouveau_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len, - struct nvbios_connT *info); - -struct nvbios_connE { - u8 type; - u8 location; - u8 hpd; - u8 dp; - u8 di; - u8 sr; - u8 lcdid; -}; - -u32 nvbios_connEe(struct nouveau_bios *bios, u8 idx, u8 *ver, u8 *hdr); -u32 nvbios_connEp(struct nouveau_bios *bios, u8 idx, u8 *ver, u8 *hdr, - struct nvbios_connE *info); - -#endif diff --git a/nvkm/include/subdev/bios/cstep.h b/nvkm/include/subdev/bios/cstep.h deleted file mode 100644 index a80a43809..000000000 --- a/nvkm/include/subdev/bios/cstep.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef __NVBIOS_CSTEP_H__ -#define __NVBIOS_CSTEP_H__ - -u16 nvbios_cstepTe(struct nouveau_bios *, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, u8 *xnr, u8 *xsz); - -struct nvbios_cstepE { - u8 pstate; - u8 index; -}; - -u16 nvbios_cstepEe(struct nouveau_bios *, int idx, u8 *ver, u8 *hdr); -u16 nvbios_cstepEp(struct nouveau_bios *, int idx, u8 *ver, u8 *hdr, - struct nvbios_cstepE *); -u16 nvbios_cstepEm(struct nouveau_bios *, u8 pstate, u8 *ver, u8 *hdr, - struct nvbios_cstepE *); - -struct nvbios_cstepX { - u32 freq; - u8 unkn[2]; - u8 voltage; -}; - -u16 nvbios_cstepXe(struct nouveau_bios *, int idx, u8 *ver, u8 *hdr); -u16 nvbios_cstepXp(struct nouveau_bios *, int idx, u8 *ver, u8 *hdr, - struct nvbios_cstepX *); - -#endif diff --git a/nvkm/include/subdev/bios/dcb.h b/nvkm/include/subdev/bios/dcb.h deleted file mode 100644 index 123270e98..000000000 --- a/nvkm/include/subdev/bios/dcb.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef __NVBIOS_DCB_H__ -#define __NVBIOS_DCB_H__ - -struct nouveau_bios; - -enum dcb_output_type { - DCB_OUTPUT_ANALOG = 0x0, - DCB_OUTPUT_TV = 0x1, - DCB_OUTPUT_TMDS = 0x2, - DCB_OUTPUT_LVDS = 0x3, - DCB_OUTPUT_DP = 0x6, - DCB_OUTPUT_EOL = 0xe, - DCB_OUTPUT_UNUSED = 0xf, - DCB_OUTPUT_ANY = -1, -}; - -struct dcb_output { - int index; /* may not be raw dcb index if merging has happened */ - u16 hasht; - u16 hashm; - enum dcb_output_type type; - uint8_t i2c_index; - uint8_t heads; - uint8_t connector; - uint8_t bus; - uint8_t location; - uint8_t or; - uint8_t link; - bool duallink_possible; - uint8_t extdev; - union { - struct sor_conf { - int link; - } sorconf; - struct { - int maxfreq; - } crtconf; - struct { - struct sor_conf sor; - bool use_straps_for_mode; - bool use_acpi_for_edid; - bool use_power_scripts; - } lvdsconf; - struct { - bool has_component_output; - } tvconf; - struct { - struct sor_conf sor; - int link_nr; - int link_bw; - } dpconf; - struct { - struct sor_conf sor; - int slave_addr; - } tmdsconf; - }; - bool i2c_upper_default; -}; - -u16 dcb_table(struct nouveau_bios *, u8 *ver, u8 *hdr, u8 *ent, u8 *len); -u16 dcb_outp(struct nouveau_bios *, u8 idx, u8 *ver, u8 *len); -u16 dcb_outp_parse(struct nouveau_bios *, u8 idx, u8 *, u8 *, - struct dcb_output *); -u16 dcb_outp_match(struct nouveau_bios *, u16 type, u16 mask, u8 *, u8 *, - struct dcb_output *); -int dcb_outp_foreach(struct nouveau_bios *, void *data, int (*exec) - (struct nouveau_bios *, void *, int index, u16 entry)); - -#endif diff --git a/nvkm/include/subdev/bios/dfp.h b/nvkm/include/subdev/bios/dfp.h deleted file mode 100644 index 50cb52c11..000000000 --- a/nvkm/include/subdev/bios/dfp.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef __NVBIOS_DFP_H__ -#define __NVBIOS_DFP_H__ - -#endif diff --git a/nvkm/include/subdev/bios/disp.h b/nvkm/include/subdev/bios/disp.h deleted file mode 100644 index c35937e2f..000000000 --- a/nvkm/include/subdev/bios/disp.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef __NVBIOS_DISP_H__ -#define __NVBIOS_DISP_H__ - -u16 nvbios_disp_table(struct nouveau_bios *, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, u8 *sub); - -struct nvbios_disp { - u16 data; -}; - -u16 nvbios_disp_entry(struct nouveau_bios *, u8 idx, - u8 *ver, u8 *hdr__, u8 *sub); -u16 nvbios_disp_parse(struct nouveau_bios *, u8 idx, - u8 *ver, u8 *hdr__, u8 *sub, - struct nvbios_disp *); - -struct nvbios_outp { - u16 type; - u16 mask; - u16 script[3]; -}; - -u16 nvbios_outp_entry(struct nouveau_bios *, u8 idx, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len); -u16 nvbios_outp_parse(struct nouveau_bios *, u8 idx, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, - struct nvbios_outp *); -u16 nvbios_outp_match(struct nouveau_bios *, u16 type, u16 mask, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, - struct nvbios_outp *); - - -struct nvbios_ocfg { - u16 match; - u16 clkcmp[2]; -}; - -u16 nvbios_ocfg_entry(struct nouveau_bios *, u16 outp, u8 idx, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len); -u16 nvbios_ocfg_parse(struct nouveau_bios *, u16 outp, u8 idx, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, - struct nvbios_ocfg *); -u16 nvbios_ocfg_match(struct nouveau_bios *, u16 outp, u16 type, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, - struct nvbios_ocfg *); -u16 nvbios_oclk_match(struct nouveau_bios *, u16 cmp, u32 khz); - -#endif diff --git a/nvkm/include/subdev/bios/dp.h b/nvkm/include/subdev/bios/dp.h deleted file mode 100644 index 728206e21..000000000 --- a/nvkm/include/subdev/bios/dp.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __NVBIOS_DP_H__ -#define __NVBIOS_DP_H__ - -struct nvbios_dpout { - u16 type; - u16 mask; - u8 flags; - u32 script[5]; - u32 lnkcmp; -}; - -u16 nvbios_dpout_parse(struct nouveau_bios *, u8 idx, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, - struct nvbios_dpout *); -u16 nvbios_dpout_match(struct nouveau_bios *, u16 type, u16 mask, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, - struct nvbios_dpout *); - -struct nvbios_dpcfg { - u8 pc; - u8 dc; - u8 pe; - u8 tx_pu; -}; - -u16 -nvbios_dpcfg_parse(struct nouveau_bios *, u16 outp, u8 idx, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, - struct nvbios_dpcfg *); -u16 -nvbios_dpcfg_match(struct nouveau_bios *, u16 outp, u8 pc, u8 vs, u8 pe, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, - struct nvbios_dpcfg *); - -#endif diff --git a/nvkm/include/subdev/bios/extdev.h b/nvkm/include/subdev/bios/extdev.h deleted file mode 100644 index 949fee3af..000000000 --- a/nvkm/include/subdev/bios/extdev.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef __NVBIOS_EXTDEV_H__ -#define __NVBIOS_EXTDEV_H__ - -struct nouveau_bios; - -enum nvbios_extdev_type { - NVBIOS_EXTDEV_LM89 = 0x02, - NVBIOS_EXTDEV_VT1103M = 0x40, - NVBIOS_EXTDEV_PX3540 = 0x41, - NVBIOS_EXTDEV_VT1105M = 0x42, /* or close enough... */ - NVBIOS_EXTDEV_ADT7473 = 0x70, /* can also be a LM64 */ - NVBIOS_EXTDEV_HDCP_EEPROM = 0x90, - NVBIOS_EXTDEV_NONE = 0xff, -}; - -struct nvbios_extdev_func { - u8 type; - u8 addr; - u8 bus; -}; - -int -nvbios_extdev_parse(struct nouveau_bios *, int, struct nvbios_extdev_func *); - -int -nvbios_extdev_find(struct nouveau_bios *, enum nvbios_extdev_type, - struct nvbios_extdev_func *); - - -#endif diff --git a/nvkm/include/subdev/bios/fan.h b/nvkm/include/subdev/bios/fan.h deleted file mode 100644 index 119d0874e..000000000 --- a/nvkm/include/subdev/bios/fan.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef __NVBIOS_FAN_H__ -#define __NVBIOS_FAN_H__ - -#include <subdev/bios/therm.h> - -u16 nvbios_fan_parse(struct nouveau_bios *bios, struct nvbios_therm_fan *fan); - -#endif diff --git a/nvkm/include/subdev/bios/gpio.h b/nvkm/include/subdev/bios/gpio.h deleted file mode 100644 index c7b2e586b..000000000 --- a/nvkm/include/subdev/bios/gpio.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef __NVBIOS_GPIO_H__ -#define __NVBIOS_GPIO_H__ - -enum dcb_gpio_func_name { - DCB_GPIO_PANEL_POWER = 0x01, - DCB_GPIO_TVDAC0 = 0x0c, - DCB_GPIO_TVDAC1 = 0x2d, - DCB_GPIO_FAN = 0x09, - DCB_GPIO_FAN_SENSE = 0x3d, - DCB_GPIO_UNUSED = 0xff, - DCB_GPIO_VID0 = 0x04, - DCB_GPIO_VID1 = 0x05, - DCB_GPIO_VID2 = 0x06, - DCB_GPIO_VID3 = 0x1a, - DCB_GPIO_VID4 = 0x73, - DCB_GPIO_VID5 = 0x74, - DCB_GPIO_VID6 = 0x75, - DCB_GPIO_VID7 = 0x76, -}; - -#define DCB_GPIO_LOG_DIR 0x02 -#define DCB_GPIO_LOG_DIR_OUT 0x00 -#define DCB_GPIO_LOG_DIR_IN 0x02 -#define DCB_GPIO_LOG_VAL 0x01 -#define DCB_GPIO_LOG_VAL_LO 0x00 -#define DCB_GPIO_LOG_VAL_HI 0x01 - -struct dcb_gpio_func { - u8 func; - u8 line; - u8 log[2]; - - /* so far, "param" seems to only have an influence on PWM-related - * GPIOs such as FAN_CONTROL and PANEL_BACKLIGHT_LEVEL. - * if param equals 1, hardware PWM is available - * if param equals 0, the host should toggle the GPIO itself - */ - u8 param; -}; - -u16 dcb_gpio_table(struct nouveau_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len); -u16 dcb_gpio_entry(struct nouveau_bios *, int idx, int ent, u8 *ver, u8 *len); -u16 dcb_gpio_parse(struct nouveau_bios *, int idx, int ent, u8 *ver, u8 *len, - struct dcb_gpio_func *); -u16 dcb_gpio_match(struct nouveau_bios *, int idx, u8 func, u8 line, - u8 *ver, u8 *len, struct dcb_gpio_func *); - -#endif diff --git a/nvkm/include/subdev/bios/i2c.h b/nvkm/include/subdev/bios/i2c.h deleted file mode 100644 index c9bb11289..000000000 --- a/nvkm/include/subdev/bios/i2c.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef __NVBIOS_I2C_H__ -#define __NVBIOS_I2C_H__ - -struct nouveau_bios; - -enum dcb_i2c_type { - /* matches bios type field prior to ccb 4.1 */ - DCB_I2C_NV04_BIT = 0x00, - DCB_I2C_NV4E_BIT = 0x04, - DCB_I2C_NVIO_BIT = 0x05, - DCB_I2C_NVIO_AUX = 0x06, - /* made up - mostly */ - DCB_I2C_PMGR = 0x80, - DCB_I2C_UNUSED = 0xff -}; - -struct dcb_i2c_entry { - enum dcb_i2c_type type; - u8 drive; - u8 sense; - u8 share; - u8 auxch; -}; - -u16 dcb_i2c_table(struct nouveau_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len); -u16 dcb_i2c_entry(struct nouveau_bios *, u8 index, u8 *ver, u8 *len); -int dcb_i2c_parse(struct nouveau_bios *, u8 index, struct dcb_i2c_entry *); - -#endif diff --git a/nvkm/include/subdev/bios/image.h b/nvkm/include/subdev/bios/image.h deleted file mode 100644 index 3348b4580..000000000 --- a/nvkm/include/subdev/bios/image.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef __NVBIOS_IMAGE_H__ -#define __NVBIOS_IMAGE_H__ - -struct nvbios_image { - u32 base; - u32 size; - u8 type; - bool last; -}; - -bool nvbios_image(struct nouveau_bios *, int, struct nvbios_image *); - -#endif diff --git a/nvkm/include/subdev/bios/init.h b/nvkm/include/subdev/bios/init.h deleted file mode 100644 index ca2f6bf37..000000000 --- a/nvkm/include/subdev/bios/init.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef __NVBIOS_INIT_H__ -#define __NVBIOS_INIT_H__ - -struct nvbios_init { - struct nouveau_subdev *subdev; - struct nouveau_bios *bios; - u16 offset; - struct dcb_output *outp; - int crtc; - - /* internal state used during parsing */ - u8 execute; - u32 nested; - u16 repeat; - u16 repend; - u32 ramcfg; -}; - -int nvbios_exec(struct nvbios_init *); -int nvbios_init(struct nouveau_subdev *, bool execute); - -#endif diff --git a/nvkm/include/subdev/bios/mxm.h b/nvkm/include/subdev/bios/mxm.h deleted file mode 100644 index 5572e6041..000000000 --- a/nvkm/include/subdev/bios/mxm.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef __NVBIOS_MXM_H__ -#define __NVBIOS_MXM_H__ - -u16 mxm_table(struct nouveau_bios *, u8 *ver, u8 *hdr); - -u8 mxm_sor_map(struct nouveau_bios *, u8 conn); -u8 mxm_ddc_map(struct nouveau_bios *, u8 port); - -#endif diff --git a/nvkm/include/subdev/bios/npde.h b/nvkm/include/subdev/bios/npde.h deleted file mode 100644 index b18413d95..000000000 --- a/nvkm/include/subdev/bios/npde.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef __NVBIOS_NPDE_H__ -#define __NVBIOS_NPDE_H__ - -struct nvbios_npdeT { - u32 image_size; - bool last; -}; - -u32 nvbios_npdeTe(struct nouveau_bios *, u32); -u32 nvbios_npdeTp(struct nouveau_bios *, u32, struct nvbios_npdeT *); - -#endif diff --git a/nvkm/include/subdev/bios/pcir.h b/nvkm/include/subdev/bios/pcir.h deleted file mode 100644 index 3d634a06d..000000000 --- a/nvkm/include/subdev/bios/pcir.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef __NVBIOS_PCIR_H__ -#define __NVBIOS_PCIR_H__ - -struct nvbios_pcirT { - u16 vendor_id; - u16 device_id; - u8 class_code[3]; - u32 image_size; - u16 image_rev; - u8 image_type; - bool last; -}; - -u32 nvbios_pcirTe(struct nouveau_bios *, u32, u8 *ver, u16 *hdr); -u32 nvbios_pcirTp(struct nouveau_bios *, u32, u8 *ver, u16 *hdr, - struct nvbios_pcirT *); - -#endif diff --git a/nvkm/include/subdev/bios/perf.h b/nvkm/include/subdev/bios/perf.h deleted file mode 100644 index 16ff06ec2..000000000 --- a/nvkm/include/subdev/bios/perf.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef __NVBIOS_PERF_H__ -#define __NVBIOS_PERF_H__ - -struct nouveau_bios; - -u16 nvbios_perf_table(struct nouveau_bios *, u8 *ver, u8 *hdr, - u8 *cnt, u8 *len, u8 *snr, u8 *ssz); - -struct nvbios_perfE { - u8 pstate; - u8 fanspeed; - u8 voltage; - u32 core; - u32 shader; - u32 memory; - u32 vdec; - u32 disp; - u32 script; -}; - -u16 nvbios_perf_entry(struct nouveau_bios *, int idx, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len); -u16 nvbios_perfEp(struct nouveau_bios *, int idx, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, struct nvbios_perfE *); - -struct nvbios_perfS { - union { - struct { - u32 freq; - } v40; - }; -}; - -u32 nvbios_perfSe(struct nouveau_bios *, u32 data, int idx, - u8 *ver, u8 *hdr, u8 cnt, u8 len); -u32 nvbios_perfSp(struct nouveau_bios *, u32 data, int idx, - u8 *ver, u8 *hdr, u8 cnt, u8 len, struct nvbios_perfS *); - -struct nvbios_perf_fan { - u32 pwm_divisor; -}; - -int -nvbios_perf_fan_parse(struct nouveau_bios *, struct nvbios_perf_fan *); - - -#endif diff --git a/nvkm/include/subdev/bios/pll.h b/nvkm/include/subdev/bios/pll.h deleted file mode 100644 index b2f3d4d0a..000000000 --- a/nvkm/include/subdev/bios/pll.h +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef __NVBIOS_PLL_H__ -#define __NVBIOS_PLL_H__ - -/*XXX: kill me */ -struct nouveau_pll_vals { - union { - struct { -#ifdef __BIG_ENDIAN - uint8_t N1, M1, N2, M2; -#else - uint8_t M1, N1, M2, N2; -#endif - }; - struct { - uint16_t NM1, NM2; - } __attribute__((packed)); - }; - int log2P; - - int refclk; -}; - -struct nouveau_bios; - -/* these match types in pll limits table version 0x40, - * nouveau uses them on all chipsets internally where a - * specific pll needs to be referenced, but the exact - * register isn't known. - */ -enum nvbios_pll_type { - PLL_CORE = 0x01, - PLL_SHADER = 0x02, - PLL_UNK03 = 0x03, - PLL_MEMORY = 0x04, - PLL_VDEC = 0x05, - PLL_UNK40 = 0x40, - PLL_UNK41 = 0x41, - PLL_UNK42 = 0x42, - PLL_VPLL0 = 0x80, - PLL_VPLL1 = 0x81, - PLL_VPLL2 = 0x82, - PLL_VPLL3 = 0x83, - PLL_MAX = 0xff -}; - -struct nvbios_pll { - enum nvbios_pll_type type; - u32 reg; - u32 refclk; - - u8 min_p; - u8 max_p; - u8 bias_p; - - /* - * for most pre nv50 cards setting a log2P of 7 (the common max_log2p - * value) is no different to 6 (at least for vplls) so allowing the MNP - * calc to use 7 causes the generated clock to be out by a factor of 2. - * however, max_log2p cannot be fixed-up during parsing as the - * unmodified max_log2p value is still needed for setting mplls, hence - * an additional max_usable_log2p member - */ - u8 max_p_usable; - - struct { - u32 min_freq; - u32 max_freq; - u32 min_inputfreq; - u32 max_inputfreq; - u8 min_m; - u8 max_m; - u8 min_n; - u8 max_n; - } vco1, vco2; -}; - -int nvbios_pll_parse(struct nouveau_bios *, u32 type, struct nvbios_pll *); - -#endif diff --git a/nvkm/include/subdev/bios/pmu.h b/nvkm/include/subdev/bios/pmu.h deleted file mode 100644 index 9de593dea..000000000 --- a/nvkm/include/subdev/bios/pmu.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef __NVBIOS_PMU_H__ -#define __NVBIOS_PMU_H__ - -struct nvbios_pmuT { -}; - -u32 nvbios_pmuTe(struct nouveau_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len); -u32 nvbios_pmuTp(struct nouveau_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len, - struct nvbios_pmuT *); - -struct nvbios_pmuE { - u8 type; - u32 data; -}; - -u32 nvbios_pmuEe(struct nouveau_bios *, int idx, u8 *ver, u8 *hdr); -u32 nvbios_pmuEp(struct nouveau_bios *, int idx, u8 *ver, u8 *hdr, - struct nvbios_pmuE *); - -struct nvbios_pmuR { - u32 boot_addr_pmu; - u32 boot_addr; - u32 boot_size; - u32 code_addr_pmu; - u32 code_addr; - u32 code_size; - u32 init_addr_pmu; - - u32 data_addr_pmu; - u32 data_addr; - u32 data_size; - u32 args_addr_pmu; -}; - -bool nvbios_pmuRm(struct nouveau_bios *, u8 type, struct nvbios_pmuR *); - -#endif diff --git a/nvkm/include/subdev/bios/ramcfg.h b/nvkm/include/subdev/bios/ramcfg.h deleted file mode 100644 index 4a0e0ceb4..000000000 --- a/nvkm/include/subdev/bios/ramcfg.h +++ /dev/null @@ -1,145 +0,0 @@ -#ifndef __NVBIOS_RAMCFG_H__ -#define __NVBIOS_RAMCFG_H__ - -struct nouveau_bios; - -struct nvbios_ramcfg { - unsigned rammap_ver; - unsigned rammap_hdr; - unsigned rammap_min; - unsigned rammap_max; - union { - struct { - unsigned rammap_10_04_02:1; - unsigned rammap_10_04_08:1; - }; - struct { - unsigned rammap_11_08_01:1; - unsigned rammap_11_08_0c:2; - unsigned rammap_11_08_10:1; - unsigned rammap_11_09_01ff:9; - unsigned rammap_11_0a_03fe:9; - unsigned rammap_11_0a_0400:1; - unsigned rammap_11_0a_0800:1; - unsigned rammap_11_0b_01f0:5; - unsigned rammap_11_0b_0200:1; - unsigned rammap_11_0b_0400:1; - unsigned rammap_11_0b_0800:1; - unsigned rammap_11_0d:8; - unsigned rammap_11_0e:8; - unsigned rammap_11_0f:8; - unsigned rammap_11_11_0c:2; - }; - }; - - unsigned ramcfg_ver; - unsigned ramcfg_hdr; - unsigned ramcfg_timing; - union { - struct { - unsigned ramcfg_10_02_01:1; - unsigned ramcfg_10_02_02:1; - unsigned ramcfg_10_02_04:1; - unsigned ramcfg_10_02_08:1; - unsigned ramcfg_10_02_10:1; - unsigned ramcfg_10_02_20:1; - unsigned ramcfg_10_DLLoff:1; - unsigned ramcfg_10_03_0f:4; - unsigned ramcfg_10_04_01:1; - unsigned ramcfg_10_05:8; - unsigned ramcfg_10_06:8; - unsigned ramcfg_10_07:8; - unsigned ramcfg_10_08:8; - unsigned ramcfg_10_09_0f:4; - unsigned ramcfg_10_09_f0:4; - }; - struct { - unsigned ramcfg_11_01_01:1; - unsigned ramcfg_11_01_02:1; - unsigned ramcfg_11_01_04:1; - unsigned ramcfg_11_01_08:1; - unsigned ramcfg_11_01_10:1; - unsigned ramcfg_11_01_20:1; - unsigned ramcfg_11_01_40:1; - unsigned ramcfg_11_01_80:1; - unsigned ramcfg_11_02_03:2; - unsigned ramcfg_11_02_04:1; - unsigned ramcfg_11_02_08:1; - unsigned ramcfg_11_02_10:1; - unsigned ramcfg_11_02_40:1; - unsigned ramcfg_11_02_80:1; - unsigned ramcfg_11_03_0f:4; - unsigned ramcfg_11_03_30:2; - unsigned ramcfg_11_03_c0:2; - unsigned ramcfg_11_03_f0:4; - unsigned ramcfg_11_04:8; - unsigned ramcfg_11_06:8; - unsigned ramcfg_11_07_02:1; - unsigned ramcfg_11_07_04:1; - unsigned ramcfg_11_07_08:1; - unsigned ramcfg_11_07_10:1; - unsigned ramcfg_11_07_40:1; - unsigned ramcfg_11_07_80:1; - unsigned ramcfg_11_08_01:1; - unsigned ramcfg_11_08_02:1; - unsigned ramcfg_11_08_04:1; - unsigned ramcfg_11_08_08:1; - unsigned ramcfg_11_08_10:1; - unsigned ramcfg_11_08_20:1; - unsigned ramcfg_11_09:8; - }; - }; - - unsigned timing_ver; - unsigned timing_hdr; - unsigned timing[11]; - union { - struct { - unsigned timing_10_WR:8; - unsigned timing_10_WTR:8; - unsigned timing_10_CL:8; - unsigned timing_10_RC:8; - /*empty: 4 */ - unsigned timing_10_RFC:8; /* Byte 5 */ - /*empty: 6 */ - unsigned timing_10_RAS:8; /* Byte 7 */ - /*empty: 8 */ - unsigned timing_10_RP:8; /* Byte 9 */ - unsigned timing_10_RCDRD:8; - unsigned timing_10_RCDWR:8; - unsigned timing_10_RRD:8; - unsigned timing_10_13:8; - unsigned timing_10_ODT:3; - /* empty: 15 */ - unsigned timing_10_16:8; - /* empty: 17 */ - unsigned timing_10_18:8; - unsigned timing_10_CWL:8; - unsigned timing_10_20:8; - unsigned timing_10_21:8; - /* empty: 22, 23 */ - unsigned timing_10_24:8; - }; - struct { - unsigned timing_20_2e_03:2; - unsigned timing_20_2e_30:2; - unsigned timing_20_2e_c0:2; - unsigned timing_20_2f_03:2; - unsigned timing_20_2c_003f:6; - unsigned timing_20_2c_1fc0:7; - unsigned timing_20_30_f8:5; - unsigned timing_20_30_07:3; - unsigned timing_20_31_0007:3; - unsigned timing_20_31_0078:4; - unsigned timing_20_31_0780:4; - unsigned timing_20_31_0800:1; - unsigned timing_20_31_7000:3; - unsigned timing_20_31_8000:1; - }; - }; -}; - -u8 nvbios_ramcfg_count(struct nouveau_bios *); -u8 nvbios_ramcfg_index(struct nouveau_subdev *); - -#endif diff --git a/nvkm/include/subdev/bios/rammap.h b/nvkm/include/subdev/bios/rammap.h deleted file mode 100644 index 47e021d3e..000000000 --- a/nvkm/include/subdev/bios/rammap.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef __NVBIOS_RAMMAP_H__ -#define __NVBIOS_RAMMAP_H__ - -struct nvbios_ramcfg; - -u32 nvbios_rammapTe(struct nouveau_bios *, u8 *ver, u8 *hdr, - u8 *cnt, u8 *len, u8 *snr, u8 *ssz); - -u32 nvbios_rammapEe(struct nouveau_bios *, int idx, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len); -u32 nvbios_rammapEp(struct nouveau_bios *, int idx, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, - struct nvbios_ramcfg *); -u32 nvbios_rammapEm(struct nouveau_bios *, u16 mhz, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, - struct nvbios_ramcfg *); - -u32 nvbios_rammapSe(struct nouveau_bios *, u32 data, - u8 ever, u8 ehdr, u8 ecnt, u8 elen, int idx, - u8 *ver, u8 *hdr); -u32 nvbios_rammapSp(struct nouveau_bios *, u32 data, - u8 ever, u8 ehdr, u8 ecnt, u8 elen, int idx, - u8 *ver, u8 *hdr, - struct nvbios_ramcfg *); - -#endif diff --git a/nvkm/include/subdev/bios/therm.h b/nvkm/include/subdev/bios/therm.h deleted file mode 100644 index 295d093f3..000000000 --- a/nvkm/include/subdev/bios/therm.h +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef __NVBIOS_THERM_H__ -#define __NVBIOS_THERM_H__ - -struct nouveau_bios; - -struct nvbios_therm_threshold { - u8 temp; - u8 hysteresis; -}; - -struct nvbios_therm_sensor { - /* diode */ - s16 slope_mult; - s16 slope_div; - s16 offset_num; - s16 offset_den; - s8 offset_constant; - - /* thresholds */ - struct nvbios_therm_threshold thrs_fan_boost; - struct nvbios_therm_threshold thrs_down_clock; - struct nvbios_therm_threshold thrs_critical; - struct nvbios_therm_threshold thrs_shutdown; -}; - -enum nvbios_therm_fan_type { - NVBIOS_THERM_FAN_UNK = 0, - NVBIOS_THERM_FAN_TOGGLE = 1, - NVBIOS_THERM_FAN_PWM = 2, -}; - -/* no vbios have more than 6 */ -#define NOUVEAU_TEMP_FAN_TRIP_MAX 10 -struct nouveau_therm_trip_point { - int fan_duty; - int temp; - int hysteresis; -}; - -enum nvbios_therm_fan_mode { - NVBIOS_THERM_FAN_TRIP = 0, - NVBIOS_THERM_FAN_LINEAR = 1, - NVBIOS_THERM_FAN_OTHER = 2, -}; - -struct nvbios_therm_fan { - enum nvbios_therm_fan_type type; - - u32 pwm_freq; - - u8 min_duty; - u8 max_duty; - - u16 bump_period; - u16 slow_down_period; - - enum nvbios_therm_fan_mode fan_mode; - struct nouveau_therm_trip_point trip[NOUVEAU_TEMP_FAN_TRIP_MAX]; - u8 nr_fan_trip; - u8 linear_min_temp; - u8 linear_max_temp; -}; - -enum nvbios_therm_domain { - NVBIOS_THERM_DOMAIN_CORE, - NVBIOS_THERM_DOMAIN_AMBIENT, -}; - -int -nvbios_therm_sensor_parse(struct nouveau_bios *, enum nvbios_therm_domain, - struct nvbios_therm_sensor *); - -int -nvbios_therm_fan_parse(struct nouveau_bios *, struct nvbios_therm_fan *); - - -#endif diff --git a/nvkm/include/subdev/bios/timing.h b/nvkm/include/subdev/bios/timing.h deleted file mode 100644 index 76d914b67..000000000 --- a/nvkm/include/subdev/bios/timing.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef __NVBIOS_TIMING_H__ -#define __NVBIOS_TIMING_H__ - -struct nvbios_ramcfg; - -u16 nvbios_timingTe(struct nouveau_bios *, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, u8 *snr, u8 *ssz); -u16 nvbios_timingEe(struct nouveau_bios *, int idx, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len); -u16 nvbios_timingEp(struct nouveau_bios *, int idx, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, - struct nvbios_ramcfg *); - -#endif diff --git a/nvkm/include/subdev/bios/vmap.h b/nvkm/include/subdev/bios/vmap.h deleted file mode 100644 index ad5a8f20e..000000000 --- a/nvkm/include/subdev/bios/vmap.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef __NVBIOS_VMAP_H__ -#define __NVBIOS_VMAP_H__ - -struct nouveau_bios; - -struct nvbios_vmap { -}; - -u16 nvbios_vmap_table(struct nouveau_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len); -u16 nvbios_vmap_parse(struct nouveau_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len, - struct nvbios_vmap *); - -struct nvbios_vmap_entry { - u8 unk0; - u8 link; - u32 min; - u32 max; - s32 arg[6]; -}; - -u16 nvbios_vmap_entry(struct nouveau_bios *, int idx, u8 *ver, u8 *len); -u16 nvbios_vmap_entry_parse(struct nouveau_bios *, int idx, u8 *ver, u8 *len, - struct nvbios_vmap_entry *); - -#endif diff --git a/nvkm/include/subdev/bios/volt.h b/nvkm/include/subdev/bios/volt.h deleted file mode 100644 index 6a11dcd59..000000000 --- a/nvkm/include/subdev/bios/volt.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef __NVBIOS_VOLT_H__ -#define __NVBIOS_VOLT_H__ - -struct nouveau_bios; - -struct nvbios_volt { - u8 vidmask; - u32 min; - u32 max; - u32 base; - s16 step; -}; - -u16 nvbios_volt_table(struct nouveau_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len); -u16 nvbios_volt_parse(struct nouveau_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len, - struct nvbios_volt *); - -struct nvbios_volt_entry { - u32 voltage; - u8 vid; -}; - -u16 nvbios_volt_entry(struct nouveau_bios *, int idx, u8 *ver, u8 *len); -u16 nvbios_volt_entry_parse(struct nouveau_bios *, int idx, u8 *ver, u8 *len, - struct nvbios_volt_entry *); - -#endif diff --git a/nvkm/include/subdev/bios/xpio.h b/nvkm/include/subdev/bios/xpio.h deleted file mode 100644 index 360baab52..000000000 --- a/nvkm/include/subdev/bios/xpio.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef __NVBIOS_XPIO_H__ -#define __NVBIOS_XPIO_H__ - -#define NVBIOS_XPIO_FLAG_AUX 0x10 -#define NVBIOS_XPIO_FLAG_AUX0 0x00 -#define NVBIOS_XPIO_FLAG_AUX1 0x10 - -struct nvbios_xpio { - u8 type; - u8 addr; - u8 flags; -}; - -u16 dcb_xpio_table(struct nouveau_bios *, u8 idx, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len); -u16 dcb_xpio_parse(struct nouveau_bios *, u8 idx, - u8 *ver, u8 *hdr, u8 *cnt, u8 *len, struct nvbios_xpio *); - -#endif diff --git a/nvkm/include/subdev/bus.h b/nvkm/include/subdev/bus.h deleted file mode 100644 index 2d40f0c2f..000000000 --- a/nvkm/include/subdev/bus.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef __NOUVEAU_BUS_H__ -#define __NOUVEAU_BUS_H__ - -#include <core/subdev.h> -#include <core/device.h> - -struct nouveau_bus_intr { - u32 stat; - u32 unit; -}; - -struct nouveau_bus { - struct nouveau_subdev base; - int (*hwsq_exec)(struct nouveau_bus *, u32 *, u32); - u32 hwsq_size; -}; - -static inline struct nouveau_bus * -nouveau_bus(void *obj) -{ - return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_BUS); -} - -#define nouveau_bus_create(p, e, o, d) \ - nouveau_subdev_create_((p), (e), (o), 0, "PBUS", "master", \ - sizeof(**d), (void **)d) -#define nouveau_bus_destroy(p) \ - nouveau_subdev_destroy(&(p)->base) -#define nouveau_bus_init(p) \ - nouveau_subdev_init(&(p)->base) -#define nouveau_bus_fini(p, s) \ - nouveau_subdev_fini(&(p)->base, (s)) - -#define _nouveau_bus_dtor _nouveau_subdev_dtor -#define _nouveau_bus_init _nouveau_subdev_init -#define _nouveau_bus_fini _nouveau_subdev_fini - -extern struct nouveau_oclass *nv04_bus_oclass; -extern struct nouveau_oclass *nv31_bus_oclass; -extern struct nouveau_oclass *nv50_bus_oclass; -extern struct nouveau_oclass *nv94_bus_oclass; -extern struct nouveau_oclass *nvc0_bus_oclass; - -/* interface to sequencer */ -struct nouveau_hwsq; -int nouveau_hwsq_init(struct nouveau_bus *, struct nouveau_hwsq **); -int nouveau_hwsq_fini(struct nouveau_hwsq **, bool exec); -void nouveau_hwsq_wr32(struct nouveau_hwsq *, u32 addr, u32 data); -void nouveau_hwsq_setf(struct nouveau_hwsq *, u8 flag, int data); -void nouveau_hwsq_wait(struct nouveau_hwsq *, u8 flag, u8 data); -void nouveau_hwsq_nsec(struct nouveau_hwsq *, u32 nsec); - -#endif diff --git a/nvkm/include/subdev/clock.h b/nvkm/include/subdev/clock.h deleted file mode 100644 index 39ad2d2ce..000000000 --- a/nvkm/include/subdev/clock.h +++ /dev/null @@ -1,166 +0,0 @@ -#ifndef __NOUVEAU_CLOCK_H__ -#define __NOUVEAU_CLOCK_H__ - -#include <core/device.h> -#include <core/subdev.h> - -struct nouveau_pll_vals; -struct nvbios_pll; - -enum nv_clk_src { - nv_clk_src_crystal, - nv_clk_src_href, - - nv_clk_src_hclk, - nv_clk_src_hclkm3, - nv_clk_src_hclkm3d2, - nv_clk_src_hclkm2d3, /* NVAA */ - nv_clk_src_hclkm4, /* NVAA */ - nv_clk_src_cclk, /* NVAA */ - - nv_clk_src_host, - - nv_clk_src_sppll0, - nv_clk_src_sppll1, - - nv_clk_src_mpllsrcref, - nv_clk_src_mpllsrc, - nv_clk_src_mpll, - nv_clk_src_mdiv, - - nv_clk_src_core, - nv_clk_src_core_intm, - nv_clk_src_shader, - - nv_clk_src_mem, - - nv_clk_src_gpc, - nv_clk_src_rop, - nv_clk_src_hubk01, - nv_clk_src_hubk06, - nv_clk_src_hubk07, - nv_clk_src_copy, - nv_clk_src_daemon, - nv_clk_src_disp, - nv_clk_src_vdec, - - nv_clk_src_dom6, - - nv_clk_src_max, -}; - -struct nouveau_cstate { - struct list_head head; - u8 voltage; - u32 domain[nv_clk_src_max]; -}; - -struct nouveau_pstate { - struct list_head head; - struct list_head list; /* c-states */ - struct nouveau_cstate base; - u8 pstate; - u8 fanspeed; -}; - -struct nouveau_clock { - struct nouveau_subdev base; - - struct nouveau_clocks *domains; - struct nouveau_pstate bstate; - - struct list_head states; - int state_nr; - - struct work_struct work; - wait_queue_head_t wait; - atomic_t waiting; - - struct nvkm_notify pwrsrc_ntfy; - int pwrsrc; - int pstate; /* current */ - int ustate_ac; /* user-requested (-1 disabled, -2 perfmon) */ - int ustate_dc; /* user-requested (-1 disabled, -2 perfmon) */ - int astate; /* perfmon adjustment (base) */ - int tstate; /* thermal adjustment (max-) */ - int dstate; /* display adjustment (min+) */ - - bool allow_reclock; - - int (*read)(struct nouveau_clock *, enum nv_clk_src); - int (*calc)(struct nouveau_clock *, struct nouveau_cstate *); - int (*prog)(struct nouveau_clock *); - void (*tidy)(struct nouveau_clock *); - - /*XXX: die, these are here *only* to support the completely - * bat-shit insane what-was-nouveau_hw.c code - */ - int (*pll_calc)(struct nouveau_clock *, struct nvbios_pll *, - int clk, struct nouveau_pll_vals *pv); - int (*pll_prog)(struct nouveau_clock *, u32 reg1, - struct nouveau_pll_vals *pv); -}; - -static inline struct nouveau_clock * -nouveau_clock(void *obj) -{ - return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_CLOCK); -} - -struct nouveau_clocks { - enum nv_clk_src name; - u8 bios; /* 0xff for none */ -#define NVKM_CLK_DOM_FLAG_CORE 0x01 - u8 flags; - const char *mname; - int mdiv; -}; - -#define nouveau_clock_create(p,e,o,i,r,s,n,d) \ - nouveau_clock_create_((p), (e), (o), (i), (r), (s), (n), sizeof(**d), \ - (void **)d) -#define nouveau_clock_destroy(p) ({ \ - struct nouveau_clock *clk = (p); \ - _nouveau_clock_dtor(nv_object(clk)); \ -}) -#define nouveau_clock_init(p) ({ \ - struct nouveau_clock *clk = (p); \ - _nouveau_clock_init(nv_object(clk)); \ -}) -#define nouveau_clock_fini(p,s) ({ \ - struct nouveau_clock *clk = (p); \ - _nouveau_clock_fini(nv_object(clk), (s)); \ -}) - -int nouveau_clock_create_(struct nouveau_object *, struct nouveau_object *, - struct nouveau_oclass *, - struct nouveau_clocks *, struct nouveau_pstate *, - int, bool, int, void **); -void _nouveau_clock_dtor(struct nouveau_object *); -int _nouveau_clock_init(struct nouveau_object *); -int _nouveau_clock_fini(struct nouveau_object *, bool); - -extern struct nouveau_oclass nv04_clock_oclass; -extern struct nouveau_oclass nv40_clock_oclass; -extern struct nouveau_oclass *nv50_clock_oclass; -extern struct nouveau_oclass *nv84_clock_oclass; -extern struct nouveau_oclass *nvaa_clock_oclass; -extern struct nouveau_oclass nva3_clock_oclass; -extern struct nouveau_oclass nvc0_clock_oclass; -extern struct nouveau_oclass nve0_clock_oclass; -extern struct nouveau_oclass gk20a_clock_oclass; - -int nv04_clock_pll_set(struct nouveau_clock *, u32 type, u32 freq); -int nv04_clock_pll_calc(struct nouveau_clock *, struct nvbios_pll *, - int clk, struct nouveau_pll_vals *); -int nv04_clock_pll_prog(struct nouveau_clock *, u32 reg1, - struct nouveau_pll_vals *); -int nva3_clock_pll_calc(struct nouveau_clock *, struct nvbios_pll *, - int clk, struct nouveau_pll_vals *); - -int nouveau_clock_ustate(struct nouveau_clock *, int req, int pwr); -int nouveau_clock_astate(struct nouveau_clock *, int req, int rel, bool wait); -int nouveau_clock_dstate(struct nouveau_clock *, int req, int rel); -int nouveau_clock_tstate(struct nouveau_clock *, int req, int rel); - -#endif diff --git a/nvkm/include/subdev/devinit.h b/nvkm/include/subdev/devinit.h deleted file mode 100644 index b627d5329..000000000 --- a/nvkm/include/subdev/devinit.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __NOUVEAU_DEVINIT_H__ -#define __NOUVEAU_DEVINIT_H__ - -#include <core/subdev.h> -#include <core/device.h> - -struct nouveau_devinit { - struct nouveau_subdev base; - bool post; - void (*meminit)(struct nouveau_devinit *); - int (*pll_set)(struct nouveau_devinit *, u32 type, u32 freq); - u32 (*mmio)(struct nouveau_devinit *, u32 addr); -}; - -static inline struct nouveau_devinit * -nouveau_devinit(void *obj) -{ - return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_DEVINIT); -} - -extern struct nouveau_oclass *nv04_devinit_oclass; -extern struct nouveau_oclass *nv05_devinit_oclass; -extern struct nouveau_oclass *nv10_devinit_oclass; -extern struct nouveau_oclass *nv1a_devinit_oclass; -extern struct nouveau_oclass *nv20_devinit_oclass; -extern struct nouveau_oclass *nv50_devinit_oclass; -extern struct nouveau_oclass *nv84_devinit_oclass; -extern struct nouveau_oclass *nv98_devinit_oclass; -extern struct nouveau_oclass *nva3_devinit_oclass; -extern struct nouveau_oclass *nvaf_devinit_oclass; -extern struct nouveau_oclass *nvc0_devinit_oclass; -extern struct nouveau_oclass *gm107_devinit_oclass; -extern struct nouveau_oclass *gm204_devinit_oclass; - -#endif diff --git a/nvkm/include/subdev/fb.h b/nvkm/include/subdev/fb.h deleted file mode 100644 index 889603fbb..000000000 --- a/nvkm/include/subdev/fb.h +++ /dev/null @@ -1,159 +0,0 @@ -#ifndef __NOUVEAU_FB_H__ -#define __NOUVEAU_FB_H__ - -#include <core/subdev.h> -#include <core/device.h> -#include <core/mm.h> - -#include <subdev/vm.h> - -/* memory type/access flags, do not match hardware values */ -#define NV_MEM_ACCESS_RO 1 -#define NV_MEM_ACCESS_WO 2 -#define NV_MEM_ACCESS_RW (NV_MEM_ACCESS_RO | NV_MEM_ACCESS_WO) -#define NV_MEM_ACCESS_SYS 4 -#define NV_MEM_ACCESS_VM 8 -#define NV_MEM_ACCESS_NOSNOOP 16 - -#define NV_MEM_TARGET_VRAM 0 -#define NV_MEM_TARGET_PCI 1 -#define NV_MEM_TARGET_PCI_NOSNOOP 2 -#define NV_MEM_TARGET_VM 3 -#define NV_MEM_TARGET_GART 4 - -#define NV_MEM_TYPE_VM 0x7f -#define NV_MEM_COMP_VM 0x03 - -struct nouveau_mem { - struct drm_device *dev; - - struct nouveau_vma bar_vma; - struct nouveau_vma vma[2]; - u8 page_shift; - - struct nouveau_mm_node *tag; - struct list_head regions; - dma_addr_t *pages; - u32 memtype; - u64 offset; - u64 size; - struct sg_table *sg; -}; - -struct nouveau_fb_tile { - struct nouveau_mm_node *tag; - u32 addr; - u32 limit; - u32 pitch; - u32 zcomp; -}; - -struct nouveau_fb { - struct nouveau_subdev base; - - bool (*memtype_valid)(struct nouveau_fb *, u32 memtype); - - struct nouveau_ram *ram; - - struct nouveau_mm vram; - struct nouveau_mm tags; - - struct { - struct nouveau_fb_tile region[16]; - int regions; - void (*init)(struct nouveau_fb *, int i, u32 addr, u32 size, - u32 pitch, u32 flags, struct nouveau_fb_tile *); - void (*comp)(struct nouveau_fb *, int i, u32 size, u32 flags, - struct nouveau_fb_tile *); - void (*fini)(struct nouveau_fb *, int i, - struct nouveau_fb_tile *); - void (*prog)(struct nouveau_fb *, int i, - struct nouveau_fb_tile *); - } tile; -}; - -static inline struct nouveau_fb * -nouveau_fb(void *obj) -{ - /* fbram uses this before device subdev pointer is valid */ - if (nv_iclass(obj, NV_SUBDEV_CLASS) && - nv_subidx(obj) == NVDEV_SUBDEV_FB) - return obj; - - return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_FB); -} - -extern struct nouveau_oclass *nv04_fb_oclass; -extern struct nouveau_oclass *nv10_fb_oclass; -extern struct nouveau_oclass *nv1a_fb_oclass; -extern struct nouveau_oclass *nv20_fb_oclass; -extern struct nouveau_oclass *nv25_fb_oclass; -extern struct nouveau_oclass *nv30_fb_oclass; -extern struct nouveau_oclass *nv35_fb_oclass; -extern struct nouveau_oclass *nv36_fb_oclass; -extern struct nouveau_oclass *nv40_fb_oclass; -extern struct nouveau_oclass *nv41_fb_oclass; -extern struct nouveau_oclass *nv44_fb_oclass; -extern struct nouveau_oclass *nv46_fb_oclass; -extern struct nouveau_oclass *nv47_fb_oclass; -extern struct nouveau_oclass *nv49_fb_oclass; -extern struct nouveau_oclass *nv4e_fb_oclass; -extern struct nouveau_oclass *nv50_fb_oclass; -extern struct nouveau_oclass *nv84_fb_oclass; -extern struct nouveau_oclass *nva3_fb_oclass; -extern struct nouveau_oclass *nvaa_fb_oclass; -extern struct nouveau_oclass *nvaf_fb_oclass; -extern struct nouveau_oclass *nvc0_fb_oclass; -extern struct nouveau_oclass *nve0_fb_oclass; -extern struct nouveau_oclass *gk20a_fb_oclass; -extern struct nouveau_oclass *gm107_fb_oclass; - -#include <subdev/bios/ramcfg.h> - -struct nouveau_ram_data { - struct list_head head; - struct nvbios_ramcfg bios; - u32 freq; -}; - -struct nouveau_ram { - struct nouveau_object base; - enum { - NV_MEM_TYPE_UNKNOWN = 0, - NV_MEM_TYPE_STOLEN, - NV_MEM_TYPE_SGRAM, - NV_MEM_TYPE_SDRAM, - NV_MEM_TYPE_DDR1, - NV_MEM_TYPE_DDR2, - NV_MEM_TYPE_DDR3, - NV_MEM_TYPE_GDDR2, - NV_MEM_TYPE_GDDR3, - NV_MEM_TYPE_GDDR4, - NV_MEM_TYPE_GDDR5 - } type; - u64 stolen; - u64 size; - u32 tags; - - int ranks; - int parts; - int part_mask; - - int (*get)(struct nouveau_fb *, u64 size, u32 align, - u32 size_nc, u32 type, struct nouveau_mem **); - void (*put)(struct nouveau_fb *, struct nouveau_mem **); - - int (*calc)(struct nouveau_fb *, u32 freq); - int (*prog)(struct nouveau_fb *); - void (*tidy)(struct nouveau_fb *); - u32 freq; - u32 mr[16]; - u32 mr1_nuts; - - struct nouveau_ram_data *next; - struct nouveau_ram_data former; - struct nouveau_ram_data xition; - struct nouveau_ram_data target; -}; - -#endif diff --git a/nvkm/include/subdev/fb/regsnv04.h b/nvkm/include/subdev/fb/regsnv04.h deleted file mode 100644 index 0f7fc0c52..000000000 --- a/nvkm/include/subdev/fb/regsnv04.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef __NOUVEAU_FB_REGS_04_H__ -#define __NOUVEAU_FB_REGS_04_H__ - -#define NV04_PFB_BOOT_0 0x00100000 -# define NV04_PFB_BOOT_0_RAM_AMOUNT 0x00000003 -# define NV04_PFB_BOOT_0_RAM_AMOUNT_32MB 0x00000000 -# define NV04_PFB_BOOT_0_RAM_AMOUNT_4MB 0x00000001 -# define NV04_PFB_BOOT_0_RAM_AMOUNT_8MB 0x00000002 -# define NV04_PFB_BOOT_0_RAM_AMOUNT_16MB 0x00000003 -# define NV04_PFB_BOOT_0_RAM_WIDTH_128 0x00000004 -# define NV04_PFB_BOOT_0_RAM_TYPE 0x00000028 -# define NV04_PFB_BOOT_0_RAM_TYPE_SGRAM_8MBIT 0x00000000 -# define NV04_PFB_BOOT_0_RAM_TYPE_SGRAM_16MBIT 0x00000008 -# define NV04_PFB_BOOT_0_RAM_TYPE_SGRAM_16MBIT_4BANK 0x00000010 -# define NV04_PFB_BOOT_0_RAM_TYPE_SDRAM_16MBIT 0x00000018 -# define NV04_PFB_BOOT_0_RAM_TYPE_SDRAM_64MBIT 0x00000020 -# define NV04_PFB_BOOT_0_RAM_TYPE_SDRAM_64MBITX16 0x00000028 -# define NV04_PFB_BOOT_0_UMA_ENABLE 0x00000100 -# define NV04_PFB_BOOT_0_UMA_SIZE 0x0000f000 - -#endif diff --git a/nvkm/include/subdev/fuse.h b/nvkm/include/subdev/fuse.h deleted file mode 100644 index cc6b02fec..000000000 --- a/nvkm/include/subdev/fuse.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef __NOUVEAU_FUSE_H__ -#define __NOUVEAU_FUSE_H__ - -#include <core/subdev.h> -#include <core/device.h> - -struct nouveau_fuse { - struct nouveau_subdev base; -}; - -static inline struct nouveau_fuse * -nouveau_fuse(void *obj) -{ - return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_FUSE); -} - -#define nouveau_fuse_create(p, e, o, d) \ - nouveau_fuse_create_((p), (e), (o), sizeof(**d), (void **)d) - -int nouveau_fuse_create_(struct nouveau_object *, struct nouveau_object *, - struct nouveau_oclass *, int, void **); -void _nouveau_fuse_dtor(struct nouveau_object *); -int _nouveau_fuse_init(struct nouveau_object *); -#define _nouveau_fuse_fini _nouveau_subdev_fini - -extern struct nouveau_oclass g80_fuse_oclass; -extern struct nouveau_oclass gf100_fuse_oclass; -extern struct nouveau_oclass gm107_fuse_oclass; - -#endif diff --git a/nvkm/include/subdev/gpio.h b/nvkm/include/subdev/gpio.h deleted file mode 100644 index 8b60c5de6..000000000 --- a/nvkm/include/subdev/gpio.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef __NOUVEAU_GPIO_H__ -#define __NOUVEAU_GPIO_H__ - -#include <core/subdev.h> -#include <core/device.h> -#include <core/event.h> - -#include <subdev/bios.h> -#include <subdev/bios/gpio.h> - -struct nvkm_gpio_ntfy_req { -#define NVKM_GPIO_HI 0x01 -#define NVKM_GPIO_LO 0x02 -#define NVKM_GPIO_TOGGLED 0x03 - u8 mask; - u8 line; -}; - -struct nvkm_gpio_ntfy_rep { - u8 mask; -}; - -struct nouveau_gpio { - struct nouveau_subdev base; - - struct nvkm_event event; - - void (*reset)(struct nouveau_gpio *, u8 func); - int (*find)(struct nouveau_gpio *, int idx, u8 tag, u8 line, - struct dcb_gpio_func *); - int (*set)(struct nouveau_gpio *, int idx, u8 tag, u8 line, int state); - int (*get)(struct nouveau_gpio *, int idx, u8 tag, u8 line); -}; - -static inline struct nouveau_gpio * -nouveau_gpio(void *obj) -{ - return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_GPIO); -} - -extern struct nouveau_oclass *nv10_gpio_oclass; -extern struct nouveau_oclass *nv50_gpio_oclass; -extern struct nouveau_oclass *nv94_gpio_oclass; -extern struct nouveau_oclass *nvd0_gpio_oclass; -extern struct nouveau_oclass *nve0_gpio_oclass; - -#endif diff --git a/nvkm/include/subdev/i2c.h b/nvkm/include/subdev/i2c.h deleted file mode 100644 index a400e67f2..000000000 --- a/nvkm/include/subdev/i2c.h +++ /dev/null @@ -1,136 +0,0 @@ -#ifndef __NOUVEAU_I2C_H__ -#define __NOUVEAU_I2C_H__ - -#include <core/subdev.h> -#include <core/device.h> - -#include <subdev/bios.h> -#include <subdev/bios/i2c.h> - -#define NV_I2C_PORT(n) (0x00 + (n)) -#define NV_I2C_AUX(n) (0x10 + (n)) -#define NV_I2C_EXT(n) (0x20 + (n)) -#define NV_I2C_DEFAULT(n) (0x80 + (n)) - -#define NV_I2C_TYPE_DCBI2C(n) (0x0000 | (n)) -#define NV_I2C_TYPE_EXTDDC(e) (0x0005 | (e) << 8) -#define NV_I2C_TYPE_EXTAUX(e) (0x0006 | (e) << 8) - -struct nvkm_i2c_ntfy_req { -#define NVKM_I2C_PLUG 0x01 -#define NVKM_I2C_UNPLUG 0x02 -#define NVKM_I2C_IRQ 0x04 -#define NVKM_I2C_DONE 0x08 -#define NVKM_I2C_ANY 0x0f - u8 mask; - u8 port; -}; - -struct nvkm_i2c_ntfy_rep { - u8 mask; -}; - -struct nouveau_i2c_port { - struct nouveau_object base; - struct i2c_adapter adapter; - struct mutex mutex; - - struct list_head head; - u8 index; - int aux; - - const struct nouveau_i2c_func *func; -}; - -struct nouveau_i2c_func { - void (*drive_scl)(struct nouveau_i2c_port *, int); - void (*drive_sda)(struct nouveau_i2c_port *, int); - int (*sense_scl)(struct nouveau_i2c_port *); - int (*sense_sda)(struct nouveau_i2c_port *); - - int (*aux)(struct nouveau_i2c_port *, bool, u8, u32, u8 *, u8); - int (*pattern)(struct nouveau_i2c_port *, int pattern); - int (*lnk_ctl)(struct nouveau_i2c_port *, int nr, int bw, bool enh); - int (*drv_ctl)(struct nouveau_i2c_port *, int lane, int sw, int pe); -}; - -struct nouveau_i2c_board_info { - struct i2c_board_info dev; - u8 udelay; /* set to 0 to use the standard delay */ -}; - -struct nouveau_i2c { - struct nouveau_subdev base; - struct nvkm_event event; - - struct nouveau_i2c_port *(*find)(struct nouveau_i2c *, u8 index); - struct nouveau_i2c_port *(*find_type)(struct nouveau_i2c *, u16 type); - int (*acquire_pad)(struct nouveau_i2c_port *, unsigned long timeout); - void (*release_pad)(struct nouveau_i2c_port *); - int (*acquire)(struct nouveau_i2c_port *, unsigned long timeout); - void (*release)(struct nouveau_i2c_port *); - int (*identify)(struct nouveau_i2c *, int index, - const char *what, struct nouveau_i2c_board_info *, - bool (*match)(struct nouveau_i2c_port *, - struct i2c_board_info *, void *), void *); - - wait_queue_head_t wait; - struct list_head ports; -}; - -static inline struct nouveau_i2c * -nouveau_i2c(void *obj) -{ - return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_I2C); -} - -extern struct nouveau_oclass *nv04_i2c_oclass; -extern struct nouveau_oclass *nv4e_i2c_oclass; -extern struct nouveau_oclass *nv50_i2c_oclass; -extern struct nouveau_oclass *nv94_i2c_oclass; -extern struct nouveau_oclass *nvd0_i2c_oclass; -extern struct nouveau_oclass *gf117_i2c_oclass; -extern struct nouveau_oclass *nve0_i2c_oclass; -extern struct nouveau_oclass *gm204_i2c_oclass; - -static inline int -nv_rdi2cr(struct nouveau_i2c_port *port, u8 addr, u8 reg) -{ - u8 val; - struct i2c_msg msgs[] = { - { .addr = addr, .flags = 0, .len = 1, .buf = ® }, - { .addr = addr, .flags = I2C_M_RD, .len = 1, .buf = &val }, - }; - - int ret = i2c_transfer(&port->adapter, msgs, 2); - if (ret != 2) - return -EIO; - - return val; -} - -static inline int -nv_wri2cr(struct nouveau_i2c_port *port, u8 addr, u8 reg, u8 val) -{ - u8 buf[2] = { reg, val }; - struct i2c_msg msgs[] = { - { .addr = addr, .flags = 0, .len = 2, .buf = buf }, - }; - - int ret = i2c_transfer(&port->adapter, msgs, 1); - if (ret != 1) - return -EIO; - - return 0; -} - -static inline bool -nv_probe_i2c(struct nouveau_i2c_port *port, u8 addr) -{ - return nv_rdi2cr(port, addr, 0) >= 0; -} - -int nv_rdaux(struct nouveau_i2c_port *, u32 addr, u8 *data, u8 size); -int nv_wraux(struct nouveau_i2c_port *, u32 addr, u8 *data, u8 size); - -#endif diff --git a/nvkm/include/subdev/ibus.h b/nvkm/include/subdev/ibus.h deleted file mode 100644 index b6387d27e..000000000 --- a/nvkm/include/subdev/ibus.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __NOUVEAU_IBUS_H__ -#define __NOUVEAU_IBUS_H__ - -#include <core/subdev.h> -#include <core/device.h> - -struct nouveau_ibus { - struct nouveau_subdev base; -}; - -static inline struct nouveau_ibus * -nouveau_ibus(void *obj) -{ - return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_IBUS); -} - -#define nouveau_ibus_create(p,e,o,d) \ - nouveau_subdev_create_((p), (e), (o), 0, "PIBUS", "ibus", \ - sizeof(**d), (void **)d) -#define nouveau_ibus_destroy(p) \ - nouveau_subdev_destroy(&(p)->base) -#define nouveau_ibus_init(p) \ - nouveau_subdev_init(&(p)->base) -#define nouveau_ibus_fini(p,s) \ - nouveau_subdev_fini(&(p)->base, (s)) - -#define _nouveau_ibus_dtor _nouveau_subdev_dtor -#define _nouveau_ibus_init _nouveau_subdev_init -#define _nouveau_ibus_fini _nouveau_subdev_fini - -extern struct nouveau_oclass nvc0_ibus_oclass; -extern struct nouveau_oclass nve0_ibus_oclass; -extern struct nouveau_oclass gk20a_ibus_oclass; - -#endif diff --git a/nvkm/include/subdev/instmem.h b/nvkm/include/subdev/instmem.h deleted file mode 100644 index 4953e6c6c..000000000 --- a/nvkm/include/subdev/instmem.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef __NOUVEAU_INSTMEM_H__ -#define __NOUVEAU_INSTMEM_H__ - -#include <core/subdev.h> -#include <core/device.h> -#include <core/mm.h> - -struct nouveau_instobj { - struct nouveau_object base; - struct list_head head; - u32 *suspend; - u64 addr; - u32 size; -}; - -static inline struct nouveau_instobj * -nv_memobj(void *obj) -{ -#if CONFIG_NOUVEAU_DEBUG >= NV_DBG_PARANOIA - if (unlikely(!nv_iclass(obj, NV_MEMOBJ_CLASS))) - nv_assert("BAD CAST -> NvMemObj, %08x", nv_hclass(obj)); -#endif - return obj; -} - -struct nouveau_instmem { - struct nouveau_subdev base; - struct list_head list; - - u32 reserved; - int (*alloc)(struct nouveau_instmem *, struct nouveau_object *, - u32 size, u32 align, struct nouveau_object **); -}; - -static inline struct nouveau_instmem * -nouveau_instmem(void *obj) -{ - /* nv04/nv40 impls need to create objects in their constructor, - * which is before the subdev pointer is valid - */ - if (nv_iclass(obj, NV_SUBDEV_CLASS) && - nv_subidx(obj) == NVDEV_SUBDEV_INSTMEM) - return obj; - - return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_INSTMEM); -} - -extern struct nouveau_oclass *nv04_instmem_oclass; -extern struct nouveau_oclass *nv40_instmem_oclass; -extern struct nouveau_oclass *nv50_instmem_oclass; - -#endif diff --git a/nvkm/include/subdev/ltc.h b/nvkm/include/subdev/ltc.h deleted file mode 100644 index 432717a42..000000000 --- a/nvkm/include/subdev/ltc.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __NOUVEAU_LTC_H__ -#define __NOUVEAU_LTC_H__ - -#include <core/subdev.h> -#include <core/device.h> - -#define NOUVEAU_LTC_MAX_ZBC_CNT 16 - -struct nouveau_mm_node; - -struct nouveau_ltc { - struct nouveau_subdev base; - - int (*tags_alloc)(struct nouveau_ltc *, u32 count, - struct nouveau_mm_node **); - void (*tags_free)(struct nouveau_ltc *, struct nouveau_mm_node **); - void (*tags_clear)(struct nouveau_ltc *, u32 first, u32 count); - - int zbc_min; - int zbc_max; - int (*zbc_color_get)(struct nouveau_ltc *, int index, const u32[4]); - int (*zbc_depth_get)(struct nouveau_ltc *, int index, const u32); -}; - -static inline struct nouveau_ltc * -nouveau_ltc(void *obj) -{ - return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_LTC); -} - -extern struct nouveau_oclass *gf100_ltc_oclass; -extern struct nouveau_oclass *gk104_ltc_oclass; -extern struct nouveau_oclass *gm107_ltc_oclass; - -#endif diff --git a/nvkm/include/subdev/mc.h b/nvkm/include/subdev/mc.h deleted file mode 100644 index af7926f3a..000000000 --- a/nvkm/include/subdev/mc.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef __NOUVEAU_MC_H__ -#define __NOUVEAU_MC_H__ - -#include <core/subdev.h> -#include <core/device.h> - -struct nouveau_mc { - struct nouveau_subdev base; - bool use_msi; - unsigned int irq; - void (*unk260)(struct nouveau_mc *, u32); -}; - -static inline struct nouveau_mc * -nouveau_mc(void *obj) -{ - return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_MC); -} - -extern struct nouveau_oclass *nv04_mc_oclass; -extern struct nouveau_oclass *nv40_mc_oclass; -extern struct nouveau_oclass *nv44_mc_oclass; -extern struct nouveau_oclass *nv4c_mc_oclass; -extern struct nouveau_oclass *nv50_mc_oclass; -extern struct nouveau_oclass *nv94_mc_oclass; -extern struct nouveau_oclass *nv98_mc_oclass; -extern struct nouveau_oclass *nvc0_mc_oclass; -extern struct nouveau_oclass *nvc3_mc_oclass; -extern struct nouveau_oclass *gk20a_mc_oclass; - -#endif diff --git a/nvkm/include/subdev/mxm.h b/nvkm/include/subdev/mxm.h deleted file mode 100644 index 94b8af23c..000000000 --- a/nvkm/include/subdev/mxm.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef __NOUVEAU_MXM_H__ -#define __NOUVEAU_MXM_H__ - -#include <core/subdev.h> -#include <core/device.h> - -#define MXM_SANITISE_DCB 0x00000001 - -struct nouveau_mxm { - struct nouveau_subdev base; - u32 action; - u8 *mxms; -}; - -static inline struct nouveau_mxm * -nouveau_mxm(void *obj) -{ - return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_MXM); -} - -#define nouveau_mxm_create(p,e,o,d) \ - nouveau_mxm_create_((p), (e), (o), sizeof(**d), (void **)d) -#define nouveau_mxm_init(p) \ - nouveau_subdev_init(&(p)->base) -#define nouveau_mxm_fini(p,s) \ - nouveau_subdev_fini(&(p)->base, (s)) -int nouveau_mxm_create_(struct nouveau_object *, struct nouveau_object *, - struct nouveau_oclass *, int, void **); -void nouveau_mxm_destroy(struct nouveau_mxm *); - -#define _nouveau_mxm_dtor _nouveau_subdev_dtor -#define _nouveau_mxm_init _nouveau_subdev_init -#define _nouveau_mxm_fini _nouveau_subdev_fini - -extern struct nouveau_oclass nv50_mxm_oclass; - -#endif diff --git a/nvkm/include/subdev/pwr.h b/nvkm/include/subdev/pwr.h deleted file mode 100644 index 83f85ac15..000000000 --- a/nvkm/include/subdev/pwr.h +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef __NOUVEAU_PWR_H__ -#define __NOUVEAU_PWR_H__ - -#include <core/subdev.h> -#include <core/device.h> - -struct nouveau_pwr { - struct nouveau_subdev base; - - struct { - u32 base; - u32 size; - } send; - - struct { - u32 base; - u32 size; - - struct work_struct work; - wait_queue_head_t wait; - u32 process; - u32 message; - u32 data[2]; - } recv; - - int (*message)(struct nouveau_pwr *, u32[2], u32, u32, u32, u32); - void (*pgob)(struct nouveau_pwr *, bool); -}; - -static inline struct nouveau_pwr * -nouveau_pwr(void *obj) -{ - return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_PWR); -} - -extern struct nouveau_oclass *nva3_pwr_oclass; -extern struct nouveau_oclass *nvc0_pwr_oclass; -extern struct nouveau_oclass *nvd0_pwr_oclass; -extern struct nouveau_oclass *gk104_pwr_oclass; -extern struct nouveau_oclass *nv108_pwr_oclass; -extern struct nouveau_oclass *gk20a_pwr_oclass; - -/* interface to MEMX process running on PPWR */ -struct nouveau_memx; -int nouveau_memx_init(struct nouveau_pwr *, struct nouveau_memx **); -int nouveau_memx_fini(struct nouveau_memx **, bool exec); -void nouveau_memx_wr32(struct nouveau_memx *, u32 addr, u32 data); -void nouveau_memx_wait(struct nouveau_memx *, - u32 addr, u32 mask, u32 data, u32 nsec); -void nouveau_memx_nsec(struct nouveau_memx *, u32 nsec); -void nouveau_memx_wait_vblank(struct nouveau_memx *); -void nouveau_memx_train(struct nouveau_memx *); -int nouveau_memx_train_result(struct nouveau_pwr *, u32 *, int); -void nouveau_memx_block(struct nouveau_memx *); -void nouveau_memx_unblock(struct nouveau_memx *); - -#endif diff --git a/nvkm/include/subdev/therm.h b/nvkm/include/subdev/therm.h deleted file mode 100644 index 42f9574a0..000000000 --- a/nvkm/include/subdev/therm.h +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef __NOUVEAU_THERM_H__ -#define __NOUVEAU_THERM_H__ - -#include <core/device.h> -#include <core/subdev.h> - -enum nouveau_therm_fan_mode { - NOUVEAU_THERM_CTRL_NONE = 0, - NOUVEAU_THERM_CTRL_MANUAL = 1, - NOUVEAU_THERM_CTRL_AUTO = 2, -}; - -enum nouveau_therm_attr_type { - NOUVEAU_THERM_ATTR_FAN_MIN_DUTY = 0, - NOUVEAU_THERM_ATTR_FAN_MAX_DUTY = 1, - NOUVEAU_THERM_ATTR_FAN_MODE = 2, - - NOUVEAU_THERM_ATTR_THRS_FAN_BOOST = 10, - NOUVEAU_THERM_ATTR_THRS_FAN_BOOST_HYST = 11, - NOUVEAU_THERM_ATTR_THRS_DOWN_CLK = 12, - NOUVEAU_THERM_ATTR_THRS_DOWN_CLK_HYST = 13, - NOUVEAU_THERM_ATTR_THRS_CRITICAL = 14, - NOUVEAU_THERM_ATTR_THRS_CRITICAL_HYST = 15, - NOUVEAU_THERM_ATTR_THRS_SHUTDOWN = 16, - NOUVEAU_THERM_ATTR_THRS_SHUTDOWN_HYST = 17, -}; - -struct nouveau_therm { - struct nouveau_subdev base; - - int (*pwm_ctrl)(struct nouveau_therm *, int line, bool); - int (*pwm_get)(struct nouveau_therm *, int line, u32 *, u32 *); - int (*pwm_set)(struct nouveau_therm *, int line, u32, u32); - int (*pwm_clock)(struct nouveau_therm *, int line); - - int (*fan_get)(struct nouveau_therm *); - int (*fan_set)(struct nouveau_therm *, int); - int (*fan_sense)(struct nouveau_therm *); - - int (*temp_get)(struct nouveau_therm *); - - int (*attr_get)(struct nouveau_therm *, enum nouveau_therm_attr_type); - int (*attr_set)(struct nouveau_therm *, - enum nouveau_therm_attr_type, int); -}; - -static inline struct nouveau_therm * -nouveau_therm(void *obj) -{ - return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_THERM); -} - -#define nouveau_therm_create(p,e,o,d) \ - nouveau_therm_create_((p), (e), (o), sizeof(**d), (void **)d) -#define nouveau_therm_destroy(p) ({ \ - struct nouveau_therm *therm = (p); \ - _nouveau_therm_dtor(nv_object(therm)); \ -}) -#define nouveau_therm_init(p) ({ \ - struct nouveau_therm *therm = (p); \ - _nouveau_therm_init(nv_object(therm)); \ -}) -#define nouveau_therm_fini(p,s) ({ \ - struct nouveau_therm *therm = (p); \ - _nouveau_therm_init(nv_object(therm), (s)); \ -}) - -int nouveau_therm_create_(struct nouveau_object *, struct nouveau_object *, - struct nouveau_oclass *, int, void **); -void _nouveau_therm_dtor(struct nouveau_object *); -int _nouveau_therm_init(struct nouveau_object *); -int _nouveau_therm_fini(struct nouveau_object *, bool); - -int nouveau_therm_cstate(struct nouveau_therm *, int, int); - -extern struct nouveau_oclass nv40_therm_oclass; -extern struct nouveau_oclass nv50_therm_oclass; -extern struct nouveau_oclass nv84_therm_oclass; -extern struct nouveau_oclass nva3_therm_oclass; -extern struct nouveau_oclass nvd0_therm_oclass; -extern struct nouveau_oclass gm107_therm_oclass; - -#endif diff --git a/nvkm/include/subdev/timer.h b/nvkm/include/subdev/timer.h deleted file mode 100644 index 36b5184e3..000000000 --- a/nvkm/include/subdev/timer.h +++ /dev/null @@ -1,64 +0,0 @@ -#ifndef __NOUVEAU_TIMER_H__ -#define __NOUVEAU_TIMER_H__ - -#include <core/subdev.h> -#include <core/device.h> - -struct nouveau_alarm { - struct list_head head; - u64 timestamp; - void (*func)(struct nouveau_alarm *); -}; - -static inline void -nouveau_alarm_init(struct nouveau_alarm *alarm, - void (*func)(struct nouveau_alarm *)) -{ - INIT_LIST_HEAD(&alarm->head); - alarm->func = func; -} - -bool nouveau_timer_wait_eq(void *, u64 nsec, u32 addr, u32 mask, u32 data); -bool nouveau_timer_wait_ne(void *, u64 nsec, u32 addr, u32 mask, u32 data); -bool nouveau_timer_wait_cb(void *, u64 nsec, bool (*func)(void *), void *data); -void nouveau_timer_alarm(void *, u32 nsec, struct nouveau_alarm *); -void nouveau_timer_alarm_cancel(void *, struct nouveau_alarm *); - -#define NV_WAIT_DEFAULT 2000000000ULL -#define nv_wait(o,a,m,v) \ - nouveau_timer_wait_eq((o), NV_WAIT_DEFAULT, (a), (m), (v)) -#define nv_wait_ne(o,a,m,v) \ - nouveau_timer_wait_ne((o), NV_WAIT_DEFAULT, (a), (m), (v)) -#define nv_wait_cb(o,c,d) \ - nouveau_timer_wait_cb((o), NV_WAIT_DEFAULT, (c), (d)) - -struct nouveau_timer { - struct nouveau_subdev base; - u64 (*read)(struct nouveau_timer *); - void (*alarm)(struct nouveau_timer *, u64 time, struct nouveau_alarm *); - void (*alarm_cancel)(struct nouveau_timer *, struct nouveau_alarm *); -}; - -static inline struct nouveau_timer * -nouveau_timer(void *obj) -{ - return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_TIMER); -} - -#define nouveau_timer_create(p,e,o,d) \ - nouveau_subdev_create_((p), (e), (o), 0, "PTIMER", "timer", \ - sizeof(**d), (void **)d) -#define nouveau_timer_destroy(p) \ - nouveau_subdev_destroy(&(p)->base) -#define nouveau_timer_init(p) \ - nouveau_subdev_init(&(p)->base) -#define nouveau_timer_fini(p,s) \ - nouveau_subdev_fini(&(p)->base, (s)) - -int nouveau_timer_create_(struct nouveau_object *, struct nouveau_engine *, - struct nouveau_oclass *, int size, void **); - -extern struct nouveau_oclass nv04_timer_oclass; -extern struct nouveau_oclass gk20a_timer_oclass; - -#endif diff --git a/nvkm/include/subdev/vga.h b/nvkm/include/subdev/vga.h deleted file mode 100644 index fee09ad81..000000000 --- a/nvkm/include/subdev/vga.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef __NOUVEAU_VGA_H__ -#define __NOUVEAU_VGA_H__ - -#include <core/os.h> - -/* access to various legacy io ports */ -u8 nv_rdport(void *obj, int head, u16 port); -void nv_wrport(void *obj, int head, u16 port, u8 value); - -/* VGA Sequencer */ -u8 nv_rdvgas(void *obj, int head, u8 index); -void nv_wrvgas(void *obj, int head, u8 index, u8 value); - -/* VGA Graphics */ -u8 nv_rdvgag(void *obj, int head, u8 index); -void nv_wrvgag(void *obj, int head, u8 index, u8 value); - -/* VGA CRTC */ -u8 nv_rdvgac(void *obj, int head, u8 index); -void nv_wrvgac(void *obj, int head, u8 index, u8 value); - -/* VGA indexed port access dispatcher */ -u8 nv_rdvgai(void *obj, int head, u16 port, u8 index); -void nv_wrvgai(void *obj, int head, u16 port, u8 index, u8 value); - -bool nv_lockvgac(void *obj, bool lock); -u8 nv_rdvgaowner(void *obj); -void nv_wrvgaowner(void *obj, u8); - -#endif diff --git a/nvkm/include/subdev/vm.h b/nvkm/include/subdev/vm.h deleted file mode 100644 index d56585f1c..000000000 --- a/nvkm/include/subdev/vm.h +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright 2010 Red Hat Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Authors: Ben Skeggs - */ - -#ifndef __NOUVEAU_VM_H__ -#define __NOUVEAU_VM_H__ - -#include <core/object.h> -#include <core/subdev.h> -#include <core/device.h> -#include <core/mm.h> - -struct nouveau_vm_pgt { - struct nouveau_gpuobj *obj[2]; - u32 refcount[2]; -}; - -struct nouveau_vm_pgd { - struct list_head head; - struct nouveau_gpuobj *obj; -}; - -struct nouveau_gpuobj; -struct nouveau_mem; - -struct nouveau_vma { - struct list_head head; - int refcount; - struct nouveau_vm *vm; - struct nouveau_mm_node *node; - u64 offset; - u32 access; -}; - -struct nouveau_vm { - struct nouveau_vmmgr *vmm; - struct nouveau_mm mm; - struct kref refcount; - - struct list_head pgd_list; - atomic_t engref[NVDEV_SUBDEV_NR]; - - struct nouveau_vm_pgt *pgt; - u32 fpde; - u32 lpde; -}; - -struct nouveau_vmmgr { - struct nouveau_subdev base; - - u64 limit; - u8 dma_bits; - u32 pgt_bits; - u8 spg_shift; - u8 lpg_shift; - - int (*create)(struct nouveau_vmmgr *, u64 offset, u64 length, - u64 mm_offset, struct nouveau_vm **); - - void (*map_pgt)(struct nouveau_gpuobj *pgd, u32 pde, - struct nouveau_gpuobj *pgt[2]); - void (*map)(struct nouveau_vma *, struct nouveau_gpuobj *, - struct nouveau_mem *, u32 pte, u32 cnt, - u64 phys, u64 delta); - void (*map_sg)(struct nouveau_vma *, struct nouveau_gpuobj *, - struct nouveau_mem *, u32 pte, u32 cnt, dma_addr_t *); - void (*unmap)(struct nouveau_gpuobj *pgt, u32 pte, u32 cnt); - void (*flush)(struct nouveau_vm *); -}; - -static inline struct nouveau_vmmgr * -nouveau_vmmgr(void *obj) -{ - return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_VM); -} - -#define nouveau_vmmgr_create(p,e,o,i,f,d) \ - nouveau_subdev_create((p), (e), (o), 0, (i), (f), (d)) -#define nouveau_vmmgr_destroy(p) \ - nouveau_subdev_destroy(&(p)->base) -#define nouveau_vmmgr_init(p) \ - nouveau_subdev_init(&(p)->base) -#define nouveau_vmmgr_fini(p,s) \ - nouveau_subdev_fini(&(p)->base, (s)) - -#define _nouveau_vmmgr_dtor _nouveau_subdev_dtor -#define _nouveau_vmmgr_init _nouveau_subdev_init -#define _nouveau_vmmgr_fini _nouveau_subdev_fini - -extern struct nouveau_oclass nv04_vmmgr_oclass; -extern struct nouveau_oclass nv41_vmmgr_oclass; -extern struct nouveau_oclass nv44_vmmgr_oclass; -extern struct nouveau_oclass nv50_vmmgr_oclass; -extern struct nouveau_oclass nvc0_vmmgr_oclass; - -int nv04_vm_create(struct nouveau_vmmgr *, u64, u64, u64, - struct nouveau_vm **); -void nv04_vmmgr_dtor(struct nouveau_object *); - -/* nouveau_vm.c */ -int nouveau_vm_create(struct nouveau_vmmgr *, u64 offset, u64 length, - u64 mm_offset, u32 block, struct nouveau_vm **); -int nouveau_vm_new(struct nouveau_device *, u64 offset, u64 length, - u64 mm_offset, struct nouveau_vm **); -int nouveau_vm_ref(struct nouveau_vm *, struct nouveau_vm **, - struct nouveau_gpuobj *pgd); -int nouveau_vm_get(struct nouveau_vm *, u64 size, u32 page_shift, - u32 access, struct nouveau_vma *); -void nouveau_vm_put(struct nouveau_vma *); -void nouveau_vm_map(struct nouveau_vma *, struct nouveau_mem *); -void nouveau_vm_map_at(struct nouveau_vma *, u64 offset, struct nouveau_mem *); -void nouveau_vm_unmap(struct nouveau_vma *); -void nouveau_vm_unmap_at(struct nouveau_vma *, u64 offset, u64 length); - -#endif diff --git a/nvkm/include/subdev/volt.h b/nvkm/include/subdev/volt.h deleted file mode 100644 index 13e9a83ce..000000000 --- a/nvkm/include/subdev/volt.h +++ /dev/null @@ -1,61 +0,0 @@ -#ifndef __NOUVEAU_VOLT_H__ -#define __NOUVEAU_VOLT_H__ - -#include <core/subdev.h> -#include <core/device.h> - -struct nouveau_voltage { - u32 uv; - u8 id; -}; - -struct nouveau_volt { - struct nouveau_subdev base; - - int (*vid_get)(struct nouveau_volt *); - int (*get)(struct nouveau_volt *); - int (*vid_set)(struct nouveau_volt *, u8 vid); - int (*set)(struct nouveau_volt *, u32 uv); - int (*set_id)(struct nouveau_volt *, u8 id, int condition); - - u8 vid_mask; - u8 vid_nr; - struct { - u32 uv; - u8 vid; - } vid[256]; -}; - -static inline struct nouveau_volt * -nouveau_volt(void *obj) -{ - return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_VOLT); -} - -#define nouveau_volt_create(p, e, o, d) \ - nouveau_volt_create_((p), (e), (o), sizeof(**d), (void **)d) -#define nouveau_volt_destroy(p) ({ \ - struct nouveau_volt *v = (p); \ - _nouveau_volt_dtor(nv_object(v)); \ -}) -#define nouveau_volt_init(p) ({ \ - struct nouveau_volt *v = (p); \ - _nouveau_volt_init(nv_object(v)); \ -}) -#define nouveau_volt_fini(p,s) \ - nouveau_subdev_fini((p), (s)) - -int nouveau_volt_create_(struct nouveau_object *, struct nouveau_object *, - struct nouveau_oclass *, int, void **); -void _nouveau_volt_dtor(struct nouveau_object *); -int _nouveau_volt_init(struct nouveau_object *); -#define _nouveau_volt_fini _nouveau_subdev_fini - -extern struct nouveau_oclass nv40_volt_oclass; -extern struct nouveau_oclass gk20a_volt_oclass; - -int nouveau_voltgpio_init(struct nouveau_volt *); -int nouveau_voltgpio_get(struct nouveau_volt *); -int nouveau_voltgpio_set(struct nouveau_volt *, u8); - -#endif |