From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from vps0.lunn.ch (vps0.lunn.ch [156.67.10.101]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C1A112DEA95; Tue, 14 Jul 2026 20:22:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=156.67.10.101 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784060560; cv=none; b=iF92oSdNid3RO9vLOTI+warQ34XTSzKX9B5itSYttyG7UTXIO2ior0UMEmW2tw/Qq/2ZHYNAbfgAk0i76Z4a5NVK/w2jZOJTIb110cnuL+xWvt70F5xWOIeempP8PdQr4QzFQqweSb7QjU0q5OrRIXbSy6+xZMtzX/89MWOh948= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784060560; c=relaxed/simple; bh=MFpXe0hwZAI39MmHBMAi4Buu7rRntpAi9pLML/7VCJ4=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=IcZxDF+C2xVYhiOVbDNAuE0M/fyWMdVU3V17EXNWbgGeuyNsuTMhTYgNwy7PxX3WtgDwscIEKTgReeh62+8TU1j+9QSv9ftFAoW7zVidwZvQgXIoeTlWqKt3InQxQoV+i9Mldc0ndhtAJABkrs/D/sC62TY0ar7ZqnLo9vkwVWk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=lunn.ch; spf=pass smtp.mailfrom=lunn.ch; dkim=pass (1024-bit key) header.d=lunn.ch header.i=@lunn.ch header.b=TWSX3Uo1; arc=none smtp.client-ip=156.67.10.101 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=lunn.ch Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=lunn.ch Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=lunn.ch header.i=@lunn.ch header.b="TWSX3Uo1" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lunn.ch; s=20171124; h=In-Reply-To:Content-Disposition:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:From:Sender:Reply-To:Subject: Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description:Content-Disposition:In-Reply-To:References; bh=R8CZEsf4KA93sMMtuykRokWiVz8pAkcIvLnEk4m256s=; b=TWSX3Uo1ZeMp3SXSd/7mfSE4ch eeKsLjJT8UVnFNL2XwXmsBHSmnhXmRGrcyKimyZbMP6BFnTDGzc//E+dB2msSK1oMOnCXxi/MdNqD Om5dKdeXmDaI0JX4tSdS13UknVCcZlqUSxC8oVoWVRIkKhMWuPv8hQHdN4joZaQkgqps=; Received: from andrew by vps0.lunn.ch with local (Exim 4.94.2) (envelope-from ) id 1wjjeA-00CFO0-Hx; Tue, 14 Jul 2026 22:22:30 +0200 Date: Tue, 14 Jul 2026 22:22:30 +0200 From: Andrew Lunn To: "Shenwei Wang (OSS)" Cc: Mathieu Poirier , Linus Walleij , Bartosz Golaszewski , Jonathan Corbet , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Frank Li , Sascha Hauer , Shuah Khan , "linux-gpio@vger.kernel.org" , "linux-doc@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Pengutronix Kernel Team , Fabio Estevam , Shenwei Wang , Peng Fan , "devicetree@vger.kernel.org" , "linux-remoteproc@vger.kernel.org" , "imx@lists.linux.dev" , "linux-arm-kernel@lists.infradead.org" , dl-linux-imx , Arnaud POULIQUEN , "b-padhi@ti.com" Subject: Re: [PATCH v14 1/5] docs: driver-api: gpio: rpmsg gpio driver over rpmsg bus Message-ID: <68a9dd77-a07b-4ea5-ad66-9e2bda490d20@lunn.ch> References: <20260625155432.815185-1-shenwei.wang@oss.nxp.com> <20260625155432.815185-2-shenwei.wang@oss.nxp.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: > The two fields above are required for rpmsg-gpio, but not for virtio-gpio. > > In the rpmsg-gpio case, interrupt detection and handling occur on the remote processor. The > interrupt information (such as the GPIO line and trigger type) must therefore be sent to Linux > through this notification message. > > In contrast, for virtio-gpio, interrupt handling is performed on the local processor. Since Linux already > has all the necessary interrupt context, the information is not needed. Are you sure about that? virtio_gpio_irq_set_type() sets: irq_line->type = type; irq_line->update_pending = true; virtio_gpio_irq_bus_sync_unlock() looks at update_pending and does virtio_gpio_req(), passing irq_line->type as type. This then gets filled into: /* Virtio GPIO Request / Response */ struct virtio_gpio_request { __le16 type; __le16 gpio; __le32 value; }; which gets scatter/gathered over the virtqueue to the peer. Andrew