static int readspd (int iobase, int SmbusSlaveAddress, char *buffer, int count) { int index, error; printk(BIOS_SPEW, "-------------READING SPD-----------\n"); printk(BIOS_SPEW, "iobase: 0x%08X, SmbusSlave: 0x%08X, count: %d\n", iobase, SmbusSlaveAddress, count); /* read the first byte using offset zero */ error = readSmbusByteData (iobase, SmbusSlaveAddress, buffer, 0); if (error) { printk(BIOS_ERR, "-------------SPD READ ERROR-----------\n"); return error; } /* read the remaining bytes using auto-increment for speed */ for (index = 1; index < count; index++) { error = readSmbusByte (iobase, SmbusSlaveAddress, &buffer [index]); if (error) { printk(BIOS_ERR, "-------------SPD READ ERROR-----------\n"); return error; } } printk(BIOS_SPEW, "\n"); printk(BIOS_SPEW, "-------------FINISHED READING SPD-----------\n"); return 0; }
static int readspd (int iobase, int SmbusSlaveAddress, char *buffer, int count) { int index, error; /* read the first byte using offset zero */ error = readSmbusByteData (iobase, SmbusSlaveAddress, buffer, 0); if (error) return error; /* read the remaining bytes using auto-increment for speed */ for (index = 1; index < count; index++) { error = readSmbusByte (iobase, SmbusSlaveAddress, &buffer [index]); if (error) return error; } return 0; }