Lines Matching refs:smbus_cmi
79 struct acpi_smbus_cmi *smbus_cmi = adap->algo_data; in acpi_smbus_cmi_access() local
157 method = smbus_cmi->methods->mt_sbr; in acpi_smbus_cmi_access()
161 method = smbus_cmi->methods->mt_sbw; in acpi_smbus_cmi_access()
173 status = acpi_evaluate_object(smbus_cmi->handle, method, &input, in acpi_smbus_cmi_access()
176 acpi_handle_err(smbus_cmi->handle, in acpi_smbus_cmi_access()
185 acpi_handle_err(smbus_cmi->handle, "Invalid argument type\n"); in acpi_smbus_cmi_access()
190 acpi_handle_err(smbus_cmi->handle, "Invalid argument type\n"); in acpi_smbus_cmi_access()
196 acpi_handle_debug(smbus_cmi->handle, "%s return status: %i\n", method, in acpi_smbus_cmi_access()
222 acpi_handle_err(smbus_cmi->handle, "Invalid argument type\n"); in acpi_smbus_cmi_access()
234 acpi_handle_err(smbus_cmi->handle, in acpi_smbus_cmi_access()
246 acpi_handle_err(smbus_cmi->handle, in acpi_smbus_cmi_access()
266 struct acpi_smbus_cmi *smbus_cmi = adapter->algo_data; in acpi_smbus_cmi_func() local
269 ret = smbus_cmi->cap_read | smbus_cmi->cap_write ? in acpi_smbus_cmi_func()
272 ret |= smbus_cmi->cap_read ? in acpi_smbus_cmi_func()
278 ret |= smbus_cmi->cap_write ? in acpi_smbus_cmi_func()
293 static int acpi_smbus_cmi_add_cap(struct acpi_smbus_cmi *smbus_cmi, in acpi_smbus_cmi_add_cap() argument
297 struct acpi_handle *handle = smbus_cmi->handle; in acpi_smbus_cmi_add_cap()
301 if (!strcmp(name, smbus_cmi->methods->mt_info)) { in acpi_smbus_cmi_add_cap()
302 status = acpi_evaluate_object(smbus_cmi->handle, in acpi_smbus_cmi_add_cap()
303 smbus_cmi->methods->mt_info, in acpi_smbus_cmi_add_cap()
307 smbus_cmi->methods->mt_info, status); in acpi_smbus_cmi_add_cap()
329 smbus_cmi->cap_info = 1; in acpi_smbus_cmi_add_cap()
330 } else if (!strcmp(name, smbus_cmi->methods->mt_sbr)) in acpi_smbus_cmi_add_cap()
331 smbus_cmi->cap_read = 1; in acpi_smbus_cmi_add_cap()
332 else if (!strcmp(name, smbus_cmi->methods->mt_sbw)) in acpi_smbus_cmi_add_cap()
333 smbus_cmi->cap_write = 1; in acpi_smbus_cmi_add_cap()
345 struct acpi_smbus_cmi *smbus_cmi = context; in acpi_smbus_cmi_query_methods() local
351 acpi_smbus_cmi_add_cap(smbus_cmi, node_name); in acpi_smbus_cmi_query_methods()
359 struct acpi_smbus_cmi *smbus_cmi; in smbus_cmi_probe() local
362 smbus_cmi = kzalloc(sizeof(struct acpi_smbus_cmi), GFP_KERNEL); in smbus_cmi_probe()
363 if (!smbus_cmi) in smbus_cmi_probe()
366 smbus_cmi->handle = ACPI_HANDLE(dev); in smbus_cmi_probe()
367 smbus_cmi->methods = device_get_match_data(dev); in smbus_cmi_probe()
369 platform_set_drvdata(device, smbus_cmi); in smbus_cmi_probe()
371 smbus_cmi->cap_info = 0; in smbus_cmi_probe()
372 smbus_cmi->cap_read = 0; in smbus_cmi_probe()
373 smbus_cmi->cap_write = 0; in smbus_cmi_probe()
375 acpi_walk_namespace(ACPI_TYPE_METHOD, smbus_cmi->handle, 1, in smbus_cmi_probe()
376 acpi_smbus_cmi_query_methods, NULL, smbus_cmi, NULL); in smbus_cmi_probe()
378 if (smbus_cmi->cap_info == 0) { in smbus_cmi_probe()
383 snprintf(smbus_cmi->adapter.name, sizeof(smbus_cmi->adapter.name), in smbus_cmi_probe()
385 smbus_cmi->adapter.owner = THIS_MODULE; in smbus_cmi_probe()
386 smbus_cmi->adapter.algo = &acpi_smbus_cmi_algorithm; in smbus_cmi_probe()
387 smbus_cmi->adapter.algo_data = smbus_cmi; in smbus_cmi_probe()
388 smbus_cmi->adapter.class = I2C_CLASS_HWMON | I2C_CLASS_SPD; in smbus_cmi_probe()
389 smbus_cmi->adapter.dev.parent = &device->dev; in smbus_cmi_probe()
391 ret = i2c_add_adapter(&smbus_cmi->adapter); in smbus_cmi_probe()
400 kfree(smbus_cmi); in smbus_cmi_probe()
406 struct acpi_smbus_cmi *smbus_cmi = platform_get_drvdata(device); in smbus_cmi_remove() local
408 i2c_del_adapter(&smbus_cmi->adapter); in smbus_cmi_remove()
409 kfree(smbus_cmi); in smbus_cmi_remove()