Received: by 10.192.165.148 with SMTP id m20csp2467296imm; Thu, 26 Apr 2018 11:28:54 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+Jhn5SbbTmPjh7lDI0WW6tKnrcWcRnV0yrk9VYNi9vJ5CeNfGcsZ6oqi9gWCNDErW0t03E X-Received: by 2002:a17:902:28e8:: with SMTP id f95-v6mr32382747plb.250.1524767334024; Thu, 26 Apr 2018 11:28:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524767333; cv=none; d=google.com; s=arc-20160816; b=05Zdu3YIGzPt/Xos47YLeckMjxCeCjr4PfeHbzZRszsPcfs30zY1v6hFS+lworDsnl sMeg0ksmT+KJ/TcwrzBESMtSg0UyHUQvzlW/7jGPHyJmLSXd6XN2mZ8tu4jGTkRimCEp wF2nzuYxi1q9KCmgQ21drkbL8x7NZ+UO08wItm5e2B566Mr+Eu7Rl/Vy7wb6MrWh4tW1 zehGf/9bei0fOuJ5H8K3w10/RnepZxNezLh7JmffWetOfv7VwPPH41FwCDEy1m7Ke9ds kyC5npALVBQjANFDaknAWMqBsjbAj7z5iZtPCc8YtBu9HTlGBcm/shmipepvz/8D57fN c8Xg== 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:dkim-signature:arc-authentication-results; bh=2RZO4HUyEv2ELt5y9zuo3sKDB25SITCbvvsvMTZGY74=; b=RYXietMbRRsruOboyq63VdICmQXHp+bNrRD/ylZd92hDYThpCFLY3xoZVO5/E0DLOf RMPu2xG4fwxo5Hl3H9mhgmPYBGHN1YBFhp333hSvDrjG968Zo3mVeMUx3CqGHTDoOjCQ MXUDrNNCwsqs5hvFuNM6ARAGsNHDFDvIJBNgYwAeJK/qdu37HRW/6RQojVQTF6+9bvVH nEmHhzYgn7K1yaaZNzoa2JV33YYtSD5gvoWxrfyJI6Q8Jso+efgJDHx9Rwe2VnasuROs 8urLh9YsCWbi7+8PoWLhSFUZTEN8MoeytAU1H1c7LscuyrEJIKoZJBdwYwu7Jyy3VxTH YPLQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=U2KZtQSE; 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 z31-v6si19557216plb.24.2018.04.26.11.28.39; Thu, 26 Apr 2018 11:28:53 -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; dkim=fail header.i=@gmail.com header.s=20161025 header.b=U2KZtQSE; 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 S1757244AbeDZSWB (ORCPT + 99 others); Thu, 26 Apr 2018 14:22:01 -0400 Received: from mail-lf0-f41.google.com ([209.85.215.41]:40646 "EHLO mail-lf0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757040AbeDZSVp (ORCPT ); Thu, 26 Apr 2018 14:21:45 -0400 Received: by mail-lf0-f41.google.com with SMTP id j16-v6so14900273lfb.7; Thu, 26 Apr 2018 11:21:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=2RZO4HUyEv2ELt5y9zuo3sKDB25SITCbvvsvMTZGY74=; b=U2KZtQSEcSwwOio/8pbKB1v2Ffz6XsjZ4JZ7PeH/UsSomHdi/fAJxeYqXIUP3Fg0nS 3ki+3zP4cwt4NyD3wz9AUipTauB0Az3ACUcwCG9HMwMTcPPO/5JLD3Cyjd+gfoiJ7gcx WNLFeG63qRX5gn6lRUJGgf6QYapxbq4O0Exc2VQVpyDAA5tMHrc5SUxaAjgXiUln7foX PZpC3iZ5wqotFI1qoBHN/tZrE0N7vUx7eupa5iYQ7A6z6Vs95cjzqkmf4J0c2yTT+9Vw KUAbtyjGstF7GnbXmOt5pa1tz2mj3kZIEjrzI/9QfCVLkXF6Jcj82bUh+PwtM5Fd2Iwc 7cPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=2RZO4HUyEv2ELt5y9zuo3sKDB25SITCbvvsvMTZGY74=; b=S2B4fWdWgc88XmvqK2csCtN/VNYvJzV7z+zxCFH5CJtWTVNs+dw9WtCuA+k1aOTtuJ Jaj5TA5uLBQ7rF5qaBBRIkr4PKjWvFe2Hr/EiQw6w4+ovD5CFMx/bPOJW43wkpiRJXYe Xy16d/3CPOM2BZPKDyFrfptPyPnKxHGYrwDeAlNoBVAB7bVPdDilXFx17PnnxwdDWUuh eiXccp7zcmkLjkv7dUTxqyLf07rXCiO8cw6zf+8rhAbrQ+Y6KCDkvQM6czOZ7iYYJINq LL/WTlxsUBzEbuSZBVRrOc4Ac2FrJVeVrychDV/FUfNqsbjUfG9yVcrWk7M7J7gafOU1 gSKQ== X-Gm-Message-State: ALQs6tBZEvvA02a8mKflxjrIFx/SknVZtWVZ8oyeepBEYX/4GGlvsk2T RQAK0fD05+OsFh/f/cSQi7o= X-Received: by 2002:a19:4f5e:: with SMTP id a30-v6mr17271318lfk.97.1524766903237; Thu, 26 Apr 2018 11:21:43 -0700 (PDT) Received: from xi.terra (c-8bb2e655.07-184-6d6c6d4.cust.bredbandsbolaget.se. [85.230.178.139]) by smtp.gmail.com with ESMTPSA id b75-v6sm4499816lfe.95.2018.04.26.11.21.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 26 Apr 2018 11:21:41 -0700 (PDT) Received: from johan by xi.terra with local (Exim 4.90_1) (envelope-from ) id 1fBlWS-0004J5-9o; Thu, 26 Apr 2018 20:21:36 +0200 Date: Thu, 26 Apr 2018 20:21:36 +0200 From: Johan Hovold To: "H. Nikolaus Schaller" Cc: Johan Hovold , Greg Kroah-Hartman , Rob Herring , Mark Rutland , Andreas Kemnade , Arnd Bergmann , Pavel Machek , Linux Kernel Mailing List , Discussions about the Letux Kernel , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" Subject: Re: [PATCH 0/7] gnss: add new GNSS subsystem Message-ID: <20180426182136.GX4615@localhost> References: <20180424163458.11947-1-johan@kernel.org> <31CF06C6-D6ED-4930-8D81-12256A518059@goldelico.com> <20180424175050.GG4615@localhost> <8F4FAF5B-AAA9-4D46-A022-99B96C74ABFA@goldelico.com> <20180425081120.GL4615@localhost> <7A11E17A-64B7-4B39-87EC-D6A52773850B@goldelico.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <7A11E17A-64B7-4B39-87EC-D6A52773850B@goldelico.com> 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 Thu, Apr 26, 2018 at 12:10:02PM +0200, H. Nikolaus Schaller wrote: > > Am 25.04.2018 um 10:11 schrieb Johan Hovold : > > > > On Tue, Apr 24, 2018 at 09:44:08PM +0200, H. Nikolaus Schaller wrote: > > > >>> Am 24.04.2018 um 19:50 schrieb Johan Hovold : > >> You could have simply reused what we have proposed [1] and just > >> adapt it to the new API instead of writing a new driver (which > >> is missing some features for us). > > > > Your code was broken or needed to be updated in several ways as I > > pointed out in the thread you refer to. > > No, it was not broken (it is in daily use and no practical problems > are known), but surely does not cover some corner-cases (e.g. races). I'd certainly be sceptical about accepting code into the kernel from anyone who completely ignores locking and considers concurrency to be a corner case that he cannot be bothered with. Sure, out-of-tree code is often sub-par, and that is partly why it remains out of tree. > I said we should focus firstly on the "abstraction level". So I > postponed these code issues from discussion. > > In the end you announced to provide a new kernel API which would > make most of the code (all tty stuff) and related problems go away > anyways. > > Therefore I simply did wait for this API to come, before fixing the > remaining issues and submitting a new v6. Yes, and that's perfectly reasonable, but I wouldn't want to base my work on something in that state. > > It also did not support all those systems that use the same family of > > chips, but which has the WAKEUP signal connected. > > That is simply wrong. > > It supports them. It just does not make use of the WAKEUP signal, but > uses a different mechanism to detect the power state of the chip. Sure, but in a highly inefficient way since without WAKEUP you can never be certain that the device is in hibernate, but only assume so after a lengthy (as in seconds) timeout has passed without any I/O. > So our driver is more complete because it gracefully handles a > WAKEUP line (by ignoring it) while yours doesn't handle the opposite > case of a missing WAKEUP. I never claimed to support your configuration from the start, but I kept it in mind while implementing the framework in order to facilitate for you. Heck, besides getting the whole frame work implemented for you -- thereby making this the closest to mainline support for your system that you've been over the course of the past five years or however long you've been at it -- there's now also an already integrated generic sirf driver with all the basics in place (including runtime PM, and not relying on legacy interfaces) that you can base your work off of. > >> "proof-of-concept" is misleading if you expect this to become > >> *the* Sirf driver and we are just invited to add some features > >> to that. Making our own work and proposals completely obsolete. > >> > >> What I find really strange and foul play is that we are in the > >> review process and then comes a hidden counter-proposal by the > >> reviewer. > > > > Dude, in the very same thread you refer to above, after being asked to > > reiterate your proposal to find and appropriate abstraction level you > > reply: > > > > "Yes, please feel free to write patches that implement it that > > way." > > When looking back, I understand that as that I suggested to add a "proper > abstraction level" (i.e. a gps framework) so that *we* can make use of > it. Yes, you clearly weren't interesting in doing that work yourself. > I never meant that you should completely replace our driver by an > incomplete solution. But surely you didn't expect your work not to require any kind of integration into a new framework. > > Now I've done just that for you, and then you whine about that too. > > At the end of the thread (which I take as the result of v5 review) you said: > > "Yeah, I think this is a dead end. We need some kind of gps framework > with drivers that can implement the device specific bits. > > I may have some time to look at little closer at it this week." > > And I answered and laid down my plans for a v6: > > "Ok, that would be fine if we can get that! > > For a minimal set of API I think something like this (following hci_dev) would suffice: > > ... > > If that would wrap all creation of some /dev/ttyGPS0 (or however it is called), > it would fit our needs for a driver and user-space for our system. > > And I would be happy to get rid of creating and registering a /dev/ttyGPS0 > in the w2sg0004 driver. > > Then, the driver will not need to be touched if the GPS framework is improved > in some far future (e.g. to provide some additional ioctl for getting kalman-filtered > position+heading by doing sensor fusion with some iio-based accelerometer/gyro). > > So I am looking forward to some framework for review and integration testing." > > I think it was clear and understandable what I expected (a new framework instead > of creating ttys in the driver) and what I did not (a replacement of our > w2sg0004 proposal with a variant with missing features). Sounds like you think you've given me some kind of order that I had to fulfil. Sorry, but it doesn't work that way. > The problem I have with this sort of review process is that I now have to > reintegrate the missing pieces of handling the non-WAKEUP case and LNA > control and rfkill into your code. Yes, you're not getting everything for free. Besides, I have concerns about using rfkill for GNSS (which does not transmit any radio), and external LNA control is not something that is a chip feature but rather something that should be handled by the framework. So this wouldn't be a simple code dump for you anyway. > Instead of stripping down our code and adjusting to your API. > > Alternatively I have to wait until you present some code of which you > think it works. Would you also test it? Probably no. Because of lack > of hardware. So I have to test your new code in an area where I have > well-hung code being in daily use. Of course I'll test it, but I can't say solving your problems for you again is at the top of my list, if it ever were. > And your new code may still be incomplete wrt. what our driver > provides to users. > > I hope that you understand that this is now more work for me in any > case... I fail to see how not having to implement a GNSS framework can be considered more work for you. > So in the end I will have: > * a new but still incomplete driver that is a regression compared to > our old driver It's not a regression, the new mainline driver just wouldn't support your configuration yet. > * even more testing work in addition 5 years urging for acceptance > * no appreciation because you sign off and author everything You'd sign off on your own work (or was it really Neil Brown who implemented the driver that you've since been adapting?). There's still room for adding support for sirf configurations without WAKEUP, generic LNA support, and possibly rfkill. > Is this a good deal or a reason to contribute to our common project? > > If you want an example how to get rid of volunteers contributing, this may > be one... Come on... > > SiRF is a very common chip and I wanted to make sure that the common > > setup with WAKEUP connected was supported from the start. I'll get to > > your configuration in time too. > > As said, our driver would also work if the WAKEUP line exists, and is > described in DT, but is broken. > > So we will probably stay with our out-of the kernel driver for the > time being. Ok. Johan