diff mbox series

[1/3] hw/i2c-ddc: Do not fail writes

Message ID 20180217140051.22731-1-linus.walleij@linaro.org
State Superseded
Headers show
Series [1/3] hw/i2c-ddc: Do not fail writes | expand

Commit Message

Linus Walleij Feb. 17, 2018, 2 p.m. UTC
The tx function of the DDC I2C slave emulation was returning 1
on all writes resulting in NACK in the I2C bus. Changing it to
0 makes the DDC I2C work fine with bit-banged I2C such as the
versatile I2C.

I guess it was not affecting whatever I2C controller this was
used with until now, but with the Versatile I2C it surely
does not work.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

---
 hw/i2c/i2c-ddc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

-- 
2.14.3

Comments

Peter Maydell Feb. 22, 2018, 2:36 p.m. UTC | #1
On 17 February 2018 at 14:00, Linus Walleij <linus.walleij@linaro.org> wrote:
> The tx function of the DDC I2C slave emulation was returning 1

> on all writes resulting in NACK in the I2C bus. Changing it to

> 0 makes the DDC I2C work fine with bit-banged I2C such as the

> versatile I2C.

>

> I guess it was not affecting whatever I2C controller this was

> used with until now, but with the Versatile I2C it surely

> does not work.

>

> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

> ---

>  hw/i2c/i2c-ddc.c | 4 ++--

>  1 file changed, 2 insertions(+), 2 deletions(-)

>

> diff --git a/hw/i2c/i2c-ddc.c b/hw/i2c/i2c-ddc.c

> index 199dac9e41c1..bec0c91e2dd0 100644

> --- a/hw/i2c/i2c-ddc.c

> +++ b/hw/i2c/i2c-ddc.c

> @@ -259,12 +259,12 @@ static int i2c_ddc_tx(I2CSlave *i2c, uint8_t data)

>          s->reg = data;

>          s->firstbyte = false;

>          DPRINTF("[EDID] Written new pointer: %u\n", data);

> -        return 1;

> +        return 0;

>      }

>

>      /* Ignore all writes */

>      s->reg++;

> -    return 1;

> +    return 0;

>  }

>

>  static void i2c_ddc_init(Object *obj)

> --

> 2.14.3


Reviewed-by: Peter Maydell <peter.maydell@linaro.org>


Does the guest attempting writes mean that we're missing functionality
that the hardware has? Is it interesting?

PS: I didn't see a cover letter email with this patchset --
if you can send a cover letter with multi-email patchsets that makes
our automated tooling much happier.

thanks
-- PMM
diff mbox series

Patch

diff --git a/hw/i2c/i2c-ddc.c b/hw/i2c/i2c-ddc.c
index 199dac9e41c1..bec0c91e2dd0 100644
--- a/hw/i2c/i2c-ddc.c
+++ b/hw/i2c/i2c-ddc.c
@@ -259,12 +259,12 @@  static int i2c_ddc_tx(I2CSlave *i2c, uint8_t data)
         s->reg = data;
         s->firstbyte = false;
         DPRINTF("[EDID] Written new pointer: %u\n", data);
-        return 1;
+        return 0;
     }
 
     /* Ignore all writes */
     s->reg++;
-    return 1;
+    return 0;
 }
 
 static void i2c_ddc_init(Object *obj)