Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934902AbbGHPCm (ORCPT ); Wed, 8 Jul 2015 11:02:42 -0400 Received: from mail-wg0-f51.google.com ([74.125.82.51]:33996 "EHLO mail-wg0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933824AbbGHPCj convert rfc822-to-8bit (ORCPT ); Wed, 8 Jul 2015 11:02:39 -0400 Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2102\)) Subject: Generic VME UIO driver From: Dmitry Kalinkin In-Reply-To: <559D2415.1060502@ge.com> Date: Wed, 8 Jul 2015 18:02:35 +0300 Cc: Greg Kroah-Hartman , linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, Manohar Vanga , Igor Alekseev Content-Transfer-Encoding: 8BIT Message-Id: <6296E8BD-06B6-4FC2-859A-98B2E2ED66BF@gmail.com> References: <1432814833-5320-1-git-send-email-dmitry.kalinkin@gmail.com> <1432814833-5320-9-git-send-email-dmitry.kalinkin@gmail.com> <20150613002807.GA17459@kroah.com> <559A8117.4060701@ge.com> <559A9556.4040303@ge.com> <559D2415.1060502@ge.com> To: Martyn Welch X-Mailer: Apple Mail (2.2102) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1490 Lines: 27 > On 08 Jul 2015, at 16:22, Martyn Welch wrote: > > On 06/07/15 18:24, Dmitry Kalinkin wrote: >>> Some functionality was dropped as it was not good practice >>> >(such as receiving VME interrupts in user space, it's not really doable if >>> >the slave card is Release On Register Access rather than Release on >>> >Acknowledge), >> Didn't know about RORA. I wonder how different this is compared to the >> PCI bus case. > > Little I suspect. What it does mean is that there's no generic mechanism for clearing down an interrupt, so a device specific interrupt routine is required, which needs to be in kernel space. Yet PCI somehow managed to settle with UIO. Now imagine I am working with a board using vme_user API and I need to implement interrupts. The PCI case teaches me that I need to write a board specific UIO driver. My board is ROAK and allows to configure it's interrupt to any level and any status/id. So I only use a standard vme_irq_request API that generates IACK cycle for me automatically. I also don’t want to limit my end user with a choice of interrupt level and status/id and so I make it configurable. In the end I’ve got a very generic ROAK device driver. What did I do wrong? Cheers, Dmitry-- 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/