Commit b4b74824 authored by Alessandro Rubini's avatar Alessandro Rubini

trivial: fmc-match: better messages

This reshaping of messages make a much better output for multi-mezzanine
carriers. For example we now have this of a 4-slot fmc-fakedev:

  fake-fmc-carrier: mezzanine 0
       Manufacturer: CERN
       Product name: FmcDelay1ns4cha
  fake-fmc-carrier: mezzanine 1
       Manufacturer: fake-vendor
       Product name: fake-design-for-testing
  fake-fmc-carrier: mezzanine 2
       Manufacturer: fake-vendor
       Product name: fake-design-for-testing
  fake-fmc-carrier: mezzanine 3
       EEPROM has no FRU information
Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
parent 142a19d3
......@@ -611,12 +611,15 @@ This example shows the defaults and a custom @sc{eeprom} image:
@smallexample
spusa.root# insmod fmc-fakedev.ko
[ 158.355436] fake-fmc: Manufacturer: fake-vendor
[ 158.360106] fake-fmc: Product name: fake-design-for-testing
[ 99.971247] fake-fmc-carrier: mezzanine 0
[ 99.975393] Manufacturer: fake-vendor
[ 99.979624] Product name: fake-design-for-testing
spusa.root# rmmod fmc-fakedev
spusa.root# insmod fmc-fakedev.ko eeprom=fdelay-eeprom.bin
[ 197.182682] fake-fmc: Manufacturer: CERN
[ 197.186764] fake-fmc: Product name: FmcDelay1ns4cha
[ 121.447464] fake-fmc-carrier: Mezzanine 0: eeprom "fdelay-eeprom.bin"
[ 121.462725] fake-fmc-carrier: mezzanine 0
[ 121.466858] Manufacturer: CERN
[ 121.470477] Product name: FmcDelay1ns4cha
spusa.root# rmmod fmc-fakedev
@end smallexample
......
......@@ -68,25 +68,27 @@ int fmc_fill_id_info(struct fmc_device *fmc)
if (!fmc->eeprom)
return 0;
dev_info(fmc->hwdev, "mezzanine %i\n", fmc->slot_id); /* header */
/* So we have the eeprom: parse the FRU part (if any) */
h = (void *)fmc->eeprom;
if (h->format != 1) {
dev_warn(fmc->hwdev, "EEPROM has no FRU information\n");
pr_info(" EEPROM has no FRU information\n");
goto out;
}
if (!fru_header_cksum_ok(h)) {
dev_warn(fmc->hwdev, "FRU: wrong header checksum\n");
pr_info(" FRU: wrong header checksum\n");
goto out;
}
bia = fru_get_board_area(h);
if (!fru_bia_cksum_ok(bia)) {
dev_warn(fmc->hwdev, "FRU: wrong board area checksum\n");
pr_info(" FRU: wrong board area checksum\n");
goto out;
}
fmc->id.manufacturer = fru_get_board_manufacturer(h);
fmc->id.product_name = fru_get_product_name(h);
dev_info(fmc->hwdev, "Manufacturer: %s\n", fmc->id.manufacturer);
dev_info(fmc->hwdev, "Product name: %s\n", fmc->id.product_name);
pr_info(" Manufacturer: %s\n", fmc->id.manufacturer);
pr_info(" Product name: %s\n", fmc->id.product_name);
/* Create the short name (FIXME: look in sdb as well) */
fmc->mezzanine_name = kstrdup(fmc->id.product_name, GFP_KERNEL);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment