qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 10/12] i2c: Add a size constant for the smbus


From: Philippe Mathieu-Daudé
Subject: Re: [Qemu-devel] [PATCH v2 10/12] i2c: Add a size constant for the smbus_eeprom size
Date: Thu, 15 Nov 2018 23:34:10 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.0

On 15/11/18 20:24, address@hidden wrote:
From: Corey Minyard <address@hidden>

It was hard-coded to 256 in a number of places, create a constant
for that.

Signed-off-by: Corey Minyard <address@hidden>
---
  hw/i2c/smbus_eeprom.c | 10 +++++++---
  1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/hw/i2c/smbus_eeprom.c b/hw/i2c/smbus_eeprom.c
index 8d4eed129f..8e9b734c09 100644
--- a/hw/i2c/smbus_eeprom.c
+++ b/hw/i2c/smbus_eeprom.c
@@ -35,6 +35,8 @@
  #define SMBUS_EEPROM(obj) \
      OBJECT_CHECK(SMBusEEPROMDevice, (obj), TYPE_SMBUS_EEPROM)
+#define SMBUS_EEPROM_SIZE 256
+
  typedef struct SMBusEEPROMDevice {
      SMBusDevice smbusdev;
      void *data;
@@ -70,7 +72,7 @@ static int eeprom_write_data(SMBusDevice *dev, uint8_t *buf, 
uint8_t len)
for (; len > 0; len--) {
          data[eeprom->offset] = *buf++;
-        eeprom->offset = (eeprom->offset + 1) % 256;
+        eeprom->offset = (eeprom->offset + 1) % SMBUS_EEPROM_SIZE;
      }
return 0;
@@ -129,12 +131,14 @@ void smbus_eeprom_init(I2CBus *smbus, int nb_eeprom,
                         const uint8_t *eeprom_spd, int eeprom_spd_size)
  {
      int i;
-    uint8_t *eeprom_buf = g_malloc0(8 * 256); /* XXX: make this persistent */
+     /* XXX: make this persistent */
+    uint8_t *eeprom_buf = g_malloc0(8 * SMBUS_EEPROM_SIZE);

Ideally this requires a previous patch replacing 8 -> nb_eeprom, fixing a long standing bug.

Reviewed-by: Philippe Mathieu-Daudé <address@hidden>

      if (eeprom_spd_size > 0) {
          memcpy(eeprom_buf, eeprom_spd, eeprom_spd_size);
      }
for (i = 0; i < nb_eeprom; i++) {
-        smbus_eeprom_init_one(smbus, 0x50 + i, eeprom_buf + (i * 256));
+        smbus_eeprom_init_one(smbus, 0x50 + i,
+                              eeprom_buf + (i * SMBUS_EEPROM_SIZE));
      }
  }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]