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()
369 spin_unlock_irqrestore(&gsmi_dev.lock, flags); in gsmi_get_variable()
379 .name_ptr = gsmi_dev.name_buf->address, in gsmi_get_next_variable()
380 .name_len = gsmi_dev.name_buf->length, in gsmi_get_next_variable()
394 spin_lock_irqsave(&gsmi_dev.lock, flags); in gsmi_get_next_variable()
400 memcpy(gsmi_dev.name_buf->start, name, *name_size); in gsmi_get_next_variable()
403 memset(gsmi_dev.param_buf->start, 0, gsmi_dev.param_buf->length); in gsmi_get_next_variable()
404 memcpy(gsmi_dev.param_buf->start, &param, sizeof(param)); in gsmi_get_next_variable()
415 memcpy(&param, gsmi_dev.param_buf->start, sizeof(param)); in gsmi_get_next_variable()
418 memcpy(name, gsmi_dev.name_buf->start, GSMI_BUF_SIZE); in gsmi_get_next_variable()
426 spin_unlock_irqrestore(&gsmi_dev.lock, flags); in gsmi_get_next_variable()
438 .name_ptr = gsmi_dev.name_buf->address, in gsmi_set_variable()
439 .data_ptr = gsmi_dev.data_buf->address, in gsmi_set_variable()
453 spin_lock_irqsave(&gsmi_dev.lock, flags); in gsmi_set_variable()
459 memset(gsmi_dev.name_buf->start, 0, gsmi_dev.name_buf->length); in gsmi_set_variable()
460 memcpy(gsmi_dev.name_buf->start, name, name_len * 2); in gsmi_set_variable()
463 memset(gsmi_dev.data_buf->start, 0, gsmi_dev.data_buf->length); in gsmi_set_variable()
464 memcpy(gsmi_dev.data_buf->start, data, data_size); in gsmi_set_variable()
467 memset(gsmi_dev.param_buf->start, 0, gsmi_dev.param_buf->length); in gsmi_set_variable()
468 memcpy(gsmi_dev.param_buf->start, &param, sizeof(param)); in gsmi_set_variable()
476 spin_unlock_irqrestore(&gsmi_dev.lock, flags); in gsmi_set_variable()
494 .data_ptr = gsmi_dev.data_buf->address, in eventlog_write()
506 if ((count - sizeof(u32)) > gsmi_dev.data_buf->length) in eventlog_write()
510 spin_lock_irqsave(&gsmi_dev.lock, flags); in eventlog_write()
513 memset(gsmi_dev.data_buf->start, 0, gsmi_dev.data_buf->length); in eventlog_write()
514 memcpy(gsmi_dev.data_buf->start, buf, param.data_len); in eventlog_write()
517 memset(gsmi_dev.param_buf->start, 0, gsmi_dev.param_buf->length); in eventlog_write()
518 memcpy(gsmi_dev.param_buf->start, &param, sizeof(param)); in eventlog_write()
524 spin_unlock_irqrestore(&gsmi_dev.lock, flags); in eventlog_write()
562 spin_lock_irqsave(&gsmi_dev.lock, flags); in gsmi_clear_eventlog_store()
565 memset(gsmi_dev.param_buf->start, 0, gsmi_dev.param_buf->length); in gsmi_clear_eventlog_store()
566 memcpy(gsmi_dev.param_buf->start, &param, sizeof(param)); in gsmi_clear_eventlog_store()
570 spin_unlock_irqrestore(&gsmi_dev.lock, flags); in gsmi_clear_eventlog_store()
589 spin_lock_irqsave(&gsmi_dev.lock, flags); in gsmi_clear_config_store()
592 memset(gsmi_dev.param_buf->start, 0, gsmi_dev.param_buf->length); in gsmi_clear_config_store()
596 spin_unlock_irqrestore(&gsmi_dev.lock, flags); in gsmi_clear_config_store()
632 spin_lock_irqsave(&gsmi_dev.lock, flags); in gsmi_shutdown_reason()
637 memset(gsmi_dev.data_buf->start, 0, gsmi_dev.data_buf->length); in gsmi_shutdown_reason()
638 memcpy(gsmi_dev.data_buf->start, &entry, sizeof(entry)); in gsmi_shutdown_reason()
641 param.data_ptr = gsmi_dev.data_buf->address; in gsmi_shutdown_reason()
642 memset(gsmi_dev.param_buf->start, 0, gsmi_dev.param_buf->length); in gsmi_shutdown_reason()
643 memcpy(gsmi_dev.param_buf->start, &param, sizeof(param)); in gsmi_shutdown_reason()
647 spin_unlock_irqrestore(&gsmi_dev.lock, flags); in gsmi_shutdown_reason()
690 if (spin_is_locked(&gsmi_dev.lock)) in gsmi_panic_callback()
837 spin_lock_irqsave(&gsmi_dev.lock, flags); in gsmi_log_s0ix_info()
839 memset(gsmi_dev.param_buf->start, 0, gsmi_dev.param_buf->length); in gsmi_log_s0ix_info()
843 spin_unlock_irqrestore(&gsmi_dev.lock, flags); in gsmi_log_s0ix_info()
906 gsmi_dev.smi_cmd = acpi_gbl_FADT.smi_command; in gsmi_init()
917 gsmi_dev.pdev = platform_device_register_full(&gsmi_dev_info); in gsmi_init()
918 if (IS_ERR(gsmi_dev.pdev)) { in gsmi_init()
920 return PTR_ERR(gsmi_dev.pdev); in gsmi_init()
924 spin_lock_init(&gsmi_dev.lock); in gsmi_init()
937 gsmi_dev.mem_pool = kmem_cache_create("gsmi", GSMI_BUF_SIZE, in gsmi_init()
940 if (!gsmi_dev.mem_pool) in gsmi_init()
947 gsmi_dev.name_buf = gsmi_buf_alloc(); in gsmi_init()
948 if (!gsmi_dev.name_buf) { in gsmi_init()
953 gsmi_dev.data_buf = gsmi_buf_alloc(); in gsmi_init()
954 if (!gsmi_dev.data_buf) { in gsmi_init()
959 gsmi_dev.param_buf = gsmi_buf_alloc(); in gsmi_init()
960 if (!gsmi_dev.param_buf) { in gsmi_init()
993 spin_lock_irqsave(&gsmi_dev.lock, flags); in gsmi_init()
994 gsmi_dev.handshake_type = GSMI_HANDSHAKE_SPIN; in gsmi_init()
995 gsmi_dev.handshake_type = in gsmi_init()
997 if (gsmi_dev.handshake_type == -ENOSYS) in gsmi_init()
998 gsmi_dev.handshake_type = GSMI_HANDSHAKE_NONE; in gsmi_init()
999 spin_unlock_irqrestore(&gsmi_dev.lock, flags); in gsmi_init()
1002 if (gsmi_dev.handshake_type == -ENXIO) { in gsmi_init()
1053 gsmi_buf_free(gsmi_dev.param_buf); in gsmi_init()
1054 gsmi_buf_free(gsmi_dev.data_buf); in gsmi_init()
1055 gsmi_buf_free(gsmi_dev.name_buf); in gsmi_init()
1056 kmem_cache_destroy(gsmi_dev.mem_pool); in gsmi_init()
1057 platform_device_unregister(gsmi_dev.pdev); in gsmi_init()
1078 gsmi_buf_free(gsmi_dev.param_buf); in gsmi_exit()
1079 gsmi_buf_free(gsmi_dev.data_buf); in gsmi_exit()
1080 gsmi_buf_free(gsmi_dev.name_buf); in gsmi_exit()
1081 kmem_cache_destroy(gsmi_dev.mem_pool); in gsmi_exit()
1082 platform_device_unregister(gsmi_dev.pdev); in gsmi_exit()