Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754352AbZLHL7N (ORCPT ); Tue, 8 Dec 2009 06:59:13 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754307AbZLHL7L (ORCPT ); Tue, 8 Dec 2009 06:59:11 -0500 Received: from mx1.redhat.com ([209.132.183.28]:14081 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754148AbZLHL7J (ORCPT ); Tue, 8 Dec 2009 06:59:09 -0500 Message-ID: <4B1E3F7D.9070806@redhat.com> Date: Tue, 08 Dec 2009 09:58:53 -0200 From: Mauro Carvalho Chehab User-Agent: Thunderbird 2.0.0.22 (X11/20090609) MIME-Version: 1.0 To: Dmitry Torokhov CC: Jon Smirl , Krzysztof Halasa , hermann pitton , Christoph Bartelmus , awalls@radix.net, j@jannau.net, jarod@redhat.com, jarod@wilsonet.com, kraxel@redhat.com, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, superm1@ubuntu.com Subject: Re: [RFC] What are the goals for the architecture of an in-kernel IR system? References: <9e4733910912041628g5bedc9d2jbee3b0861aeb5511@mail.gmail.com> <1260070593.3236.6.camel@pc07.localdom.local> <20091206065512.GA14651@core.coreip.homeip.net> <4B1B99A5.2080903@redhat.com> <9e4733910912060952h4aad49dake8e8486acb6566bc@mail.gmail.com> <9e4733910912061323x22c618ccyf6edcee5b021cbe3@mail.gmail.com> <4B1D934E.7030103@redhat.com> <20091208042340.GC11147@core.coreip.homeip.net> In-Reply-To: <20091208042340.GC11147@core.coreip.homeip.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3019 Lines: 81 Dmitry Torokhov wrote: > On Mon, Dec 07, 2009 at 09:44:14PM -0200, Mauro Carvalho Chehab wrote: >>> What about capabilities of the receiver, what frequencies? >>> If a receiver has multiple frequencies, how do you report what >>> frequency the data came in on? >> IMO, via sysfs. > > We probably need to think what exactly we report through sysfs siunce it > is ABI of sorts. Yes, sure. Probably, the exact needs will popup only when we start to actually writing that part of the core. My intention for now is to just create a /sys/class/irrcv, with one node per each IR receiver and adding a protocol enumeration/selection node there, and add some capabilities for the in-kernel decoders and lirc_dev to create new nodes under that class. When the decoders/lirc_dev patches popup, we'll need to review those sysfs API's. >>> What about multiple apps simultaneously using the pulse data? >> IMO, the better is to limit the raw interface to just one open. >> > > Why woudl we want to do this? Quite often there is a need for "observer" > that maybe does not act on data but allows capturing it. Single-user > inetrfaces are PITA. That should work fine as well, but I'm not sure how we'll detect overrun with several kfifo readers. >>> How big is the receive queue? >> It should be big enough to receive at least one keycode event. Considering that >> the driver will use kfifo (IMO, it is a good strategy, especially since you >> won't need any lock if just one open is allowed), it will require a power of two size. >> > > Would not it be wither driver- or protocol-specific? Probably. > >>> How does access work, root only or any user? >> IMO, it should be the same requirement as used by an input interface. >> >>> How are capabilities exposed, sysfs, etc? >> IMO, sysfs. >> >>> What is the interface for attaching an in-kernel decoder? >> IMO, it should use the kfifo for it. However, if we allow both raw data and >> in-kernel decoders to read data there, we'll need a spinlock to protect the >> kfifo. >> > > I think Jon meant userspace interface for attaching particular decoder. I don't think we need an userspace interface for the in-kernel decoders. All it needs is to enable/disable the protocol decoders, imo via sysfs interface. >>> If there is an in-kernel decoder should the pulse data stop being >>> reported, partially stopped, something else? >> I don't have a strong opinion here, but, from the previous discussions, it >> seems that people want it to be double-reported by default. If so, I think >> we need to implement a command at the raw interface to allow disabling the >> in-kernel decoder, while the raw interface is kept open. > > Why don't you simply let consumers decide where they will get their data? How? Cheers, Mauro. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/