Received: by 10.213.65.68 with SMTP id h4csp1377986imn; Mon, 26 Mar 2018 06:29:04 -0700 (PDT) X-Google-Smtp-Source: AG47ELssXMbxQYmIqOUpFasPh6n0XmbnG6XBN5lw8KjNvr6tbs7NgNVECVoz2Fl/1sGLH9XhyPis X-Received: by 2002:a17:902:2f:: with SMTP id 44-v6mr40923255pla.187.1522070944811; Mon, 26 Mar 2018 06:29:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522070944; cv=none; d=google.com; s=arc-20160816; b=XMr1qwKf0O559rp5+GMQygvRaqR2W3jxqKJb9nS+gokZfUG2tXFJ6IrDJumr2Jn72j SpJ61AmcPWF2GF3w2KZLvHI9DGc5JQw5N3QBjsWwT6c1C8mLzU3l0KMSkKWBrIzb9b4n br4k20TcQIFL0cto/1f4IwtrRjy7wkavgWS+Kjqyh5xBfjdzBKaAh7b6VD1NkkTniGJy xrDbJ2Wpaj5hGmQaLf+u7jqOZrFciWomNB26nsoux/7YUgQFrQURbgInIKaQcmnLPvO6 l2K48n8U01zlZ/+hqr/gVOd2dEAmY8fy3cKtj/NF0ntKMfLnH+nIBp24Xrgdu3pPfQKB gURw== 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=3eRLA38XT2CmeDTdfiKcH5AHokdUfeqd26suNb9OIZE=; b=CqYO/ozqVB1NZK+j/daWxwqi7Yw7CBHleUj1DXxD0KZ8MOnz0HCOcKVC6HCJHfO8FB Tz/2X9bKH1El9orbQA0oQtVU+LVjp7EnafwOCz7cZvlZmKpW2jxlFl2a54COV+L1/BFi w9gI5ZbpKBJ83SMSmrMxPCqqq9v8tDHQFQu/P9hmIWP5ckOgwQPhWWOq1kE9WYYGGmEG DjcPVuVuHm8WPLTnD2k8MjCDhE255Fe0J6e/wRj7GEmq0yxq2jnhyd4CmBCxtxJPLOpc aSJbcUPJLU7zmlu7jJqJmIJXdUz2m3clsaJBWpyAVfzdHsOPuxRNXczdHXkS2ZiE/EsS fnPw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=rDjX8drm; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o4si10160719pga.175.2018.03.26.06.28.43; Mon, 26 Mar 2018 06:29:04 -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=pass header.i=@gmail.com header.s=20161025 header.b=rDjX8drm; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751896AbeCZN1l (ORCPT + 99 others); Mon, 26 Mar 2018 09:27:41 -0400 Received: from mail-yb0-f179.google.com ([209.85.213.179]:35017 "EHLO mail-yb0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750955AbeCZN1j (ORCPT ); Mon, 26 Mar 2018 09:27:39 -0400 Received: by mail-yb0-f179.google.com with SMTP id v66-v6so6334286ybv.2; Mon, 26 Mar 2018 06:27:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=3eRLA38XT2CmeDTdfiKcH5AHokdUfeqd26suNb9OIZE=; b=rDjX8drmUtIB5yI71eciMGuL/w/zj7NVPh7bsM9BlHyA/werWqu5eCyGz3Kk4ZWXL3 FiVobT6TxPRdgJU9WZQXpLaMdwztLeUuCMhcr4GXz81EEGhgnuHfuRuGUAyTp2dYMkYr fsD9vhi+FVqvk+Tbo+mbPQkKdf9MleFTLU4cCx4uTMQzXZdL0in0nlkgxvvbMd8GS7Fb /8gPfo8ncenI+jojhJappUX2E5FJOlxJCrjH+ET0Bid613WL1seDfQbFOvV6aSq49VYi hHlviDa5aEV28DIz1WFxQ7X+AK3eL3vWQwsLo+dl4pCcAbAacLTaa6eHkqrUodpfkFJd KY2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=3eRLA38XT2CmeDTdfiKcH5AHokdUfeqd26suNb9OIZE=; b=NV8Nwzp8Lq9LhL16zp78q2SylS9pa2V2GO5ILRvM2cjPWXS7YxKMhK8prbYZKlPogA 6TUo6YWVFFEAS0Uf7aeRZwLKG9SaN3u3Ih2FkAUKSzlYkwfzzQp+/fxZd6jUBNG8P/XS VbLVS1eX2BbQu7KeK+at9bpH/2p45lEuFsUGBJ8fxKybhYS8Du24VhUlbaV4LATfnhqJ 57M+LhSS+dPZdqlMsPDj6vSWdjy/BqPmVprO73B+OYYf/XJ/k+2RQPrZLoW43eugv1tJ Nst3h9Gm/MEGZIDrXxnWii8PWEAVVTdx6TSG2hQAD7jmOCM6zeToXkbH/RAXKjI4uTjX 2nJA== X-Gm-Message-State: AElRT7EL3Yhe55qiA236rmiJ+6LVii1DgPOHroOCb/ZH3936rikg9Uti KODbwrjcJHXb4OWASMHhFPk= X-Received: by 2002:a25:5bd7:: with SMTP id p206-v6mr12396911ybb.365.1522070859090; Mon, 26 Mar 2018 06:27:39 -0700 (PDT) Received: from sophia ([72.188.97.40]) by smtp.gmail.com with ESMTPSA id s130sm5956107ywc.69.2018.03.26.06.27.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Mar 2018 06:27:38 -0700 (PDT) Date: Mon, 26 Mar 2018 09:27:32 -0400 From: William Breathitt Gray To: Linus Walleij Cc: Andy Shevchenko , "open list:GPIO SUBSYSTEM" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH v4 0/7] Implement get_multiple for ACCES and PC/104 drivers Message-ID: <20180326132732.GA8889@sophia> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 26, 2018 at 10:31:41AM +0200, Linus Walleij wrote: >On Thu, Mar 22, 2018 at 1:59 PM, William Breathitt Gray > wrote: > >> Changes in v4: > >I applied the v4 patch set so we get some rotation in linux-next before >the merge window. > >If reviewers still find smallish issues they can certainly be fixed in follow-up >patches. > >> This patchset implements get_multiple callbacks for the PC104 GPIO >> drivers as well as the PCI-IDIO-16 and PCIe-IDIO-24 GPIO drivers. These >> devices all acquire the multiple input lines with a single read, so >> utilizing the get_multiple callback can provide improvement for those >> users who regularly access multiple input lines. > >Did you use the userspace chardev for some interesting experiments >with your set-ups? > >I tend to think of your applications as pretty interesting for industry >peers, and a good proof-of-concept for the userspace API. I use these PC104 drivers in several semi-realtime critical applications, so latency has always been a big concern for me. The switch from sysfs file I/O to chardev ioctl had a great improvement in the reduction of latency, which I was very happy to utilize. Since the next big point of latency in my systems have been port I/O, taking advantage of the get_multiple/set_multiple functionality is my next goal in optimization. I have a new system coming out soon that uses the 104-IDI-48 for input -- it'll be interesting to see the performance improvements of acquiring the entire input port at a time, rather than every GPIO line individually. > >> While developing this patchset I noticed many of these devices make use >> of Intel 8255 compatible interfaces for their I/O. I may write a generic >> 8255 GPIO driver in the future to reduce some of the redundant code I >> see pop among the drivers for these devices. > >Oh! >This guy? >https://en.wikipedia.org/wiki/Intel_8255 > >Yeah that makes all kind of sense. We are living with the legacy >of the first PCs every day when it comes own to EISA & friends... That's the one! I see this interface a lot in the GPIO devices I handle. It's very popular, which I believe is a testament to the popularity of the IBM PC. Nowadays, most devices I encounter implement this interface in an FPGA, but I do occasionally come across the actual Intel 82C55 chip, such as on the 104-DIO-48E; it's fascinating to see this physical chip still popping up on circuit boards from time to time. I would like to make a generic driver for this interface that will allow it to be used both in the port I/O and memory I/O drivers out there. Since I don't want to introduce too many changes in a single patchset I've postponed it for now to get get_multiple support merged in for these drivers, but I'll hopefully have something like a gpio-i8255 driver submitted soon enough. William Breathitt Gray > >Yours, >Linus Walleij