Lines Matching refs:smbus_cmi
89 struct acpi_smbus_cmi *smbus_cmi = adap->algo_data; in acpi_smbus_cmi_access() local
167 method = smbus_cmi->methods->mt_sbr; in acpi_smbus_cmi_access()
171 method = smbus_cmi->methods->mt_sbw; in acpi_smbus_cmi_access()
183 status = acpi_evaluate_object(smbus_cmi->handle, method, &input, in acpi_smbus_cmi_access()
186 acpi_handle_err(smbus_cmi->handle, in acpi_smbus_cmi_access()
195 acpi_handle_err(smbus_cmi->handle, "Invalid argument type\n"); in acpi_smbus_cmi_access()
200 acpi_handle_err(smbus_cmi->handle, "Invalid argument type\n"); in acpi_smbus_cmi_access()
206 acpi_handle_debug(smbus_cmi->handle, "%s return status: %i\n", method, in acpi_smbus_cmi_access()
232 acpi_handle_err(smbus_cmi->handle, "Invalid argument type\n"); in acpi_smbus_cmi_access()
244 acpi_handle_err(smbus_cmi->handle, in acpi_smbus_cmi_access()
256 acpi_handle_err(smbus_cmi->handle, in acpi_smbus_cmi_access()
276 struct acpi_smbus_cmi *smbus_cmi = adapter->algo_data; in acpi_smbus_cmi_func() local
279 ret = smbus_cmi->cap_read | smbus_cmi->cap_write ? in acpi_smbus_cmi_func()
282 ret |= smbus_cmi->cap_read ? in acpi_smbus_cmi_func()
288 ret |= smbus_cmi->cap_write ? in acpi_smbus_cmi_func()
303 static int acpi_smbus_cmi_add_cap(struct acpi_smbus_cmi *smbus_cmi, in acpi_smbus_cmi_add_cap() argument
307 struct acpi_handle *handle = smbus_cmi->handle; in acpi_smbus_cmi_add_cap()
311 if (!strcmp(name, smbus_cmi->methods->mt_info)) { in acpi_smbus_cmi_add_cap()
312 status = acpi_evaluate_object(smbus_cmi->handle, in acpi_smbus_cmi_add_cap()
313 smbus_cmi->methods->mt_info, in acpi_smbus_cmi_add_cap()
317 smbus_cmi->methods->mt_info, status); in acpi_smbus_cmi_add_cap()
339 smbus_cmi->cap_info = 1; in acpi_smbus_cmi_add_cap()
340 } else if (!strcmp(name, smbus_cmi->methods->mt_sbr)) in acpi_smbus_cmi_add_cap()
341 smbus_cmi->cap_read = 1; in acpi_smbus_cmi_add_cap()
342 else if (!strcmp(name, smbus_cmi->methods->mt_sbw)) in acpi_smbus_cmi_add_cap()
343 smbus_cmi->cap_write = 1; in acpi_smbus_cmi_add_cap()
355 struct acpi_smbus_cmi *smbus_cmi = context; in acpi_smbus_cmi_query_methods() local
361 acpi_smbus_cmi_add_cap(smbus_cmi, node_name); in acpi_smbus_cmi_query_methods()
368 struct acpi_smbus_cmi *smbus_cmi; in acpi_smbus_cmi_add() local
371 smbus_cmi = kzalloc(sizeof(struct acpi_smbus_cmi), GFP_KERNEL); in acpi_smbus_cmi_add()
372 if (!smbus_cmi) in acpi_smbus_cmi_add()
375 smbus_cmi->handle = device->handle; in acpi_smbus_cmi_add()
378 device->driver_data = smbus_cmi; in acpi_smbus_cmi_add()
379 smbus_cmi->cap_info = 0; in acpi_smbus_cmi_add()
380 smbus_cmi->cap_read = 0; in acpi_smbus_cmi_add()
381 smbus_cmi->cap_write = 0; in acpi_smbus_cmi_add()
385 smbus_cmi->methods = in acpi_smbus_cmi_add()
388 acpi_walk_namespace(ACPI_TYPE_METHOD, smbus_cmi->handle, 1, in acpi_smbus_cmi_add()
389 acpi_smbus_cmi_query_methods, NULL, smbus_cmi, NULL); in acpi_smbus_cmi_add()
391 if (smbus_cmi->cap_info == 0) in acpi_smbus_cmi_add()
394 snprintf(smbus_cmi->adapter.name, sizeof(smbus_cmi->adapter.name), in acpi_smbus_cmi_add()
397 smbus_cmi->adapter.owner = THIS_MODULE; in acpi_smbus_cmi_add()
398 smbus_cmi->adapter.algo = &acpi_smbus_cmi_algorithm; in acpi_smbus_cmi_add()
399 smbus_cmi->adapter.algo_data = smbus_cmi; in acpi_smbus_cmi_add()
400 smbus_cmi->adapter.class = I2C_CLASS_HWMON | I2C_CLASS_SPD; in acpi_smbus_cmi_add()
401 smbus_cmi->adapter.dev.parent = &device->dev; in acpi_smbus_cmi_add()
403 if (i2c_add_adapter(&smbus_cmi->adapter)) { in acpi_smbus_cmi_add()
411 kfree(smbus_cmi); in acpi_smbus_cmi_add()
418 struct acpi_smbus_cmi *smbus_cmi = acpi_driver_data(device); in acpi_smbus_cmi_remove() local
420 i2c_del_adapter(&smbus_cmi->adapter); in acpi_smbus_cmi_remove()
421 kfree(smbus_cmi); in acpi_smbus_cmi_remove()