• Home
  • Raw
  • Download

Lines Matching +full:ecx +full:- +full:2000

1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright (C) 2010 - 2015 UNISYS CORPORATION
13 /* {72120008-4AAB-11DC-8530-444553544200} */
28 /* The s-Par leaf ID returns "UnisysSpar64" encoded across ebx, ecx, edx */
62 * struct vmcall_io_controlvm_addr_params - Structure for IO VMCALLS. Has
65 * @address: The Guest-relative physical address of the ControlVm channel.
71 * @unused: Unused Bytes in the 64-Bit Aligned Struct.
116 err = visorchannel_read(chipset_dev->controlvm_channel, in toolaction_show()
133 return -EINVAL; in toolaction_store()
134 err = visorchannel_write(chipset_dev->controlvm_channel, in toolaction_store()
151 err = visorchannel_read(chipset_dev->controlvm_channel, in boottotool_show()
169 return -EINVAL; in boottotool_store()
171 err = visorchannel_write(chipset_dev->controlvm_channel, in boottotool_store()
188 err = visorchannel_read(chipset_dev->controlvm_channel, in error_show()
204 return -EINVAL; in error_store()
205 err = visorchannel_write(chipset_dev->controlvm_channel, in error_store()
221 err = visorchannel_read(chipset_dev->controlvm_channel, in textid_show()
237 return -EINVAL; in textid_store()
238 err = visorchannel_write(chipset_dev->controlvm_channel, in textid_store()
254 err = visorchannel_read(chipset_dev->controlvm_channel, in remaining_steps_show()
271 return -EINVAL; in remaining_steps_store()
272 err = visorchannel_write(chipset_dev->controlvm_channel, in remaining_steps_store()
287 memcpy(&msg->hdr, msg_hdr, sizeof(struct controlvm_message_header)); in controlvm_init_response()
288 msg->hdr.payload_bytes = 0; in controlvm_init_response()
289 msg->hdr.payload_vm_offset = 0; in controlvm_init_response()
290 msg->hdr.payload_max_bytes = 0; in controlvm_init_response()
292 msg->hdr.flags.failed = 1; in controlvm_init_response()
293 msg->hdr.completion_status = (u32)(-response); in controlvm_init_response()
306 return visorchannel_signalinsert(chipset_dev->controlvm_channel, in controlvm_respond_chipset_init()
318 rc = -CONTROLVM_RESP_ALREADY_DONE; in chipset_init()
319 res = -EIO; in chipset_init()
326 * features-aware driver. in chipset_init()
328 features = inmsg->cmd.init_chipset.features & in chipset_init()
333 if (inmsg->hdr.flags.response_expected) in chipset_init()
334 res = controlvm_respond_chipset_init(&inmsg->hdr, rc, features); in chipset_init()
346 return -EINVAL; in controlvm_respond()
351 return visorchannel_signalinsert(chipset_dev->controlvm_channel, in controlvm_respond()
367 err = visorchannel_read(chipset_dev->controlvm_channel, in save_crash_message()
372 dev_err(&chipset_dev->acpi_device->dev, in save_crash_message()
377 dev_err(&chipset_dev->acpi_device->dev, in save_crash_message()
379 return -EIO; in save_crash_message()
381 err = visorchannel_read(chipset_dev->controlvm_channel, in save_crash_message()
386 dev_err(&chipset_dev->acpi_device->dev, in save_crash_message()
393 err = visorchannel_write(chipset_dev->controlvm_channel, in save_crash_message()
397 dev_err(&chipset_dev->acpi_device->dev, in save_crash_message()
403 err = visorchannel_write(chipset_dev->controlvm_channel, in save_crash_message()
407 dev_err(&chipset_dev->acpi_device->dev, in save_crash_message()
413 dev_err(&chipset_dev->acpi_device->dev, in save_crash_message()
424 if (pending_msg_hdr->id != (u32)cmd_id) in controlvm_responder()
425 return -EINVAL; in controlvm_responder()
436 if (p->pending_msg_hdr->id != cmd_id) in device_changestate_responder()
437 return -EINVAL; in device_changestate_responder()
439 controlvm_init_response(&outmsg, p->pending_msg_hdr, response); in device_changestate_responder()
440 outmsg.cmd.device_change_state.bus_no = p->chipset_bus_no; in device_changestate_responder()
441 outmsg.cmd.device_change_state.dev_no = p->chipset_dev_no; in device_changestate_responder()
443 return visorchannel_signalinsert(chipset_dev->controlvm_channel, in device_changestate_responder()
449 struct controlvm_message_packet *cmd = &inmsg->cmd; in visorbus_create()
451 u32 bus_no = cmd->create_bus.bus_no; in visorbus_create()
457 if (bus_info && bus_info->state.created == 1) { in visorbus_create()
458 dev_err(&chipset_dev->acpi_device->dev, in visorbus_create()
460 err = -EEXIST; in visorbus_create()
465 err = -ENOMEM; in visorbus_create()
468 INIT_LIST_HEAD(&bus_info->list_all); in visorbus_create()
469 bus_info->chipset_bus_no = bus_no; in visorbus_create()
470 bus_info->chipset_dev_no = BUS_ROOT_DEVICE; in visorbus_create()
471 if (guid_equal(&cmd->create_bus.bus_inst_guid, &visor_siovm_guid)) { in visorbus_create()
476 if (inmsg->hdr.flags.response_expected == 1) { in visorbus_create()
479 err = -ENOMEM; in visorbus_create()
482 memcpy(pmsg_hdr, &inmsg->hdr, in visorbus_create()
484 bus_info->pending_msg_hdr = pmsg_hdr; in visorbus_create()
486 visorchannel = visorchannel_create(cmd->create_bus.channel_addr, in visorbus_create()
488 &cmd->create_bus.bus_data_type_guid, in visorbus_create()
491 err = -ENOMEM; in visorbus_create()
494 bus_info->visorchannel = visorchannel; in visorbus_create()
505 kfree(bus_info->pending_msg_hdr); in visorbus_create()
511 if (inmsg->hdr.flags.response_expected == 1) in visorbus_create()
512 controlvm_responder(inmsg->hdr.id, &inmsg->hdr, err); in visorbus_create()
519 u32 bus_no = inmsg->cmd.destroy_bus.bus_no; in visorbus_destroy()
525 err = -ENODEV; in visorbus_destroy()
528 if (bus_info->state.created == 0) { in visorbus_destroy()
529 err = -ENOENT; in visorbus_destroy()
532 if (bus_info->pending_msg_hdr) { in visorbus_destroy()
533 /* only non-NULL if dev is still waiting on a response */ in visorbus_destroy()
534 err = -EEXIST; in visorbus_destroy()
537 if (inmsg->hdr.flags.response_expected == 1) { in visorbus_destroy()
540 err = -ENOMEM; in visorbus_destroy()
543 memcpy(pmsg_hdr, &inmsg->hdr, in visorbus_destroy()
545 bus_info->pending_msg_hdr = pmsg_hdr; in visorbus_destroy()
552 if (inmsg->hdr.flags.response_expected == 1) in visorbus_destroy()
553 controlvm_responder(inmsg->hdr.id, &inmsg->hdr, err); in visorbus_destroy()
559 return &ctx->data.id; in parser_id_get()
583 phdr = &ctx->data; in parser_name_get()
584 if ((unsigned long)phdr->name_offset + in parser_name_get()
585 (unsigned long)phdr->name_length > ctx->param_bytes) in parser_name_get()
587 ctx->curr = (char *)&phdr + phdr->name_offset; in parser_name_get()
588 ctx->bytes_remaining = phdr->name_length; in parser_name_get()
589 return parser_string_get(ctx->curr, phdr->name_length); in parser_name_get()
595 struct controlvm_message_packet *cmd = &inmsg->cmd; in visorbus_configure()
600 bus_no = cmd->configure_bus.bus_no; in visorbus_configure()
603 err = -EINVAL; in visorbus_configure()
606 if (bus_info->state.created == 0) { in visorbus_configure()
607 err = -EINVAL; in visorbus_configure()
610 if (bus_info->pending_msg_hdr) { in visorbus_configure()
611 err = -EIO; in visorbus_configure()
614 err = visorchannel_set_clientpartition(bus_info->visorchannel, in visorbus_configure()
615 cmd->configure_bus.guest_handle); in visorbus_configure()
621 guid_copy(&bus_info->partition_guid, partition_guid); in visorbus_configure()
622 bus_info->name = parser_name_get(parser_ctx); in visorbus_configure()
624 if (inmsg->hdr.flags.response_expected == 1) in visorbus_configure()
625 controlvm_responder(inmsg->hdr.id, &inmsg->hdr, err); in visorbus_configure()
629 dev_err(&chipset_dev->acpi_device->dev, in visorbus_configure()
631 if (inmsg->hdr.flags.response_expected == 1) in visorbus_configure()
632 controlvm_responder(inmsg->hdr.id, &inmsg->hdr, err); in visorbus_configure()
638 struct controlvm_message_packet *cmd = &inmsg->cmd; in visorbus_device_create()
640 u32 bus_no = cmd->create_device.bus_no; in visorbus_device_create()
641 u32 dev_no = cmd->create_device.dev_no; in visorbus_device_create()
649 dev_err(&chipset_dev->acpi_device->dev, in visorbus_device_create()
651 err = -ENODEV; in visorbus_device_create()
654 if (bus_info->state.created == 0) { in visorbus_device_create()
655 dev_err(&chipset_dev->acpi_device->dev, in visorbus_device_create()
657 err = -EINVAL; in visorbus_device_create()
661 if (dev_info && dev_info->state.created == 1) { in visorbus_device_create()
662 dev_err(&chipset_dev->acpi_device->dev, in visorbus_device_create()
664 err = -EEXIST; in visorbus_device_create()
670 err = -ENOMEM; in visorbus_device_create()
673 dev_info->chipset_bus_no = bus_no; in visorbus_device_create()
674 dev_info->chipset_dev_no = dev_no; in visorbus_device_create()
675 guid_copy(&dev_info->inst, &cmd->create_device.dev_inst_guid); in visorbus_device_create()
676 dev_info->device.parent = &bus_info->device; in visorbus_device_create()
677 visorchannel = visorchannel_create(cmd->create_device.channel_addr, in visorbus_device_create()
679 &cmd->create_device.data_type_guid, in visorbus_device_create()
682 dev_err(&chipset_dev->acpi_device->dev, in visorbus_device_create()
685 err = -ENOMEM; in visorbus_device_create()
688 dev_info->visorchannel = visorchannel; in visorbus_device_create()
689 guid_copy(&dev_info->channel_type_guid, in visorbus_device_create()
690 &cmd->create_device.data_type_guid); in visorbus_device_create()
691 if (guid_equal(&cmd->create_device.data_type_guid, in visorbus_device_create()
697 if (inmsg->hdr.flags.response_expected == 1) { in visorbus_device_create()
700 err = -ENOMEM; in visorbus_device_create()
703 memcpy(pmsg_hdr, &inmsg->hdr, in visorbus_device_create()
705 dev_info->pending_msg_hdr = pmsg_hdr; in visorbus_device_create()
721 if (inmsg->hdr.flags.response_expected == 1) in visorbus_device_create()
722 controlvm_responder(inmsg->hdr.id, &inmsg->hdr, err); in visorbus_device_create()
728 struct controlvm_message_packet *cmd = &inmsg->cmd; in visorbus_device_changestate()
730 u32 bus_no = cmd->device_change_state.bus_no; in visorbus_device_changestate()
731 u32 dev_no = cmd->device_change_state.dev_no; in visorbus_device_changestate()
732 struct visor_segment_state state = cmd->device_change_state.state; in visorbus_device_changestate()
738 err = -ENODEV; in visorbus_device_changestate()
741 if (dev_info->state.created == 0) { in visorbus_device_changestate()
742 err = -EINVAL; in visorbus_device_changestate()
745 if (dev_info->pending_msg_hdr) { in visorbus_device_changestate()
746 /* only non-NULL if dev is still waiting on a response */ in visorbus_device_changestate()
747 err = -EIO; in visorbus_device_changestate()
751 if (inmsg->hdr.flags.response_expected == 1) { in visorbus_device_changestate()
754 err = -ENOMEM; in visorbus_device_changestate()
757 memcpy(pmsg_hdr, &inmsg->hdr, in visorbus_device_changestate()
759 dev_info->pending_msg_hdr = pmsg_hdr; in visorbus_device_changestate()
778 dev_err(&chipset_dev->acpi_device->dev, "failed: %d\n", err); in visorbus_device_changestate()
779 if (inmsg->hdr.flags.response_expected == 1) in visorbus_device_changestate()
780 controlvm_responder(inmsg->hdr.id, &inmsg->hdr, err); in visorbus_device_changestate()
786 struct controlvm_message_packet *cmd = &inmsg->cmd; in visorbus_device_destroy()
788 u32 bus_no = cmd->destroy_device.bus_no; in visorbus_device_destroy()
789 u32 dev_no = cmd->destroy_device.dev_no; in visorbus_device_destroy()
795 err = -ENODEV; in visorbus_device_destroy()
798 if (dev_info->state.created == 0) { in visorbus_device_destroy()
799 err = -EINVAL; in visorbus_device_destroy()
802 if (dev_info->pending_msg_hdr) { in visorbus_device_destroy()
803 /* only non-NULL if dev is still waiting on a response */ in visorbus_device_destroy()
804 err = -EIO; in visorbus_device_destroy()
807 if (inmsg->hdr.flags.response_expected == 1) { in visorbus_device_destroy()
810 err = -ENOMEM; in visorbus_device_destroy()
814 memcpy(pmsg_hdr, &inmsg->hdr, in visorbus_device_destroy()
816 dev_info->pending_msg_hdr = pmsg_hdr; in visorbus_device_destroy()
818 kfree(dev_info->name); in visorbus_device_destroy()
823 if (inmsg->hdr.flags.response_expected == 1) in visorbus_device_destroy()
824 controlvm_responder(inmsg->hdr.id, &inmsg->hdr, err); in visorbus_device_destroy()
840 #define PARAHOTPLUG_TIMEOUT_MS 2000
843 * parahotplug_next_id() - generate unique int to match an outstanding
857 * parahotplug_next_expiration() - returns the time (in jiffies) when a
859 * -- PARAHOTPLUG_TIMEOUT_MS in the future
869 * parahotplug_request_create() - create a parahotplug_request, which is
884 req->id = parahotplug_next_id(); in parahotplug_request_create()
885 req->expiration = parahotplug_next_expiration(); in parahotplug_request_create()
886 req->msg = *msg; in parahotplug_request_create()
891 * parahotplug_request_destroy() - free a parahotplug_request
904 * parahotplug_request_complete() - mark request as complete
912 * Return: 0 on success or -EINVAL on failure
924 if (req->id == id) { in parahotplug_request_complete()
931 req->msg.cmd.device_change_state.state.active = active; in parahotplug_request_complete()
932 if (req->msg.hdr.flags.response_expected) in parahotplug_request_complete()
934 &req->msg.hdr, CONTROLVM_RESP_SUCCESS, in parahotplug_request_complete()
935 &req->msg.cmd.device_change_state.state); in parahotplug_request_complete()
941 return -EINVAL; in parahotplug_request_complete()
945 * devicedisabled_store() - disables the hotplug device
952 * when an SR-IOV device has been shut down. The ID is passed to the script
965 return -EINVAL; in devicedisabled_store()
974 * deviceenabled_store() - enables the hotplug device
981 * when an SR-IOV device has been recovered. The ID is passed to the script
993 return -EINVAL; in deviceenabled_store()
1031 * parahotplug_request_kickoff() - initiate parahotplug request
1039 struct controlvm_message_packet *cmd = &req->msg.cmd; in parahotplug_request_kickoff()
1047 sprintf(env_id, "VISOR_PARAHOTPLUG_ID=%d", req->id); in parahotplug_request_kickoff()
1049 cmd->device_change_state.state.active); in parahotplug_request_kickoff()
1051 cmd->device_change_state.bus_no); in parahotplug_request_kickoff()
1053 cmd->device_change_state.dev_no >> 3); in parahotplug_request_kickoff()
1055 cmd->device_change_state.dev_no & 0x7); in parahotplug_request_kickoff()
1056 return kobject_uevent_env(&chipset_dev->acpi_device->dev.kobj, in parahotplug_request_kickoff()
1061 * parahotplug_process_message() - enables or disables a PCI device by kicking
1072 return -ENOMEM; in parahotplug_process_message()
1077 if (inmsg->cmd.device_change_state.state.active) { in parahotplug_process_message()
1081 controlvm_respond(&inmsg->hdr, CONTROLVM_RESP_SUCCESS, in parahotplug_process_message()
1082 &inmsg->cmd.device_change_state.state); in parahotplug_process_message()
1092 list_add_tail(&req->list, &parahotplug_request_list); in parahotplug_process_message()
1100 controlvm_respond(&inmsg->hdr, err, in parahotplug_process_message()
1101 &inmsg->cmd.device_change_state.state); in parahotplug_process_message()
1106 * chipset_ready_uevent() - sends chipset_ready action
1116 res = kobject_uevent(&chipset_dev->acpi_device->dev.kobj, KOBJ_ONLINE); in chipset_ready_uevent()
1117 if (msg_hdr->flags.response_expected) in chipset_ready_uevent()
1123 * chipset_selftest_uevent() - sends chipset_selftest action
1136 res = kobject_uevent_env(&chipset_dev->acpi_device->dev.kobj, in chipset_selftest_uevent()
1138 if (msg_hdr->flags.response_expected) in chipset_selftest_uevent()
1144 * chipset_notready_uevent() - sends chipset_notready action
1152 int res = kobject_uevent(&chipset_dev->acpi_device->dev.kobj, in chipset_notready_uevent()
1155 if (msg_hdr->flags.response_expected) in chipset_notready_uevent()
1171 return -EPERM; in unisys_vmcall()
1182 return -EINVAL; in unisys_vmcall()
1184 return -ENODEV; in unisys_vmcall()
1186 return -EFAULT; in unisys_vmcall()
1197 virt_to_phys(&dev->controlvm_params)); in controlvm_channel_create()
1200 addr = dev->controlvm_params.address; in controlvm_channel_create()
1204 return -ENOMEM; in controlvm_channel_create()
1205 dev->controlvm_channel = chan; in controlvm_channel_create()
1226 if (visorchannel_read(chipset_dev->controlvm_channel, in setup_crash_devices_work_queue()
1230 dev_err(&chipset_dev->acpi_device->dev, in setup_crash_devices_work_queue()
1235 dev_err(&chipset_dev->acpi_device->dev, "invalid count\n"); in setup_crash_devices_work_queue()
1239 if (visorchannel_read(chipset_dev->controlvm_channel, in setup_crash_devices_work_queue()
1243 dev_err(&chipset_dev->acpi_device->dev, in setup_crash_devices_work_queue()
1248 if (visorchannel_read(chipset_dev->controlvm_channel, in setup_crash_devices_work_queue()
1252 dev_err(&chipset_dev->acpi_device->dev, in setup_crash_devices_work_queue()
1257 if (visorchannel_read(chipset_dev->controlvm_channel, in setup_crash_devices_work_queue()
1262 dev_err(&chipset_dev->acpi_device->dev, in setup_crash_devices_work_queue()
1268 dev_err(&chipset_dev->acpi_device->dev, in setup_crash_devices_work_queue()
1275 dev_err(&chipset_dev->acpi_device->dev, in setup_crash_devices_work_queue()
1285 if (!bus_info->pending_msg_hdr) in visorbus_response()
1288 controlvm_responder(controlvm_id, bus_info->pending_msg_hdr, response); in visorbus_response()
1289 kfree(bus_info->pending_msg_hdr); in visorbus_response()
1290 bus_info->pending_msg_hdr = NULL; in visorbus_response()
1297 if (!dev_info->pending_msg_hdr) in visorbus_device_changestate_response()
1302 kfree(dev_info->pending_msg_hdr); in visorbus_device_changestate_response()
1303 dev_info->pending_msg_hdr = NULL; in visorbus_device_changestate_response()
1308 chipset_dev->controlvm_payload_bytes_buffered -= ctx->param_bytes; in parser_done()
1321 allocbytes = (unsigned long)bytes + 1 + (sizeof(struct parser_context) - in parser_init_stream()
1323 if ((chipset_dev->controlvm_payload_bytes_buffered + bytes) > in parser_init_stream()
1333 ctx->allocbytes = allocbytes; in parser_init_stream()
1334 ctx->param_bytes = bytes; in parser_init_stream()
1338 memcpy(&ctx->data, mapping, bytes); in parser_init_stream()
1340 ctx->byte_stream = true; in parser_init_stream()
1341 chipset_dev->controlvm_payload_bytes_buffered += ctx->param_bytes; in parser_init_stream()
1350 * handle_command() - process a controlvm message
1355 * 0 - Successfully processed the message
1356 * -EAGAIN - ControlVM message was not processed and should be retried
1360 * < 0 - error: ControlVM message was processed but an error occurred.
1376 * within our OS-controlled memory. We need to know that, because it in handle_command()
1384 return -EAGAIN; in handle_command()
1387 err = visorchannel_signalinsert(chipset_dev->controlvm_channel, in handle_command()
1408 if (cmd->device_change_state.flags.phys_device) { in handle_command()
1438 err = -ENOMSG; in handle_command()
1441 -CONTROLVM_RESP_ID_UNKNOWN, NULL); in handle_command()
1452 * read_controlvm_event() - retreives the next message from the
1457 * Return: 0 if valid message was retrieved or -error
1461 int err = visorchannel_signalremove(chipset_dev->controlvm_channel, in read_controlvm_event()
1467 if (msg->hdr.flags.test_message == 1) in read_controlvm_event()
1468 return -EINVAL; in read_controlvm_event()
1473 * parahotplug_process_list() - remove any request from the list that's been on
1486 if (!time_after_eq(jiffies, req->expiration)) in parahotplug_process_list()
1489 if (req->msg.hdr.flags.response_expected) in parahotplug_process_list()
1491 &req->msg.hdr, in parahotplug_process_list()
1493 &req->msg.cmd.device_change_state.state); in parahotplug_process_list()
1507 err = visorchannel_signalremove(chipset_dev->controlvm_channel, in controlvm_periodic_work()
1511 if (err != -EAGAIN) in controlvm_periodic_work()
1513 if (chipset_dev->controlvm_pending_msg_valid) { in controlvm_periodic_work()
1518 inmsg = chipset_dev->controlvm_pending_msg; in controlvm_periodic_work()
1519 chipset_dev->controlvm_pending_msg_valid = false; in controlvm_periodic_work()
1525 chipset_dev->most_recent_message_jiffies = jiffies; in controlvm_periodic_work()
1528 (chipset_dev->controlvm_channel)); in controlvm_periodic_work()
1529 if (err == -EAGAIN) { in controlvm_periodic_work()
1530 chipset_dev->controlvm_pending_msg = inmsg; in controlvm_periodic_work()
1531 chipset_dev->controlvm_pending_msg_valid = true; in controlvm_periodic_work()
1546 if (time_after(jiffies, chipset_dev->most_recent_message_jiffies + in controlvm_periodic_work()
1552 if (chipset_dev->poll_jiffies != POLLJIFFIES_CONTROLVM_SLOW) in controlvm_periodic_work()
1553 chipset_dev->poll_jiffies = POLLJIFFIES_CONTROLVM_SLOW; in controlvm_periodic_work()
1555 if (chipset_dev->poll_jiffies != POLLJIFFIES_CONTROLVM_FAST) in controlvm_periodic_work()
1556 chipset_dev->poll_jiffies = POLLJIFFIES_CONTROLVM_FAST; in controlvm_periodic_work()
1558 schedule_delayed_work(&chipset_dev->periodic_controlvm_work, in controlvm_periodic_work()
1559 chipset_dev->poll_jiffies); in controlvm_periodic_work()
1564 int err = -ENOMEM; in visorchipset_init()
1573 acpi_device->driver_data = chipset_dev; in visorchipset_init()
1574 chipset_dev->acpi_device = acpi_device; in visorchipset_init()
1575 chipset_dev->poll_jiffies = POLLJIFFIES_CONTROLVM_FAST; in visorchipset_init()
1576 err = sysfs_create_groups(&chipset_dev->acpi_device->dev.kobj, in visorchipset_init()
1580 controlvm_channel = chipset_dev->controlvm_channel; in visorchipset_init()
1582 &chipset_dev->acpi_device->dev, in visorchipset_init()
1588 err = -ENODEV; in visorchipset_init()
1593 INIT_DELAYED_WORK(&chipset_dev->periodic_controlvm_work, in visorchipset_init()
1596 INIT_DELAYED_WORK(&chipset_dev->periodic_controlvm_work, in visorchipset_init()
1598 chipset_dev->most_recent_message_jiffies = jiffies; in visorchipset_init()
1599 chipset_dev->poll_jiffies = POLLJIFFIES_CONTROLVM_FAST; in visorchipset_init()
1600 schedule_delayed_work(&chipset_dev->periodic_controlvm_work, in visorchipset_init()
1601 chipset_dev->poll_jiffies); in visorchipset_init()
1608 cancel_delayed_work_sync(&chipset_dev->periodic_controlvm_work); in visorchipset_init()
1611 sysfs_remove_groups(&chipset_dev->acpi_device->dev.kobj, in visorchipset_init()
1615 visorchannel_destroy(chipset_dev->controlvm_channel); in visorchipset_init()
1621 dev_err(&acpi_device->dev, "failed with error %d\n", err); in visorchipset_init()
1628 cancel_delayed_work_sync(&chipset_dev->periodic_controlvm_work); in visorchipset_exit()
1629 sysfs_remove_groups(&chipset_dev->acpi_device->dev.kobj, in visorchipset_exit()
1631 visorchannel_destroy(chipset_dev->controlvm_channel); in visorchipset_exit()
1656 unsigned int eax, ebx, ecx, edx; in visorutil_spar_detect() local
1660 cpuid(UNISYS_VISOR_LEAF_ID, &eax, &ebx, &ecx, &edx); in visorutil_spar_detect()
1662 (ecx == UNISYS_VISOR_ID_ECX) && in visorutil_spar_detect()
1673 return -ENODEV; in init_unisys()
1676 return -ENODEV; in init_unisys()
1691 MODULE_DESCRIPTION("s-Par visorbus driver for virtual device buses");