Lines Matching +full:no +full:- +full:eeprom
13 #include <linux/ipmi-fru.h>
29 /* This currently only matches the EEPROM (FRU id) */ in fmc_match()
30 fid = fdrv->id_table.fru_id; in fmc_match()
32 dev_warn(&fdev->dev, "Driver has no ID: matches all\n"); in fmc_match()
35 if (!fdev->id.manufacturer || !fdev->id.product_name) in fmc_match()
36 return 0; /* the device has no FRU information */ in fmc_match()
37 for (i = 0; i < fdrv->id_table.fru_id_nr; i++, fid++) { in fmc_match()
38 if (fid->manufacturer && in fmc_match()
39 strcmp(fid->manufacturer, fdev->id.manufacturer)) in fmc_match()
41 if (fid->product_name && in fmc_match()
42 strcmp(fid->product_name, fdev->id.product_name)) in fmc_match()
60 /* If we know the eeprom length, try to read it off the device */ in fmc_fill_id_info()
61 if (fmc->eeprom_len && !fmc->eeprom) { in fmc_fill_id_info()
62 fmc->eeprom = kzalloc(fmc->eeprom_len, GFP_KERNEL); in fmc_fill_id_info()
63 if (!fmc->eeprom) in fmc_fill_id_info()
64 return -ENOMEM; in fmc_fill_id_info()
66 ret = fmc_read_ee(fmc, 0, fmc->eeprom, fmc->eeprom_len); in fmc_fill_id_info()
71 /* If no eeprom, continue with other matches */ in fmc_fill_id_info()
72 if (!fmc->eeprom) in fmc_fill_id_info()
75 dev_info(fmc->hwdev, "mezzanine %i\n", fmc->slot_id); /* header */ in fmc_fill_id_info()
77 /* So we have the eeprom: parse the FRU part (if any) */ in fmc_fill_id_info()
78 h = (void *)fmc->eeprom; in fmc_fill_id_info()
79 if (h->format != 1) { in fmc_fill_id_info()
80 pr_info(" EEPROM has no FRU information\n"); in fmc_fill_id_info()
92 fmc->id.manufacturer = fru_get_board_manufacturer(h); in fmc_fill_id_info()
93 fmc->id.product_name = fru_get_product_name(h); in fmc_fill_id_info()
94 pr_info(" Manufacturer: %s\n", fmc->id.manufacturer); in fmc_fill_id_info()
95 pr_info(" Product name: %s\n", fmc->id.product_name); in fmc_fill_id_info()
98 fmc->mezzanine_name = kstrdup(fmc->id.product_name, GFP_KERNEL); in fmc_fill_id_info()
102 kfree(fmc->eeprom); in fmc_fill_id_info()
103 fmc->eeprom = NULL; in fmc_fill_id_info()
105 return 0; /* no error: let other identification work */ in fmc_fill_id_info()
111 kfree(fmc->mezzanine_name); in fmc_free_id_info()
112 kfree(fmc->id.manufacturer); in fmc_free_id_info()
113 kfree(fmc->id.product_name); in fmc_free_id_info()