39 { .
addr =
addr, .flags = 0, .len = 1, .buf = &offset },
56 port = i2c->
find(i2c, i2cidx);
61 if (!mxm_shadow_rom_fetch(port, addr, 0, 6, mxms)) {
63 if (!mxm_shadow_rom_fetch(port, addr, 0, 6, mxms))
72 mxm_shadow_rom_fetch(port, addr, 0, size, mxm->
mxms))
80 #if defined(CONFIG_ACPI)
85 static char muid[] = {
86 0x00, 0xA4, 0x04, 0x40, 0x7D, 0x91, 0xF2, 0x4C,
87 0xB8, 0x9C, 0x79, 0xB6, 0x2F, 0xD5, 0x56, 0x65
89 u32 mxms_args[] = { 0x00000000 };
93 .buffer.length =
sizeof(muid),
101 .integer.value = (version & 0xf0) << 4 | (version & 0x0f),
105 .integer.value = 0x00000010,
109 .buffer.length =
sizeof(mxms_args),
110 .
buffer.pointer = (
char *)mxms_args,
119 handle = DEVICE_ACPI_HANDLE(&device->
pdev->dev);
125 nv_debug(mxm,
"DSM MXMS failed: %d\n", ret);
143 #if defined(CONFIG_ACPI_WMI) || defined(CONFIG_ACPI_WMI_MODULE)
145 #define WMI_WMMX_GUID "F6CB5C3C-9CAE-4EBD-B577-931EA32A2CC0"
150 u32 mxmi_args[] = { 0x494D584D ,
version, 0 };
151 struct acpi_buffer args = {
sizeof(mxmi_args), mxmi_args };
158 nv_debug(mxm,
"WMMX MXMI returned %d\n", status);
165 nv_debug(mxm,
"WMMX MXMI version %d.%d\n",
166 (version >> 4), version & 0x0f);
169 nv_debug(mxm,
"WMMX MXMI returned non-integer\n");
179 u32 mxms_args[] = { 0x534D584D ,
version, 0 };
180 struct acpi_buffer args = {
sizeof(mxms_args), mxms_args };
186 nv_debug(mxm,
"WMMX GUID not found\n");
190 mxms_args[1] = wmi_wmmx_mxmi(mxm, 0x00);
192 mxms_args[1] = wmi_wmmx_mxmi(mxm, version);
198 nv_debug(mxm,
"WMMX MXMS returned %d\n", status);
213 static struct mxm_shadow_h {
217 {
"ROM", mxm_shadow_rom },
218 #if defined(CONFIG_ACPI)
219 {
"DSM", mxm_shadow_dsm },
221 #if defined(CONFIG_ACPI_WMI) || defined(CONFIG_ACPI_WMI_MODULE)
222 {
"WMI", mxm_shadow_wmi },
230 struct mxm_shadow_h *
shadow = _mxm_shadow;
232 nv_debug(mxm,
"checking %s\n", shadow->name);
233 if (shadow->exec(mxm, version)) {
239 }
while ((++shadow)->
name);
262 if (!data || !(ver = nv_ro08(bios, data))) {
263 nv_info(mxm,
"no VBIOS data, nothing to do\n");
267 nv_info(mxm,
"BIOS version %d.%d\n", ver >> 4, ver & 0x0f);
269 if (mxm_shadow(mxm, ver)) {
270 nv_info(mxm,
"failed to locate valid SIS\n");
283 nv_info(mxm,
"MXMS Version %d.%d\n",