From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jarod Wilson Subject: Re: [PATCH v3 1/1] rc: Add support for GPIO based IR Receiver driver. Date: Mon, 23 Apr 2012 16:11:31 -0400 Message-ID: <20120423201131.GG31244@redhat.com> References: <1330408300-21939-1-git-send-email-kumarrav@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from mx1.redhat.com ([209.132.183.28]:37457 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754093Ab2DWUL7 (ORCPT ); Mon, 23 Apr 2012 16:11:59 -0400 Content-Disposition: inline In-Reply-To: <1330408300-21939-1-git-send-email-kumarrav@codeaurora.org> Sender: linux-arm-msm-owner@vger.kernel.org List-Id: linux-arm-msm@vger.kernel.org To: Ravi Kumar V Cc: Mauro Carvalho Chehab , Anssi Hannula , "Juan J. Garcia de Soria" , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, tsoni@codeaurora.org, davidb@codeaurora.org, bryanh@codeaurora.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org On Tue, Feb 28, 2012 at 11:21:40AM +0530, Ravi Kumar V wrote: > Adds GPIO based IR Receiver driver. It decodes signals using decoders > available in rc framework. Been meaning to look at this, but it looks like its already merged upstream. Just one question though, inlined below. > --- /dev/null > +++ b/drivers/media/rc/gpio-ir-recv.c > @@ -0,0 +1,205 @@ > +/* Copyright (c) 2012, Code Aurora Forum. All rights reserved. > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License version 2 and > + * only version 2 as published by the Free Software Foundation. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + */ > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +#define GPIO_IR_DRIVER_NAME "gpio-rc-recv" > +#define GPIO_IR_DEVICE_NAME "gpio_ir_recv" > + > +struct gpio_rc_dev { > + struct rc_dev *rcdev; > + unsigned int gpio_nr; > + bool active_low; > +}; > + > +static irqreturn_t gpio_ir_recv_irq(int irq, void *dev_id) > +{ > + struct gpio_rc_dev *gpio_dev = dev_id; > + unsigned int gval; > + int rc = 0; > + enum raw_event_type type = IR_SPACE; > + > + gval = gpio_get_value_cansleep(gpio_dev->gpio_nr); > + > + if (gval < 0) > + goto err_get_value; > + > + if (gpio_dev->active_low) > + gval = !gval; > + > + if (gval == 1) > + type = IR_PULSE; What happens if gval is > 1? > + rc = ir_raw_event_store_edge(gpio_dev->rcdev, type); > + if (rc < 0) > + goto err_get_value; > + > + ir_raw_event_handle(gpio_dev->rcdev); > + > +err_get_value: > + return IRQ_HANDLED; > +} Looks like you'll store a space any time you get gval > 1, which may or may not be intended here... -- Jarod Wilson jarod@redhat.com