Lines Matching defs:device
12 * PECI device can be removed using sysfs, but the removal can also happen as
14 * Mutex is used to protect PECI device from being double-deleted.
19 static int peci_get_revision(struct peci_device *device, u8 *revision)
24 req = peci_xfer_get_dib(device);
29 * PECI device may be in a state where it is unable to return a proper
47 static int peci_get_cpu_id(struct peci_device *device, u32 *cpu_id)
52 req = peci_xfer_pkg_cfg_readl(device, PECI_PCS_PKG_ID, PECI_PKG_ID_CPU_ID);
93 static int peci_device_info_init(struct peci_device *device)
99 ret = peci_get_cpu_id(device, &cpu_id);
103 device->info.family = peci_x86_cpu_family(cpu_id);
104 device->info.model = peci_x86_cpu_model(cpu_id);
106 ret = peci_get_revision(device, &revision);
109 device->info.peci_revision = revision;
111 device->info.socket_id = device->addr - PECI_BASE_ADDR;
120 * We expect correct Write FCS if the device at the target address
138 static int peci_dev_exists(struct device *dev, void *data)
140 struct peci_device *device = to_peci_device(dev);
143 if (device->addr == *addr)
151 struct peci_device *device;
157 /* Check if we have already detected this device before. */
174 device = kzalloc(sizeof(*device), GFP_KERNEL);
175 if (!device)
178 device_initialize(&device->dev);
180 device->addr = addr;
181 device->dev.parent = &controller->dev;
182 device->dev.bus = &peci_bus_type;
183 device->dev.type = &peci_device_type;
185 ret = peci_device_info_init(device);
189 ret = dev_set_name(&device->dev, "%d-%02x", controller->id, device->addr);
193 ret = device_add(&device->dev);
200 put_device(&device->dev);
205 void peci_device_destroy(struct peci_device *device)
208 if (!device->deleted) {
209 device_unregister(&device->dev);
210 device->deleted = true;
228 pr_err("peci: trying to register driver without device id table\n");
242 static void peci_device_release(struct device *dev)
244 struct peci_device *device = to_peci_device(dev);
246 kfree(device);