mxm 149 drivers/gpu/drm/nouveau/include/nvkm/core/device.h struct nvkm_subdev *mxm; mxm 222 drivers/gpu/drm/nouveau/include/nvkm/core/device.h int (*mxm )(struct nvkm_device *, int idx, struct nvkm_subdev **); mxm 825 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 932 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 964 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 996 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1028 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1060 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1092 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1124 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1156 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1190 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1223 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1256 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1288 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1320 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1356 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1393 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1429 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1465 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1502 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1539 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1576 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1612 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1647 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1683 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1722 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1761 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1825 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1863 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1901 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1939 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 1977 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 2011 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 2044 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 2079 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 2114 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c .mxm = nv50_mxm_new, mxm 2658 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c _(MXM , device->mxm , device->mxm); mxm 3164 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c _(NVKM_SUBDEV_MXM , mxm); mxm 79 drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.c u16 mxm = mxm_table(bios, &ver, &hdr); mxm 80 drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.c if (mxm && hdr >= 6) { mxm 81 drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.c u16 map = nvbios_rd16(bios, mxm + 4); mxm 116 drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.c u16 mxm = mxm_table(bios, &ver, &hdr); mxm 117 drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.c if (mxm && hdr >= 8) { mxm 118 drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.c u16 map = nvbios_rd16(bios, mxm + 6); mxm 44 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c mxm_shadow_rom(struct nvkm_mxm *mxm, u8 version) mxm 46 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c struct nvkm_device *device = mxm->subdev.device; mxm 65 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c mxm->mxms = mxms; mxm 66 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c size = mxms_headerlen(mxm) + mxms_structlen(mxm); mxm 67 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c mxm->mxms = kmalloc(size, GFP_KERNEL); mxm 69 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c if (mxm->mxms && mxm 70 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c mxm_shadow_rom_fetch(bus, addr, 0, size, mxm->mxms)) mxm 73 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c kfree(mxm->mxms); mxm 74 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c mxm->mxms = NULL; mxm 80 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c mxm_shadow_dsm(struct nvkm_mxm *mxm, u8 version) mxm 82 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c struct nvkm_subdev *subdev = &mxm->subdev; mxm 114 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c mxm->mxms = kmemdup(obj->buffer.pointer, mxm 122 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c return mxm->mxms != NULL; mxm 131 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c wmi_wmmx_mxmi(struct nvkm_mxm *mxm, u8 version) mxm 133 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c struct nvkm_subdev *subdev = &mxm->subdev; mxm 161 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c mxm_shadow_wmi(struct nvkm_mxm *mxm, u8 version) mxm 163 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c struct nvkm_subdev *subdev = &mxm->subdev; mxm 175 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c mxms_args[1] = wmi_wmmx_mxmi(mxm, 0x00); mxm 177 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c mxms_args[1] = wmi_wmmx_mxmi(mxm, version); mxm 189 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c mxm->mxms = kmemdup(obj->buffer.pointer, mxm 194 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c return mxm->mxms != NULL; mxm 213 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c mxm_shadow(struct nvkm_mxm *mxm, u8 version) mxm 217 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c nvkm_debug(&mxm->subdev, "checking %s\n", shadow->name); mxm 218 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c if (shadow->exec(mxm, version)) { mxm 219 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c if (mxms_valid(mxm)) mxm 221 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c kfree(mxm->mxms); mxm 222 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c mxm->mxms = NULL; mxm 236 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c struct nvkm_mxm *mxm; mxm 240 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c if (!(mxm = *pmxm = kzalloc(sizeof(*mxm), GFP_KERNEL))) mxm 243 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c nvkm_subdev_ctor(&nvkm_mxm, device, index, &mxm->subdev); mxm 247 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c nvkm_debug(&mxm->subdev, "no VBIOS data, nothing to do\n"); mxm 251 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c nvkm_info(&mxm->subdev, "BIOS version %d.%d\n", ver >> 4, ver & 0x0f); mxm 252 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c nvkm_debug(&mxm->subdev, "module flags: %02x\n", mxm 254 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c nvkm_debug(&mxm->subdev, "config flags: %02x\n", mxm 257 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c if (mxm_shadow(mxm, ver)) { mxm 258 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c nvkm_warn(&mxm->subdev, "failed to locate valid SIS\n"); mxm 271 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c nvkm_debug(&mxm->subdev, "MXMS Version %d.%d\n", mxm 272 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c mxms_version(mxm) >> 8, mxms_version(mxm) & 0xff); mxm 273 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c mxms_foreach(mxm, 0, NULL, NULL); mxm 276 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c mxm->action |= MXM_SANITISE_DCB; mxm 30 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c mxms_data(struct nvkm_mxm *mxm) mxm 32 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c return mxm->mxms; mxm 37 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c mxms_version(struct nvkm_mxm *mxm) mxm 39 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c u8 *mxms = mxms_data(mxm); mxm 50 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c nvkm_debug(&mxm->subdev, "unknown version %d.%d\n", mxms[4], mxms[5]); mxm 55 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c mxms_headerlen(struct nvkm_mxm *mxm) mxm 61 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c mxms_structlen(struct nvkm_mxm *mxm) mxm 63 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c return *(u16 *)&mxms_data(mxm)[6]; mxm 67 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c mxms_checksum(struct nvkm_mxm *mxm) mxm 69 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c u16 size = mxms_headerlen(mxm) + mxms_structlen(mxm); mxm 70 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c u8 *mxms = mxms_data(mxm), sum = 0; mxm 74 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c nvkm_debug(&mxm->subdev, "checksum invalid\n"); mxm 81 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c mxms_valid(struct nvkm_mxm *mxm) mxm 83 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c u8 *mxms = mxms_data(mxm); mxm 85 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c nvkm_debug(&mxm->subdev, "signature invalid\n"); mxm 89 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c if (!mxms_version(mxm) || !mxms_checksum(mxm)) mxm 96 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c mxms_foreach(struct nvkm_mxm *mxm, u8 types, mxm 99 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c struct nvkm_subdev *subdev = &mxm->subdev; mxm 100 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c u8 *mxms = mxms_data(mxm); mxm 101 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c u8 *desc = mxms + mxms_headerlen(mxm); mxm 102 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c u8 *fini = desc + mxms_structlen(mxm) - 1; mxm 111 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c if (mxms_version(mxm) >= 0x0300) mxm 130 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c if (mxms_version(mxm) >= 0x0300) { mxm 148 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c if (mxm->subdev.debug >= NV_DBG_DEBUG && (exec == NULL)) { mxm 170 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c if (!exec(mxm, desc, info)) mxm 181 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c mxms_output_device(struct nvkm_mxm *mxm, u8 *pdata, struct mxms_odev *desc) mxm 184 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c if (mxms_version(mxm) >= 0x0300) mxm 37 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c mxm_match_tmds_partner(struct nvkm_mxm *mxm, u8 *data, void *info) mxm 42 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c mxms_output_device(mxm, data, &desc); mxm 50 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c mxm_match_dcb(struct nvkm_mxm *mxm, u8 *data, void *info) mxm 52 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c struct nvkm_bios *bios = mxm->subdev.device->bios; mxm 56 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c mxms_output_device(mxm, data, &ctx->desc); mxm 85 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c mxms_foreach(mxm, 0x01, mxm_match_tmds_partner, ctx)) { mxm 97 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c struct nvkm_mxm *mxm = data; mxm 105 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c if (mxms_foreach(mxm, 0x01, mxm_match_dcb, &ctx)) { mxm 106 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c nvkm_debug(&mxm->subdev, "disable %d: %08x %08x\n", mxm 171 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c if (mxms_version(mxm) >= 0x0300) mxm 178 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c mxm_show_unmatched(struct nvkm_mxm *mxm, u8 *data, void *info) mxm 180 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c struct nvkm_subdev *subdev = &mxm->subdev; mxm 188 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c mxm_dcb_sanitise(struct nvkm_mxm *mxm) mxm 190 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c struct nvkm_subdev *subdev = &mxm->subdev; mxm 199 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c dcb_outp_foreach(bios, mxm, mxm_dcb_sanitise_entry); mxm 200 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c mxms_foreach(mxm, 0x01, mxm_show_unmatched, NULL); mxm 206 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c struct nvkm_mxm *mxm; mxm 209 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c ret = nvkm_mxm_new_(device, index, &mxm); mxm 210 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c if (mxm) mxm 211 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c *pmxm = &mxm->subdev; mxm 215 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c if (mxm->action & MXM_SANITISE_DCB) mxm 216 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c mxm_dcb_sanitise(mxm);