[{"id":3681469,"web_url":"http://patchwork.ozlabs.org/comment/3681469/","msgid":"<2026042346-trustable-register-095a@gregkh>","list_archive_url":null,"date":"2026-04-23T13:37:04","subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","submitter":{"id":11800,"url":"http://patchwork.ozlabs.org/api/people/11800/","name":"Greg KH","email":"gregkh@linuxfoundation.org"},"content":"On Thu, Apr 23, 2026 at 06:59:31PM +0530, Vishnu Reddy wrote:\n> From: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n> \n> When a driver needs to create virtual device at runtime and map it to\n> an IOMMU context for memory isolation, there is no common bus available\n> for this purpose. Each driver ends up implementing its own bus type,\n> leading to duplicated logic across multiple drivers.\n> \n> host1x driver implemented its own bus type to attach an IOMMU context to\n> a dynamically created device. The Iris VPU driver now has the same\n> requirement. Rather than duplicating the same bus logic again, a shared\n> bus type is introduced under drivers/base that multiple drivers can use\n> directly.\n> \n> The bus takes care of creating a device and attaching the IOMMU context\n> to it based on the client inputs.\n> \n> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>\n> Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n> Signed-off-by: Vikash Garodia <vikash.garodia@oss.qualcomm.com>\n> Signed-off-by: Vishnu Reddy <busanna.reddy@oss.qualcomm.com>\n> ---\n>  drivers/base/Kconfig            |  3 ++\n>  drivers/base/Makefile           |  1 +\n>  drivers/base/dma_context_bus.c  | 77 +++++++++++++++++++++++++++++++++++++++++\n>  include/linux/dma_context_bus.h | 26 ++++++++++++++\n>  4 files changed, 107 insertions(+)\n\nas you can not have a device on multiple busses at the same time, this\nmakes no sense to me at all.  \"dma context\" is a bus-specific thing, so\nplease add it to the bus that you are wanting it for.  It can't be a\ngeneric bus as that just doesn't work.\n\nOr what am I missing here?\n\nAnd why is DMA somehow \"special\" here from any other hardware attribute?\n\nthanks,\n\ngreg k-h","headers":{"Return-Path":"\n <linux-tegra+bounces-13931-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-tegra@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=linuxfoundation.org header.i=@linuxfoundation.org\n header.a=rsa-sha256 header.s=korg header.b=au64Nxy3;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-tegra+bounces-13931-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=linuxfoundation.org\n header.i=@linuxfoundation.org header.b=\"au64Nxy3\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g1cbh4dyvz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 23:37:52 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id AF9CA300B13A\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 13:37:08 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 083E22BDC23;\n\tThu, 23 Apr 2026 13:37:08 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id A974718BBAE;\n\tThu, 23 Apr 2026 13:37:07 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id BEA45C2BCAF;\n\tThu, 23 Apr 2026 13:37:06 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776951427; cv=none;\n b=ae1qqdWJoSDBRnUNzT7hV71KKczsNG5yWRD8rpFqmQep8+eH7K+mkvR1UzVd2TymEZCf+kezLOo62vQNQmx/brzcTqgR/fm6fVRI55kvPBOjx4EVV+40hu5mweon3NFq6Xc+OxJHjGGuxJLuLesp0Kh2SqPSoO/+WgjfoZd3RLQ=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776951427; c=relaxed/simple;\n\tbh=SCMeXc6iNHZVhRhU78udGlaYW9NkW14onQYu/AiF6M4=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=T7LdzhQcL3vN43mHa1BoCZis0uXlR8COTZmcAtYZDemq7IDHjdf8EjI7VSMfPXZh56mFhS/nJxIKFA6J2z+Y6VCYKusJ07gy9lWC1WmGPFUCuUyBhrM5J7pYto1AvtQqSe/FMWKojNoTSpcFqXHx7Wpa1oDk7NIwgXic+rLEWfc=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (1024-bit key) header.d=linuxfoundation.org\n header.i=@linuxfoundation.org header.b=au64Nxy3;\n arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org;\n\ts=korg; t=1776951427;\n\tbh=SCMeXc6iNHZVhRhU78udGlaYW9NkW14onQYu/AiF6M4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=au64Nxy3WFohQJGnz3FSUq8C7RO3sPhLi5iwbU952kiR0Ope5w7kJ7cYGLG4z5SMC\n\t e/VFjhoABO6Y7Anyln2loRbXXujZZXjWCvV/JbnsUf8poq5HkVfBCsog9kgnuwaH8M\n\t BBlgRx59Y7oEpJWqqpEH2KOrwWDxjL8NrCi1uVSs=","Date":"Thu, 23 Apr 2026 15:37:04 +0200","From":"Greg Kroah-Hartman <gregkh@linuxfoundation.org>","To":"Vishnu Reddy <busanna.reddy@oss.qualcomm.com>","Cc":"Bryan O'Donoghue <bod@kernel.org>,\n\tVikash Garodia <vikash.garodia@oss.qualcomm.com>,\n\tDikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>,\n\tAbhinav Kumar <abhinav.kumar@linux.dev>,\n\tMauro Carvalho Chehab <mchehab@kernel.org>,\n\tRob Herring <robh@kernel.org>,\n\tKrzysztof Kozlowski <krzk+dt@kernel.org>,\n\tConor Dooley <conor+dt@kernel.org>, Joerg Roedel <joro@8bytes.org>,\n\tWill Deacon <will@kernel.org>, Robin Murphy <robin.murphy@arm.com>,\n\tBjorn Andersson <andersson@kernel.org>,\n\tKonrad Dybcio <konradybcio@kernel.org>,\n\tStefan Schmidt <stefan.schmidt@linaro.org>,\n\tHans Verkuil <hverkuil@kernel.org>,\n\t\"Rafael J. Wysocki\" <rafael@kernel.org>,\n\tDanilo Krummrich <dakr@kernel.org>,\n\tThierry Reding <thierry.reding@kernel.org>,\n\tMikko Perttunen <mperttunen@nvidia.com>,\n\tDavid Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,\n\tJonathan Hunter <jonathanh@nvidia.com>, linux-media@vger.kernel.org,\n\tlinux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org, iommu@lists.linux.dev,\n\tdriver-core@lists.linux.dev, dri-devel@lists.freedesktop.org,\n\tlinux-tegra@vger.kernel.org,\n\tEkansh Gupta <ekansh.gupta@oss.qualcomm.com>,\n\tDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>","Subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","Message-ID":"<2026042346-trustable-register-095a@gregkh>","References":"<20260423-glymur-v2-0-0296bccb9f4e@oss.qualcomm.com>\n <20260423-glymur-v2-2-0296bccb9f4e@oss.qualcomm.com>","Precedence":"bulk","X-Mailing-List":"linux-tegra@vger.kernel.org","List-Id":"<linux-tegra.vger.kernel.org>","List-Subscribe":"<mailto:linux-tegra+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-tegra+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20260423-glymur-v2-2-0296bccb9f4e@oss.qualcomm.com>"}},{"id":3681955,"web_url":"http://patchwork.ozlabs.org/comment/3681955/","msgid":"<06c04947-e72e-679b-493b-e112d693f391@oss.qualcomm.com>","list_archive_url":null,"date":"2026-04-24T10:31:13","subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","submitter":{"id":93161,"url":"http://patchwork.ozlabs.org/api/people/93161/","name":"Vishnu Reddy","email":"busanna.reddy@oss.qualcomm.com"},"content":"On 4/23/2026 7:07 PM, Greg Kroah-Hartman wrote:\n> On Thu, Apr 23, 2026 at 06:59:31PM +0530, Vishnu Reddy wrote:\n>> From: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n>>\n>> When a driver needs to create virtual device at runtime and map it to\n>> an IOMMU context for memory isolation, there is no common bus available\n>> for this purpose. Each driver ends up implementing its own bus type,\n>> leading to duplicated logic across multiple drivers.\n>>\n>> host1x driver implemented its own bus type to attach an IOMMU context to\n>> a dynamically created device. The Iris VPU driver now has the same\n>> requirement. Rather than duplicating the same bus logic again, a shared\n>> bus type is introduced under drivers/base that multiple drivers can use\n>> directly.\n>>\n>> The bus takes care of creating a device and attaching the IOMMU context\n>> to it based on the client inputs.\n>>\n>> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>\n>> Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n>> Signed-off-by: Vikash Garodia <vikash.garodia@oss.qualcomm.com>\n>> Signed-off-by: Vishnu Reddy <busanna.reddy@oss.qualcomm.com>\n>> ---\n>>  drivers/base/Kconfig            |  3 ++\n>>  drivers/base/Makefile           |  1 +\n>>  drivers/base/dma_context_bus.c  | 77 +++++++++++++++++++++++++++++++++++++++++\n>>  include/linux/dma_context_bus.h | 26 ++++++++++++++\n>>  4 files changed, 107 insertions(+)\n> as you can not have a device on multiple busses at the same time, this\n> makes no sense to me at all.  \"dma context\" is a bus-specific thing, so\n> please add it to the bus that you are wanting it for.  It can't be a\n> generic bus as that just doesn't work.\n>\n> Or what am I missing here?\n>\n> And why is DMA somehow \"special\" here from any other hardware attribute?\n\nLet me give brief information which was discussed, in the initial series,\nthe iris VPU used platform bus for dynamically created devices and we got\nthe comment/suggestion from Robin to implement a proper bus_type with a\n.dma_configure callback.\n\nhttps://lore.kernel.org/all/02b3d0f5-f94c-43cd-93af-97cfcf7751b1@arm.com/\n\nbased on the discussion, implemented the dma_context_bus and used for iris\nVPU devices instead of platform bus.\n\nHere, the device have only one bus (dma_context_bus), not multiple buses.\n\nRegarding the \"DMA\" naming, the core operation of this bus is its\n.dma_configure callback, which calls of_dma_configure_id() to map the device\nto a corresponding IOMMU stream ID. The name \"dma_context\" reflects this\npurpose.\n\nI am open to suggestions from you or Robin or anyone else, if there is a\nbetter or preferred way to achieve this, I am happy to consider it and\nrework the implementation accordingly.\n\nThanks,\nVishnu Reddy.\n\n> thanks,\n>\n> greg k-h","headers":{"Return-Path":"\n <linux-tegra+bounces-13940-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-tegra@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=R6JWbiHr;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=JJ00qwCE;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c15:e001:75::12fc:5321; helo=sin.lore.kernel.org;\n envelope-from=linux-tegra+bounces-13940-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=\"R6JWbiHr\";\n\tdkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=\"JJ00qwCE\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=205.220.180.131","smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=oss.qualcomm.com"],"Received":["from sin.lore.kernel.org (sin.lore.kernel.org\n [IPv6:2600:3c15:e001:75::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g28R40Vb8z1yDD\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 20:32:16 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id 9A6DF300BEA7\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 10:31:31 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 4186337756E;\n\tFri, 24 Apr 2026 10:31:31 +0000 (UTC)","from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com\n [205.220.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id A739736F414\n\tfor <linux-tegra@vger.kernel.org>; Fri, 24 Apr 2026 10:31:29 +0000 (UTC)","from pps.filterd (m0279868.ppops.net [127.0.0.1])\n\tby mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63O96W9b1533422\n\tfor <linux-tegra@vger.kernel.org>; Fri, 24 Apr 2026 10:31:28 GMT","from mail-pf1-f198.google.com (mail-pf1-f198.google.com\n [209.85.210.198])\n\tby mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dqr26km5p-1\n\t(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n\tfor <linux-tegra@vger.kernel.org>; Fri, 24 Apr 2026 10:31:28 +0000 (GMT)","by mail-pf1-f198.google.com with SMTP id\n d2e1a72fcca58-82f756ebd0dso5115120b3a.1\n        for <linux-tegra@vger.kernel.org>;\n Fri, 24 Apr 2026 03:31:28 -0700 (PDT)","from [10.239.60.18] ([106.192.26.241])\n        by smtp.gmail.com with ESMTPSA id\n d2e1a72fcca58-82f8e9cbb1dsm25153536b3a.14.2026.04.24.03.31.15\n        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n        Fri, 24 Apr 2026 03:31:26 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777026691; cv=none;\n b=uIuMDgpRTwmpdeur/qrQZhcGQKfOouQn1XmD7PuNfSe+honfM1VmpheSkrcCYGNJAi26oVxRWG+mHSDYJbW+o0llFCN+urKphpLY2A8jkWT8aV85ZMR+oIrtt2+n6epwXKLaAhUYRuwXcakqXqBliOVI62CmFyI7eh+Yf/4NEI4=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777026691; c=relaxed/simple;\n\tbh=YMZ3usUZw9E0KGvmv+ttUT13W4jFnP9tOa+jYYoLrz4=;\n\th=Message-ID:Date:MIME-Version:From:Subject:To:Cc:References:\n\t In-Reply-To:Content-Type;\n b=k3H9JpXOcdBawg+SdULvcn3tMK0gGYiNb5fiAG8lLX9sE1tG3JUaEGE03CmOta2aZNRh/Gs+hSWDks3WGH5ETCEZWOiBMXtv7/SLur+aq0m+KH8R8QUxfaqUoC9vE9gR472smD1ZIruo9ig38ur9QH/l3sWTweixDgUIuvknOuc=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com;\n spf=pass smtp.mailfrom=oss.qualcomm.com;\n dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=R6JWbiHr;\n dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=JJ00qwCE; arc=none smtp.client-ip=205.220.180.131","DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n\tcc:content-transfer-encoding:content-type:date:from:in-reply-to\n\t:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=\n\tfkq8FSSmqZ+BgpWN2pN52kgGZ+J4MmKi/hhUikJKRsM=; b=R6JWbiHr1Hws4KFD\n\tP9EShqlovtNlSf0AByxhdLPJUa4yZ+U1z93tuKKYXReXUOh1Ohhj0F+mt6flshwR\n\t/tF0rSAvddvM7tnnRNYDFv3A9iHf1kV53PboqvNmAtcE591LZnrza8MHeK7UtcNz\n\t7ZOsi/JRnOGYSR7FEDqRo30aq6g1dO6aqVzP4lJDQtaHtAmCoHR2NBnkWM9ZsnaH\n\tjp4+B05Y44J3DavygqvO8iGPet00xALCA+r31AZfZC8hIbuVWCLFIeWfApqtVG2/\n\tv9sxRb5TtsM4rnbuuWDe01yfk7PpNWDZWXSqhooweWZSAg3Fseq3PT6bCsIOiDrn\n\t5FvXyQ==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=oss.qualcomm.com; s=google; t=1777026688; x=1777631488;\n darn=vger.kernel.org;\n        h=content-transfer-encoding:in-reply-to:content-language:references\n         :cc:to:subject:from:user-agent:mime-version:date:message-id:from:to\n         :cc:subject:date:message-id:reply-to;\n        bh=fkq8FSSmqZ+BgpWN2pN52kgGZ+J4MmKi/hhUikJKRsM=;\n        b=JJ00qwCE1Pbb7cZYucbR0EvFn47A0+Om/AwZBQTxo8oRdiq2wRUVkVmcJibUz0SouX\n         0d4A9dxs498eMKFI//0KiCDXwRDy2PoS8fNu14hHsph2cRl2eOPn0Y1xYUiJgY1T3bZt\n         auclNzQvhIXjEVFNtFe0ao2Mkn68a7Tfxj5yK94gqoBN015f5lvIn/AgmNo+MkboKVgd\n         zMlBoTDzSi7W9Mn4GbTp4la2Xjrp+uUU+kOs7bPfYz00kWJtTIfrW68pEn5m9ZH8vVZw\n         fG8qD2fXQQ8wSbh4APQGd6sjqiXSEAPUHbRZmlt4YmVF1xa35OfpgkyZ9G8l/UKgzSPS\n         25pA=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1777026688; x=1777631488;\n        h=content-transfer-encoding:in-reply-to:content-language:references\n         :cc:to:subject:from:user-agent:mime-version:date:message-id:x-gm-gg\n         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n        bh=fkq8FSSmqZ+BgpWN2pN52kgGZ+J4MmKi/hhUikJKRsM=;\n        b=kuTtdskLYii9s7PWv+t+WGqVcZPg9wtSM6QubJ+c758zfUiqlWXfhCKLwKcxIJl6pG\n         fdGNRs3F2Cl0Ie1F4wmlOgA5lyNzq1WHD61VWJyQdTUm3dCasRd9vR6rD1Dq8+GBDecm\n         ONILCeM4zKzhBW1UkU7aWaLTHHckZAUlSWHYTwoJn/IDYcPFeFNuDIuUfyzYJQQuHwGn\n         iQ3S/xn0kFWPFKZkOJaPDPV6pTfGdM6DCFnfur2lz1pl7javpsiaId6/JGrMW7Fs8DMA\n         olStmKhUKXQ8DRssfTZ3MqF+J6wNAbqsvqdPRdPAVT6cpn1MmBA1HnvKq+mrC5AXEO8P\n         Mnmg==","X-Forwarded-Encrypted":"i=1;\n AFNElJ96MYJZItB6l3pkfzoQvFG+cfZsF8rUZOpQOfrBklC0Tah/ODn85/DWFiqlBXlehHdKHPKoyq9ULbIKlg==@vger.kernel.org","X-Gm-Message-State":"AOJu0Yy7u0vU1PoF+FwX+M4fjqHYKEepUAZ9T8t/sMyqA2KhXCf31Qfv\n\tAy0F7Lv1D560ZxQl4S/F92XRLM9jSvHAfK8nztkqztdTuLlPCAJq2MxNTQkSCFt7ZH+8VXAVdWn\n\tFZYEVtFxfkaEu49TwcbVv7gqKnAaA9ILguiLvjEohTz44Wni6Xv6w2kV/PPucVSZ4vg==","X-Gm-Gg":"AeBDietbPYwW07RWykw1dx6j+n6/RFIOEiX3AUbnWwzsXcxOnvpmF6hUXP+FBDnjluj\n\tffJ0T2U1yba9CIEGrXJ/K3U3z0KsAaalkREzszeZ9mpXvAd9ad4ttMw3h/ZaSNiPJX/pKUJicMA\n\t3JQ0FYDlHE4vAYG4fl2z+1D+8SIK8iV5Z9QwaeLoku/ZJNiXQUziTQVzIDeceqkEKYoA7PNvaXf\n\tomVop/gOzejY4kAVfCsbv/tH11fTapAsZWHxzXHz0qe+IhCsDTl9VKgzoyGmlwOSUerV/Jgmuwu\n\tYXXpMVGVJZUGubiP3S8aFzUqA59SEYZbIj7xQCauZ5eEO+rcVBFvJA5YGSVtPgXaRxF+fXHioCw\n\t6DPuXoBRcdjM+TgW6X4hm9TboIRG73FLbujaFcjra8urspLPkJs59TAwfxxiiLOqa","X-Received":["by 2002:a05:6a00:2e9c:b0:82c:e1a0:3447 with SMTP id\n d2e1a72fcca58-82f8c962033mr34808618b3a.23.1777026687558;\n        Fri, 24 Apr 2026 03:31:27 -0700 (PDT)","by 2002:a05:6a00:2e9c:b0:82c:e1a0:3447 with SMTP id\n d2e1a72fcca58-82f8c962033mr34808559b3a.23.1777026686919;\n        Fri, 24 Apr 2026 03:31:26 -0700 (PDT)"],"Message-ID":"<06c04947-e72e-679b-493b-e112d693f391@oss.qualcomm.com>","Date":"Fri, 24 Apr 2026 16:01:13 +0530","Precedence":"bulk","X-Mailing-List":"linux-tegra@vger.kernel.org","List-Id":"<linux-tegra.vger.kernel.org>","List-Subscribe":"<mailto:linux-tegra+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-tegra+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101\n Thunderbird/102.8.0","From":"Vishnu Reddy <busanna.reddy@oss.qualcomm.com>","Subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","To":"Greg Kroah-Hartman <gregkh@linuxfoundation.org>","Cc":"Bryan O'Donoghue <bod@kernel.org>,\n        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,\n        Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>,\n        Abhinav Kumar <abhinav.kumar@linux.dev>,\n        Mauro Carvalho Chehab <mchehab@kernel.org>,\n        Rob Herring <robh@kernel.org>,\n        Krzysztof Kozlowski <krzk+dt@kernel.org>,\n        Conor Dooley\n <conor+dt@kernel.org>, Joerg Roedel <joro@8bytes.org>,\n        Will Deacon <will@kernel.org>, Robin Murphy <robin.murphy@arm.com>,\n        Bjorn Andersson <andersson@kernel.org>,\n        Konrad Dybcio <konradybcio@kernel.org>,\n        Stefan Schmidt <stefan.schmidt@linaro.org>,\n        Hans Verkuil <hverkuil@kernel.org>,\n        \"Rafael J. Wysocki\" <rafael@kernel.org>,\n        Danilo Krummrich <dakr@kernel.org>,\n        Thierry Reding <thierry.reding@kernel.org>,\n        Mikko Perttunen <mperttunen@nvidia.com>,\n        David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,\n        Jonathan Hunter <jonathanh@nvidia.com>, linux-media@vger.kernel.org,\n        linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,\n        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,\n        driver-core@lists.linux.dev, dri-devel@lists.freedesktop.org,\n        linux-tegra@vger.kernel.org,\n        Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>,\n        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>","References":"<20260423-glymur-v2-0-0296bccb9f4e@oss.qualcomm.com>\n <20260423-glymur-v2-2-0296bccb9f4e@oss.qualcomm.com>\n <2026042346-trustable-register-095a@gregkh>","Content-Language":"en-US","In-Reply-To":"<2026042346-trustable-register-095a@gregkh>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit","X-Proofpoint-ORIG-GUID":"msMCCKjXBRXB2kpQ_qgoLoNS8iZeB3F9","X-Authority-Analysis":"v=2.4 cv=QLhYgALL c=1 sm=1 tr=0 ts=69eb4680 cx=c_pps\n a=m5Vt/hrsBiPMCU0y4gIsQw==:117 a=K3jt3zD9TrcZs+Uyli2v9A==:17\n a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10\n a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22\n a=VwQbUJbxAAAA:8 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=5Qc4mBPHLNQQZN8o19QA:9\n a=QEXdDO2ut3YA:10 a=IoOABgeZipijB_acs4fv:22 a=a-qgeE7W1pNrGK8U0ZQC:22","X-Proofpoint-GUID":"msMCCKjXBRXB2kpQ_qgoLoNS8iZeB3F9","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDI0MDA5OSBTYWx0ZWRfX851F1MnTcGNx\n FbHuHfpCgezAvYLrjdgwNhdTRhHD5goen9IKzyu7zuODVAKUb/FE1hWDGSooVjQvkuYZTWKuFf9\n qE2e7g2J/HBx7ndbPMTh5w9obL5AH6wjw9DeDTinLOgVXkRx1A2pawOvDda2RkBL5C97veQjJCl\n qZ3q95A/1VAczu+4nwSnVIkcXGXV5NB4EE428SilP7Q7UsbJeVM7vuBpZ1qr4fFftgEY7UhNRgp\n uIszDmdk4pivZsrOrWP46rDIuP7HsO93sVddKfpItcx8rSF7COj6owmlsx9nHV1qV+rFOpaKVm2\n CErcg1iBK3RZO0Wa5cwQ3EJfHb/5UZBWK4EwhRKdOU3j1x/F7H8XmPHppTuKXThVTRE/HXmSIXZ\n zhHDZ80u68SoXjG4tWV3VdipQUghM/iE4+1Ki9HCeKbNxGGoWFEYFhYYYyQutRk37yaO7IhTXZu\n AqRc15iEClsqiv4Sb/w==","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-23_03,2026-04-21_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n impostorscore=0 spamscore=0 suspectscore=0 phishscore=0 bulkscore=0\n lowpriorityscore=0 malwarescore=0 adultscore=0 clxscore=1015\n priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc=\n route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000\n definitions=main-2604240099"}},{"id":3681978,"web_url":"http://patchwork.ozlabs.org/comment/3681978/","msgid":"<2026042422-deem-chemist-8d0f@gregkh>","list_archive_url":null,"date":"2026-04-24T11:13:28","subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","submitter":{"id":11800,"url":"http://patchwork.ozlabs.org/api/people/11800/","name":"Greg KH","email":"gregkh@linuxfoundation.org"},"content":"On Fri, Apr 24, 2026 at 04:01:13PM +0530, Vishnu Reddy wrote:\n> \n> On 4/23/2026 7:07 PM, Greg Kroah-Hartman wrote:\n> > On Thu, Apr 23, 2026 at 06:59:31PM +0530, Vishnu Reddy wrote:\n> >> From: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n> >>\n> >> When a driver needs to create virtual device at runtime and map it to\n> >> an IOMMU context for memory isolation, there is no common bus available\n> >> for this purpose. Each driver ends up implementing its own bus type,\n> >> leading to duplicated logic across multiple drivers.\n> >>\n> >> host1x driver implemented its own bus type to attach an IOMMU context to\n> >> a dynamically created device. The Iris VPU driver now has the same\n> >> requirement. Rather than duplicating the same bus logic again, a shared\n> >> bus type is introduced under drivers/base that multiple drivers can use\n> >> directly.\n> >>\n> >> The bus takes care of creating a device and attaching the IOMMU context\n> >> to it based on the client inputs.\n> >>\n> >> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>\n> >> Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n> >> Signed-off-by: Vikash Garodia <vikash.garodia@oss.qualcomm.com>\n> >> Signed-off-by: Vishnu Reddy <busanna.reddy@oss.qualcomm.com>\n> >> ---\n> >>  drivers/base/Kconfig            |  3 ++\n> >>  drivers/base/Makefile           |  1 +\n> >>  drivers/base/dma_context_bus.c  | 77 +++++++++++++++++++++++++++++++++++++++++\n> >>  include/linux/dma_context_bus.h | 26 ++++++++++++++\n> >>  4 files changed, 107 insertions(+)\n> > as you can not have a device on multiple busses at the same time, this\n> > makes no sense to me at all.  \"dma context\" is a bus-specific thing, so\n> > please add it to the bus that you are wanting it for.  It can't be a\n> > generic bus as that just doesn't work.\n> >\n> > Or what am I missing here?\n> >\n> > And why is DMA somehow \"special\" here from any other hardware attribute?\n> \n> Let me give brief information which was discussed, in the initial series,\n> the iris VPU used platform bus for dynamically created devices and we got\n> the comment/suggestion from Robin to implement a proper bus_type with a\n> .dma_configure callback.\n> \n> https://lore.kernel.org/all/02b3d0f5-f94c-43cd-93af-97cfcf7751b1@arm.com/\n> \n> based on the discussion, implemented the dma_context_bus and used for iris\n> VPU devices instead of platform bus.\n\nWhy not make a irus_vpu_bus where you can do what you want?\n\n> Here, the device have only one bus (dma_context_bus), not multiple buses.\n> \n> Regarding the \"DMA\" naming, the core operation of this bus is its\n> .dma_configure callback, which calls of_dma_configure_id() to map the device\n> to a corresponding IOMMU stream ID. The name \"dma_context\" reflects this\n> purpose.\n> \n> I am open to suggestions from you or Robin or anyone else, if there is a\n> better or preferred way to achieve this, I am happy to consider it and\n> rework the implementation accordingly.\n\nAs there is only one user, just make this your own bus please and do all\nof the needed bus operations for your devices there (i.e. don't hang an\n\"empty\" device off of it.)\n\nthanks,\n\ngreg k-h","headers":{"Return-Path":"\n <linux-tegra+bounces-13941-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-tegra@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=linuxfoundation.org header.i=@linuxfoundation.org\n header.a=rsa-sha256 header.s=korg header.b=bmWYFYeG;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-tegra+bounces-13941-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=linuxfoundation.org\n header.i=@linuxfoundation.org header.b=\"bmWYFYeG\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g29Lt3BBnz1xvV\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 21:13:42 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id BFFCF3010B91\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 11:13:31 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 7FF6A3AA4E9;\n\tFri, 24 Apr 2026 11:13:31 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 19DDC3A962E;\n\tFri, 24 Apr 2026 11:13:30 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 1B317C19425;\n\tFri, 24 Apr 2026 11:13:30 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777029211; cv=none;\n b=cBG2I7zV3gVdKRe3Hk1vCLvywVwH5BfAM0xbJmAOx8ZJdHUmfwxFSerGWRHhA8jM+FcvCaRy+0Q3U7r0SUJrNIN0dPy4XAF1nXOFwPElChpgvzvkqseJ5GRNKtqouIxqmRZUCSzJ/8CzSpWpyQe84jADnXGJ/gbORdWQjUJfZPc=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777029211; c=relaxed/simple;\n\tbh=GqTs5ygTosFneocKlPAOSsqLvTcgAi1JqGhpB7fqPO0=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=ahmXJ2clxcAt0tUIlGwsdSNVAtrDWE+Y2AJ0uwAU700b6pOT7VaJD21tPEhgEYc5oCjW1doMfEMnJ0TgTymxl1XPTEy99RwoKSHBJ9PqcxqnTp+CpGEkkHX/SU6GUe3hWzyL7F/GtGix9TGkifEolu9KylYE0N4UY9tbTht92ic=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (1024-bit key) header.d=linuxfoundation.org\n header.i=@linuxfoundation.org header.b=bmWYFYeG;\n arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org;\n\ts=korg; t=1777029210;\n\tbh=GqTs5ygTosFneocKlPAOSsqLvTcgAi1JqGhpB7fqPO0=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=bmWYFYeGbYMYG+FurHRaKqSkn/WAjZM4tyqApKy29MaSa0pS2QhfJ7BhV2FWlS7R8\n\t +7naXHvd44tPIESI0DP0qLKtvg8i1pa7ncTFH6RgzPvrsurmEumHnN043jovr6nj5n\n\t gP/JSsNiCdL2v0v9kbUJE99lp8N7eJBBJJrsQH10=","Date":"Fri, 24 Apr 2026 13:13:28 +0200","From":"Greg Kroah-Hartman <gregkh@linuxfoundation.org>","To":"Vishnu Reddy <busanna.reddy@oss.qualcomm.com>","Cc":"Bryan O'Donoghue <bod@kernel.org>,\n\tVikash Garodia <vikash.garodia@oss.qualcomm.com>,\n\tDikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>,\n\tAbhinav Kumar <abhinav.kumar@linux.dev>,\n\tMauro Carvalho Chehab <mchehab@kernel.org>,\n\tRob Herring <robh@kernel.org>,\n\tKrzysztof Kozlowski <krzk+dt@kernel.org>,\n\tConor Dooley <conor+dt@kernel.org>, Joerg Roedel <joro@8bytes.org>,\n\tWill Deacon <will@kernel.org>, Robin Murphy <robin.murphy@arm.com>,\n\tBjorn Andersson <andersson@kernel.org>,\n\tKonrad Dybcio <konradybcio@kernel.org>,\n\tStefan Schmidt <stefan.schmidt@linaro.org>,\n\tHans Verkuil <hverkuil@kernel.org>,\n\t\"Rafael J. Wysocki\" <rafael@kernel.org>,\n\tDanilo Krummrich <dakr@kernel.org>,\n\tThierry Reding <thierry.reding@kernel.org>,\n\tMikko Perttunen <mperttunen@nvidia.com>,\n\tDavid Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,\n\tJonathan Hunter <jonathanh@nvidia.com>, linux-media@vger.kernel.org,\n\tlinux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org, iommu@lists.linux.dev,\n\tdriver-core@lists.linux.dev, dri-devel@lists.freedesktop.org,\n\tlinux-tegra@vger.kernel.org,\n\tEkansh Gupta <ekansh.gupta@oss.qualcomm.com>,\n\tDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>","Subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","Message-ID":"<2026042422-deem-chemist-8d0f@gregkh>","References":"<20260423-glymur-v2-0-0296bccb9f4e@oss.qualcomm.com>\n <20260423-glymur-v2-2-0296bccb9f4e@oss.qualcomm.com>\n <2026042346-trustable-register-095a@gregkh>\n <06c04947-e72e-679b-493b-e112d693f391@oss.qualcomm.com>","Precedence":"bulk","X-Mailing-List":"linux-tegra@vger.kernel.org","List-Id":"<linux-tegra.vger.kernel.org>","List-Subscribe":"<mailto:linux-tegra+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-tegra+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<06c04947-e72e-679b-493b-e112d693f391@oss.qualcomm.com>"}},{"id":3681994,"web_url":"http://patchwork.ozlabs.org/comment/3681994/","msgid":"<4c3fa710-f61a-4aad-622d-54909190cb9e@oss.qualcomm.com>","list_archive_url":null,"date":"2026-04-24T11:45:02","subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","submitter":{"id":93161,"url":"http://patchwork.ozlabs.org/api/people/93161/","name":"Vishnu Reddy","email":"busanna.reddy@oss.qualcomm.com"},"content":"On 4/24/2026 4:43 PM, Greg Kroah-Hartman wrote:\n> On Fri, Apr 24, 2026 at 04:01:13PM +0530, Vishnu Reddy wrote:\n>> On 4/23/2026 7:07 PM, Greg Kroah-Hartman wrote:\n>>> On Thu, Apr 23, 2026 at 06:59:31PM +0530, Vishnu Reddy wrote:\n>>>> From: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n>>>>\n>>>> When a driver needs to create virtual device at runtime and map it to\n>>>> an IOMMU context for memory isolation, there is no common bus available\n>>>> for this purpose. Each driver ends up implementing its own bus type,\n>>>> leading to duplicated logic across multiple drivers.\n>>>>\n>>>> host1x driver implemented its own bus type to attach an IOMMU context to\n>>>> a dynamically created device. The Iris VPU driver now has the same\n>>>> requirement. Rather than duplicating the same bus logic again, a shared\n>>>> bus type is introduced under drivers/base that multiple drivers can use\n>>>> directly.\n>>>>\n>>>> The bus takes care of creating a device and attaching the IOMMU context\n>>>> to it based on the client inputs.\n>>>>\n>>>> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>\n>>>> Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n>>>> Signed-off-by: Vikash Garodia <vikash.garodia@oss.qualcomm.com>\n>>>> Signed-off-by: Vishnu Reddy <busanna.reddy@oss.qualcomm.com>\n>>>> ---\n>>>>  drivers/base/Kconfig            |  3 ++\n>>>>  drivers/base/Makefile           |  1 +\n>>>>  drivers/base/dma_context_bus.c  | 77 +++++++++++++++++++++++++++++++++++++++++\n>>>>  include/linux/dma_context_bus.h | 26 ++++++++++++++\n>>>>  4 files changed, 107 insertions(+)\n>>> as you can not have a device on multiple busses at the same time, this\n>>> makes no sense to me at all.  \"dma context\" is a bus-specific thing, so\n>>> please add it to the bus that you are wanting it for.  It can't be a\n>>> generic bus as that just doesn't work.\n>>>\n>>> Or what am I missing here?\n>>>\n>>> And why is DMA somehow \"special\" here from any other hardware attribute?\n>> Let me give brief information which was discussed, in the initial series,\n>> the iris VPU used platform bus for dynamically created devices and we got\n>> the comment/suggestion from Robin to implement a proper bus_type with a\n>> .dma_configure callback.\n>>\n>> https://lore.kernel.org/all/02b3d0f5-f94c-43cd-93af-97cfcf7751b1@arm.com/\n>>\n>> based on the discussion, implemented the dma_context_bus and used for iris\n>> VPU devices instead of platform bus.\n> Why not make a irus_vpu_bus where you can do what you want?\nInitially iris_vpu_bus was introduced, and it was made generic based on the\ndiscussion,\n\nhttps://lore.kernel.org/all/20260227-kaanapali-iris-v2-3-850043ac3933@oss.qualcomm.com/\n>> Here, the device have only one bus (dma_context_bus), not multiple buses.\n>>\n>> Regarding the \"DMA\" naming, the core operation of this bus is its\n>> .dma_configure callback, which calls of_dma_configure_id() to map the device\n>> to a corresponding IOMMU stream ID. The name \"dma_context\" reflects this\n>> purpose.\n>>\n>> I am open to suggestions from you or Robin or anyone else, if there is a\n>> better or preferred way to achieve this, I am happy to consider it and\n>> rework the implementation accordingly.\n> As there is only one user, just make this your own bus please and do all\n> of the needed bus operations for your devices there (i.e. don't hang an\n> \"empty\" device off of it.)\nThe reasoning behind to make it generic was to have more users - host1x,\nIris VPU, QDA on the generic context bus, instead of each of them having\ntheir own. Let me know if you suggest to have the iris_vpu_bus.\n\nQDA -\nhttps://lore.kernel.org/all/20260224-qda-firstpost-v1-4-fe46a9c1a046@oss.qualcomm.com/\nIris VPU -\nhttps://lore.kernel.org/all/20260227-kaanapali-iris-v2-3-850043ac3933@oss.qualcomm.com/\n> thanks,\n>\n> greg k-h","headers":{"Return-Path":"\n <linux-tegra+bounces-13942-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-tegra@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=KEErPifd;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=ftp6Ai0m;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-tegra+bounces-13942-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=\"KEErPifd\";\n\tdkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=\"ftp6Ai0m\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=205.220.168.131","smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=oss.qualcomm.com"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g2B443r0vz1yDD\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 21:45:56 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id C5E263012241\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 11:45:25 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 2FA6E3C0621;\n\tFri, 24 Apr 2026 11:45:25 +0000 (UTC)","from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com\n [205.220.168.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 716BB3BED71\n\tfor <linux-tegra@vger.kernel.org>; Fri, 24 Apr 2026 11:45:21 +0000 (UTC)","from pps.filterd (m0279863.ppops.net [127.0.0.1])\n\tby mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63OAhZIi1959801\n\tfor <linux-tegra@vger.kernel.org>; Fri, 24 Apr 2026 11:45:20 GMT","from mail-pf1-f199.google.com (mail-pf1-f199.google.com\n [209.85.210.199])\n\tby mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dr2nrhk5p-1\n\t(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n\tfor <linux-tegra@vger.kernel.org>; Fri, 24 Apr 2026 11:45:20 +0000 (GMT)","by mail-pf1-f199.google.com with SMTP id\n d2e1a72fcca58-82f74f0e3c6so4981375b3a.0\n        for <linux-tegra@vger.kernel.org>;\n Fri, 24 Apr 2026 04:45:20 -0700 (PDT)","from [10.239.60.18] ([106.192.26.241])\n        by smtp.gmail.com with ESMTPSA id\n d2e1a72fcca58-82f8ec04448sm27904931b3a.55.2026.04.24.04.45.04\n        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n        Fri, 24 Apr 2026 04:45:14 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777031124; cv=none;\n b=NEiSLMzJJR5BJrS37/yVMMxy5jJya1PSGmUdKaVl9lXht+4jnT8THRURvClPlKfuS6Tl2HiPL4m3hzJBFqgybIJODMULJj/6Cq3I2O/VvRDkYpG/YAe6cirJ6oRwD60U71R4IqmtE7sWoauex7qA+qfH/rQXN0vqTh40qBHFwZ4=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777031124; c=relaxed/simple;\n\tbh=sUwdYkQp1oZ3EzBJbnMVR1gTk663wCA8A8zZnsUbQgQ=;\n\th=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:\n\t In-Reply-To:Content-Type;\n b=Mf0OviZCt0knS6MIabFGc2+RwZ9sGdPFOXvVTNComosO7FBYWkKI4jLoK+5UaZKS2V9bhM5F3GtxBz80SKSoUoCiT9xL3WqmY0fLMltP3EM1lv3ugE6moNizLqzH16f/XDoK8QR8ELhwkL+XvX9TNPU05iqqqMzak4e1Re5ADqw=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com;\n spf=pass smtp.mailfrom=oss.qualcomm.com;\n dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=KEErPifd;\n dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=ftp6Ai0m; arc=none smtp.client-ip=205.220.168.131","DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n\tcc:content-transfer-encoding:content-type:date:from:in-reply-to\n\t:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=\n\tvKD+oIXo8r5i+72tQbUpEkekMjtbIYtq2yZlf7mfgso=; b=KEErPifdYn4zic/W\n\t+0SI2Cxb09hK+xb2nh4J1gZerJ3aNlQnxYHaQlbgVa08VCXZ+4T54lQTHE8E487F\n\tcCSzG0BcBokq8YT3neEZg7zNGhuQlxJR8iVdmo92VrP6mRait0WrN0DJmPMuFfaH\n\tyjSA4GIed25xK5BkjbDiwWinSrGkrsqst/ZysXd0TZoXuXNBO0hKyZxC9t1JcGL/\n\tOEQxmiKBTTihMWypvZa9l+Be22bVLesE2xCwtkcIokiB0+B+CY5Y2piY9RdblTSI\n\tGGmX0WB879Um7NO/Q+CnSgas3JjafGv3s2uw0iEA27A59O2a5BNOU8pikUrxggCf\n\tQzzUEA==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=oss.qualcomm.com; s=google; t=1777031119; x=1777635919;\n darn=vger.kernel.org;\n        h=content-transfer-encoding:in-reply-to:from:references:cc:to\n         :content-language:subject:user-agent:mime-version:date:message-id\n         :from:to:cc:subject:date:message-id:reply-to;\n        bh=vKD+oIXo8r5i+72tQbUpEkekMjtbIYtq2yZlf7mfgso=;\n        b=ftp6Ai0mj9eMCfibgWzbgCmuOB2bEK23yBF049ND9Ms/WbGxSzNI30D4WwhnqXtW+M\n         QKPuLN47peumCt61rKjtPZqfS5IzSwo4sYKURGfGfXVDmHHKJYHi+cvC5YZGe85Rkv4V\n         lNr8iN9h+EjDree/2yEmhQuQj9O5Aheo6C/YDiIuNdK4+K5cDrMee1rILK0w9KJ2p+SI\n         MtbPQtPqzT7UlH+HcD2abTNdFPLBx0YTK0x/EcEhsAQy3TVZOJ8f56gDGnErWFCvaXkP\n         Kf9Vac5KjqgAlC0Xv3xKE9L6psWaxMkyxGA0/rxkNNlChBSzuK0aKfsktu6y91zDyTMG\n         phsw=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1777031119; x=1777635919;\n        h=content-transfer-encoding:in-reply-to:from:references:cc:to\n         :content-language:subject:user-agent:mime-version:date:message-id\n         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n         :reply-to;\n        bh=vKD+oIXo8r5i+72tQbUpEkekMjtbIYtq2yZlf7mfgso=;\n        b=Q4JexfFP4oCS3nC2L/U9rySSRKf00NcZKmJglcUQx6gkImr7D6QZihrsxeTDdZxnmZ\n         6+M8y93UjgAVezsa73oryy+7VZY0y0MSqqOY3fiFcEGHzl9ZDtEEPO9rK9W0XA2SL2Dr\n         dzcBaXkAnsuoopapeC30HFHQcxWsrdAUMU8F/0ko+a13IM/5/xmRoz7R8dNyWN81mALQ\n         GwU7XXT6fZJ8G1RH+XuHu/0ygjLC1U2YRClItoa2oMPWuKgT4SaGJ8TY6vcZe5LMECwI\n         nVD3SkSTfib7IK0P+dnh13DgkMqBqzxbzIytQWzWFIsq943O4VZcIW9X0W//uNJwSbwH\n         8AFA==","X-Forwarded-Encrypted":"i=1;\n AFNElJ9np2Dtq7vdofSnTx+G3OyrEyOM7U0t/rrNMI+UH25FgESohmKPRO5m0UKuO/P8LXNpPHzMpPwIKo5c1w==@vger.kernel.org","X-Gm-Message-State":"AOJu0YxScR/ARrW53H4dbOLRgSefegkAfUmrRhFBAp7b6aEB3b1vYWHl\n\tgPUV//3CMn4Tzj5ksPmwUNHdlYfh+16dKsdMK1PjvAKysRJfRBcVtUSDU/sDCP020BmRRki0iLc\n\t91lsyGMrs9li9cGkqnDGEtAm8zNgxsxJtv0VB0lLQq+rTiE2z1pEHIzqtXGiNdauHjw==","X-Gm-Gg":"AeBDies0Cavim8EYKbvp/5GtW5FldoNrc72jDZ6bd+PWbnpwP9fkWY8pvbP/tgDj2Qk\n\t45smlTjYW7DVVR0LZeGhFG0eEbK8RevivBmmZ/xL5fCsD9TFB4h7qs7OydkXIXVG5ryPBVWZB9E\n\tVVhQhIn6mJZPZF+M1XieQWjq3tPJCiw7vEvux8NXbIYpKuON1ghzlQ0ERtkEGkiPbgQVCMU9NyU\n\tYTEX2VUaID7xuIIhpXl2Jqq9bUHckInT8JOR78c3yjwcmsQZJ8Zmiru3CcRg++LMy373Z9217cP\n\tPI/lCKdxFLlC4/+IO1VhFHlt7J0qvxToC/kFwYhQdZ2dqe/uO9jtwOxYtRjBFREFJUb9I0v3dtC\n\txOusmkP5KE/IgrJNvaFN3//PwxYVmbDyh8SYT50c1MqWXbojRHPeLyMWj/YGbkqrj","X-Received":["by 2002:a05:6a00:27a8:b0:82f:18fa:1668 with SMTP id\n d2e1a72fcca58-82f8c91e3cbmr31091211b3a.44.1777031115615;\n        Fri, 24 Apr 2026 04:45:15 -0700 (PDT)","by 2002:a05:6a00:27a8:b0:82f:18fa:1668 with SMTP id\n d2e1a72fcca58-82f8c91e3cbmr31091150b3a.44.1777031115048;\n        Fri, 24 Apr 2026 04:45:15 -0700 (PDT)"],"Message-ID":"<4c3fa710-f61a-4aad-622d-54909190cb9e@oss.qualcomm.com>","Date":"Fri, 24 Apr 2026 17:15:02 +0530","Precedence":"bulk","X-Mailing-List":"linux-tegra@vger.kernel.org","List-Id":"<linux-tegra.vger.kernel.org>","List-Subscribe":"<mailto:linux-tegra+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-tegra+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101\n Thunderbird/102.8.0","Subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","Content-Language":"en-US","To":"Greg Kroah-Hartman <gregkh@linuxfoundation.org>","Cc":"Bryan O'Donoghue <bod@kernel.org>,\n        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,\n        Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>,\n        Abhinav Kumar <abhinav.kumar@linux.dev>,\n        Mauro Carvalho Chehab <mchehab@kernel.org>,\n        Rob Herring <robh@kernel.org>,\n        Krzysztof Kozlowski <krzk+dt@kernel.org>,\n        Conor Dooley\n <conor+dt@kernel.org>, Joerg Roedel <joro@8bytes.org>,\n        Will Deacon <will@kernel.org>, Robin Murphy <robin.murphy@arm.com>,\n        Bjorn Andersson <andersson@kernel.org>,\n        Konrad Dybcio <konradybcio@kernel.org>,\n        Stefan Schmidt <stefan.schmidt@linaro.org>,\n        Hans Verkuil <hverkuil@kernel.org>,\n        \"Rafael J. Wysocki\" <rafael@kernel.org>,\n        Danilo Krummrich <dakr@kernel.org>,\n        Thierry Reding <thierry.reding@kernel.org>,\n        Mikko Perttunen <mperttunen@nvidia.com>,\n        David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,\n        Jonathan Hunter <jonathanh@nvidia.com>, linux-media@vger.kernel.org,\n        linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,\n        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,\n        driver-core@lists.linux.dev, dri-devel@lists.freedesktop.org,\n        linux-tegra@vger.kernel.org,\n        Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>,\n        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>","References":"<20260423-glymur-v2-0-0296bccb9f4e@oss.qualcomm.com>\n <20260423-glymur-v2-2-0296bccb9f4e@oss.qualcomm.com>\n <2026042346-trustable-register-095a@gregkh>\n <06c04947-e72e-679b-493b-e112d693f391@oss.qualcomm.com>\n <2026042422-deem-chemist-8d0f@gregkh>","From":"Vishnu Reddy <busanna.reddy@oss.qualcomm.com>","In-Reply-To":"<2026042422-deem-chemist-8d0f@gregkh>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDI0MDExMSBTYWx0ZWRfXyhJ0iNh/p99q\n arl1o0wLf2ADe+PMZeBJOWNJGkMARLJu8oggw/Mv/i0A0QMWoOh6K/qlufkCrOvDF5VOspvjhLd\n qdVZYbHmwPYuUcmUwdooXNpVR2IXpUMEQ75DC1Yf9esReM+IzYCR4xn9rkGeB3qgrECT1jLTvwz\n zZMs1TIpnnbDCxdVdWl4KVGf+1Ya6B3VBTwldJEDaz4WrlXacVR3AAjW2tyJQpqTq0l7ag2Q9kY\n kK8dqo3hiTho4rhP5pMDhjiK6Sf9QiW5G8xher/CworW7akGTlIle/RQbxZf+uNv3RBDS4Uk9o5\n QHlAWU5fOhAQmqg4j7cwYQd3gvGDbpk9j+2cIiWKCH3CnwYzol9IvQvhed0ElXvd4TPGuvWHQGV\n FXeHLIhojEeC3+nb3EpD0rk2vgZ/qQKtsuLzHesZy3AUXv3ckS9Egy1/QM01XBdb9iMaz6Wtyk3\n ZpXic4MVzVMB7AObFcg==","X-Authority-Analysis":"v=2.4 cv=UqpT8ewB c=1 sm=1 tr=0 ts=69eb57d0 cx=c_pps\n a=WW5sKcV1LcKqjgzy2JUPuA==:117 a=K3jt3zD9TrcZs+Uyli2v9A==:17\n a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10\n a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22\n a=VwQbUJbxAAAA:8 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=qtrQGJdHBaugJqU6AYUA:9\n a=QEXdDO2ut3YA:10 a=OpyuDcXvxspvyRM73sMx:22 a=a-qgeE7W1pNrGK8U0ZQC:22","X-Proofpoint-ORIG-GUID":"n5PFedyDAO7McfXMXxVWmpnWehFPAL_z","X-Proofpoint-GUID":"n5PFedyDAO7McfXMXxVWmpnWehFPAL_z","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-23_03,2026-04-21_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n suspectscore=0 priorityscore=1501 clxscore=1015 bulkscore=0\n lowpriorityscore=0 impostorscore=0 phishscore=0 adultscore=0 spamscore=0\n malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc=\n route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000\n definitions=main-2604240111"}},{"id":3681998,"web_url":"http://patchwork.ozlabs.org/comment/3681998/","msgid":"<2026042428-blemish-helpline-7d8d@gregkh>","list_archive_url":null,"date":"2026-04-24T11:55:19","subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","submitter":{"id":11800,"url":"http://patchwork.ozlabs.org/api/people/11800/","name":"Greg KH","email":"gregkh@linuxfoundation.org"},"content":"On Fri, Apr 24, 2026 at 05:15:02PM +0530, Vishnu Reddy wrote:\n> \n> On 4/24/2026 4:43 PM, Greg Kroah-Hartman wrote:\n> > On Fri, Apr 24, 2026 at 04:01:13PM +0530, Vishnu Reddy wrote:\n> >> On 4/23/2026 7:07 PM, Greg Kroah-Hartman wrote:\n> >>> On Thu, Apr 23, 2026 at 06:59:31PM +0530, Vishnu Reddy wrote:\n> >>>> From: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n> >>>>\n> >>>> When a driver needs to create virtual device at runtime and map it to\n> >>>> an IOMMU context for memory isolation, there is no common bus available\n> >>>> for this purpose. Each driver ends up implementing its own bus type,\n> >>>> leading to duplicated logic across multiple drivers.\n> >>>>\n> >>>> host1x driver implemented its own bus type to attach an IOMMU context to\n> >>>> a dynamically created device. The Iris VPU driver now has the same\n> >>>> requirement. Rather than duplicating the same bus logic again, a shared\n> >>>> bus type is introduced under drivers/base that multiple drivers can use\n> >>>> directly.\n> >>>>\n> >>>> The bus takes care of creating a device and attaching the IOMMU context\n> >>>> to it based on the client inputs.\n> >>>>\n> >>>> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>\n> >>>> Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n> >>>> Signed-off-by: Vikash Garodia <vikash.garodia@oss.qualcomm.com>\n> >>>> Signed-off-by: Vishnu Reddy <busanna.reddy@oss.qualcomm.com>\n> >>>> ---\n> >>>>  drivers/base/Kconfig            |  3 ++\n> >>>>  drivers/base/Makefile           |  1 +\n> >>>>  drivers/base/dma_context_bus.c  | 77 +++++++++++++++++++++++++++++++++++++++++\n> >>>>  include/linux/dma_context_bus.h | 26 ++++++++++++++\n> >>>>  4 files changed, 107 insertions(+)\n> >>> as you can not have a device on multiple busses at the same time, this\n> >>> makes no sense to me at all.  \"dma context\" is a bus-specific thing, so\n> >>> please add it to the bus that you are wanting it for.  It can't be a\n> >>> generic bus as that just doesn't work.\n> >>>\n> >>> Or what am I missing here?\n> >>>\n> >>> And why is DMA somehow \"special\" here from any other hardware attribute?\n> >> Let me give brief information which was discussed, in the initial series,\n> >> the iris VPU used platform bus for dynamically created devices and we got\n> >> the comment/suggestion from Robin to implement a proper bus_type with a\n> >> .dma_configure callback.\n> >>\n> >> https://lore.kernel.org/all/02b3d0f5-f94c-43cd-93af-97cfcf7751b1@arm.com/\n> >>\n> >> based on the discussion, implemented the dma_context_bus and used for iris\n> >> VPU devices instead of platform bus.\n> > Why not make a irus_vpu_bus where you can do what you want?\n> Initially iris_vpu_bus was introduced, and it was made generic based on the\n> discussion,\n> \n> https://lore.kernel.org/all/20260227-kaanapali-iris-v2-3-850043ac3933@oss.qualcomm.com/\n\nI don't really see that request here, I see a \"make this better and more\ngeneric for other busses\" but that does not mean \"dump it into\ndrivers/bus/ for someone else to maintain\" :)\n\n> >> Here, the device have only one bus (dma_context_bus), not multiple buses.\n> >>\n> >> Regarding the \"DMA\" naming, the core operation of this bus is its\n> >> .dma_configure callback, which calls of_dma_configure_id() to map the device\n> >> to a corresponding IOMMU stream ID. The name \"dma_context\" reflects this\n> >> purpose.\n> >>\n> >> I am open to suggestions from you or Robin or anyone else, if there is a\n> >> better or preferred way to achieve this, I am happy to consider it and\n> >> rework the implementation accordingly.\n> > As there is only one user, just make this your own bus please and do all\n> > of the needed bus operations for your devices there (i.e. don't hang an\n> > \"empty\" device off of it.)\n> The reasoning behind to make it generic was to have more users - host1x,\n> Iris VPU, QDA on the generic context bus, instead of each of them having\n> their own. Let me know if you suggest to have the iris_vpu_bus.\n\nBut you did not add such users here, so how would we know this?\n\nAnd still, I have no idea what this bus really is doing.  Is it dynamic?\nIs it self-describing?  Why not just use aux-bus?  What is it supposed\nto be doing and used for?\n\nstill totally confused,\n\ngreg k-h","headers":{"Return-Path":"\n <linux-tegra+bounces-13943-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-tegra@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=linuxfoundation.org header.i=@linuxfoundation.org\n header.a=rsa-sha256 header.s=korg header.b=emXKArew;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-tegra+bounces-13943-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=linuxfoundation.org\n header.i=@linuxfoundation.org header.b=\"emXKArew\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g2BKd0Vq4z1xvV\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 21:57:41 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 271003036D7F\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 11:55:23 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id EABC23C2760;\n\tFri, 24 Apr 2026 11:55:22 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 605DA3C061D;\n\tFri, 24 Apr 2026 11:55:22 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 86C75C2BCB2;\n\tFri, 24 Apr 2026 11:55:21 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777031722; cv=none;\n b=LVrUsIKSHRm3hKwObTr87WZhIbUyyKF0fcAiSbLy4dUwSabVkIeAUiFzV1F+HrGHIaOPL+agBVivHQjSDTViWgQPgUwntTVZQg+Nb6hCpi8vJPESLp/crMMnAEU0a98sczD1bp0nydNQ1f3HomM6+kIBCKGiYBK5PZCEQ0bKw8I=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777031722; c=relaxed/simple;\n\tbh=3sGm0CtNeMyxvoxyTsn9tGTUUQmNik0i9na4gi9/c/E=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=FzHHKFEaoQznKiX6/bUnDBiTL9S5sy7TVROGHvvSoWPMqRvaZyN17HqC7b0aDzw2gFUUJLj5+Wzfvrx/SpQwcVq3hrxBscqiB8/bLhukbHjMxgg9qaJFbVcR23yaEcROIhWkkzB0P8npUlhKqdmcd1Pph04FzNrvaBFdUrnv0Vg=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (1024-bit key) header.d=linuxfoundation.org\n header.i=@linuxfoundation.org header.b=emXKArew;\n arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org;\n\ts=korg; t=1777031722;\n\tbh=3sGm0CtNeMyxvoxyTsn9tGTUUQmNik0i9na4gi9/c/E=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=emXKArew82z8jyq1RECSlihUt6jeOEmAagE+12KYKAcywJi51oKfYF9J40fUJOyof\n\t Z5pVFhExBNSatBsbJyRm8w5giaG/n/wqJ5Pj6lAgl1+e72piF+lF1o4UOJ8x7oWrKh\n\t iHvt8kArSk81cIUHY6hbL1V8MkyiU9Tj23AclgQI=","Date":"Fri, 24 Apr 2026 13:55:19 +0200","From":"Greg Kroah-Hartman <gregkh@linuxfoundation.org>","To":"Vishnu Reddy <busanna.reddy@oss.qualcomm.com>","Cc":"Bryan O'Donoghue <bod@kernel.org>,\n\tVikash Garodia <vikash.garodia@oss.qualcomm.com>,\n\tDikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>,\n\tAbhinav Kumar <abhinav.kumar@linux.dev>,\n\tMauro Carvalho Chehab <mchehab@kernel.org>,\n\tRob Herring <robh@kernel.org>,\n\tKrzysztof Kozlowski <krzk+dt@kernel.org>,\n\tConor Dooley <conor+dt@kernel.org>, Joerg Roedel <joro@8bytes.org>,\n\tWill Deacon <will@kernel.org>, Robin Murphy <robin.murphy@arm.com>,\n\tBjorn Andersson <andersson@kernel.org>,\n\tKonrad Dybcio <konradybcio@kernel.org>,\n\tStefan Schmidt <stefan.schmidt@linaro.org>,\n\tHans Verkuil <hverkuil@kernel.org>,\n\t\"Rafael J. Wysocki\" <rafael@kernel.org>,\n\tDanilo Krummrich <dakr@kernel.org>,\n\tThierry Reding <thierry.reding@kernel.org>,\n\tMikko Perttunen <mperttunen@nvidia.com>,\n\tDavid Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,\n\tJonathan Hunter <jonathanh@nvidia.com>, linux-media@vger.kernel.org,\n\tlinux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org, iommu@lists.linux.dev,\n\tdriver-core@lists.linux.dev, dri-devel@lists.freedesktop.org,\n\tlinux-tegra@vger.kernel.org,\n\tEkansh Gupta <ekansh.gupta@oss.qualcomm.com>,\n\tDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>","Subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","Message-ID":"<2026042428-blemish-helpline-7d8d@gregkh>","References":"<20260423-glymur-v2-0-0296bccb9f4e@oss.qualcomm.com>\n <20260423-glymur-v2-2-0296bccb9f4e@oss.qualcomm.com>\n <2026042346-trustable-register-095a@gregkh>\n <06c04947-e72e-679b-493b-e112d693f391@oss.qualcomm.com>\n <2026042422-deem-chemist-8d0f@gregkh>\n <4c3fa710-f61a-4aad-622d-54909190cb9e@oss.qualcomm.com>","Precedence":"bulk","X-Mailing-List":"linux-tegra@vger.kernel.org","List-Id":"<linux-tegra.vger.kernel.org>","List-Subscribe":"<mailto:linux-tegra+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-tegra+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<4c3fa710-f61a-4aad-622d-54909190cb9e@oss.qualcomm.com>"}},{"id":3682016,"web_url":"http://patchwork.ozlabs.org/comment/3682016/","msgid":"<1e039dd5-da3f-19b2-ef98-29e64fdd925d@oss.qualcomm.com>","list_archive_url":null,"date":"2026-04-24T12:42:09","subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","submitter":{"id":93161,"url":"http://patchwork.ozlabs.org/api/people/93161/","name":"Vishnu Reddy","email":"busanna.reddy@oss.qualcomm.com"},"content":"On 4/24/2026 5:25 PM, Greg Kroah-Hartman wrote:\n> On Fri, Apr 24, 2026 at 05:15:02PM +0530, Vishnu Reddy wrote:\n>> On 4/24/2026 4:43 PM, Greg Kroah-Hartman wrote:\n>>> On Fri, Apr 24, 2026 at 04:01:13PM +0530, Vishnu Reddy wrote:\n>>>> On 4/23/2026 7:07 PM, Greg Kroah-Hartman wrote:\n>>>>> On Thu, Apr 23, 2026 at 06:59:31PM +0530, Vishnu Reddy wrote:\n>>>>>> From: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n>>>>>>\n>>>>>> When a driver needs to create virtual device at runtime and map it to\n>>>>>> an IOMMU context for memory isolation, there is no common bus available\n>>>>>> for this purpose. Each driver ends up implementing its own bus type,\n>>>>>> leading to duplicated logic across multiple drivers.\n>>>>>>\n>>>>>> host1x driver implemented its own bus type to attach an IOMMU context to\n>>>>>> a dynamically created device. The Iris VPU driver now has the same\n>>>>>> requirement. Rather than duplicating the same bus logic again, a shared\n>>>>>> bus type is introduced under drivers/base that multiple drivers can use\n>>>>>> directly.\n>>>>>>\n>>>>>> The bus takes care of creating a device and attaching the IOMMU context\n>>>>>> to it based on the client inputs.\n>>>>>>\n>>>>>> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>\n>>>>>> Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n>>>>>> Signed-off-by: Vikash Garodia <vikash.garodia@oss.qualcomm.com>\n>>>>>> Signed-off-by: Vishnu Reddy <busanna.reddy@oss.qualcomm.com>\n>>>>>> ---\n>>>>>>  drivers/base/Kconfig            |  3 ++\n>>>>>>  drivers/base/Makefile           |  1 +\n>>>>>>  drivers/base/dma_context_bus.c  | 77 +++++++++++++++++++++++++++++++++++++++++\n>>>>>>  include/linux/dma_context_bus.h | 26 ++++++++++++++\n>>>>>>  4 files changed, 107 insertions(+)\n>>>>> as you can not have a device on multiple busses at the same time, this\n>>>>> makes no sense to me at all.  \"dma context\" is a bus-specific thing, so\n>>>>> please add it to the bus that you are wanting it for.  It can't be a\n>>>>> generic bus as that just doesn't work.\n>>>>>\n>>>>> Or what am I missing here?\n>>>>>\n>>>>> And why is DMA somehow \"special\" here from any other hardware attribute?\n>>>> Let me give brief information which was discussed, in the initial series,\n>>>> the iris VPU used platform bus for dynamically created devices and we got\n>>>> the comment/suggestion from Robin to implement a proper bus_type with a\n>>>> .dma_configure callback.\n>>>>\n>>>> https://lore.kernel.org/all/02b3d0f5-f94c-43cd-93af-97cfcf7751b1@arm.com/\n>>>>\n>>>> based on the discussion, implemented the dma_context_bus and used for iris\n>>>> VPU devices instead of platform bus.\n>>> Why not make a irus_vpu_bus where you can do what you want?\n>> Initially iris_vpu_bus was introduced, and it was made generic based on the\n>> discussion,\n>>\n>> https://lore.kernel.org/all/20260227-kaanapali-iris-v2-3-850043ac3933@oss.qualcomm.com/\n> I don't really see that request here, I see a \"make this better and more\n> generic for other busses\" but that does not mean \"dump it into\n> drivers/bus/ for someone else to maintain\" :)\n>\n>>>> Here, the device have only one bus (dma_context_bus), not multiple buses.\n>>>>\n>>>> Regarding the \"DMA\" naming, the core operation of this bus is its\n>>>> .dma_configure callback, which calls of_dma_configure_id() to map the device\n>>>> to a corresponding IOMMU stream ID. The name \"dma_context\" reflects this\n>>>> purpose.\n>>>>\n>>>> I am open to suggestions from you or Robin or anyone else, if there is a\n>>>> better or preferred way to achieve this, I am happy to consider it and\n>>>> rework the implementation accordingly.\n>>> As there is only one user, just make this your own bus please and do all\n>>> of the needed bus operations for your devices there (i.e. don't hang an\n>>> \"empty\" device off of it.)\n>> The reasoning behind to make it generic was to have more users - host1x,\n>> Iris VPU, QDA on the generic context bus, instead of each of them having\n>> their own. Let me know if you suggest to have the iris_vpu_bus.\n> But you did not add such users here, so how would we know this?\n>\n> And still, I have no idea what this bus really is doing.  Is it dynamic?\n> Is it self-describing?  Why not just use aux-bus?  What is it supposed\n> to be doing and used for?\n\nThis bus will allow users to create a dynamic device and map to IOMMU stream\nID via .dma_configure callback which calls the of_dma_confgure_id() based on\nthe user inputs. This bus is under the iommu_buses list to register for bus\nnotifier callbacks for iommu_probe_device() and iommu_release_device() during\nadd and remove.\n\nauxilary bus don't have the .dma_callback and bus notifier callbacks where it\ncan do iommu_probe_device() and iommu_release_device(). iommu_release_device(),\nbeing a static api, need to be called from bus notifier callbacks which should\nbe under the list of iommu_buses.\n\n>\n> still totally confused,\n>\n> greg k-h","headers":{"Return-Path":"\n <linux-tegra+bounces-13945-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-tegra@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=D3e478bO;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=BnS7jzt1;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-tegra+bounces-13945-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=\"D3e478bO\";\n\tdkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=\"BnS7jzt1\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=205.220.168.131","smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=oss.qualcomm.com"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g2CLg54lwz1xvV\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 22:43:39 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 5E9AC302F395\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 12:42:29 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 402153CF699;\n\tFri, 24 Apr 2026 12:42:29 +0000 (UTC)","from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com\n [205.220.168.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id BDF7F3BADAB\n\tfor <linux-tegra@vger.kernel.org>; Fri, 24 Apr 2026 12:42:26 +0000 (UTC)","from pps.filterd (m0279866.ppops.net [127.0.0.1])\n\tby mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63O9N921518493\n\tfor <linux-tegra@vger.kernel.org>; Fri, 24 Apr 2026 12:42:26 GMT","from mail-pj1-f71.google.com (mail-pj1-f71.google.com\n [209.85.216.71])\n\tby mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dr0fnj8nt-1\n\t(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n\tfor <linux-tegra@vger.kernel.org>; Fri, 24 Apr 2026 12:42:26 +0000 (GMT)","by mail-pj1-f71.google.com with SMTP id\n 98e67ed59e1d1-362eb03240bso711016a91.3\n        for <linux-tegra@vger.kernel.org>;\n Fri, 24 Apr 2026 05:42:26 -0700 (PDT)","from [10.239.60.18] ([106.192.26.241])\n        by smtp.gmail.com with ESMTPSA id\n 98e67ed59e1d1-361410b998fsm23315385a91.13.2026.04.24.05.42.11\n        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n        Fri, 24 Apr 2026 05:42:24 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777034549; cv=none;\n b=XvCA/orz32RSW4Hw5y9yRHvNYcwEH9jFRIN9T/cgey9sPIKTKmFixPGLDpu+C5H4MFXYF7Qof30hG1NpoB8yDcJt3oZFf7CHA8MUtlGIrdxHmIlybXnZlgeDDr6mH9qy9lVy/CPIfYXBM9f1Hk1SUO+t284FcJ/liQmhAXLA3c4=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777034549; c=relaxed/simple;\n\tbh=IRTghGNuWjWk+3xT8oRjoZ6vfBCZ1AHElgjUbPw/r6M=;\n\th=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:\n\t In-Reply-To:Content-Type;\n b=r6GM4okuNj9qX9KT+MsFpaXYev9Niw6+IIVrvC7hdGr5buRbTd52ArZggnJlksYC2cWY4CB9CoWkP+7cXSvog0BdTSFGGZNNFMDUAY6UdqSUGcGs70Bigvsqc9KR8xkzyINpDZKmb7AobD8+GiyIm/EVOwm6pooCKyL1F7tJdDE=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com;\n spf=pass smtp.mailfrom=oss.qualcomm.com;\n dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=D3e478bO;\n dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=BnS7jzt1; arc=none smtp.client-ip=205.220.168.131","DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n\tcc:content-transfer-encoding:content-type:date:from:in-reply-to\n\t:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=\n\t3jUS4BVvtxQ4TlCKv27nqabFS5yyU+r3C8dzKt76/V0=; b=D3e478bOH4/C9Hs/\n\t7YNC7YynmUR3IOUxKYiQNOhjxmU2kEg/Y05Cvi23HXY3Hde/0KhOOvgdTU0BKIML\n\t9BmKynKnk0Fp8K8kDUCENN3sTMAXwyhP10WIXcIBE/iaiId0f89zp8d8L2cp5OUs\n\td6xL2hxVU332SWAOwTxy0o/uqgzh3qahZ4H2gdoKsRv+TcyV/TnqIH8WYg6x18YU\n\tQdffqgDmPuwFFR2uHcnTqtYJg/ZjGRH+f0v8nUCEG1T3ByDTi5eEk492urWPMAzJ\n\tu6QkRkYfO56smaSauV8bAxpMejKEHOlRIEZlyImceOsP3xt7M+ajmRSygrrSRuB4\n\tyrL02Q==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=oss.qualcomm.com; s=google; t=1777034545; x=1777639345;\n darn=vger.kernel.org;\n        h=content-transfer-encoding:in-reply-to:from:references:cc:to\n         :content-language:subject:user-agent:mime-version:date:message-id\n         :from:to:cc:subject:date:message-id:reply-to;\n        bh=3jUS4BVvtxQ4TlCKv27nqabFS5yyU+r3C8dzKt76/V0=;\n        b=BnS7jzt1qVZqP5HXgmUixl8yXmSj3EXuU8vHamIV6LWzF+/qKLuNlzbUQOaK4TR2DQ\n         AFoJikhYVbNeoYCYzs2v/4rXrhInb383gzFSHnHQ4+XPiCR/LXIwx65WClofXXwbR0Sg\n         Cma8gdsNLHXFulfiiX2MQcoqafZKWsCHzHjiBG8GublAkPZCaLuSbESubC6Yo3x3HZq7\n         uvV/xpJdFGWcdLB9UXMh/Ul54Uk1TqPSoOOBXDsRZHXQBabLVfRANp/KrBhsI/YynfQ+\n         vku8ViozJ3u3nbhg7B8RseVzw3JdfcKBgjgPUgBWIHwZfF2OHTuTbkKabEqXYw9hu9Fb\n         7iVQ=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1777034545; x=1777639345;\n        h=content-transfer-encoding:in-reply-to:from:references:cc:to\n         :content-language:subject:user-agent:mime-version:date:message-id\n         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n         :reply-to;\n        bh=3jUS4BVvtxQ4TlCKv27nqabFS5yyU+r3C8dzKt76/V0=;\n        b=A6eGIDTi/vO/WqOztEkxy679XPGLK6pOq3ILzbuPyPYYsDIXARn52iufVFnpG1/6Al\n         IuX8bCEFebH2sSlA+GA9d3NxHc1hl0Ta9te68AGxRXSpDN04KYanIt6+fAjpw5/TRwF7\n         iaeRiwkUnheN2GrihI+YesDbu9Rf234PHOMpm8fHQYH41z7w1Dvji6PWBtw8Pf7lA7ym\n         5rFCj+fvbGcAkVrSMsGQUNxFtIyEOPmAdNb/Fw6vlw/NmALkTa4EJSOgezKsDI95KtZp\n         sP7FSp+6ncmfRSoFH63iE4e8kS0dCBX8D1pxwEJo8WnwqI2A54d3IS9wpaL4oQTiDLWH\n         guoA==","X-Forwarded-Encrypted":"i=1;\n AFNElJ8Ot5arHNtyS7FJlrCFIx2mbJL82HofQw6hQLSAczPldOuq9qbrMgse9MLtoBdC8JOlURChmPu1af4uCg==@vger.kernel.org","X-Gm-Message-State":"AOJu0YzBkaFz2zz3jEggRMI/8h6y14wrjMAFxM3oxEeCECMODtyLPxdf\n\tm8ziRAH1ip1XDjg46MN0sEi7Xgs+MOMEP53BKIoJTiXAs6ZWAasjY6IxYJh+OtGZZafkCJ3QHdy\n\tMLnD4p7644cVq6ntUmmIniuE7YyFJ101d6lfnIWJClFbwOsCueLXJoTmGMJg8jPXO2g==","X-Gm-Gg":"AeBDiesOoQsaEoNOqRiDWL7+9oBczuPysOf/jTSap9yql/sLPSARdNZamLKGM4r0gJz\n\tbLTBWZBIUR8Ncqd/L9UYDGllEi5tZIX1aWcSIQUkwgPdVmEvn392jJ8z1r1d84YkL/RCZqLoPxY\n\tDKnplYodU/Jvgs92Js+Aft+bqse1djA+4rwoJHysSVC40xpDZvbZM7EUN1SRwwFhP513MO7j+rA\n\tkoA00oPDPGPF4dulMhH0F344mL/d9e7NJKsCxA5pAnf+5SLhp6e7mKAPmWC7mziLMoKCCkhpxZM\n\toKx6onL9oqJm75gKNLX+jVw5Nu/tz3BQKS5sTlbOXFnSXWWNYmIv/GWCB9z82d/f/ZJyOdRTWCe\n\t+GHqhszuZFwEtZxzmvJkx+Fwe1/rlWO9SYzrtrPJ6a6+TVznXBCL9a6XdtVes6Qdd","X-Received":["by 2002:a17:90a:da8f:b0:35e:594a:5b75 with SMTP id\n 98e67ed59e1d1-361404c1034mr32348895a91.25.1777034545180;\n        Fri, 24 Apr 2026 05:42:25 -0700 (PDT)","by 2002:a17:90a:da8f:b0:35e:594a:5b75 with SMTP id\n 98e67ed59e1d1-361404c1034mr32348850a91.25.1777034544617;\n        Fri, 24 Apr 2026 05:42:24 -0700 (PDT)"],"Message-ID":"<1e039dd5-da3f-19b2-ef98-29e64fdd925d@oss.qualcomm.com>","Date":"Fri, 24 Apr 2026 18:12:09 +0530","Precedence":"bulk","X-Mailing-List":"linux-tegra@vger.kernel.org","List-Id":"<linux-tegra.vger.kernel.org>","List-Subscribe":"<mailto:linux-tegra+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-tegra+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101\n Thunderbird/102.8.0","Subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","Content-Language":"en-US","To":"Greg Kroah-Hartman <gregkh@linuxfoundation.org>","Cc":"Bryan O'Donoghue <bod@kernel.org>,\n        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,\n        Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>,\n        Abhinav Kumar <abhinav.kumar@linux.dev>,\n        Mauro Carvalho Chehab <mchehab@kernel.org>,\n        Rob Herring <robh@kernel.org>,\n        Krzysztof Kozlowski <krzk+dt@kernel.org>,\n        Conor Dooley\n <conor+dt@kernel.org>, Joerg Roedel <joro@8bytes.org>,\n        Will Deacon <will@kernel.org>, Robin Murphy <robin.murphy@arm.com>,\n        Bjorn Andersson <andersson@kernel.org>,\n        Konrad Dybcio <konradybcio@kernel.org>,\n        Stefan Schmidt <stefan.schmidt@linaro.org>,\n        Hans Verkuil <hverkuil@kernel.org>,\n        \"Rafael J. Wysocki\" <rafael@kernel.org>,\n        Danilo Krummrich <dakr@kernel.org>,\n        Thierry Reding <thierry.reding@kernel.org>,\n        Mikko Perttunen <mperttunen@nvidia.com>,\n        David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,\n        Jonathan Hunter <jonathanh@nvidia.com>, linux-media@vger.kernel.org,\n        linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,\n        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,\n        driver-core@lists.linux.dev, dri-devel@lists.freedesktop.org,\n        linux-tegra@vger.kernel.org,\n        Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>,\n        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>","References":"<20260423-glymur-v2-0-0296bccb9f4e@oss.qualcomm.com>\n <20260423-glymur-v2-2-0296bccb9f4e@oss.qualcomm.com>\n <2026042346-trustable-register-095a@gregkh>\n <06c04947-e72e-679b-493b-e112d693f391@oss.qualcomm.com>\n <2026042422-deem-chemist-8d0f@gregkh>\n <4c3fa710-f61a-4aad-622d-54909190cb9e@oss.qualcomm.com>\n <2026042428-blemish-helpline-7d8d@gregkh>","From":"Vishnu Reddy <busanna.reddy@oss.qualcomm.com>","In-Reply-To":"<2026042428-blemish-helpline-7d8d@gregkh>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit","X-Authority-Analysis":"v=2.4 cv=LfYMLDfi c=1 sm=1 tr=0 ts=69eb6532 cx=c_pps\n a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=K3jt3zD9TrcZs+Uyli2v9A==:17\n a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10\n a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22\n a=VwQbUJbxAAAA:8 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=fZobZ8Dl1N5RqnsFfjAA:9\n a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 a=a-qgeE7W1pNrGK8U0ZQC:22","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDI0MDExNyBTYWx0ZWRfX+P/pjzjo4djl\n uEc3nrhncgJKjMG23ornGRcMeTzTy3etzEDqsfihIDn7NTqDI5gtZ46I4UZYpua9xrgg7Eb2fNd\n FB8IwWpsuUfRtZ3CBCZRn32pexWPw8bhCaUNZDF4vhkOTDlk75cUCprv6Xez1Z1VPJt/no5KBdI\n 6Mb8UW/gIJuti81p4XTQqMRkuxEtvzfD78WYsKjav5zqMurrcQkeoYPE41hP0r5IHq8mEE8Dyv2\n LYQkpLuzpzV/DUhMeqKrCIc2H+ITDMFp30wWzNSjwNl5KnunfNDBfjENmXyNVK9D2nZpMMYPns+\n e72lcsdWkDqJ2Lj32aHf1GUoAVB6S99n7yWnNqcZEaIlzbJN+500FdxBzgxpz6o/WpjEqRgYRkH\n RSSzn16MDX/mtvAtTaHf7BIDTwBBwB4WlUZ10R62RG3VZrPMd+6ro/lJsC+TyY8PMbgMAQV60X0\n qbLcx8uIY7xKx0TR94g==","X-Proofpoint-ORIG-GUID":"ivNnw8NAOVrSyabiVMw9hecZkLab-Gf2","X-Proofpoint-GUID":"ivNnw8NAOVrSyabiVMw9hecZkLab-Gf2","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-23_03,2026-04-21_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n phishscore=0 lowpriorityscore=0 adultscore=0 priorityscore=1501\n malwarescore=0 clxscore=1015 spamscore=0 impostorscore=0 bulkscore=0\n suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc=\n route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000\n definitions=main-2604240117"}},{"id":3682049,"web_url":"http://patchwork.ozlabs.org/comment/3682049/","msgid":"<2026042442-luxurious-antonym-f20c@gregkh>","list_archive_url":null,"date":"2026-04-24T13:34:38","subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","submitter":{"id":11800,"url":"http://patchwork.ozlabs.org/api/people/11800/","name":"Greg KH","email":"gregkh@linuxfoundation.org"},"content":"On Fri, Apr 24, 2026 at 06:12:09PM +0530, Vishnu Reddy wrote:\n> \n> On 4/24/2026 5:25 PM, Greg Kroah-Hartman wrote:\n> > On Fri, Apr 24, 2026 at 05:15:02PM +0530, Vishnu Reddy wrote:\n> >> On 4/24/2026 4:43 PM, Greg Kroah-Hartman wrote:\n> >>> On Fri, Apr 24, 2026 at 04:01:13PM +0530, Vishnu Reddy wrote:\n> >>>> On 4/23/2026 7:07 PM, Greg Kroah-Hartman wrote:\n> >>>>> On Thu, Apr 23, 2026 at 06:59:31PM +0530, Vishnu Reddy wrote:\n> >>>>>> From: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n> >>>>>>\n> >>>>>> When a driver needs to create virtual device at runtime and map it to\n> >>>>>> an IOMMU context for memory isolation, there is no common bus available\n> >>>>>> for this purpose. Each driver ends up implementing its own bus type,\n> >>>>>> leading to duplicated logic across multiple drivers.\n> >>>>>>\n> >>>>>> host1x driver implemented its own bus type to attach an IOMMU context to\n> >>>>>> a dynamically created device. The Iris VPU driver now has the same\n> >>>>>> requirement. Rather than duplicating the same bus logic again, a shared\n> >>>>>> bus type is introduced under drivers/base that multiple drivers can use\n> >>>>>> directly.\n> >>>>>>\n> >>>>>> The bus takes care of creating a device and attaching the IOMMU context\n> >>>>>> to it based on the client inputs.\n> >>>>>>\n> >>>>>> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>\n> >>>>>> Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n> >>>>>> Signed-off-by: Vikash Garodia <vikash.garodia@oss.qualcomm.com>\n> >>>>>> Signed-off-by: Vishnu Reddy <busanna.reddy@oss.qualcomm.com>\n> >>>>>> ---\n> >>>>>>  drivers/base/Kconfig            |  3 ++\n> >>>>>>  drivers/base/Makefile           |  1 +\n> >>>>>>  drivers/base/dma_context_bus.c  | 77 +++++++++++++++++++++++++++++++++++++++++\n> >>>>>>  include/linux/dma_context_bus.h | 26 ++++++++++++++\n> >>>>>>  4 files changed, 107 insertions(+)\n> >>>>> as you can not have a device on multiple busses at the same time, this\n> >>>>> makes no sense to me at all.  \"dma context\" is a bus-specific thing, so\n> >>>>> please add it to the bus that you are wanting it for.  It can't be a\n> >>>>> generic bus as that just doesn't work.\n> >>>>>\n> >>>>> Or what am I missing here?\n> >>>>>\n> >>>>> And why is DMA somehow \"special\" here from any other hardware attribute?\n> >>>> Let me give brief information which was discussed, in the initial series,\n> >>>> the iris VPU used platform bus for dynamically created devices and we got\n> >>>> the comment/suggestion from Robin to implement a proper bus_type with a\n> >>>> .dma_configure callback.\n> >>>>\n> >>>> https://lore.kernel.org/all/02b3d0f5-f94c-43cd-93af-97cfcf7751b1@arm.com/\n> >>>>\n> >>>> based on the discussion, implemented the dma_context_bus and used for iris\n> >>>> VPU devices instead of platform bus.\n> >>> Why not make a irus_vpu_bus where you can do what you want?\n> >> Initially iris_vpu_bus was introduced, and it was made generic based on the\n> >> discussion,\n> >>\n> >> https://lore.kernel.org/all/20260227-kaanapali-iris-v2-3-850043ac3933@oss.qualcomm.com/\n> > I don't really see that request here, I see a \"make this better and more\n> > generic for other busses\" but that does not mean \"dump it into\n> > drivers/bus/ for someone else to maintain\" :)\n> >\n> >>>> Here, the device have only one bus (dma_context_bus), not multiple buses.\n> >>>>\n> >>>> Regarding the \"DMA\" naming, the core operation of this bus is its\n> >>>> .dma_configure callback, which calls of_dma_configure_id() to map the device\n> >>>> to a corresponding IOMMU stream ID. The name \"dma_context\" reflects this\n> >>>> purpose.\n> >>>>\n> >>>> I am open to suggestions from you or Robin or anyone else, if there is a\n> >>>> better or preferred way to achieve this, I am happy to consider it and\n> >>>> rework the implementation accordingly.\n> >>> As there is only one user, just make this your own bus please and do all\n> >>> of the needed bus operations for your devices there (i.e. don't hang an\n> >>> \"empty\" device off of it.)\n> >> The reasoning behind to make it generic was to have more users - host1x,\n> >> Iris VPU, QDA on the generic context bus, instead of each of them having\n> >> their own. Let me know if you suggest to have the iris_vpu_bus.\n> > But you did not add such users here, so how would we know this?\n> >\n> > And still, I have no idea what this bus really is doing.  Is it dynamic?\n> > Is it self-describing?  Why not just use aux-bus?  What is it supposed\n> > to be doing and used for?\n> \n> This bus will allow users to create a dynamic device and map to IOMMU stream\n> ID via .dma_configure callback which calls the of_dma_confgure_id() based on\n> the user inputs. This bus is under the iommu_buses list to register for bus\n> notifier callbacks for iommu_probe_device() and iommu_release_device() during\n> add and remove.\n\nBut a device is nothing on its own.  You can not just have a random\n'struct device' hanging out there that does nothing but iommu, right?\nIt should be doing something else that is very \"bus\" specific.\n\nAgain, why not create a bus for your hardware type and have that control\nthe bindings of drivers to the devices, like it should be done.  You\nbetter not be creating platform devices for these things :)\n\n> auxilary bus don't have the .dma_callback and bus notifier callbacks where it\n> can do iommu_probe_device() and iommu_release_device(). iommu_release_device(),\n> being a static api, need to be called from bus notifier callbacks which should\n> be under the list of iommu_buses.\n\nTrue, because aux bus devices don't do that directly, they are \"sharing\"\nresources with their parent device and something has to mediate for it.\nSo yes, you are right, that is not a good idea.  Make a custom bus type\ninstead please.\n\nthanks,\n\ngreg k-h","headers":{"Return-Path":"\n <linux-tegra+bounces-13948-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-tegra@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=linuxfoundation.org header.i=@linuxfoundation.org\n header.a=rsa-sha256 header.s=korg header.b=eVrbBPSa;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-tegra+bounces-13948-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=linuxfoundation.org\n header.i=@linuxfoundation.org header.b=\"eVrbBPSa\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g2FB21cPTz1yD5\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 25 Apr 2026 00:06:18 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 889E0300BCB7\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 14:02:23 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 584173DB637;\n\tFri, 24 Apr 2026 14:02:23 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 09D1A3845CB;\n\tFri, 24 Apr 2026 14:02:22 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 300E0C19425;\n\tFri, 24 Apr 2026 14:02:22 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777039343; cv=none;\n b=QwqGNvsoSkUbh19EmdDdmaeoYvUoiFqmJalbYArGGi1ky/NKHmOFA5XpmrNn20EgTLQXs0O4ue+OccyvgLDTEll0zbWjxD/40o4wlMHkjI/mFjcRvb6H1PMqm+nfw25nejI88ZBRZeWNQ4uEGTrcskgIlmNwYuzwkGldAWI1mj4=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777039343; c=relaxed/simple;\n\tbh=ack7mYbip6ZcuORQPpGdCVHFIO+2WE0qOIuDR99tjcI=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=sRoOebb+MrJ65ce4GV1vlcQOxqpjMMYEex+ohRjF59lHBiYNqKWetpbbNSIUlPv+gONPHAXDBQqsS2m63cSsxFnD56Zfh1qFcM3ba/54O9Ogj3/YxVYnmP0q1SNU1fBS7HbvC4abiRkLgDVyXm5kYHm3re82Qpg3Sp0zSXleqGk=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (1024-bit key) header.d=linuxfoundation.org\n header.i=@linuxfoundation.org header.b=eVrbBPSa;\n arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org;\n\ts=korg; t=1777039342;\n\tbh=ack7mYbip6ZcuORQPpGdCVHFIO+2WE0qOIuDR99tjcI=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=eVrbBPSay5lsKqpmLH1QRqkLYOnAbpPXdwffDswEX5wCx3OM8YNgFVoAszeWet41J\n\t N7en7QHUFyw55uVogTj/9asNhK9JcorV9woWHwY6p95kzbYb9NwfRCbUQ+iccUgFGa\n\t 1atSKUuBQu1QGh/D5JqOoasZsOzablfgD/xYZz5k=","Date":"Fri, 24 Apr 2026 15:34:38 +0200","From":"Greg Kroah-Hartman <gregkh@linuxfoundation.org>","To":"Vishnu Reddy <busanna.reddy@oss.qualcomm.com>","Cc":"Bryan O'Donoghue <bod@kernel.org>,\n\tVikash Garodia <vikash.garodia@oss.qualcomm.com>,\n\tDikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>,\n\tAbhinav Kumar <abhinav.kumar@linux.dev>,\n\tMauro Carvalho Chehab <mchehab@kernel.org>,\n\tRob Herring <robh@kernel.org>,\n\tKrzysztof Kozlowski <krzk+dt@kernel.org>,\n\tConor Dooley <conor+dt@kernel.org>, Joerg Roedel <joro@8bytes.org>,\n\tWill Deacon <will@kernel.org>, Robin Murphy <robin.murphy@arm.com>,\n\tBjorn Andersson <andersson@kernel.org>,\n\tKonrad Dybcio <konradybcio@kernel.org>,\n\tStefan Schmidt <stefan.schmidt@linaro.org>,\n\tHans Verkuil <hverkuil@kernel.org>,\n\t\"Rafael J. Wysocki\" <rafael@kernel.org>,\n\tDanilo Krummrich <dakr@kernel.org>,\n\tThierry Reding <thierry.reding@kernel.org>,\n\tMikko Perttunen <mperttunen@nvidia.com>,\n\tDavid Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,\n\tJonathan Hunter <jonathanh@nvidia.com>, linux-media@vger.kernel.org,\n\tlinux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org, iommu@lists.linux.dev,\n\tdriver-core@lists.linux.dev, dri-devel@lists.freedesktop.org,\n\tlinux-tegra@vger.kernel.org,\n\tEkansh Gupta <ekansh.gupta@oss.qualcomm.com>,\n\tDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>","Subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","Message-ID":"<2026042442-luxurious-antonym-f20c@gregkh>","References":"<20260423-glymur-v2-0-0296bccb9f4e@oss.qualcomm.com>\n <20260423-glymur-v2-2-0296bccb9f4e@oss.qualcomm.com>\n <2026042346-trustable-register-095a@gregkh>\n <06c04947-e72e-679b-493b-e112d693f391@oss.qualcomm.com>\n <2026042422-deem-chemist-8d0f@gregkh>\n <4c3fa710-f61a-4aad-622d-54909190cb9e@oss.qualcomm.com>\n <2026042428-blemish-helpline-7d8d@gregkh>\n <1e039dd5-da3f-19b2-ef98-29e64fdd925d@oss.qualcomm.com>","Precedence":"bulk","X-Mailing-List":"linux-tegra@vger.kernel.org","List-Id":"<linux-tegra.vger.kernel.org>","List-Subscribe":"<mailto:linux-tegra+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-tegra+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<1e039dd5-da3f-19b2-ef98-29e64fdd925d@oss.qualcomm.com>"}},{"id":3682098,"web_url":"http://patchwork.ozlabs.org/comment/3682098/","msgid":"<xuitjl6tzfl6nl4ds4vdy3637i5cqtjuqntcpqt5fnkx2ogcws@iapcavrwhyzv>","list_archive_url":null,"date":"2026-04-24T16:11:35","subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","submitter":{"id":90483,"url":"http://patchwork.ozlabs.org/api/people/90483/","name":"Dmitry Baryshkov","email":"dmitry.baryshkov@oss.qualcomm.com"},"content":"On Fri, Apr 24, 2026 at 03:34:38PM +0200, Greg Kroah-Hartman wrote:\n> On Fri, Apr 24, 2026 at 06:12:09PM +0530, Vishnu Reddy wrote:\n> > \n> > On 4/24/2026 5:25 PM, Greg Kroah-Hartman wrote:\n> > > On Fri, Apr 24, 2026 at 05:15:02PM +0530, Vishnu Reddy wrote:\n> > >> On 4/24/2026 4:43 PM, Greg Kroah-Hartman wrote:\n> > >>> On Fri, Apr 24, 2026 at 04:01:13PM +0530, Vishnu Reddy wrote:\n> > >>>> On 4/23/2026 7:07 PM, Greg Kroah-Hartman wrote:\n> > >>>>> On Thu, Apr 23, 2026 at 06:59:31PM +0530, Vishnu Reddy wrote:\n> > >>>>>> From: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n> > >>>>>>\n> > >>>>>> When a driver needs to create virtual device at runtime and map it to\n> > >>>>>> an IOMMU context for memory isolation, there is no common bus available\n> > >>>>>> for this purpose. Each driver ends up implementing its own bus type,\n> > >>>>>> leading to duplicated logic across multiple drivers.\n> > >>>>>>\n> > >>>>>> host1x driver implemented its own bus type to attach an IOMMU context to\n> > >>>>>> a dynamically created device. The Iris VPU driver now has the same\n> > >>>>>> requirement. Rather than duplicating the same bus logic again, a shared\n> > >>>>>> bus type is introduced under drivers/base that multiple drivers can use\n> > >>>>>> directly.\n> > >>>>>>\n> > >>>>>> The bus takes care of creating a device and attaching the IOMMU context\n> > >>>>>> to it based on the client inputs.\n> > >>>>>>\n> > >>>>>> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>\n> > >>>>>> Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n> > >>>>>> Signed-off-by: Vikash Garodia <vikash.garodia@oss.qualcomm.com>\n> > >>>>>> Signed-off-by: Vishnu Reddy <busanna.reddy@oss.qualcomm.com>\n> > >>>>>> ---\n> > >>>>>>  drivers/base/Kconfig            |  3 ++\n> > >>>>>>  drivers/base/Makefile           |  1 +\n> > >>>>>>  drivers/base/dma_context_bus.c  | 77 +++++++++++++++++++++++++++++++++++++++++\n> > >>>>>>  include/linux/dma_context_bus.h | 26 ++++++++++++++\n> > >>>>>>  4 files changed, 107 insertions(+)\n> > >>>>> as you can not have a device on multiple busses at the same time, this\n> > >>>>> makes no sense to me at all.  \"dma context\" is a bus-specific thing, so\n> > >>>>> please add it to the bus that you are wanting it for.  It can't be a\n> > >>>>> generic bus as that just doesn't work.\n> > >>>>>\n> > >>>>> Or what am I missing here?\n> > >>>>>\n> > >>>>> And why is DMA somehow \"special\" here from any other hardware attribute?\n> > >>>> Let me give brief information which was discussed, in the initial series,\n> > >>>> the iris VPU used platform bus for dynamically created devices and we got\n> > >>>> the comment/suggestion from Robin to implement a proper bus_type with a\n> > >>>> .dma_configure callback.\n> > >>>>\n> > >>>> https://lore.kernel.org/all/02b3d0f5-f94c-43cd-93af-97cfcf7751b1@arm.com/\n> > >>>>\n> > >>>> based on the discussion, implemented the dma_context_bus and used for iris\n> > >>>> VPU devices instead of platform bus.\n> > >>> Why not make a irus_vpu_bus where you can do what you want?\n> > >> Initially iris_vpu_bus was introduced, and it was made generic based on the\n> > >> discussion,\n> > >>\n> > >> https://lore.kernel.org/all/20260227-kaanapali-iris-v2-3-850043ac3933@oss.qualcomm.com/\n> > > I don't really see that request here, I see a \"make this better and more\n> > > generic for other busses\" but that does not mean \"dump it into\n> > > drivers/bus/ for someone else to maintain\" :)\n> > >\n> > >>>> Here, the device have only one bus (dma_context_bus), not multiple buses.\n> > >>>>\n> > >>>> Regarding the \"DMA\" naming, the core operation of this bus is its\n> > >>>> .dma_configure callback, which calls of_dma_configure_id() to map the device\n> > >>>> to a corresponding IOMMU stream ID. The name \"dma_context\" reflects this\n> > >>>> purpose.\n> > >>>>\n> > >>>> I am open to suggestions from you or Robin or anyone else, if there is a\n> > >>>> better or preferred way to achieve this, I am happy to consider it and\n> > >>>> rework the implementation accordingly.\n> > >>> As there is only one user, just make this your own bus please and do all\n> > >>> of the needed bus operations for your devices there (i.e. don't hang an\n> > >>> \"empty\" device off of it.)\n> > >> The reasoning behind to make it generic was to have more users - host1x,\n> > >> Iris VPU, QDA on the generic context bus, instead of each of them having\n> > >> their own. Let me know if you suggest to have the iris_vpu_bus.\n> > > But you did not add such users here, so how would we know this?\n> > >\n> > > And still, I have no idea what this bus really is doing.  Is it dynamic?\n> > > Is it self-describing?  Why not just use aux-bus?  What is it supposed\n> > > to be doing and used for?\n> > \n> > This bus will allow users to create a dynamic device and map to IOMMU stream\n> > ID via .dma_configure callback which calls the of_dma_confgure_id() based on\n> > the user inputs. This bus is under the iommu_buses list to register for bus\n> > notifier callbacks for iommu_probe_device() and iommu_release_device() during\n> > add and remove.\n> \n> But a device is nothing on its own.  You can not just have a random\n> 'struct device' hanging out there that does nothing but iommu, right?\n> It should be doing something else that is very \"bus\" specific.\n\nUnfortunately, it is a pattern of IOMMU-only devices. All the actual\nprogrammig is done through IO region associated with the main device,\nwhile subdevices are mostly used for DMA buffer allocation.\n\n> \n> Again, why not create a bus for your hardware type and have that control\n> the bindings of drivers to the devices, like it should be done.  You\n> better not be creating platform devices for these things :)\n>","headers":{"Return-Path":"\n <linux-tegra+bounces-13952-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-tegra@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=RgzAqBgs;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=bt0FV4y4;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-tegra+bounces-13952-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=\"RgzAqBgs\";\n\tdkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=\"bt0FV4y4\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=205.220.168.131","smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=oss.qualcomm.com"],"Received":["from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g2Hyr43vmz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 25 Apr 2026 02:11:48 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id C8E383013A7C\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 16:11:42 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 977593E121F;\n\tFri, 24 Apr 2026 16:11:42 +0000 (UTC)","from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com\n [205.220.168.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id DFA2D3E0C40\n\tfor <linux-tegra@vger.kernel.org>; Fri, 24 Apr 2026 16:11:40 +0000 (UTC)","from pps.filterd (m0279864.ppops.net [127.0.0.1])\n\tby mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63OC79v81823032\n\tfor <linux-tegra@vger.kernel.org>; Fri, 24 Apr 2026 16:11:40 GMT","from mail-ua1-f71.google.com (mail-ua1-f71.google.com\n [209.85.222.71])\n\tby mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dqv5rurf4-1\n\t(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n\tfor <linux-tegra@vger.kernel.org>; Fri, 24 Apr 2026 16:11:39 +0000 (GMT)","by mail-ua1-f71.google.com with SMTP id\n a1e0cc1a2514c-9587174003aso10264888241.2\n        for <linux-tegra@vger.kernel.org>;\n Fri, 24 Apr 2026 09:11:39 -0700 (PDT)","from umbar.lan\n (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi.\n [2001:14ba:a073:af00:264b:feff:fe8b:be8a])\n        by smtp.gmail.com with ESMTPSA id\n 2adb3069b0e04-5a4185ad0c5sm6134967e87.10.2026.04.24.09.11.36\n        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n        Fri, 24 Apr 2026 09:11:36 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777047102; cv=none;\n b=cQy8plDypif79hY/XhKpCXajxRKStkhFMOJ0jJjyKMhUq/zeeT12rZs1gTF41MUpvpnU6xknq2N5RdkXUknnKZoIT0a3HYdwv9WU8Z3E1sxdg/GBrOewSWFeFtPZc94A2hAYwHi0DJPi9ucy/VEd5yGtcYyC923w/D18qL68N5A=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777047102; c=relaxed/simple;\n\tbh=cQxyjvvo6SHHGDnT8HL4AQEYPPr0G3qnZblljXvxfbM=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=cBGOwDOm0ZHSjJWEEpNUIENnxmnFXfuI9+XZVC8YQeSZlgbvC8YCux72bbxpkP0v28VLrkbvcYVeJY45iWHtsFLJRuNRWzGdvN/gYrISJXnTZvYBO5NvQIbPiUKEgTej/K36WCPDY28N7pACIPad3MEGe0S2oYAgQzHM5jlxWj8=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com;\n spf=pass smtp.mailfrom=oss.qualcomm.com;\n dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=RgzAqBgs;\n dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=bt0FV4y4; arc=none smtp.client-ip=205.220.168.131","DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n\tcc:content-type:date:from:in-reply-to:message-id:mime-version\n\t:references:subject:to; s=qcppdkim1; bh=QmsYx3pvgYXAO1jZPjQXfdfP\n\tyIwVCxRQ49qD+yx6sQU=; b=RgzAqBgst8mSwk93KlB/HsQ8M3+1B5WUWhboVVSt\n\t1VvJTYEzGzQ4lwATMwM1b3p7v0x+tk7eznRaMA/9gmgDGs2uVYDXr/6q/G+EWUaD\n\tcbLNKTNFgdVYztZzVXNeKPHYhjXLV3jS3vSCmLiMo+ch+8xf8mLNaHIt6ueeOIEv\n\tts0KrQA0P+eJANsfTBFHAb6ZRMsLDAcBh3QSPJEYs3J3ygj5kqvqpIy3n2vBAq8B\n\t3bzXkmpEKifiISdgHA7/tmFrVvhsnNL448iH42cpBtC7dfCSUEPfK4AWXHYqmr6R\n\t+VgfAbQEJBEyV30IJQ+dMtoJf35AhLBEPA54bU7hU/uy0Q==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=oss.qualcomm.com; s=google; t=1777047099; x=1777651899;\n darn=vger.kernel.org;\n        h=in-reply-to:content-disposition:mime-version:references:message-id\n         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;\n        bh=QmsYx3pvgYXAO1jZPjQXfdfPyIwVCxRQ49qD+yx6sQU=;\n        b=bt0FV4y4OOu/UnArYfURKbpJ2/57qIDXIe+eqvm9PVhOlF3/JAOZezbmFZ57UVgXeL\n         XbFus1ouHMbRvR/4bdv7hQ4IoOpxPejJO/PN19VvKPhDGVcirKewlR5uWRgTLlW5sobP\n         4KFwkU5A2yBiaDNu6DcVukjQn+ZbVIQTB2IiMEoB0kNaLwr36bb5nhU/hXi1QBujJNT9\n         B6CIb/k8qeA2abiuPJbRdIYO2IbellihpiQHDhegpAQ0CquovQgyLYZZJ9hgNaewU0Po\n         sUBAsSjX+m8QwLdI5qTvVuAdpw3C3kd19sd9i7suK3h0vzLJgvI1TIaaQabXizJ7enLP\n         jsAg=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1777047099; x=1777651899;\n        h=in-reply-to:content-disposition:mime-version:references:message-id\n         :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc\n         :subject:date:message-id:reply-to;\n        bh=QmsYx3pvgYXAO1jZPjQXfdfPyIwVCxRQ49qD+yx6sQU=;\n        b=cwdwb34hnU/njuqJQnEfyzgWP+fSAnbgMojsWNWWj27jLKRr/onMIDQ5AnO8Iwyj6w\n         SFwWcAi02fJxMYVXWLCOMiODBZI2jTSdeGx5UB+2M3s1f/EEQPWa6T39IkcKsbPQtPJ6\n         0DHSclR3LDb+aJ2g7lvYmVVvYCfZhFqchuJ9WNsI7griufU7tUls2TTQ5cAXvlsTRqkq\n         CK55atyUn1kJIAZP8vRtNyJiVsIcswuvT6yPVjneopuXVDV2mvH+vXxYaOQ9uSa8uyLS\n         iwxVJY3PN6IVGV0AgwRHQtG+MShleZJv4fvg4uPxaug9XJ6+2oK1t9GS20HY8u5c+54T\n         BSLA==","X-Forwarded-Encrypted":"i=1;\n AFNElJ//LORlqXmwYDqv/zdaiAbYlwL9KQUbtIXDmktmOXJbx4z5Pt43Ilp49tJZq34fJc4fp9LN70I7cNf1og==@vger.kernel.org","X-Gm-Message-State":"AOJu0YyDZ2IaBNMfIEmTFYFg0Hi5NBgpGFZ/yib7KvV9K7qIeHOaWI3j\n\t1u5fu52BT9zCDM3tCR4jvVKiOq2KVTDyaiqYfGBRYIbbHDJSM+4Xm+5ji9NiQSPc9+iFEFwlDeT\n\tvjbD8O1QrOKOeLWKEH+GodGEa+VFXgwthFPoBKGJjMFDzcprOpQ51cf9nCy6D5EHrAA==","X-Gm-Gg":"AeBDieueYu14J6S0C5gN31xeP6vrHyLb9zFRl+TKEgPYidi/4DZcE2vvEHNp3C1A9Uv\n\tMmFZsmDu0YpkSZ4nsiBl73mCFjwZYbp0vWzZjayP/slRgjZ58h61Gi+bRtlhuxsX/nXGV0kFNCV\n\tPQ5DeZZgI7/vD+7WBEwIIS2jkXmH2jw3jIA1E+SguSPKgzCNpueJo6bXgFVj6v4OTL0229bBZAQ\n\tZ0OFEqmUARAJdP4uwP0S83SyWJW9+JMAGtoF+b9rP33240ULRDCrvp1RI3uQEhzq3ICclwnpK48\n\tWNgpuGI1fJIMKeUv2X6EkO64kraUkZLX2TgU8OY2+aHlfOuRzXu+UU0+C+D/CE8v1uFsmJcDuAr\n\tGY7GND8/utASKs9SlaiVjlFVzwXqx/i5Pp3lkZah7Ruo2gCCmiUJ0XS/IC6xXWc25Wf6jTNlxkr\n\tDfbFoS9sLWL+P4+Y2KOwBruMtfJj/bDZjOIZm3FhDXgP6w4w==","X-Received":["by 2002:a05:6102:41a6:b0:60f:c9ba:b992 with SMTP id\n ada2fe7eead31-616f68d760dmr17881116137.16.1777047098773;\n        Fri, 24 Apr 2026 09:11:38 -0700 (PDT)","by 2002:a05:6102:41a6:b0:60f:c9ba:b992 with SMTP id\n ada2fe7eead31-616f68d760dmr17881013137.16.1777047098170;\n        Fri, 24 Apr 2026 09:11:38 -0700 (PDT)"],"Date":"Fri, 24 Apr 2026 19:11:35 +0300","From":"Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>","To":"Greg Kroah-Hartman <gregkh@linuxfoundation.org>","Cc":"Vishnu Reddy <busanna.reddy@oss.qualcomm.com>,\n        Bryan O'Donoghue <bod@kernel.org>,\n        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,\n        Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>,\n        Abhinav Kumar <abhinav.kumar@linux.dev>,\n        Mauro Carvalho Chehab <mchehab@kernel.org>,\n        Rob Herring <robh@kernel.org>,\n        Krzysztof Kozlowski <krzk+dt@kernel.org>,\n        Conor Dooley <conor+dt@kernel.org>, Joerg Roedel <joro@8bytes.org>,\n        Will Deacon <will@kernel.org>, Robin Murphy <robin.murphy@arm.com>,\n        Bjorn Andersson <andersson@kernel.org>,\n        Konrad Dybcio <konradybcio@kernel.org>,\n        Stefan Schmidt <stefan.schmidt@linaro.org>,\n        Hans Verkuil <hverkuil@kernel.org>,\n        \"Rafael J. Wysocki\" <rafael@kernel.org>,\n        Danilo Krummrich <dakr@kernel.org>,\n        Thierry Reding <thierry.reding@kernel.org>,\n        Mikko Perttunen <mperttunen@nvidia.com>,\n        David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,\n        Jonathan Hunter <jonathanh@nvidia.com>, linux-media@vger.kernel.org,\n        linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,\n        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,\n        driver-core@lists.linux.dev, dri-devel@lists.freedesktop.org,\n        linux-tegra@vger.kernel.org,\n        Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>","Subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","Message-ID":"<xuitjl6tzfl6nl4ds4vdy3637i5cqtjuqntcpqt5fnkx2ogcws@iapcavrwhyzv>","References":"<20260423-glymur-v2-0-0296bccb9f4e@oss.qualcomm.com>\n <20260423-glymur-v2-2-0296bccb9f4e@oss.qualcomm.com>\n <2026042346-trustable-register-095a@gregkh>\n <06c04947-e72e-679b-493b-e112d693f391@oss.qualcomm.com>\n <2026042422-deem-chemist-8d0f@gregkh>\n <4c3fa710-f61a-4aad-622d-54909190cb9e@oss.qualcomm.com>\n <2026042428-blemish-helpline-7d8d@gregkh>\n <1e039dd5-da3f-19b2-ef98-29e64fdd925d@oss.qualcomm.com>\n <2026042442-luxurious-antonym-f20c@gregkh>","Precedence":"bulk","X-Mailing-List":"linux-tegra@vger.kernel.org","List-Id":"<linux-tegra.vger.kernel.org>","List-Subscribe":"<mailto:linux-tegra+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-tegra+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<2026042442-luxurious-antonym-f20c@gregkh>","X-Authority-Analysis":"v=2.4 cv=LqiiDHdc c=1 sm=1 tr=0 ts=69eb963b cx=c_pps\n a=KB4UBwrhAZV1kjiGHFQexw==:117 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10\n a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22\n a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=VwQbUJbxAAAA:8\n a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=7jvbHUuHxlDJpGpAObkA:9 a=CjuIK1q_8ugA:10\n a=o1xkdb1NAhiiM49bd1HK:22 a=a-qgeE7W1pNrGK8U0ZQC:22","X-Proofpoint-ORIG-GUID":"_LWFoZix3wW8UjG5E9oDdlH033mDU6_M","X-Proofpoint-GUID":"_LWFoZix3wW8UjG5E9oDdlH033mDU6_M","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDI0MDE1NCBTYWx0ZWRfXxlU6XcqjjbVU\n bIMsoccB4upPSmLm+RTg5vf3YeWTj0rHWYltUN0bGCDTe7DF+vQPDOnCaybbwbxbZLWP57iCOXr\n psODJcryeiumhkK0rG2LgQrPaPE4b5JU6gT5T0i5MtSLG9JDJgeFiI9+zLXASYU1o0ArZbunH2o\n XzsIpi+vqwFParEhGD1xHsYhwfFZd/IWfN/U9vjG4EAU/NlLU1oC3w+0Bm/aM+/woS+Vm7uJBSR\n 6hELKaMIYXU9KVVDzkVvxAm8k/symFn/W2XJKaHfFMz0TYkuXsb9afD1ckihOtj/RYrkD7w/tpU\n eDIr8jJpsnztF6UcxuRgoC5+Hb1PoYF321Yk1CMOMK+V5VQ1gXOCcWbS7j2IlXkgbts2UEyM50k\n l/9HNlHTktcVwhlGhCXg0GDbK33/2mM1DaOX/YJ4en0lp2lCGa21O0Ocd1BGRJhFKzVBHd/egrL\n GvY7oX93pvp+QO+0qVw==","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-24_01,2026-04-21_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n spamscore=0 bulkscore=0 clxscore=1015 impostorscore=0 lowpriorityscore=0\n malwarescore=0 suspectscore=0 adultscore=0 phishscore=0 priorityscore=1501\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604240154"}},{"id":3682133,"web_url":"http://patchwork.ozlabs.org/comment/3682133/","msgid":"<eceae566-93da-a0e2-cac0-1f5abdbbe661@oss.qualcomm.com>","list_archive_url":null,"date":"2026-04-24T16:40:09","subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","submitter":{"id":93161,"url":"http://patchwork.ozlabs.org/api/people/93161/","name":"Vishnu Reddy","email":"busanna.reddy@oss.qualcomm.com"},"content":"On 4/24/2026 7:04 PM, Greg Kroah-Hartman wrote:\n> On Fri, Apr 24, 2026 at 06:12:09PM +0530, Vishnu Reddy wrote:\n>> On 4/24/2026 5:25 PM, Greg Kroah-Hartman wrote:\n>>> On Fri, Apr 24, 2026 at 05:15:02PM +0530, Vishnu Reddy wrote:\n>>>> On 4/24/2026 4:43 PM, Greg Kroah-Hartman wrote:\n>>>>> On Fri, Apr 24, 2026 at 04:01:13PM +0530, Vishnu Reddy wrote:\n>>>>>> On 4/23/2026 7:07 PM, Greg Kroah-Hartman wrote:\n>>>>>>> On Thu, Apr 23, 2026 at 06:59:31PM +0530, Vishnu Reddy wrote:\n>>>>>>>> From: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n>>>>>>>>\n>>>>>>>> When a driver needs to create virtual device at runtime and map it to\n>>>>>>>> an IOMMU context for memory isolation, there is no common bus available\n>>>>>>>> for this purpose. Each driver ends up implementing its own bus type,\n>>>>>>>> leading to duplicated logic across multiple drivers.\n>>>>>>>>\n>>>>>>>> host1x driver implemented its own bus type to attach an IOMMU context to\n>>>>>>>> a dynamically created device. The Iris VPU driver now has the same\n>>>>>>>> requirement. Rather than duplicating the same bus logic again, a shared\n>>>>>>>> bus type is introduced under drivers/base that multiple drivers can use\n>>>>>>>> directly.\n>>>>>>>>\n>>>>>>>> The bus takes care of creating a device and attaching the IOMMU context\n>>>>>>>> to it based on the client inputs.\n>>>>>>>>\n>>>>>>>> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>\n>>>>>>>> Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n>>>>>>>> Signed-off-by: Vikash Garodia <vikash.garodia@oss.qualcomm.com>\n>>>>>>>> Signed-off-by: Vishnu Reddy <busanna.reddy@oss.qualcomm.com>\n>>>>>>>> ---\n>>>>>>>>  drivers/base/Kconfig            |  3 ++\n>>>>>>>>  drivers/base/Makefile           |  1 +\n>>>>>>>>  drivers/base/dma_context_bus.c  | 77 +++++++++++++++++++++++++++++++++++++++++\n>>>>>>>>  include/linux/dma_context_bus.h | 26 ++++++++++++++\n>>>>>>>>  4 files changed, 107 insertions(+)\n>>>>>>> as you can not have a device on multiple busses at the same time, this\n>>>>>>> makes no sense to me at all.  \"dma context\" is a bus-specific thing, so\n>>>>>>> please add it to the bus that you are wanting it for.  It can't be a\n>>>>>>> generic bus as that just doesn't work.\n>>>>>>>\n>>>>>>> Or what am I missing here?\n>>>>>>>\n>>>>>>> And why is DMA somehow \"special\" here from any other hardware attribute?\n>>>>>> Let me give brief information which was discussed, in the initial series,\n>>>>>> the iris VPU used platform bus for dynamically created devices and we got\n>>>>>> the comment/suggestion from Robin to implement a proper bus_type with a\n>>>>>> .dma_configure callback.\n>>>>>>\n>>>>>> https://lore.kernel.org/all/02b3d0f5-f94c-43cd-93af-97cfcf7751b1@arm.com/\n>>>>>>\n>>>>>> based on the discussion, implemented the dma_context_bus and used for iris\n>>>>>> VPU devices instead of platform bus.\n>>>>> Why not make a irus_vpu_bus where you can do what you want?\n>>>> Initially iris_vpu_bus was introduced, and it was made generic based on the\n>>>> discussion,\n>>>>\n>>>> https://lore.kernel.org/all/20260227-kaanapali-iris-v2-3-850043ac3933@oss.qualcomm.com/\n>>> I don't really see that request here, I see a \"make this better and more\n>>> generic for other busses\" but that does not mean \"dump it into\n>>> drivers/bus/ for someone else to maintain\" :)\n>>>\n>>>>>> Here, the device have only one bus (dma_context_bus), not multiple buses.\n>>>>>>\n>>>>>> Regarding the \"DMA\" naming, the core operation of this bus is its\n>>>>>> .dma_configure callback, which calls of_dma_configure_id() to map the device\n>>>>>> to a corresponding IOMMU stream ID. The name \"dma_context\" reflects this\n>>>>>> purpose.\n>>>>>>\n>>>>>> I am open to suggestions from you or Robin or anyone else, if there is a\n>>>>>> better or preferred way to achieve this, I am happy to consider it and\n>>>>>> rework the implementation accordingly.\n>>>>> As there is only one user, just make this your own bus please and do all\n>>>>> of the needed bus operations for your devices there (i.e. don't hang an\n>>>>> \"empty\" device off of it.)\n>>>> The reasoning behind to make it generic was to have more users - host1x,\n>>>> Iris VPU, QDA on the generic context bus, instead of each of them having\n>>>> their own. Let me know if you suggest to have the iris_vpu_bus.\n>>> But you did not add such users here, so how would we know this?\n>>>\n>>> And still, I have no idea what this bus really is doing.  Is it dynamic?\n>>> Is it self-describing?  Why not just use aux-bus?  What is it supposed\n>>> to be doing and used for?\n>> This bus will allow users to create a dynamic device and map to IOMMU stream\n>> ID via .dma_configure callback which calls the of_dma_confgure_id() based on\n>> the user inputs. This bus is under the iommu_buses list to register for bus\n>> notifier callbacks for iommu_probe_device() and iommu_release_device() during\n>> add and remove.\n> But a device is nothing on its own.  You can not just have a random\n> 'struct device' hanging out there that does nothing but iommu, right?\n> It should be doing something else that is very \"bus\" specific.\n>\n> Again, why not create a bus for your hardware type and have that control\n> the bindings of drivers to the devices, like it should be done.  You\n> better not be creating platform devices for these things :)\n\nCreating a dedicated bus for iris_vpu is indeed possible, and we had actually\nexplored this direction in a one of the series. A patch implementing an\niris_vpu bus was posted earlier here,\nhttps://lore.kernel.org/all/20260313-kaanapali-iris-v3-3-9c0d1a67af4b@oss.qualcomm.com/\n\nI'll bring back that approach. Before that, I'll wait a few days to gather any\nfurther opinions or suggestions from anyone else. Then, I'll proceed with\nposting the next revision with the iris_vpu bus in place.\n\n>> auxilary bus don't have the .dma_callback and bus notifier callbacks where it\n>> can do iommu_probe_device() and iommu_release_device(). iommu_release_device(),\n>> being a static api, need to be called from bus notifier callbacks which should\n>> be under the list of iommu_buses.\n> True, because aux bus devices don't do that directly, they are \"sharing\"\n> resources with their parent device and something has to mediate for it.\n> So yes, you are right, that is not a good idea.  Make a custom bus type\n> instead please.\n>\n> thanks,\n>\n> greg k-h","headers":{"Return-Path":"\n <linux-tegra+bounces-13953-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-tegra@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=dTSqdamw;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=H0R/qiQ/;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-tegra+bounces-13953-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=\"dTSqdamw\";\n\tdkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=\"H0R/qiQ/\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=205.220.168.131","smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=oss.qualcomm.com"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g2Jcv5BHZz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 25 Apr 2026 02:41:19 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id E8A29300A8CA\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 16:41:17 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id BF5253E275B;\n\tFri, 24 Apr 2026 16:41:17 +0000 (UTC)","from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com\n [205.220.168.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 7F6B03D6493\n\tfor <linux-tegra@vger.kernel.org>; Fri, 24 Apr 2026 16:41:15 +0000 (UTC)","from pps.filterd (m0279866.ppops.net [127.0.0.1])\n\tby mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63OGZsPd518505\n\tfor <linux-tegra@vger.kernel.org>; Fri, 24 Apr 2026 16:41:15 GMT","from mail-pj1-f69.google.com (mail-pj1-f69.google.com\n [209.85.216.69])\n\tby mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dr0fnk27k-1\n\t(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n\tfor <linux-tegra@vger.kernel.org>; Fri, 24 Apr 2026 16:41:14 +0000 (GMT)","by mail-pj1-f69.google.com with SMTP id\n 98e67ed59e1d1-35da1c703d1so9704319a91.1\n        for <linux-tegra@vger.kernel.org>;\n Fri, 24 Apr 2026 09:41:14 -0700 (PDT)","from [10.239.60.18] ([106.192.26.241])\n        by smtp.gmail.com with ESMTPSA id\n 98e67ed59e1d1-361418c3944sm30414672a91.8.2026.04.24.09.40.20\n        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n        Fri, 24 Apr 2026 09:41:13 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777048877; cv=none;\n b=bYRQTgaclBqgO0Pn4EauRYpM0/SWKKX7K+5BBrC4h9pwdcYSrBnmyA7Mn18PBHqTriBM44k9huAVHLyS2nAW6qeVTzmI7AOj+JBM7+WlJtel4R8KBP06dcxl2cMClxNT406grUjtGM4qQuBFYE0EZoY+euqzMok5BPuzVcT/uwY=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777048877; c=relaxed/simple;\n\tbh=jQ/5iV3NcxNIjNq4NJAWgTrBlzhII3dS9XKJUKy6PHE=;\n\th=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:\n\t In-Reply-To:Content-Type;\n b=QDgflvChkhPrtf1//NM+BCDYoJKDuqx0A9r64B7+sxyCwrx6LPc1kt3OYHEkT7x2El+oep8NXLmIsS5cSoTPy22MOe2XLG+JduW5xMBU8LGnKONoGPtisJJ9RWhJuBlWnMuG+4NazJWDwtYrnDISg33AEnzeNE8DXm1phXN3XQk=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com;\n spf=pass smtp.mailfrom=oss.qualcomm.com;\n dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=dTSqdamw;\n dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=H0R/qiQ/; arc=none smtp.client-ip=205.220.168.131","DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n\tcc:content-transfer-encoding:content-type:date:from:in-reply-to\n\t:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=\n\teltpKz/vHGzdVltnYjt3RwZNW4ucKi/6/+2SCBIudcA=; b=dTSqdamwixelTx2H\n\tATfV1RW82rZYb+yMxshg5gurfKGBenY2S+4490x+DvVDwjno5hT+bINhtZv2zuoa\n\tp4bcdkR0uUEO7w8JRUTXuJM+V12dn/3GD7bRVab9LrGH4IrbzLrmtTQ9qRh93+cJ\n\tYJFuTzbrYPF2155OeQXvoesjaP0q58uxifPK1za+Ir5D4a3/XGwGZN7tw9HBdrcv\n\t6I+DtZdenGYWnjAKYHNvgAENWGMNyHXFWayBdyFZxRDAm4C6XJIk1Kopu0jw3yDJ\n\tQbU+kCBkpiSDoYyO03JXXlrnvby0iizFtV0/mlrtBr0Mgbf1WwtnE/CGsC+bF1rV\n\tUjCBUg==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=oss.qualcomm.com; s=google; t=1777048874; x=1777653674;\n darn=vger.kernel.org;\n        h=content-transfer-encoding:in-reply-to:from:references:cc:to\n         :content-language:subject:user-agent:mime-version:date:message-id\n         :from:to:cc:subject:date:message-id:reply-to;\n        bh=eltpKz/vHGzdVltnYjt3RwZNW4ucKi/6/+2SCBIudcA=;\n        b=H0R/qiQ/UFr4+5Le8JpgtFHjPSlwlYCaaVQShxX+Lr6AirgA9PaIZYmmN2cyLUChW4\n         IN7yjqjcCsgCr7MDeaQZDmGcLMguWfR+KtYHGjuTT4WVvcDolGSSAphTtxIfejY6a/b7\n         3HILALXkjffRjIdOe2hJVD5HhcTHipr7+QhzD4vBpaMztAIOTQrgGNXDRh5E5srGZvY+\n         v1V6zXahYpMLMWVHMLHY5uVMkXvlzxll9nojs/olF7u/ZAuipWLAkBTjNytkHgeQ8mVe\n         Hl+u+HXIEb55gxZvi7eSUe+13gRlL93bmBkE+hN3TXVBIjRPIPf2pPXmlO+qvi46ak4z\n         szRA=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1777048874; x=1777653674;\n        h=content-transfer-encoding:in-reply-to:from:references:cc:to\n         :content-language:subject:user-agent:mime-version:date:message-id\n         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n         :reply-to;\n        bh=eltpKz/vHGzdVltnYjt3RwZNW4ucKi/6/+2SCBIudcA=;\n        b=IxrFYqTfAVGMxOjzZI8yCKo38aH3cctlqcfOfWAcz6kHB4DBo9Da9n2vK6JA9Ibjpr\n         LePRDnJ6jBXmtCKO7fT6uqoy0J7SGOmojKfBgF+0Q+CPjBOeTArQ6pDENvaYZyDmibAs\n         6htkGVCCFRyr4aiIeBk0y8zS0emwNJcy+LKGhOT+urW1a6i+27B8iH3HFoLpu42/vZ64\n         PireA7C7RvPNlsTgrJPlCSQVo8XI3104yGPWd04PcKCkpSn0RaZ4ZuTnC+DefpfQfimD\n         e7p4fstXm1/GW+96CthXXf1ge7Sw5V6m1x3SkDoVF4WRf22LI7g7cB8vLIZmejclDSIW\n         spLQ==","X-Forwarded-Encrypted":"i=1;\n AFNElJ8gU8bDg6QEltemTxBmG8sc2l3Oq+j11UHfMTwrrrPsfWQAOEOZg/Vu32lRgsPaI7htq0UIHGdrQP/UKQ==@vger.kernel.org","X-Gm-Message-State":"AOJu0YydcGSMCf/JghUH0xWkMxr/EMzaAoPzYKY8y1sigxzQwr/vOkyz\n\tR5sPmPYj1DV6ZPXDSiCkJNW9Y8oATXf8T82OMjn2owxr5aNYEgmhqyu4c4ozbsIBaHV7O5ZMUKm\n\tQk7yrfjZF9gY3V/hdeQ5XDV1VBUJQUAo9lrFxtDeSW3IGoMbvlj/MrylNhCHz1E8UPg==","X-Gm-Gg":"AeBDiesU0FHuNRiEQIZHv48gSr6/2oUv9p6PcCKwR40pND05L0YvW6IKRhL0vZYcyO4\n\tjzqRVg9jUkoEJ/GpHYmUcXZRFq7ajamM2eeygV33jRdLfsasTAilnCmzXs11q9HEVEGbr4wvmGg\n\tvIjTEHTTC+gwylKAe5IzIzyutRC5Xx2rkpTt44OqIU9iOl8pyeRLmdHVtp/L9/BQnWNPQr7+0NX\n\td6/bpGAeX8WCbvDwqmGgahmCm6C5Lx7PxiiJqYO3SrZ8LvEqL+p+5fdUWRY6jxJIOob4VkNHqW8\n\tppjOkopPqpamHz5BZcUJ7t3sT13giM62i/q1lFvP+OdX50fZxTYeUEdtksaXwHK1fLBauMYjV8g\n\tIb9Eufryy7q9GggGJBAYQjWLAE9tgj8HYr3R15eEl9u3SHIHrkZCMvDr+BPy/xBxT","X-Received":["by 2002:a17:90b:3c0f:b0:359:87a8:e65c with SMTP id\n 98e67ed59e1d1-3614046c9f7mr32840186a91.17.1777048874069;\n        Fri, 24 Apr 2026 09:41:14 -0700 (PDT)","by 2002:a17:90b:3c0f:b0:359:87a8:e65c with SMTP id\n 98e67ed59e1d1-3614046c9f7mr32840139a91.17.1777048873514;\n        Fri, 24 Apr 2026 09:41:13 -0700 (PDT)"],"Message-ID":"<eceae566-93da-a0e2-cac0-1f5abdbbe661@oss.qualcomm.com>","Date":"Fri, 24 Apr 2026 22:10:09 +0530","Precedence":"bulk","X-Mailing-List":"linux-tegra@vger.kernel.org","List-Id":"<linux-tegra.vger.kernel.org>","List-Subscribe":"<mailto:linux-tegra+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-tegra+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101\n Thunderbird/102.8.0","Subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","Content-Language":"en-US","To":"Greg Kroah-Hartman <gregkh@linuxfoundation.org>","Cc":"Bryan O'Donoghue <bod@kernel.org>,\n        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,\n        Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>,\n        Abhinav Kumar <abhinav.kumar@linux.dev>,\n        Mauro Carvalho Chehab <mchehab@kernel.org>,\n        Rob Herring <robh@kernel.org>,\n        Krzysztof Kozlowski <krzk+dt@kernel.org>,\n        Conor Dooley\n <conor+dt@kernel.org>, Joerg Roedel <joro@8bytes.org>,\n        Will Deacon <will@kernel.org>, Robin Murphy <robin.murphy@arm.com>,\n        Bjorn Andersson <andersson@kernel.org>,\n        Konrad Dybcio <konradybcio@kernel.org>,\n        Stefan Schmidt <stefan.schmidt@linaro.org>,\n        Hans Verkuil <hverkuil@kernel.org>,\n        \"Rafael J. Wysocki\" <rafael@kernel.org>,\n        Danilo Krummrich <dakr@kernel.org>,\n        Thierry Reding <thierry.reding@kernel.org>,\n        Mikko Perttunen <mperttunen@nvidia.com>,\n        David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,\n        Jonathan Hunter <jonathanh@nvidia.com>, linux-media@vger.kernel.org,\n        linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,\n        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,\n        driver-core@lists.linux.dev, dri-devel@lists.freedesktop.org,\n        linux-tegra@vger.kernel.org,\n        Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>,\n        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>","References":"<20260423-glymur-v2-0-0296bccb9f4e@oss.qualcomm.com>\n <20260423-glymur-v2-2-0296bccb9f4e@oss.qualcomm.com>\n <2026042346-trustable-register-095a@gregkh>\n <06c04947-e72e-679b-493b-e112d693f391@oss.qualcomm.com>\n <2026042422-deem-chemist-8d0f@gregkh>\n <4c3fa710-f61a-4aad-622d-54909190cb9e@oss.qualcomm.com>\n <2026042428-blemish-helpline-7d8d@gregkh>\n <1e039dd5-da3f-19b2-ef98-29e64fdd925d@oss.qualcomm.com>\n <2026042442-luxurious-antonym-f20c@gregkh>","From":"Vishnu Reddy <busanna.reddy@oss.qualcomm.com>","In-Reply-To":"<2026042442-luxurious-antonym-f20c@gregkh>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit","X-Authority-Analysis":"v=2.4 cv=LfYMLDfi c=1 sm=1 tr=0 ts=69eb9d2a cx=c_pps\n a=vVfyC5vLCtgYJKYeQD43oA==:117 a=K3jt3zD9TrcZs+Uyli2v9A==:17\n a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10\n a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22\n a=VwQbUJbxAAAA:8 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=TCXhiZJuOe0p4lytgSYA:9\n a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 a=a-qgeE7W1pNrGK8U0ZQC:22","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDI0MDE2MiBTYWx0ZWRfX66cnftQ6FVnU\n NhQpjabOXkTVe0M3gm2O4DssuCaZh2QxBostW1F4aju1/kvbTY7IgnEUUcFiJJu96UjryiwQXzV\n uxsl88p83nsXIrHZ+lrA+Bh1d0ZBcFoupTSiTJ2NudRooLAHv4z8ruW7fStcr04TQwREUhMxaMU\n RB0alYBr9E9HjWxL4LHJOr4tE/ouzJPfNXLufMLlZvjwyF6IhWTggBYp2RVgWPUhf7WRjgfcT57\n HJBU9wgihOmDI1f1s3T1ZcBhhVxOf994vJJSULQfOwBdE5hsZg7jb++AWcPgrQroJrzrDjEkiaR\n i7G3H+xolHbZdw5gkBH7YZW5+v3XyJOYM/92aceWDpkM4GfkWguCzRtKkyZVqCfuhwFZIDAGmDg\n Zury95WjwX7YePCCPbFu0vpk9CcUsNa9A5zvFhxXt9RhUL2qihSH82lf4WVbNxfHx8LMp2PS849\n 0lIG6Rn/k1pzC7uI5Sg==","X-Proofpoint-ORIG-GUID":"ajVF8CiZgGVkeEIz8KScR0eCuroBD4aZ","X-Proofpoint-GUID":"ajVF8CiZgGVkeEIz8KScR0eCuroBD4aZ","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-24_02,2026-04-21_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n phishscore=0 lowpriorityscore=0 adultscore=0 priorityscore=1501\n malwarescore=0 clxscore=1015 spamscore=0 impostorscore=0 bulkscore=0\n suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc=\n route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000\n definitions=main-2604240162"}},{"id":3682252,"web_url":"http://patchwork.ozlabs.org/comment/3682252/","msgid":"<2026042539-swab-active-21a5@gregkh>","list_archive_url":null,"date":"2026-04-25T05:42:04","subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","submitter":{"id":11800,"url":"http://patchwork.ozlabs.org/api/people/11800/","name":"Greg KH","email":"gregkh@linuxfoundation.org"},"content":"On Fri, Apr 24, 2026 at 07:11:35PM +0300, Dmitry Baryshkov wrote:\n> On Fri, Apr 24, 2026 at 03:34:38PM +0200, Greg Kroah-Hartman wrote:\n> > On Fri, Apr 24, 2026 at 06:12:09PM +0530, Vishnu Reddy wrote:\n> > > \n> > > On 4/24/2026 5:25 PM, Greg Kroah-Hartman wrote:\n> > > > On Fri, Apr 24, 2026 at 05:15:02PM +0530, Vishnu Reddy wrote:\n> > > >> On 4/24/2026 4:43 PM, Greg Kroah-Hartman wrote:\n> > > >>> On Fri, Apr 24, 2026 at 04:01:13PM +0530, Vishnu Reddy wrote:\n> > > >>>> On 4/23/2026 7:07 PM, Greg Kroah-Hartman wrote:\n> > > >>>>> On Thu, Apr 23, 2026 at 06:59:31PM +0530, Vishnu Reddy wrote:\n> > > >>>>>> From: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n> > > >>>>>>\n> > > >>>>>> When a driver needs to create virtual device at runtime and map it to\n> > > >>>>>> an IOMMU context for memory isolation, there is no common bus available\n> > > >>>>>> for this purpose. Each driver ends up implementing its own bus type,\n> > > >>>>>> leading to duplicated logic across multiple drivers.\n> > > >>>>>>\n> > > >>>>>> host1x driver implemented its own bus type to attach an IOMMU context to\n> > > >>>>>> a dynamically created device. The Iris VPU driver now has the same\n> > > >>>>>> requirement. Rather than duplicating the same bus logic again, a shared\n> > > >>>>>> bus type is introduced under drivers/base that multiple drivers can use\n> > > >>>>>> directly.\n> > > >>>>>>\n> > > >>>>>> The bus takes care of creating a device and attaching the IOMMU context\n> > > >>>>>> to it based on the client inputs.\n> > > >>>>>>\n> > > >>>>>> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>\n> > > >>>>>> Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n> > > >>>>>> Signed-off-by: Vikash Garodia <vikash.garodia@oss.qualcomm.com>\n> > > >>>>>> Signed-off-by: Vishnu Reddy <busanna.reddy@oss.qualcomm.com>\n> > > >>>>>> ---\n> > > >>>>>>  drivers/base/Kconfig            |  3 ++\n> > > >>>>>>  drivers/base/Makefile           |  1 +\n> > > >>>>>>  drivers/base/dma_context_bus.c  | 77 +++++++++++++++++++++++++++++++++++++++++\n> > > >>>>>>  include/linux/dma_context_bus.h | 26 ++++++++++++++\n> > > >>>>>>  4 files changed, 107 insertions(+)\n> > > >>>>> as you can not have a device on multiple busses at the same time, this\n> > > >>>>> makes no sense to me at all.  \"dma context\" is a bus-specific thing, so\n> > > >>>>> please add it to the bus that you are wanting it for.  It can't be a\n> > > >>>>> generic bus as that just doesn't work.\n> > > >>>>>\n> > > >>>>> Or what am I missing here?\n> > > >>>>>\n> > > >>>>> And why is DMA somehow \"special\" here from any other hardware attribute?\n> > > >>>> Let me give brief information which was discussed, in the initial series,\n> > > >>>> the iris VPU used platform bus for dynamically created devices and we got\n> > > >>>> the comment/suggestion from Robin to implement a proper bus_type with a\n> > > >>>> .dma_configure callback.\n> > > >>>>\n> > > >>>> https://lore.kernel.org/all/02b3d0f5-f94c-43cd-93af-97cfcf7751b1@arm.com/\n> > > >>>>\n> > > >>>> based on the discussion, implemented the dma_context_bus and used for iris\n> > > >>>> VPU devices instead of platform bus.\n> > > >>> Why not make a irus_vpu_bus where you can do what you want?\n> > > >> Initially iris_vpu_bus was introduced, and it was made generic based on the\n> > > >> discussion,\n> > > >>\n> > > >> https://lore.kernel.org/all/20260227-kaanapali-iris-v2-3-850043ac3933@oss.qualcomm.com/\n> > > > I don't really see that request here, I see a \"make this better and more\n> > > > generic for other busses\" but that does not mean \"dump it into\n> > > > drivers/bus/ for someone else to maintain\" :)\n> > > >\n> > > >>>> Here, the device have only one bus (dma_context_bus), not multiple buses.\n> > > >>>>\n> > > >>>> Regarding the \"DMA\" naming, the core operation of this bus is its\n> > > >>>> .dma_configure callback, which calls of_dma_configure_id() to map the device\n> > > >>>> to a corresponding IOMMU stream ID. The name \"dma_context\" reflects this\n> > > >>>> purpose.\n> > > >>>>\n> > > >>>> I am open to suggestions from you or Robin or anyone else, if there is a\n> > > >>>> better or preferred way to achieve this, I am happy to consider it and\n> > > >>>> rework the implementation accordingly.\n> > > >>> As there is only one user, just make this your own bus please and do all\n> > > >>> of the needed bus operations for your devices there (i.e. don't hang an\n> > > >>> \"empty\" device off of it.)\n> > > >> The reasoning behind to make it generic was to have more users - host1x,\n> > > >> Iris VPU, QDA on the generic context bus, instead of each of them having\n> > > >> their own. Let me know if you suggest to have the iris_vpu_bus.\n> > > > But you did not add such users here, so how would we know this?\n> > > >\n> > > > And still, I have no idea what this bus really is doing.  Is it dynamic?\n> > > > Is it self-describing?  Why not just use aux-bus?  What is it supposed\n> > > > to be doing and used for?\n> > > \n> > > This bus will allow users to create a dynamic device and map to IOMMU stream\n> > > ID via .dma_configure callback which calls the of_dma_confgure_id() based on\n> > > the user inputs. This bus is under the iommu_buses list to register for bus\n> > > notifier callbacks for iommu_probe_device() and iommu_release_device() during\n> > > add and remove.\n> > \n> > But a device is nothing on its own.  You can not just have a random\n> > 'struct device' hanging out there that does nothing but iommu, right?\n> > It should be doing something else that is very \"bus\" specific.\n> \n> Unfortunately, it is a pattern of IOMMU-only devices. All the actual\n> programmig is done through IO region associated with the main device,\n> while subdevices are mostly used for DMA buffer allocation.\n\nGreat, then you have a \"host controller\" for the devices, and children\ndevices on that bus, with proper drivers binding to them.  Like all\nother normal busses.\n\nYes, writing a new bus is a bit more pain than it should be, one of\nthese days someone will get around to making that simpler...\n\nAlong those lines, why aren't these new drivers in rust?  :)\n\nthanks,\n\ngreg k-h","headers":{"Return-Path":"\n <linux-tegra+bounces-13957-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-tegra@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=linuxfoundation.org header.i=@linuxfoundation.org\n header.a=rsa-sha256 header.s=korg header.b=AIulHLRA;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-tegra+bounces-13957-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=linuxfoundation.org\n header.i=@linuxfoundation.org header.b=\"AIulHLRA\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g2dxt6YQgz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 25 Apr 2026 15:42:10 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id A6FEC3007E03\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 25 Apr 2026 05:42:07 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 6E3D72D8391;\n\tSat, 25 Apr 2026 05:42:07 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 1B04C5CDF1;\n\tSat, 25 Apr 2026 05:42:06 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 2F38FC2BCB2;\n\tSat, 25 Apr 2026 05:42:06 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777095727; cv=none;\n b=JwYZeZeqL0sQ7k3Zc7Nc78/unXyAriXeD885CEwuVVwPGtBoFTpVOwU5eyRx7iaNu+QiAs6UQmTys8hyw57AFqGxjViw7g6H9fzA0mjhIdY2s2OqksWabL8HYIKgEOq4Vx5lmt6zKF9A4kBmSE4qo7OAp2HDawMiJ3YcUho+8as=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777095727; c=relaxed/simple;\n\tbh=HPRnxwXK8vu5np6VX+55Q2Y3ogOkac72lAGyNzFWA/g=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=R3Re49FwHaP8eIO03P1z7v2xQIt8wcGIVe9n6fs9hoy2KvmvjqeZJpBLEcvRtXmyvms0uuKH2OFpaxyaJ0FxTUmHL5A9sIwyi0Pqh6H6O1gBIMAR9CN32Rl10WEBOqdiOmn5ShTTwctS8WdeWcvF6cwZPEUppQKZVG9VwjTG9dw=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (1024-bit key) header.d=linuxfoundation.org\n header.i=@linuxfoundation.org header.b=AIulHLRA;\n arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org;\n\ts=korg; t=1777095726;\n\tbh=HPRnxwXK8vu5np6VX+55Q2Y3ogOkac72lAGyNzFWA/g=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=AIulHLRAKLlLErfT4LNX6qehizWiYSRf/7frr23MN5EuQV/uv1/GMEgWhNnYOC3S2\n\t P7aAr8Ifr31gNTvRcI/4Tu1+p8sDQj+AymmqnfPtX25X51hEmG9Qfc+0zfM+WqN3cH\n\t qxacBTLwV8747T2MjGJ/lwbO5Uglr0akF36/x8Rk=","Date":"Sat, 25 Apr 2026 07:42:04 +0200","From":"Greg Kroah-Hartman <gregkh@linuxfoundation.org>","To":"Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>","Cc":"Vishnu Reddy <busanna.reddy@oss.qualcomm.com>,\n\tBryan O'Donoghue <bod@kernel.org>,\n\tVikash Garodia <vikash.garodia@oss.qualcomm.com>,\n\tDikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>,\n\tAbhinav Kumar <abhinav.kumar@linux.dev>,\n\tMauro Carvalho Chehab <mchehab@kernel.org>,\n\tRob Herring <robh@kernel.org>,\n\tKrzysztof Kozlowski <krzk+dt@kernel.org>,\n\tConor Dooley <conor+dt@kernel.org>, Joerg Roedel <joro@8bytes.org>,\n\tWill Deacon <will@kernel.org>, Robin Murphy <robin.murphy@arm.com>,\n\tBjorn Andersson <andersson@kernel.org>,\n\tKonrad Dybcio <konradybcio@kernel.org>,\n\tStefan Schmidt <stefan.schmidt@linaro.org>,\n\tHans Verkuil <hverkuil@kernel.org>,\n\t\"Rafael J. Wysocki\" <rafael@kernel.org>,\n\tDanilo Krummrich <dakr@kernel.org>,\n\tThierry Reding <thierry.reding@kernel.org>,\n\tMikko Perttunen <mperttunen@nvidia.com>,\n\tDavid Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,\n\tJonathan Hunter <jonathanh@nvidia.com>, linux-media@vger.kernel.org,\n\tlinux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org, iommu@lists.linux.dev,\n\tdriver-core@lists.linux.dev, dri-devel@lists.freedesktop.org,\n\tlinux-tegra@vger.kernel.org,\n\tEkansh Gupta <ekansh.gupta@oss.qualcomm.com>","Subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","Message-ID":"<2026042539-swab-active-21a5@gregkh>","References":"<20260423-glymur-v2-0-0296bccb9f4e@oss.qualcomm.com>\n <20260423-glymur-v2-2-0296bccb9f4e@oss.qualcomm.com>\n <2026042346-trustable-register-095a@gregkh>\n <06c04947-e72e-679b-493b-e112d693f391@oss.qualcomm.com>\n <2026042422-deem-chemist-8d0f@gregkh>\n <4c3fa710-f61a-4aad-622d-54909190cb9e@oss.qualcomm.com>\n <2026042428-blemish-helpline-7d8d@gregkh>\n <1e039dd5-da3f-19b2-ef98-29e64fdd925d@oss.qualcomm.com>\n <2026042442-luxurious-antonym-f20c@gregkh>\n <xuitjl6tzfl6nl4ds4vdy3637i5cqtjuqntcpqt5fnkx2ogcws@iapcavrwhyzv>","Precedence":"bulk","X-Mailing-List":"linux-tegra@vger.kernel.org","List-Id":"<linux-tegra.vger.kernel.org>","List-Subscribe":"<mailto:linux-tegra+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-tegra+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<xuitjl6tzfl6nl4ds4vdy3637i5cqtjuqntcpqt5fnkx2ogcws@iapcavrwhyzv>"}},{"id":3682275,"web_url":"http://patchwork.ozlabs.org/comment/3682275/","msgid":"<CAO9ioeXWM74DEa=SA2vSvN_cmXivDth2VSmv2c1SOWtdL2i=OA@mail.gmail.com>","list_archive_url":null,"date":"2026-04-25T10:35:28","subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","submitter":{"id":90483,"url":"http://patchwork.ozlabs.org/api/people/90483/","name":"Dmitry Baryshkov","email":"dmitry.baryshkov@oss.qualcomm.com"},"content":"On Sat, 25 Apr 2026 at 08:42, Greg Kroah-Hartman\n<gregkh@linuxfoundation.org> wrote:\n>\n> On Fri, Apr 24, 2026 at 07:11:35PM +0300, Dmitry Baryshkov wrote:\n> > On Fri, Apr 24, 2026 at 03:34:38PM +0200, Greg Kroah-Hartman wrote:\n> > > On Fri, Apr 24, 2026 at 06:12:09PM +0530, Vishnu Reddy wrote:\n> > > >\n> > > > On 4/24/2026 5:25 PM, Greg Kroah-Hartman wrote:\n> > > > > On Fri, Apr 24, 2026 at 05:15:02PM +0530, Vishnu Reddy wrote:\n> > > > >> On 4/24/2026 4:43 PM, Greg Kroah-Hartman wrote:\n> > > > >>> On Fri, Apr 24, 2026 at 04:01:13PM +0530, Vishnu Reddy wrote:\n> > > > >>>> On 4/23/2026 7:07 PM, Greg Kroah-Hartman wrote:\n> > > > >>>>> On Thu, Apr 23, 2026 at 06:59:31PM +0530, Vishnu Reddy wrote:\n> > > > >>>>>> From: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n> > > > >>>>>>\n> > > > >>>>>> When a driver needs to create virtual device at runtime and map it to\n> > > > >>>>>> an IOMMU context for memory isolation, there is no common bus available\n> > > > >>>>>> for this purpose. Each driver ends up implementing its own bus type,\n> > > > >>>>>> leading to duplicated logic across multiple drivers.\n> > > > >>>>>>\n> > > > >>>>>> host1x driver implemented its own bus type to attach an IOMMU context to\n> > > > >>>>>> a dynamically created device. The Iris VPU driver now has the same\n> > > > >>>>>> requirement. Rather than duplicating the same bus logic again, a shared\n> > > > >>>>>> bus type is introduced under drivers/base that multiple drivers can use\n> > > > >>>>>> directly.\n> > > > >>>>>>\n> > > > >>>>>> The bus takes care of creating a device and attaching the IOMMU context\n> > > > >>>>>> to it based on the client inputs.\n> > > > >>>>>>\n> > > > >>>>>> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>\n> > > > >>>>>> Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>\n> > > > >>>>>> Signed-off-by: Vikash Garodia <vikash.garodia@oss.qualcomm.com>\n> > > > >>>>>> Signed-off-by: Vishnu Reddy <busanna.reddy@oss.qualcomm.com>\n> > > > >>>>>> ---\n> > > > >>>>>>  drivers/base/Kconfig            |  3 ++\n> > > > >>>>>>  drivers/base/Makefile           |  1 +\n> > > > >>>>>>  drivers/base/dma_context_bus.c  | 77 +++++++++++++++++++++++++++++++++++++++++\n> > > > >>>>>>  include/linux/dma_context_bus.h | 26 ++++++++++++++\n> > > > >>>>>>  4 files changed, 107 insertions(+)\n> > > > >>>>> as you can not have a device on multiple busses at the same time, this\n> > > > >>>>> makes no sense to me at all.  \"dma context\" is a bus-specific thing, so\n> > > > >>>>> please add it to the bus that you are wanting it for.  It can't be a\n> > > > >>>>> generic bus as that just doesn't work.\n> > > > >>>>>\n> > > > >>>>> Or what am I missing here?\n> > > > >>>>>\n> > > > >>>>> And why is DMA somehow \"special\" here from any other hardware attribute?\n> > > > >>>> Let me give brief information which was discussed, in the initial series,\n> > > > >>>> the iris VPU used platform bus for dynamically created devices and we got\n> > > > >>>> the comment/suggestion from Robin to implement a proper bus_type with a\n> > > > >>>> .dma_configure callback.\n> > > > >>>>\n> > > > >>>> https://lore.kernel.org/all/02b3d0f5-f94c-43cd-93af-97cfcf7751b1@arm.com/\n> > > > >>>>\n> > > > >>>> based on the discussion, implemented the dma_context_bus and used for iris\n> > > > >>>> VPU devices instead of platform bus.\n> > > > >>> Why not make a irus_vpu_bus where you can do what you want?\n> > > > >> Initially iris_vpu_bus was introduced, and it was made generic based on the\n> > > > >> discussion,\n> > > > >>\n> > > > >> https://lore.kernel.org/all/20260227-kaanapali-iris-v2-3-850043ac3933@oss.qualcomm.com/\n> > > > > I don't really see that request here, I see a \"make this better and more\n> > > > > generic for other busses\" but that does not mean \"dump it into\n> > > > > drivers/bus/ for someone else to maintain\" :)\n> > > > >\n> > > > >>>> Here, the device have only one bus (dma_context_bus), not multiple buses.\n> > > > >>>>\n> > > > >>>> Regarding the \"DMA\" naming, the core operation of this bus is its\n> > > > >>>> .dma_configure callback, which calls of_dma_configure_id() to map the device\n> > > > >>>> to a corresponding IOMMU stream ID. The name \"dma_context\" reflects this\n> > > > >>>> purpose.\n> > > > >>>>\n> > > > >>>> I am open to suggestions from you or Robin or anyone else, if there is a\n> > > > >>>> better or preferred way to achieve this, I am happy to consider it and\n> > > > >>>> rework the implementation accordingly.\n> > > > >>> As there is only one user, just make this your own bus please and do all\n> > > > >>> of the needed bus operations for your devices there (i.e. don't hang an\n> > > > >>> \"empty\" device off of it.)\n> > > > >> The reasoning behind to make it generic was to have more users - host1x,\n> > > > >> Iris VPU, QDA on the generic context bus, instead of each of them having\n> > > > >> their own. Let me know if you suggest to have the iris_vpu_bus.\n> > > > > But you did not add such users here, so how would we know this?\n> > > > >\n> > > > > And still, I have no idea what this bus really is doing.  Is it dynamic?\n> > > > > Is it self-describing?  Why not just use aux-bus?  What is it supposed\n> > > > > to be doing and used for?\n> > > >\n> > > > This bus will allow users to create a dynamic device and map to IOMMU stream\n> > > > ID via .dma_configure callback which calls the of_dma_confgure_id() based on\n> > > > the user inputs. This bus is under the iommu_buses list to register for bus\n> > > > notifier callbacks for iommu_probe_device() and iommu_release_device() during\n> > > > add and remove.\n> > >\n> > > But a device is nothing on its own.  You can not just have a random\n> > > 'struct device' hanging out there that does nothing but iommu, right?\n> > > It should be doing something else that is very \"bus\" specific.\n> >\n> > Unfortunately, it is a pattern of IOMMU-only devices. All the actual\n> > programmig is done through IO region associated with the main device,\n> > while subdevices are mostly used for DMA buffer allocation.\n>\n> Great, then you have a \"host controller\" for the devices, and children\n> devices on that bus, with proper drivers binding to them.  Like all\n> other normal busses.\n\nI see your point.\n\n>\n> Yes, writing a new bus is a bit more pain than it should be, one of\n> these days someone will get around to making that simpler...\n>\n> Along those lines, why aren't these new drivers in rust?  :)\n\n:-D","headers":{"Return-Path":"\n <linux-tegra+bounces-13960-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-tegra@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=dGBFF5tT;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=HWq3GUn4;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.232.135.74; helo=sto.lore.kernel.org;\n envelope-from=linux-tegra+bounces-13960-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=\"dGBFF5tT\";\n\tdkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=\"HWq3GUn4\"","smtp.subspace.kernel.org;\n arc=pass smtp.client-ip=205.220.180.131","smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=oss.qualcomm.com"],"Received":["from sto.lore.kernel.org (sto.lore.kernel.org [172.232.135.74])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g2mSj0LZqz1yHv\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 25 Apr 2026 20:35:48 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sto.lore.kernel.org (Postfix) with ESMTP id A8B9030028B2\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 25 Apr 2026 10:35:45 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 0E109395266;\n\tSat, 25 Apr 2026 10:35:45 +0000 (UTC)","from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com\n [205.220.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 4D7BF37E2F5\n\tfor <linux-tegra@vger.kernel.org>; Sat, 25 Apr 2026 10:35:43 +0000 (UTC)","from pps.filterd (m0279873.ppops.net [127.0.0.1])\n\tby mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63P3N0pJ207243\n\tfor <linux-tegra@vger.kernel.org>; Sat, 25 Apr 2026 10:35:42 GMT","from mail-pl1-f199.google.com (mail-pl1-f199.google.com\n [209.85.214.199])\n\tby mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4drnnf0pvf-1\n\t(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n\tfor <linux-tegra@vger.kernel.org>; Sat, 25 Apr 2026 10:35:42 +0000 (GMT)","by mail-pl1-f199.google.com with SMTP id\n d9443c01a7336-2b4530a90fdso172020845ad.1\n        for <linux-tegra@vger.kernel.org>;\n Sat, 25 Apr 2026 03:35:41 -0700 (PDT)"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777113344; cv=pass;\n b=Z+QArboDD83SMT6P/x83BA95/RDKoIhc5K2uf2ieILA6faGTmRxFBqBdwOnZLseHQfk7AsRutrihmw0PzV/ULTJ2fX2gDkVL65DHxA7EwRhBa4rKHab1tXC3w8Ebp9l7SUKUecZOqtCv9yUpSrlYjJX3GXpLUzTJORD7ZIjVKpY=","i=1; a=rsa-sha256; t=1777113341; cv=none;\n        d=google.com; s=arc-20240605;\n        b=FFD/oIbsAG6VK59yJxtXer8iIKMjSNvRAqRfl880JOiGoJVVxqp6pv/wKdAIuHLYib\n         k0qyuRElc7WF6hc9oD+SvaZ7Q134S5qon1ZEieHpbFyP+I5LTaMKhoech4+bDilUT/J+\n         EcOu/tZUAyS649CTSWB/2abfsJRsSvhhuf47ZDSWC85XTPxVXpeq547yoBALlfwGA7+/\n         E+7UHEf5wAj8P9f0fCDKkgCzbLqgt4keI3XbbnvAFURn9qswbG04/0RmG+XwLv/6QWBy\n         jpyLpuzofHWLgeVheXREccjmprtPWN4OuN3AIAViDB1JHbh133trhDel+gFNDMb6vz8T\n         E9Gw=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777113344; c=relaxed/simple;\n\tbh=4NBgU5nhiCAulZ8OH3gzj5HZxHYRUI3QHz5iaW52bM0=;\n\th=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject:\n\t To:Cc:Content-Type;\n b=RmRW4Z1exmhhZ5yyi5Q5j5c8mEvH9cTqtI7BIeRV/bdyLMdyaDtAPyM4V7ylOHZO4LQo4q+6NLL7HXnXXeBcANZG5jl4Wc2/GHGsV5lsAGpwH7xZ+EEglAlAPivyxYw0QmL+CkqJK6cnmdP0ATkqd68CfGgzVerq3lpHJTs8Dxo=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n        h=cc:to:subject:message-id:date:from:in-reply-to:references\n         :mime-version:dkim-signature;\n        bh=jxCmCQDJ+QKREcMZ2PcVDsOS3meXGSX8BjTm2djUMR8=;\n        fh=IoVtwcw7k1bwhGx5Xl6xtjYPbOxq+e2i6l7UD1AqK5g=;\n        b=eP3BQcac1rPfzr9Wgm6GmPdQxZNJ1wtv6sclWkcdguMLZNn2TAXMSwwxmGOMGprMST\n         oaRpd0wnCDhTvu4bSzwL07mMIJgNusC38fJOHUHgNzBAv7CqYPcJcjwuPLAMaYzbJMZW\n         p8b+stG8tul4CfYr1o/JvOU3tJjxwI8Lpt5K1pMC3KHEt0RofPuw3t9SvaZrkqmEBe9k\n         QnO/+Er9sa8UQG6ezJxuZuE3NWSGJ2vLuAXuJYm6qx8w3V8hz2IGeCa8UAGR4ESDuklj\n         3v1XXwVNVaaLYkz7VfgoG9myixk4wzCSAniz8Dt5bF6z/ie1BltzDMn+ct5xmUBSUhl6\n         NvRQ==;\n        darn=vger.kernel.org"],"ARC-Authentication-Results":["i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com;\n spf=pass smtp.mailfrom=oss.qualcomm.com;\n dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=dGBFF5tT;\n dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=HWq3GUn4; arc=pass smtp.client-ip=205.220.180.131","i=1; mx.google.com; arc=none"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n\tcc:content-type:date:from:in-reply-to:message-id:mime-version\n\t:references:subject:to; s=qcppdkim1; bh=jxCmCQDJ+QKREcMZ2PcVDsOS\n\t3meXGSX8BjTm2djUMR8=; b=dGBFF5tTpOPFqq2QI4ayNBfnKhRP/k7EDxQIgTYF\n\tsGqNW5qPUHUXETkyh7iTM5vTeVm9lfUpClEKREr45gJneIbvw4kHmodwjLqqMHe+\n\tlBBwMGPTQWuzEgmWxoBk9Wi0UE21yKwWY997OZpr3nbrAqm0St4mgvR87fe6WSle\n\tvITCEfARKXWVSdbl2gUEAEljTKIR0F/ZeBRQ7JWsV+MJXV1I+YQPkAtwgVqWyFuB\n\tsl3EzPSs+264Drdh8r9xtX2gRqr6IxAuEstVGDGw8IZ6EocBU+dZxYt5DGv2pHrh\n\tYMbYTmEnSwJ5XvRbZTIKE+EM/htPgfVJF9WxWcBg5GPXuw==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=oss.qualcomm.com; s=google; t=1777113341; x=1777718141;\n darn=vger.kernel.org;\n        h=cc:to:subject:message-id:date:from:in-reply-to:references\n         :mime-version:from:to:cc:subject:date:message-id:reply-to;\n        bh=jxCmCQDJ+QKREcMZ2PcVDsOS3meXGSX8BjTm2djUMR8=;\n        b=HWq3GUn4TuFMoLNMD41e7Y4FL0SvAEZ5wJDA0002+frqA5gBaPRd1kIAI7sCaI4gmv\n         bhf0Fh4dmHyZSw+7cQBdTGuKGo5CVMCH2Wdy/m8XcV/sYQRHeBA3ep/wqvM8nDbQnowv\n         9rp2WZaueU53y716hFduJAbNbLlK8jdaVkbHkGAzPxVExzPO+r+Bw6mnO/oRHm173vYb\n         Z8QAZvjtMqcycaKiJi6rfscwyOdyBYEG+lr2101kO0uSZmw812GCZQJqIPcHCs9bhvfI\n         BSpyBTT1vtlryW950+b4GgG6/b1q6uXYxudZflqs0qjn2nHJtqsDJDETaF2HNu1eysQd\n         HQuA=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1777113341; x=1777718141;\n        h=cc:to:subject:message-id:date:from:in-reply-to:references\n         :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n         :message-id:reply-to;\n        bh=jxCmCQDJ+QKREcMZ2PcVDsOS3meXGSX8BjTm2djUMR8=;\n        b=irzqfBmSxN6nXW1aRMC5o8BesosxZtPWKnTFDivgpLbkveXfLvg99KAv33QIZQQ9Mk\n         nTCvzjHSVoAcckxHxBLf8yAarE78e65nkn7qdCvgReg9nqBxAK4E4AmrmLvkQNIJS47H\n         a0ft9tsIT6BLxYMC4N6Fi7ZqRxnyPKOZITdr2v1SyrVTS7PZMbVBhjL8dEGKuOg9w3lJ\n         xcU7Fpf9OEtc2SDtqR8TwBE8qPOSLStLoIbNryRxpFwzGJxmlRP9TO8w0KIgLOA2qkt+\n         JmiCZlu5XE+mrP4h/pj7I42/snsIFurHPOkTNTwt6BjJ1gITmyKaSLghv98LfaMF5Cas\n         4syw==","X-Forwarded-Encrypted":"i=1;\n AFNElJ/pq70U0wylJsNSIMnaHTJttuV59DCZ7f5W5LoU1Bk/DY69btGPKvZN2iOgPSaNbmxayRD5enjefYZO7g==@vger.kernel.org","X-Gm-Message-State":"AOJu0YzSD6z9+z4augAroQZc2ukHdOdOqrpx16kAxe+LDhzldpQV0R5F\n\tEetTKp05sjf5sgaOsKBmVZj2JnBfMR+xlWBLZR/lKGSX4WK6tUSssGC2SFfl7GVpRO2/elPdhRY\n\tPWFq9jvgCywGnAtq3rZx1qCnmPX1Z2jtY5yAvJlDCIjWnSE1DUP3kiQN1LxkmCU2N0ReRs14zww\n\tOv6flKwu/fzM5cBnkMNoewZOWrW8fH3lR7RUUrrI0b","X-Gm-Gg":"AeBDietyajdLEK3V5sO8K2m1vKsZOzDwgLICfpq0P+H7NpHuQlYF+pDS8OYmFv4bdEY\n\t3AfnyfBJTZDwtPrIoZRznHV1H5VjqnhB44TDdeAVcRKiKbemEYimNK0BU6g3QJcpSMMSTlOAnzz\n\tBHUNz1cn3ZUbfbLGoUEJPyigKLD0ynvb1jVy/E2Swrwe4zyS8yaoy4mQGGFBcUM/PpwcDCoX0B7\n\tu4UFmX5Y0setwgP7R4=","X-Received":["by 2002:a05:6a20:3ca3:b0:398:77ae:8d8b with SMTP id\n adf61e73a8af0-3a09d099c4dmr37413510637.10.1777113340988;\n        Sat, 25 Apr 2026 03:35:40 -0700 (PDT)","by 2002:a05:6a20:3ca3:b0:398:77ae:8d8b with SMTP id\n adf61e73a8af0-3a09d099c4dmr37413465637.10.1777113340418; Sat, 25 Apr 2026\n 03:35:40 -0700 (PDT)"],"Precedence":"bulk","X-Mailing-List":"linux-tegra@vger.kernel.org","List-Id":"<linux-tegra.vger.kernel.org>","List-Subscribe":"<mailto:linux-tegra+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-tegra+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","References":"<20260423-glymur-v2-0-0296bccb9f4e@oss.qualcomm.com>\n <20260423-glymur-v2-2-0296bccb9f4e@oss.qualcomm.com>\n <2026042346-trustable-register-095a@gregkh>\n <06c04947-e72e-679b-493b-e112d693f391@oss.qualcomm.com>\n <2026042422-deem-chemist-8d0f@gregkh>\n <4c3fa710-f61a-4aad-622d-54909190cb9e@oss.qualcomm.com>\n <2026042428-blemish-helpline-7d8d@gregkh>\n <1e039dd5-da3f-19b2-ef98-29e64fdd925d@oss.qualcomm.com>\n <2026042442-luxurious-antonym-f20c@gregkh>\n <xuitjl6tzfl6nl4ds4vdy3637i5cqtjuqntcpqt5fnkx2ogcws@iapcavrwhyzv>\n <2026042539-swab-active-21a5@gregkh>","In-Reply-To":"<2026042539-swab-active-21a5@gregkh>","From":"Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>","Date":"Sat, 25 Apr 2026 13:35:28 +0300","X-Gm-Features":"AQROBzCbHZ9w70YTtp6TmSB59GwDi5IqmqQ6RzKXe3MebdTi8LTOo1dC7YaDYn8","Message-ID":"\n <CAO9ioeXWM74DEa=SA2vSvN_cmXivDth2VSmv2c1SOWtdL2i=OA@mail.gmail.com>","Subject":"Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus","To":"Greg Kroah-Hartman <gregkh@linuxfoundation.org>","Cc":"Vishnu Reddy <busanna.reddy@oss.qualcomm.com>,\n        \"Bryan O'Donoghue\" <bod@kernel.org>,\n        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,\n        Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>,\n        Abhinav Kumar <abhinav.kumar@linux.dev>,\n        Mauro Carvalho Chehab <mchehab@kernel.org>,\n        Rob Herring <robh@kernel.org>,\n        Krzysztof Kozlowski <krzk+dt@kernel.org>,\n        Conor Dooley <conor+dt@kernel.org>, Joerg Roedel <joro@8bytes.org>,\n        Will Deacon <will@kernel.org>, Robin Murphy <robin.murphy@arm.com>,\n        Bjorn Andersson <andersson@kernel.org>,\n        Konrad Dybcio <konradybcio@kernel.org>,\n        Stefan Schmidt <stefan.schmidt@linaro.org>,\n        Hans Verkuil <hverkuil@kernel.org>,\n        \"Rafael J. Wysocki\" <rafael@kernel.org>,\n        Danilo Krummrich <dakr@kernel.org>,\n        Thierry Reding <thierry.reding@kernel.org>,\n        Mikko Perttunen <mperttunen@nvidia.com>,\n        David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,\n        Jonathan Hunter <jonathanh@nvidia.com>, linux-media@vger.kernel.org,\n        linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,\n        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,\n        driver-core@lists.linux.dev, dri-devel@lists.freedesktop.org,\n        linux-tegra@vger.kernel.org,\n        Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>","Content-Type":"text/plain; charset=\"UTF-8\"","X-Proofpoint-ORIG-GUID":"Yysl4JERF48P1nIqJUqWXPa3NDdSwPVM","X-Authority-Analysis":"v=2.4 cv=Y5rIdBeN c=1 sm=1 tr=0 ts=69ec98fe cx=c_pps\n a=JL+w9abYAAE89/QcEU+0QA==:117 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10\n a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22\n a=rJkE3RaqiGZ5pbrm-msn:22 a=VwQbUJbxAAAA:8 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8\n a=ag1SF4gXAAAA:8 a=G4jgJTYFYwyYmvXJBf8A:9 a=QEXdDO2ut3YA:10\n a=324X-CrmTo6CU4MGRt3R:22 a=a-qgeE7W1pNrGK8U0ZQC:22 a=Yupwre4RP9_Eg_Bd0iYG:22","X-Proofpoint-GUID":"Yysl4JERF48P1nIqJUqWXPa3NDdSwPVM","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDI1MDEwMyBTYWx0ZWRfX/sgSlN13plzO\n 7m8OrJrI1IkJe1f+ejLex6RRT23H6EGWqK90w7z9oZxMsy4pK89k32S2ilTWTAM8PKE98ehCrOD\n tuaiVrVyQrwrA4Nsfd23Y6CRkEd0KMJnzBWaJWC56iWb/EHWbG/vEFKZ7bMyG9g4MxfpNVcFO74\n E3mXpVEVHyptqFWF6IhOb0sXF9+xhMFfuYDoXK3E8SxUTkFKkmZzqWvH5k33uhKiqkXyv2kGDBL\n q7//KobvYl7c8C/yfRElwn/fBsTPjPz3wB2etqtkW2NVzauwcrdq/RfyiS2BxdC5RrsLamn3VN9\n E/d2rA+smFCmuI0/0jJ3UiRTcSRBI9t1lRNl5qx9kK4A0VdMbYljyfNfkwQINCkT+wrotQdqDTP\n 5iSqt+kaon8tqRwz1ACZNQYynUVOpQ59Hr5lKi324AWX4J2ljNAJX4HtLyZRXoGR9heVY4eymO3\n +WgBxtE4LF0E8LhqQTw==","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-25_02,2026-04-21_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n impostorscore=0 phishscore=0 adultscore=0 clxscore=1015 priorityscore=1501\n lowpriorityscore=0 bulkscore=0 suspectscore=0 spamscore=0 malwarescore=0\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604250103"}}]