Lines Matching refs:fmc
72 struct fmc_device *fmc = container_of(dev, struct fmc_device, dev); in fmc_release() local
74 kfree(fmc); in fmc_release()
86 struct fmc_device *fmc; in fmc_read_eeprom() local
90 fmc = container_of(dev, struct fmc_device, dev); in fmc_read_eeprom()
91 eelen = fmc->eeprom_len; in fmc_read_eeprom()
98 memcpy(buf, fmc->eeprom + off, count); in fmc_read_eeprom()
107 struct fmc_device *fmc; in fmc_write_eeprom() local
110 fmc = container_of(dev, struct fmc_device, dev); in fmc_write_eeprom()
111 return fmc->op->write_ee(fmc, off, buf, count); in fmc_write_eeprom()
146 struct fmc_device *fmc, **devarray; in fmc_device_register_n() local
163 fmc = devarray[i]; in fmc_device_register_n()
164 if (!fmc->hwdev) { in fmc_device_register_n()
170 if (fmc->flags & FMC_DEVICE_NO_MEZZANINE) { in fmc_device_register_n()
171 dev_info(fmc->hwdev, "absent mezzanine in slot %d\n", in fmc_device_register_n()
172 fmc->slot_id); in fmc_device_register_n()
175 if (!fmc->eeprom) { in fmc_device_register_n()
176 dev_err(fmc->hwdev, "no eeprom provided for slot %i\n", in fmc_device_register_n()
177 fmc->slot_id); in fmc_device_register_n()
180 if (!fmc->eeprom_addr) { in fmc_device_register_n()
181 dev_err(fmc->hwdev, "no eeprom_addr for slot %i\n", in fmc_device_register_n()
182 fmc->slot_id); in fmc_device_register_n()
185 if (!fmc->carrier_name || !fmc->carrier_data || in fmc_device_register_n()
186 !fmc->device_id) { in fmc_device_register_n()
187 dev_err(fmc->hwdev, in fmc_device_register_n()
203 fmc = devarray[i]; in fmc_device_register_n()
205 fmc->nr_slots = n; /* each slot must know how many are there */ in fmc_device_register_n()
206 fmc->devarray = devarray; in fmc_device_register_n()
208 device_initialize(&fmc->dev); in fmc_device_register_n()
209 fmc->dev.release = fmc_release; in fmc_device_register_n()
210 fmc->dev.parent = fmc->hwdev; in fmc_device_register_n()
213 fmc_fill_id_info(fmc); in fmc_device_register_n()
215 fmc->dev.bus = &fmc_bus_type; in fmc_device_register_n()
218 device_id = fmc->device_id; in fmc_device_register_n()
219 if (!fmc->mezzanine_name) in fmc_device_register_n()
220 dev_set_name(&fmc->dev, "fmc-%04x", device_id); in fmc_device_register_n()
222 dev_set_name(&fmc->dev, "%s-%04x", fmc->mezzanine_name, in fmc_device_register_n()
224 ret = device_add(&fmc->dev); in fmc_device_register_n()
226 dev_err(fmc->hwdev, "Slot %i: Failed in registering " in fmc_device_register_n()
227 "\"%s\"\n", fmc->slot_id, fmc->dev.kobj.name); in fmc_device_register_n()
230 ret = sysfs_create_bin_file(&fmc->dev.kobj, &fmc_eeprom_attr); in fmc_device_register_n()
232 dev_err(&fmc->dev, "Failed in registering eeprom\n"); in fmc_device_register_n()
236 fmc_dump_eeprom(fmc); in fmc_device_register_n()
237 fmc_dump_sdb(fmc); in fmc_device_register_n()
242 device_del(&fmc->dev); in fmc_device_register_n()
244 fmc_free_id_info(fmc); in fmc_device_register_n()
245 put_device(&fmc->dev); in fmc_device_register_n()
259 int fmc_device_register(struct fmc_device *fmc) in fmc_device_register() argument
261 return fmc_device_register_n(&fmc, 1); in fmc_device_register()
284 void fmc_device_unregister(struct fmc_device *fmc) in fmc_device_unregister() argument
286 fmc_device_unregister_n(&fmc, 1); in fmc_device_unregister()