Received: by 10.192.165.148 with SMTP id m20csp434331imm; Wed, 25 Apr 2018 01:49:54 -0700 (PDT) X-Google-Smtp-Source: AB8JxZol7vg/nbcGY6MPHZZT2KAZo+7RTMOnn2/lZEqwsYKkzIvldM6KsFzK6vz7LgZTLno0DkHS X-Received: by 10.99.140.13 with SMTP id m13mr3234951pgd.90.1524646194695; Wed, 25 Apr 2018 01:49:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524646194; cv=none; d=google.com; s=arc-20160816; b=CT6mDDNxqsLzsR89vhQL3/k/lPjUFhjiMRQkfGIsr1JDBOTz4sm2nvQkJNHXOn8wFy TWxlQN6Ip/+PljM2FvA+7ZZYFFGtIG0XsYjfimPoMKfoFPcH2jqbj1FGad+w0DMjitP5 5u6wTbO+6SgZQ2qfLi8hlfXux4w+Aed+NXZbKOEM3dMkneQHGbr9jIdy0Rzj4Ifb0LVb DsII5agUd6Cy3P6Aa63tehvw+pqBA4AHiMfCeY2nsKkLkIkAA4D/BAK8Tl581kvzz4VL RZX3BUrvuxNbjBHKi0V18OnPuePW6801slZLudENHvgZ9BENdWjrP1ng2CMFeRqcGG67 /f7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:arc-authentication-results; bh=ZwZwdDnFTztVIJlnriEJmjbaJW9fnuTA8xpaFv+Lgcg=; b=UDTfK30WwghVy4E+wVoyDaIxggjQVHuZ0G2jxbHQCIkI3fRFGfnLHehHtthA+5/PwU Uf4qfkpoDDtbRel6aEZn/y4yx9a8BGTlyLeZ3ihCmfWcH4HYMDZJGpAffscaqPG7TDR3 7ZRii3pJQVZoxCn3pAyEcfIa2b4PqPyCZBJNm6yG5KHaoCR8UbMkp0/DmuV6LRrCwI1A GAFhUil9/YYoLoOlv4XzDR4BimdMxj5SxjscRh9HSbbNMhE9E0E/J9uETsKlhGrrI9Em W3IU1Uf9w1Xv091F90H4uUuXlFxOmRSKYRJ4gnctifDLgeq8jzbyavjUavzMTjEvnDFf kPNw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e71si9491523pfj.250.2018.04.25.01.49.40; Wed, 25 Apr 2018 01:49:54 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751261AbeDYIsd (ORCPT + 99 others); Wed, 25 Apr 2018 04:48:33 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:40702 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750882AbeDYIs2 (ORCPT ); Wed, 25 Apr 2018 04:48:28 -0400 Received: from localhost (unknown [37.168.186.153]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 7B65A2C; Wed, 25 Apr 2018 08:48:27 +0000 (UTC) Date: Wed, 25 Apr 2018 10:48:19 +0200 From: Greg Kroah-Hartman To: Johan Hovold Cc: Rob Herring , Mark Rutland , Andreas Kemnade , Arnd Bergmann , "H . Nikolaus Schaller" , Pavel Machek , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: Re: [PATCH 0/7] gnss: add new GNSS subsystem Message-ID: <20180425084819.GA13295@kroah.com> References: <20180424163458.11947-1-johan@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180424163458.11947-1-johan@kernel.org> User-Agent: Mutt/1.9.5 (2018-04-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Apr 24, 2018 at 06:34:51PM +0200, Johan Hovold wrote: > This series adds a new subsystem for GNSS receivers (e.g. GPS > receivers). YEAH!!!! Thanks so much for doing this, great work! > While GNSS receivers are typically accessed using a UART interface they > often also support other I/O interfaces such as I2C, SPI and USB, while > yet other devices use iomem or even some form of remote-processor > messaging (rpmsg). > > The new GNSS subsystem abstracts the underlying interface and provides a > new "gnss" class type, which exposes a character-device interface (e.g. > /dev/gnss0) to user space. This allows GNSS receivers to have a > representation in the Linux device model, something which is important > not least for power management purposes and which also allows for easy > detection and (eventually) identification of GNSS devices. > > Note that the character-device interface provides raw access to whatever > protocol the receiver is (currently) using, such as NMEA 0183, UBX or > SiRF Binary. These protocols are expected to be continued to be handled > by user space for the time being, even if some hybrid solutions are also > conceivable (e.g. to have kernel drivers issue management commands). > > This will still allow for better platform integration by allowing GNSS > devices and their resources (e.g. regulators and enable-gpios) to be > described by firmware and managed by kernel drivers rather than > platform-specific scripts and services. > > While the current interface is kept minimal, it could be extended using > IOCTLs, sysfs or uevents as needs and proper abstraction levels are > identified and determined (e.g. for device and feature identification). > > Another possible extension is to add generic 1PPS support. > > I decided to go with a custom character-device interface rather than > pretend that these abstract GNSS devices are still TTY devices (e.g. > /dev/ttyGNSS0). Obviously, modifying line settings or reading modem > control signals does not make any sense for a device using, say, a > USB (not USB-serial) or iomem interface. This also means, however, that > user space would no longer be able to set the line speed to match a new > port configuration that can be set using the various GNSS protocols when > the underlying interface is indeed a UART; instead this would need to be > taken care of by the driver. > > Also note that writes are always synchronous instead of requiring user > space to call tcdrain() after every command. > > This all seems to work well-enough (e.g. with gpsd), but please let me > know if I've overlooked something which would indeed require a TTY > interface instead. > > As proof-of-concept I have implemented drivers for receivers based on > two common GNSS chipsets (SiRFstar and u-blox), but due to lack of > hardware these have so far only been tested using mockup devices and a > USB-serial-based GPS device (using out-of-tree code). [ Let me know if > you've got any evalutation kits to spare. ] > > Finally, note that documentation (including kerneldoc) remains to be > written, but hopefully this will not hinder review given that the > current interfaces are fairly self-describing. Is this just a RFC, or a "here's a first cut at submitting this, review it please!" submission? I'm glad to review if you think it's worth it at this point. thanks, greg k-h