Lines Matching refs:pi
90 static void pvpanic_synchronize_sys_off_handler(struct device *dev, struct pvpanic_instance *pi)
100 if (!(pi->events & PVPANIC_SHUTDOWN) == !pi->sys_off)
103 if (!pi->sys_off) {
109 pi->sys_off = sys_off;
111 unregister_sys_off_handler(pi->sys_off);
112 pi->sys_off = NULL;
119 struct pvpanic_instance *pi = param;
123 if (pi_cur == pi) {
130 unregister_sys_off_handler(pi->sys_off);
135 struct pvpanic_instance *pi = dev_get_drvdata(dev);
137 return sysfs_emit(buf, "%x\n", pi->capability);
143 struct pvpanic_instance *pi = dev_get_drvdata(dev);
145 return sysfs_emit(buf, "%x\n", pi->events);
151 struct pvpanic_instance *pi = dev_get_drvdata(dev);
159 if ((tmp & pi->capability) != tmp)
162 pi->events = tmp;
163 pvpanic_synchronize_sys_off_handler(dev, pi);
187 struct pvpanic_instance *pi;
192 pi = devm_kmalloc(dev, sizeof(*pi), GFP_KERNEL);
193 if (!pi)
196 pi->base = base;
197 pi->capability = PVPANIC_PANICKED | PVPANIC_CRASH_LOADED | PVPANIC_SHUTDOWN;
200 pi->capability &= ioread8(base);
201 pi->events = pi->capability;
203 pi->sys_off = NULL;
204 pvpanic_synchronize_sys_off_handler(dev, pi);
207 list_add(&pi->list, &pvpanic_list);
210 dev_set_drvdata(dev, pi);
212 return devm_add_action_or_reset(dev, pvpanic_remove, pi);