Lines Matching refs:mxm
45 mxm_shadow_rom(struct nvkm_mxm *mxm, u8 version) in mxm_shadow_rom() argument
47 struct nvkm_bios *bios = nvkm_bios(mxm); in mxm_shadow_rom()
48 struct nvkm_i2c *i2c = nvkm_i2c(mxm); in mxm_shadow_rom()
65 mxm->mxms = mxms; in mxm_shadow_rom()
66 size = mxms_headerlen(mxm) + mxms_structlen(mxm); in mxm_shadow_rom()
67 mxm->mxms = kmalloc(size, GFP_KERNEL); in mxm_shadow_rom()
69 if (mxm->mxms && in mxm_shadow_rom()
70 mxm_shadow_rom_fetch(port, addr, 0, size, mxm->mxms)) in mxm_shadow_rom()
73 kfree(mxm->mxms); in mxm_shadow_rom()
74 mxm->mxms = NULL; in mxm_shadow_rom()
80 mxm_shadow_dsm(struct nvkm_mxm *mxm, u8 version) in mxm_shadow_dsm() argument
82 struct nvkm_device *device = nv_device(mxm); in mxm_shadow_dsm()
109 nv_debug(mxm, "DSM MXMS failed\n"); in mxm_shadow_dsm()
114 mxm->mxms = kmemdup(obj->buffer.pointer, in mxm_shadow_dsm()
117 nv_debug(mxm, "DSM MXMS returned 0x%llx\n", obj->integer.value); in mxm_shadow_dsm()
121 return mxm->mxms != NULL; in mxm_shadow_dsm()
130 wmi_wmmx_mxmi(struct nvkm_mxm *mxm, u8 version) in wmi_wmmx_mxmi() argument
140 nv_debug(mxm, "WMMX MXMI returned %d\n", status); in wmi_wmmx_mxmi()
147 nv_debug(mxm, "WMMX MXMI version %d.%d\n", in wmi_wmmx_mxmi()
151 nv_debug(mxm, "WMMX MXMI returned non-integer\n"); in wmi_wmmx_mxmi()
159 mxm_shadow_wmi(struct nvkm_mxm *mxm, u8 version) in mxm_shadow_wmi() argument
168 nv_debug(mxm, "WMMX GUID not found\n"); in mxm_shadow_wmi()
172 mxms_args[1] = wmi_wmmx_mxmi(mxm, 0x00); in mxm_shadow_wmi()
174 mxms_args[1] = wmi_wmmx_mxmi(mxm, version); in mxm_shadow_wmi()
180 nv_debug(mxm, "WMMX MXMS returned %d\n", status); in mxm_shadow_wmi()
186 mxm->mxms = kmemdup(obj->buffer.pointer, in mxm_shadow_wmi()
191 return mxm->mxms != NULL; in mxm_shadow_wmi()
210 mxm_shadow(struct nvkm_mxm *mxm, u8 version) in mxm_shadow() argument
214 nv_debug(mxm, "checking %s\n", shadow->name); in mxm_shadow()
215 if (shadow->exec(mxm, version)) { in mxm_shadow()
216 if (mxms_valid(mxm)) in mxm_shadow()
218 kfree(mxm->mxms); in mxm_shadow()
219 mxm->mxms = NULL; in mxm_shadow()
231 struct nvkm_mxm *mxm; in nvkm_mxm_create_() local
238 mxm = *pobject; in nvkm_mxm_create_()
244 nv_debug(mxm, "no VBIOS data, nothing to do\n"); in nvkm_mxm_create_()
248 nv_info(mxm, "BIOS version %d.%d\n", ver >> 4, ver & 0x0f); in nvkm_mxm_create_()
250 if (mxm_shadow(mxm, ver)) { in nvkm_mxm_create_()
251 nv_info(mxm, "failed to locate valid SIS\n"); in nvkm_mxm_create_()
264 nv_info(mxm, "MXMS Version %d.%d\n", in nvkm_mxm_create_()
265 mxms_version(mxm) >> 8, mxms_version(mxm) & 0xff); in nvkm_mxm_create_()
266 mxms_foreach(mxm, 0, NULL, NULL); in nvkm_mxm_create_()
269 mxm->action |= MXM_SANITISE_DCB; in nvkm_mxm_create_()