From patchwork Thu May 13 18:43:10 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mauro Carvalho Chehab X-Patchwork-Id: 99374 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter.kernel.org (8.14.3/8.14.3) with ESMTP id o4DIhcVA010232 for ; Thu, 13 May 2010 18:43:38 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759324Ab0EMSnV (ORCPT ); Thu, 13 May 2010 14:43:21 -0400 Received: from mx1.redhat.com ([209.132.183.28]:15081 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759315Ab0EMSnT (ORCPT ); Thu, 13 May 2010 14:43:19 -0400 Received: from int-mx04.intmail.prod.int.phx2.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.17]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o4DIhE9r029541 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 13 May 2010 14:43:14 -0400 Received: from [10.11.10.112] (vpn-10-112.rdu.redhat.com [10.11.10.112]) by int-mx04.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o4DIhBg3014094 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 13 May 2010 14:43:13 -0400 Message-ID: <4BEC483E.2010006@redhat.com> Date: Thu, 13 May 2010 15:43:10 -0300 From: Mauro Carvalho Chehab User-Agent: Thunderbird 2.0.0.22 (X11/20090609) MIME-Version: 1.0 To: Douglas Landgraf CC: Linux Media Mailing List Subject: [PATCH -hg] Build fix for mercurial tree X-Scanned-By: MIMEDefang 2.67 on 10.5.11.17 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter.kernel.org [140.211.167.41]); Thu, 13 May 2010 18:43:39 +0000 (UTC) diff --git a/linux/drivers/media/IR/ir-core-priv.h b/linux/drivers/media/IR/ir-core-priv.h --- a/linux/drivers/media/IR/ir-core-priv.h +++ b/linux/drivers/media/IR/ir-core-priv.h @@ -28,7 +28,11 @@ struct ir_raw_handler { struct ir_raw_event_ctrl { struct work_struct rx_work; /* for the rx decoding workqueue */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) + struct kfifo *kfifo; /* fifo for the pulse/space durations */ +#else struct kfifo kfifo; /* fifo for the pulse/space durations */ +#endif ktime_t last_event; /* when last event occurred */ enum raw_event_type last_type; /* last event type */ struct input_dev *input_dev; /* pointer to the parent input_dev */ diff --git a/linux/drivers/media/IR/ir-raw-event.c b/linux/drivers/media/IR/ir-raw-event.c --- a/linux/drivers/media/IR/ir-raw-event.c +++ b/linux/drivers/media/IR/ir-raw-event.c @@ -61,8 +61,13 @@ static void ir_raw_event_work(struct wor struct ir_raw_event_ctrl *raw = container_of(work, struct ir_raw_event_ctrl, rx_work); +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) + while (kfifo_get(raw->kfifo, (void *)&ev, sizeof(ev)) == sizeof(ev)) + RUN_DECODER(decode, raw->input_dev, ev); +#else while (kfifo_out(&raw->kfifo, &ev, sizeof(ev)) == sizeof(ev)) RUN_DECODER(decode, raw->input_dev, ev); +#endif } int ir_raw_event_register(struct input_dev *input_dev) @@ -77,8 +82,15 @@ int ir_raw_event_register(struct input_d ir->raw->input_dev = input_dev; INIT_WORK(&ir->raw->rx_work, ir_raw_event_work); +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) + ir->raw->kfifo = kfifo_alloc(sizeof(s64) * MAX_IR_EVENT_SIZE, + GFP_KERNEL, NULL); + if (ir->raw->kfifo == NULL) + rc = -ENOMEM; +#else rc = kfifo_alloc(&ir->raw->kfifo, sizeof(s64) * MAX_IR_EVENT_SIZE, GFP_KERNEL); +#endif if (rc < 0) { kfree(ir->raw); ir->raw = NULL; @@ -87,7 +99,11 @@ int ir_raw_event_register(struct input_d rc = RUN_DECODER(raw_register, input_dev); if (rc < 0) { +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) + kfifo_free(ir->raw->kfifo); +#else kfifo_free(&ir->raw->kfifo); +#endif kfree(ir->raw); ir->raw = NULL; return rc; @@ -106,7 +122,11 @@ void ir_raw_event_unregister(struct inpu cancel_work_sync(&ir->raw->rx_work); RUN_DECODER(raw_unregister, input_dev); +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) + kfifo_free(ir->raw->kfifo); +#else kfifo_free(&ir->raw->kfifo); +#endif kfree(ir->raw); ir->raw = NULL; } @@ -128,8 +148,13 @@ int ir_raw_event_store(struct input_dev if (!ir->raw) return -EINVAL; +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) + if (kfifo_put(ir->raw->kfifo, (void *)ev, sizeof(*ev)) != sizeof(*ev)) + return -ENOMEM; +#else if (kfifo_in(&ir->raw->kfifo, ev, sizeof(*ev)) != sizeof(*ev)) return -ENOMEM; +#endif return 0; }