diff mbox series

[v2,10/12] i2c: Add a size constant for the smbus_eeprom size

Message ID 20181115192446.17187-11-minyard@acm.org
State Superseded
Headers show
Series [v2,01/12] i2c: Split smbus into parts | expand

Commit Message

Corey Minyard Nov. 15, 2018, 7:24 p.m. UTC
From: Corey Minyard <cminyard@mvista.com>


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

Signed-off-by: Corey Minyard <cminyard@mvista.com>

---
 hw/i2c/smbus_eeprom.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

-- 
2.17.1

Comments

Philippe Mathieu-Daudé Nov. 15, 2018, 10:34 p.m. UTC | #1
On 15/11/18 20:24, minyard@acm.org wrote:
> From: Corey Minyard <cminyard@mvista.com>

> 

> It was hard-coded to 256 in a number of places, create a constant

> for that.

> 

> Signed-off-by: Corey Minyard <cminyard@mvista.com>

> ---

>   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é <philmd@redhat.com>


>       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));

>       }

>   }

>
diff mbox series

Patch

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);
     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));
     }
 }