From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:40008) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qmo5z-0006NH-Sz for qemu-devel@nongnu.org; Fri, 29 Jul 2011 10:31:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qmo5y-0005QV-QH for qemu-devel@nongnu.org; Fri, 29 Jul 2011 10:31:23 -0400 Received: from mail-yx0-f173.google.com ([209.85.213.173]:41240) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qmo5y-0005QR-MX for qemu-devel@nongnu.org; Fri, 29 Jul 2011 10:31:22 -0400 Received: by yxt3 with SMTP id 3so2799476yxt.4 for ; Fri, 29 Jul 2011 07:31:22 -0700 (PDT) Message-ID: <4E32C437.60300@codemonkey.ws> Date: Fri, 29 Jul 2011 09:31:19 -0500 From: Anthony Liguori MIME-Version: 1.0 References: <1311864472-26886-1-git-send-email-peter.maydell@linaro.org> In-Reply-To: <1311864472-26886-1-git-send-email-peter.maydell@linaro.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] lm832x: Take DeviceState pointer in lm832x_key_event() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: qemu-devel@nongnu.org, patches@linaro.org On 07/28/2011 09:47 AM, Peter Maydell wrote: > Since lm832x has been qdev'ified, its users will generally > have a DeviceState pointer rather than an i2c_slave pointer, > so adjust lm832x_key_event's prototype to suit. > > This allows the n810 (its only user) to actually pass a correct > pointer to it rather than NULL. The effect is that we no longer > segfault when a key is pressed. > > Signed-off-by: Peter Maydell > --- > NB: this patch depends on the OMAP GPIO v2 patchset. Could you put together a pull request for these devices? Regards, Anthony Liguori > > hw/i2c.h | 2 +- > hw/lm832x.c | 4 ++-- > hw/nseries.c | 7 +++---- > 3 files changed, 6 insertions(+), 7 deletions(-) > > diff --git a/hw/i2c.h b/hw/i2c.h > index 5514402..9381d01 100644 > --- a/hw/i2c.h > +++ b/hw/i2c.h > @@ -72,6 +72,6 @@ void wm8750_set_bclk_in(void *opaque, int new_hz); > void tmp105_set(i2c_slave *i2c, int temp); > > /* lm832x.c */ > -void lm832x_key_event(i2c_slave *i2c, int key, int state); > +void lm832x_key_event(DeviceState *dev, int key, int state); > > #endif > diff --git a/hw/lm832x.c b/hw/lm832x.c > index 590a4cc..992ce49 100644 > --- a/hw/lm832x.c > +++ b/hw/lm832x.c > @@ -474,9 +474,9 @@ static int lm8323_init(i2c_slave *i2c) > return 0; > } > > -void lm832x_key_event(struct i2c_slave *i2c, int key, int state) > +void lm832x_key_event(DeviceState *dev, int key, int state) > { > - LM823KbdState *s = (LM823KbdState *) i2c; > + LM823KbdState *s = FROM_I2C_SLAVE(LM823KbdState, I2C_SLAVE_FROM_QDEV(dev)); > > if ((s->status& INT_ERROR)&& (s->error& ERR_FIFOOVR)) > return; > diff --git a/hw/nseries.c b/hw/nseries.c > index 32f2f53..45b52bb 100644 > --- a/hw/nseries.c > +++ b/hw/nseries.c > @@ -45,7 +45,7 @@ struct n800_s { > i2c_bus *i2c; > > int keymap[0x80]; > - i2c_slave *kbd; > + DeviceState *kbd; > > TUSBState *usb; > void *retu; > @@ -362,7 +362,6 @@ static int n810_keys[0x80] = { > static void n810_kbd_setup(struct n800_s *s) > { > qemu_irq kbd_irq = qdev_get_gpio_in(s->cpu->gpio, N810_KEYBOARD_GPIO); > - DeviceState *dev; > int i; > > for (i = 0; i< 0x80; i ++) > @@ -375,8 +374,8 @@ static void n810_kbd_setup(struct n800_s *s) > > /* Attach the LM8322 keyboard to the I2C bus, > * should happen in n8x0_i2c_setup and s->kbd be initialised here. */ > - dev = i2c_create_slave(s->i2c, "lm8323", N810_LM8323_ADDR); > - qdev_connect_gpio_out(dev, 0, kbd_irq); > + s->kbd = i2c_create_slave(s->i2c, "lm8323", N810_LM8323_ADDR); > + qdev_connect_gpio_out(s->kbd, 0, kbd_irq); > } > > /* LCD MIPI DBI-C controller (URAL) */