Lines Matching refs:smbus_cmi
21 ACPI_MODULE_NAME("smbus_cmi");
86 struct acpi_smbus_cmi *smbus_cmi = adap->algo_data;
164 method = smbus_cmi->methods->mt_sbr;
168 method = smbus_cmi->methods->mt_sbw;
180 status = acpi_evaluate_object(smbus_cmi->handle, method, &input,
183 acpi_handle_err(smbus_cmi->handle,
192 acpi_handle_err(smbus_cmi->handle, "Invalid argument type\n");
197 acpi_handle_err(smbus_cmi->handle, "Invalid argument type\n");
203 acpi_handle_debug(smbus_cmi->handle, "%s return status: %i\n", method,
229 acpi_handle_err(smbus_cmi->handle, "Invalid argument type\n");
241 acpi_handle_err(smbus_cmi->handle,
253 acpi_handle_err(smbus_cmi->handle,
273 struct acpi_smbus_cmi *smbus_cmi = adapter->algo_data;
276 ret = smbus_cmi->cap_read | smbus_cmi->cap_write ?
279 ret |= smbus_cmi->cap_read ?
285 ret |= smbus_cmi->cap_write ?
300 static int acpi_smbus_cmi_add_cap(struct acpi_smbus_cmi *smbus_cmi,
304 struct acpi_handle *handle = smbus_cmi->handle;
308 if (!strcmp(name, smbus_cmi->methods->mt_info)) {
309 status = acpi_evaluate_object(smbus_cmi->handle,
310 smbus_cmi->methods->mt_info,
314 smbus_cmi->methods->mt_info, status);
336 smbus_cmi->cap_info = 1;
337 } else if (!strcmp(name, smbus_cmi->methods->mt_sbr))
338 smbus_cmi->cap_read = 1;
339 else if (!strcmp(name, smbus_cmi->methods->mt_sbw))
340 smbus_cmi->cap_write = 1;
352 struct acpi_smbus_cmi *smbus_cmi = context;
358 acpi_smbus_cmi_add_cap(smbus_cmi, node_name);
365 struct acpi_smbus_cmi *smbus_cmi;
369 smbus_cmi = kzalloc(sizeof(struct acpi_smbus_cmi), GFP_KERNEL);
370 if (!smbus_cmi)
373 smbus_cmi->handle = device->handle;
376 device->driver_data = smbus_cmi;
377 smbus_cmi->cap_info = 0;
378 smbus_cmi->cap_read = 0;
379 smbus_cmi->cap_write = 0;
383 smbus_cmi->methods =
386 acpi_walk_namespace(ACPI_TYPE_METHOD, smbus_cmi->handle, 1,
387 acpi_smbus_cmi_query_methods, NULL, smbus_cmi, NULL);
389 if (smbus_cmi->cap_info == 0) {
394 snprintf(smbus_cmi->adapter.name, sizeof(smbus_cmi->adapter.name),
397 smbus_cmi->adapter.owner = THIS_MODULE;
398 smbus_cmi->adapter.algo = &acpi_smbus_cmi_algorithm;
399 smbus_cmi->adapter.algo_data = smbus_cmi;
400 smbus_cmi->adapter.class = I2C_CLASS_HWMON | I2C_CLASS_SPD;
401 smbus_cmi->adapter.dev.parent = &device->dev;
403 ret = i2c_add_adapter(&smbus_cmi->adapter);
412 kfree(smbus_cmi);
419 struct acpi_smbus_cmi *smbus_cmi = acpi_driver_data(device);
421 i2c_del_adapter(&smbus_cmi->adapter);
422 kfree(smbus_cmi);