static ssize_t rtl_set_state(struct sysdev_class *dev, struct sysdev_class_attribute *attr, const char *buf, size_t count) { ssize_t ret; if (count < 1 || count > 2) return -EINVAL; switch (buf[0]) { case '0': ret = ibm_rtl_write(0); break; case '1': ret = ibm_rtl_write(1); break; default: ret = -EINVAL; } if (ret >= 0) ret = count; return ret; }
static void __exit ibm_rtl_exit(void) { if (rtl_table) { RTL_DEBUG("cleaning up"); /* do not leave the machine in SMI-free mode */ ibm_rtl_write(0); /* unmap, unlink and remove all traces */ rtl_teardown_sysfs(); iounmap(ebda_map); rtl_port_unmap(rtl_cmd_addr); } }
static void __exit ibm_rtl_exit(void) { if (rtl_table) { RTL_DEBUG("cleaning up"); ibm_rtl_write(0); rtl_teardown_sysfs(); iounmap(ebda_map); rtl_port_unmap(rtl_cmd_addr); } }