Lines Matching refs:gsmi_dev

100 } gsmi_dev;  variable
163 smibuf->start = kmem_cache_alloc(gsmi_dev.mem_pool, GFP_KERNEL); in gsmi_buf_alloc()
181 kmem_cache_free(gsmi_dev.mem_pool, smibuf->start); in gsmi_buf_free()
204 if (gsmi_dev.handshake_type == GSMI_HANDSHAKE_CF) { in gsmi_exec()
218 "d" (gsmi_dev.smi_cmd), in gsmi_exec()
219 "b" (gsmi_dev.param_buf->address) in gsmi_exec()
222 } else if (gsmi_dev.handshake_type == GSMI_HANDSHAKE_SPIN) { in gsmi_exec()
232 "d" (gsmi_dev.smi_cmd), in gsmi_exec()
233 "b" (gsmi_dev.param_buf->address), in gsmi_exec()
247 "d" (gsmi_dev.smi_cmd), in gsmi_exec()
248 "b" (gsmi_dev.param_buf->address) in gsmi_exec()
316 .name_ptr = gsmi_dev.name_buf->address, in gsmi_get_variable()
317 .data_ptr = gsmi_dev.data_buf->address, in gsmi_get_variable()
328 spin_lock_irqsave(&gsmi_dev.lock, flags); in gsmi_get_variable()
334 memset(gsmi_dev.name_buf->start, 0, gsmi_dev.name_buf->length); in gsmi_get_variable()
335 memcpy(gsmi_dev.name_buf->start, name, name_len * 2); in gsmi_get_variable()
338 memset(gsmi_dev.data_buf->start, 0, gsmi_dev.data_buf->length); in gsmi_get_variable()
341 memset(gsmi_dev.param_buf->start, 0, gsmi_dev.param_buf->length); in gsmi_get_variable()
342 memcpy(gsmi_dev.param_buf->start, &param, sizeof(param)); in gsmi_get_variable()
353 memcpy(&param, gsmi_dev.param_buf->start, sizeof(param)); in gsmi_get_variable()
357 gsmi_dev.data_buf->length); in gsmi_get_variable()
361 memcpy(data, gsmi_dev.data_buf->start, *data_size); in gsmi_get_variable()
370 spin_unlock_irqrestore(&gsmi_dev.lock, flags); in gsmi_get_variable()
380 .name_ptr = gsmi_dev.name_buf->address, in gsmi_get_next_variable()
381 .name_len = gsmi_dev.name_buf->length, in gsmi_get_next_variable()
395 spin_lock_irqsave(&gsmi_dev.lock, flags); in gsmi_get_next_variable()
401 memcpy(gsmi_dev.name_buf->start, name, *name_size); in gsmi_get_next_variable()
404 memset(gsmi_dev.param_buf->start, 0, gsmi_dev.param_buf->length); in gsmi_get_next_variable()
405 memcpy(gsmi_dev.param_buf->start, &param, sizeof(param)); in gsmi_get_next_variable()
416 memcpy(&param, gsmi_dev.param_buf->start, sizeof(param)); in gsmi_get_next_variable()
419 memcpy(name, gsmi_dev.name_buf->start, GSMI_BUF_SIZE); in gsmi_get_next_variable()
427 spin_unlock_irqrestore(&gsmi_dev.lock, flags); in gsmi_get_next_variable()
439 .name_ptr = gsmi_dev.name_buf->address, in gsmi_set_variable()
440 .data_ptr = gsmi_dev.data_buf->address, in gsmi_set_variable()
454 spin_lock_irqsave(&gsmi_dev.lock, flags); in gsmi_set_variable()
460 memset(gsmi_dev.name_buf->start, 0, gsmi_dev.name_buf->length); in gsmi_set_variable()
461 memcpy(gsmi_dev.name_buf->start, name, name_len * 2); in gsmi_set_variable()
464 memset(gsmi_dev.data_buf->start, 0, gsmi_dev.data_buf->length); in gsmi_set_variable()
465 memcpy(gsmi_dev.data_buf->start, data, data_size); in gsmi_set_variable()
468 memset(gsmi_dev.param_buf->start, 0, gsmi_dev.param_buf->length); in gsmi_set_variable()
469 memcpy(gsmi_dev.param_buf->start, &param, sizeof(param)); in gsmi_set_variable()
477 spin_unlock_irqrestore(&gsmi_dev.lock, flags); in gsmi_set_variable()
495 .data_ptr = gsmi_dev.data_buf->address, in eventlog_write()
507 if ((count - sizeof(u32)) > gsmi_dev.data_buf->length) in eventlog_write()
511 spin_lock_irqsave(&gsmi_dev.lock, flags); in eventlog_write()
514 memset(gsmi_dev.data_buf->start, 0, gsmi_dev.data_buf->length); in eventlog_write()
515 memcpy(gsmi_dev.data_buf->start, buf, param.data_len); in eventlog_write()
518 memset(gsmi_dev.param_buf->start, 0, gsmi_dev.param_buf->length); in eventlog_write()
519 memcpy(gsmi_dev.param_buf->start, &param, sizeof(param)); in eventlog_write()
525 spin_unlock_irqrestore(&gsmi_dev.lock, flags); in eventlog_write()
563 spin_lock_irqsave(&gsmi_dev.lock, flags); in gsmi_clear_eventlog_store()
566 memset(gsmi_dev.param_buf->start, 0, gsmi_dev.param_buf->length); in gsmi_clear_eventlog_store()
567 memcpy(gsmi_dev.param_buf->start, &param, sizeof(param)); in gsmi_clear_eventlog_store()
571 spin_unlock_irqrestore(&gsmi_dev.lock, flags); in gsmi_clear_eventlog_store()
590 spin_lock_irqsave(&gsmi_dev.lock, flags); in gsmi_clear_config_store()
593 memset(gsmi_dev.param_buf->start, 0, gsmi_dev.param_buf->length); in gsmi_clear_config_store()
597 spin_unlock_irqrestore(&gsmi_dev.lock, flags); in gsmi_clear_config_store()
633 spin_lock_irqsave(&gsmi_dev.lock, flags); in gsmi_shutdown_reason()
638 memset(gsmi_dev.data_buf->start, 0, gsmi_dev.data_buf->length); in gsmi_shutdown_reason()
639 memcpy(gsmi_dev.data_buf->start, &entry, sizeof(entry)); in gsmi_shutdown_reason()
642 param.data_ptr = gsmi_dev.data_buf->address; in gsmi_shutdown_reason()
643 memset(gsmi_dev.param_buf->start, 0, gsmi_dev.param_buf->length); in gsmi_shutdown_reason()
644 memcpy(gsmi_dev.param_buf->start, &param, sizeof(param)); in gsmi_shutdown_reason()
648 spin_unlock_irqrestore(&gsmi_dev.lock, flags); in gsmi_shutdown_reason()
691 if (spin_is_locked(&gsmi_dev.lock)) in gsmi_panic_callback()
838 spin_lock_irqsave(&gsmi_dev.lock, flags); in gsmi_log_s0ix_info()
840 memset(gsmi_dev.param_buf->start, 0, gsmi_dev.param_buf->length); in gsmi_log_s0ix_info()
844 spin_unlock_irqrestore(&gsmi_dev.lock, flags); in gsmi_log_s0ix_info()
907 gsmi_dev.smi_cmd = acpi_gbl_FADT.smi_command; in gsmi_init()
918 gsmi_dev.pdev = platform_device_register_full(&gsmi_dev_info); in gsmi_init()
919 if (IS_ERR(gsmi_dev.pdev)) { in gsmi_init()
921 return PTR_ERR(gsmi_dev.pdev); in gsmi_init()
925 spin_lock_init(&gsmi_dev.lock); in gsmi_init()
938 gsmi_dev.mem_pool = kmem_cache_create("gsmi", GSMI_BUF_SIZE, in gsmi_init()
941 if (!gsmi_dev.mem_pool) in gsmi_init()
948 gsmi_dev.name_buf = gsmi_buf_alloc(); in gsmi_init()
949 if (!gsmi_dev.name_buf) { in gsmi_init()
954 gsmi_dev.data_buf = gsmi_buf_alloc(); in gsmi_init()
955 if (!gsmi_dev.data_buf) { in gsmi_init()
960 gsmi_dev.param_buf = gsmi_buf_alloc(); in gsmi_init()
961 if (!gsmi_dev.param_buf) { in gsmi_init()
994 spin_lock_irqsave(&gsmi_dev.lock, flags); in gsmi_init()
995 gsmi_dev.handshake_type = GSMI_HANDSHAKE_SPIN; in gsmi_init()
996 gsmi_dev.handshake_type = in gsmi_init()
998 if (gsmi_dev.handshake_type == -ENOSYS) in gsmi_init()
999 gsmi_dev.handshake_type = GSMI_HANDSHAKE_NONE; in gsmi_init()
1000 spin_unlock_irqrestore(&gsmi_dev.lock, flags); in gsmi_init()
1003 if (gsmi_dev.handshake_type == -ENXIO) { in gsmi_init()
1054 gsmi_buf_free(gsmi_dev.param_buf); in gsmi_init()
1055 gsmi_buf_free(gsmi_dev.data_buf); in gsmi_init()
1056 gsmi_buf_free(gsmi_dev.name_buf); in gsmi_init()
1057 kmem_cache_destroy(gsmi_dev.mem_pool); in gsmi_init()
1058 platform_device_unregister(gsmi_dev.pdev); in gsmi_init()
1079 gsmi_buf_free(gsmi_dev.param_buf); in gsmi_exit()
1080 gsmi_buf_free(gsmi_dev.data_buf); in gsmi_exit()
1081 gsmi_buf_free(gsmi_dev.name_buf); in gsmi_exit()
1082 kmem_cache_destroy(gsmi_dev.mem_pool); in gsmi_exit()
1083 platform_device_unregister(gsmi_dev.pdev); in gsmi_exit()