{"id":2175210,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2175210/?format=json","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/1.0/projects/28/?format=json","name":"Linux PCI development","link_name":"linux-pci","list_id":"linux-pci.vger.kernel.org","list_email":"linux-pci@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<20251217151609.3162665-11-den@valinux.co.jp>","date":"2025-12-17T15:15:44","name":"[RFC,v3,10/35] dmaengine: dw-edma: Fix MSI data values for multi-vector IMWr interrupts","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"57bf0a6d764006144e7a82fe08658591a3231ed3","submitter":{"id":91573,"url":"http://patchwork.ozlabs.org/api/1.0/people/91573/?format=json","name":"Koichiro Den","email":"den@valinux.co.jp"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-pci/patch/20251217151609.3162665-11-den@valinux.co.jp/mbox/","series":[{"id":485709,"url":"http://patchwork.ozlabs.org/api/1.0/series/485709/?format=json","date":"2025-12-17T15:15:53","name":"NTB transport backed by endpoint DW eDMA","version":3,"mbox":"http://patchwork.ozlabs.org/series/485709/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2175210/checks/","tags":{},"headers":{"Return-Path":"\n <linux-pci+bounces-43183-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@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=valinux.co.jp header.i=@valinux.co.jp\n header.a=rsa-sha256 header.s=selector1 header.b=A5B/rdQM;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org;\n envelope-from=linux-pci+bounces-43183-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp\n header.b=\"A5B/rdQM\"","smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=40.107.74.52","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=valinux.co.jp","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=valinux.co.jp","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=valinux.co.jp;"],"Received":["from tor.lore.kernel.org (tor.lore.kernel.org\n [IPv6:2600:3c04:e001:36c::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 4dWd8K5qxXz1y0P\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 18 Dec 2025 02:32:17 +1100 (AEDT)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id 7F61E3169C6E\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 17 Dec 2025 15:20:10 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 555C434DCC2;\n\tWed, 17 Dec 2025 15:16:41 +0000 (UTC)","from OS0P286CU010.outbound.protection.outlook.com\n (mail-japanwestazon11011052.outbound.protection.outlook.com [40.107.74.52])\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 831EA34D3A9;\n\tWed, 17 Dec 2025 15:16:39 +0000 (UTC)","from TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:24c::11)\n by OS9P286MB4633.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2fc::12) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Wed, 17 Dec\n 2025 15:16:22 +0000","from TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM\n ([fe80::fb7e:f4ed:a580:9d03]) by TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM\n ([fe80::fb7e:f4ed:a580:9d03%5]) with mapi id 15.20.9434.001; Wed, 17 Dec 2025\n 15:16:22 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1765984601; cv=fail;\n b=oCvSpTCRKofnDOfo0fwdW5YD7VrTZvPJIifxQw/E2SwqIL2GV5BWUbpZoxerUaKjCr37RirNHQ0Q/hLZsqpD7NnEGfVuAKIa5tMROLG3WACAUIwv8QbHDBW5rAU2GXjXuSOG7QZpdv0lHOORDTPWXdaVeex/p6kka5GZlNg5pa0=","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=tTBCPAUqqlRmVbWUPK9nAw+BJ0HlEQ6YojPTFXd+9Bvytw6z+M7VkMHqa0S3TqzbtUrBi85Y/ogMBlQEk6iMcaA8ZQWNZB7w7UTMV0vvj74o0KGIX2k4tHT10utLImS4jlgq6u1/aWZli4e9PYb2UHEkrMWFAU+DQ55CtJjfVetKQilGRr6x87P0lAZ99iDOLHVs3de719VTRMhkDUtmA4tGiSFWJgaYvlyK5v0t55rvVb3XiN6N7G1jcRSwIkcdqX4ukhRltWZMBZt045XwRZLVmpsszbIJvr2uIBSVfIwZPC0vFf8tzi+vuIfp3IcPVx5m61YIZxQT0rJ87i3naw=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1765984601; c=relaxed/simple;\n\tbh=skyMRfeWpTo6BZzeY0XkFGD46Rk9WDSgpYO86pi8AjU=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=klOUSicZrrkTezctCzYdBJdqfk1j0BA2zj2QVCyXUR0DMu9xxvx0UsGqgbBwjT4g5baNnqr4v8NssWNOTd7jHgkeM3za769UYgAwz8D2ZEvRNjXmvfRoIKIxh5vWYSgNDKyzfFBUeslQcTc+NPB628EO2OcU5hjKlqRd+tbQsd8=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=jeZARrfypgx4Jd1FbPoPvm8MGHmkk8Jg//fU5qtO/II=;\n b=lOsoM3GjzuMlY90MnLAVA1tdUaJCNn3ozkKQwew1FByZWuvlIf+1zZYFcZMjXxG/bGob3hKtzOMPDiWZ7zS4w7o0od3SBXo7n64g502M1FvFh+27MP81iTCboSHa44Dx/n1zEoddy/ZDBeGKEUT9ydkg5Kxng20S8ciz/Ud5VQmaz2pTvfctsslvJpjgJvs+PtUYOv7bmgpv95GqRxXdyA8KdkY9lb382lTMAPr4YMoBxOzsNUtL7ZQmh/6IHYg27zxRMeOcRs9qHa7zPGtril6aWachYMtH1nGJ0NBv3Br46O45mWjiVzjEHCj6c6VEfp24El86/38db3MRJB3VrQ=="],"ARC-Authentication-Results":["i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=valinux.co.jp;\n spf=pass smtp.mailfrom=valinux.co.jp;\n dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp\n header.b=A5B/rdQM; arc=fail smtp.client-ip=40.107.74.52","i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=valinux.co.jp; dmarc=pass action=none\n header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=jeZARrfypgx4Jd1FbPoPvm8MGHmkk8Jg//fU5qtO/II=;\n b=A5B/rdQMP7sjF0mPgaLXJOaWMoYaSoxoCqeX8qdz4wuxRb3wMkU3Q7oxbDSt/Kn1llM1+BL9iJ+0QFJye9S0/8H1u80j9Cpo6RKwrVkBJIt6cJ2rbUOjdJ9PvlOphsCgjX3jMLg0URU/Cqfo6CAS7O83UpMWUtaiqRtQmFqHkN8=","From":"Koichiro Den <den@valinux.co.jp>","To":"Frank.Li@nxp.com,\n\tdave.jiang@intel.com,\n\tntb@lists.linux.dev,\n\tlinux-pci@vger.kernel.org,\n\tdmaengine@vger.kernel.org,\n\tlinux-renesas-soc@vger.kernel.org,\n\tnetdev@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org","Cc":"mani@kernel.org,\n\tkwilczynski@kernel.org,\n\tkishon@kernel.org,\n\tbhelgaas@google.com,\n\tcorbet@lwn.net,\n\tgeert+renesas@glider.be,\n\tmagnus.damm@gmail.com,\n\trobh@kernel.org,\n\tkrzk+dt@kernel.org,\n\tconor+dt@kernel.org,\n\tvkoul@kernel.org,\n\tjoro@8bytes.org,\n\twill@kernel.org,\n\trobin.murphy@arm.com,\n\tjdmason@kudzu.us,\n\tallenbh@gmail.com,\n\tandrew+netdev@lunn.ch,\n\tdavem@davemloft.net,\n\tedumazet@google.com,\n\tkuba@kernel.org,\n\tpabeni@redhat.com,\n\tBasavaraj.Natikar@amd.com,\n\tShyam-sundar.S-k@amd.com,\n\tkurt.schwemmer@microsemi.com,\n\tlogang@deltatee.com,\n\tjingoohan1@gmail.com,\n\tlpieralisi@kernel.org,\n\tutkarsh02t@gmail.com,\n\tjbrunet@baylibre.com,\n\tdlemoal@kernel.org,\n\tarnd@arndb.de,\n\telfring@users.sourceforge.net,\n\tden@valinux.co.jp","Subject":"[RFC PATCH v3 10/35] dmaengine: dw-edma: Fix MSI data values for\n multi-vector IMWr interrupts","Date":"Thu, 18 Dec 2025 00:15:44 +0900","Message-ID":"<20251217151609.3162665-11-den@valinux.co.jp>","X-Mailer":"git-send-email 2.51.0","In-Reply-To":"<20251217151609.3162665-1-den@valinux.co.jp>","References":"<20251217151609.3162665-1-den@valinux.co.jp>","Content-Transfer-Encoding":"8bit","Content-Type":"text/plain","X-ClientProxiedBy":"TYCP286CA0251.JPNP286.PROD.OUTLOOK.COM\n (2603:1096:400:456::20) To TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM\n (2603:1096:400:24c::11)","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"TYWP286MB2697:EE_|OS9P286MB4633:EE_","X-MS-Office365-Filtering-Correlation-Id":"d1a6e9f2-f851-4e14-2211-08de3d7f3ca0","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"\n\tBCL:0;ARA:13230040|10070799003|376014|7416014|1800799024|366016;","X-Microsoft-Antispam-Message-Info":"\n xpd1BkPF2m5gVpDfHUR3EbG9wtMtJ78pao3ehLp+h1IwvUFMKGcLGaW7n6py0PSAS3zsAiMEA1uFKRpla3qFtclqotkm4PTV02JLjuyRUiNpqrb9wuZVD0DBq0T5OGOjgjhYgbnGUhEhR0z8Q2wTLf3JXipAupRZHZjqmcMzzclLBTr/xMU4ilN7tTAIdKuTU0hgNVkA7fWukGvMx7P5iy1feX749UQUoRLVq9GV80C7ZTQvHKWcvRfHrE866UIhWDnbn4nVqeK0aza3p1v1bHc9SvQ4D+8/a+RNDQB2Vvs3puTdmWH3xs4gSONu4V4rEgUSmMdKQDHaOuo3iDBNDuHjOq918tSx08iihkYek6UD+R3yOEZ3c+FgVKTrdPbJXVT5eXEORtuIEGelxMYH68LprMgP8qFw5DH0RC7PNLp6WQZnztVlCmES071soagnH19B29fkNSpCa2+PS+lF06ATO0LImLP14LSiBWJZZ0GhcRgM09jqo3E3JML3YAiBkE+7a4O7Pbfr02YwGNz8FH+4tWgAuIqxL0CNYgvJWQjCrvdhs9Rje+ciZanjLV1kMFNL9sVzY6ZkfdGpHBTMGk836vGbQch0Bd1t8hDgg2DrFA+oKhF+BBdM/kKQhnYvLENge252g6rkluAH5Anv+/ld2IzXQLhUyRLhoOEyAPNFIApvYnhFDY2ZE+sqnW/pGdvjn1/9JLk5ilcUuIQShu/Dxt/NtW2jJMgSbNR9f1F/lPOyIokGXXELRJe1oxZ7rjslmOViwUSjURfpI9Rbj+3fgyUdZ2p061mkMWOjbUPIxVVzcxd17vIwi/bxHyYi1GERQ1DcLFWlNiv+IOlRVaQO3wGGcuLUmSEJnzlUmaqUcnWearNp7r/YsOQhEn/Zw5sZ3UqrWTAzLhHqWPmoEH9GYo/RF43JkGMZmxcSDZFEMoSSvFcKk4Z9qUeVfxpij4SVo1ke8dxg3C/XbuuEj9TdG0T3YwKSP/PG9NZqqx/jrodWyySasMFvZqMrs1098cSJiH+1KnN2wBxQxXcNh2qVyyIDZQXKnXqO8qbgLVnXXdJ7yMgTiW94zTjxnDRK3CUup/LIQcwb27QsbiNjb8coWVdYXCMXOu5j3sAPqErXkmNuP/k2+syoabH96b7GpTT9zDTQBdKu/F97dui1BUtLjDJHv8ZpJkZP3qCagoyEFK1cBEeoUB7uFbVyP3jZyEL7786EdrgIpDFkV/E1D4GtHAg3Mdm5hDGrcuQCF3hSccEo4+AASbt/JSXUTE+AJ1aAOoX4+RtlBHQt/kdgdOGiAEkyDBRzJ47RjsLtkzukxHXtA6Q8FaswDxgZaPG8RnavlvIBmsGmuuOf548GSJlToRHjHG8TTw4FuU/lbVg0hDOrMxt3ci306ehMaS8FdHRL93YKXmKgiWvTsgBN837HrQov1QoYDi9HuqtF9WM3zAKev5dePdtWr3rx0MH+","X-Forefront-Antispam-Report":"\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"\n kHtYGRrLsjiLr6jlrwfeaVJRM/dKfVQfX8hq4Mmj83rLuMJoVfMSa3hURlO0jdqFvPlOjz/Q/+yr5VYwRkKvsnW8Nm2M9TLslg76ACCROdZYxauY9BHmwFfEoQHJsSMd3RmOW55wIq7dqZzab9OaZgqKtxQPm3Hf42rTHsVUn5NPIxAep6lRtptFOeFaH0mayiD+/PiOo0GeNLmpGecpL5NDrR1VKJt0X2WSp1+YvO+RRDi9tMC7PP8Tx/0Ef67POo2FwcKX0tg9ciyu+99SXJbWWBQROh6+sQq2jxiq4bSfVRpqsngT3rmKYfc87t76AcVq/s8Hkqm2a2HVNCuXNpYo4l2geU9V6u4wNIVwdT2c79SrEUKdwQFtVqH3k8V4TR6cuttW0WywJYh/AklX4UIsimxrSqlmzXEpPClU1Qu5VdOUuQmhHVxi0o2CfKwUNQmYNilGWrV8KWsyo3R52SXLzcaY0q9eJv0sFmcCUhZB8rq0gnRtM7nktyi0HMl2JBIV4LzzKCSrUP93TD5aoPTbLZZhZ4fgXRmQNkjGD7jPHyfDXBpglLdjxCFxj/4rldkPnt49lSchNHqfqJhdKOL4GR/bdRHBucdEdMGuVaAcvYwmS72lxvkhYJ6Hdf5djMNBgfhDijqsvU6AylpTo0f4s7HrACMg5nGpWhXoBV8x5mme6TH3vCX46r7KNTA6MMIAcxRDF4u7e5xHRyT+6CXKoQP2UlfvBOTnXXs8jXF70kSNeigYqenXuoSM2ElvShOWqQnm9V8z2cwSTh+3pllhB7Xcp6YeP1GRls7NtHZPUZHm1hxw2Fjlvg5mnhQhQ+WTnCwvfk47cYWG7SWdMWnSaq4T0TnDpO6afd1+O12dQ3kTs8JEr9xWh+GL53fmpW++QPJbNwTi2Eeu7LP5ByV0UGS1JmhH+txFCrU8k+qVE2WqzAtlxtMh8Rzkhcg/NdMDeLfKzG0QIXge6T8Ra52gtExHMWPdF3rEEfgNo0KodDjJHvqylDxxhiClJsXZEmUbj9xMqdhFFO5FXt3SfU0GuqWPxagqXUW0HGMhOnfFmUa2TW98tRvwMjxrx/PEfXyVWPRIdOyPyXb45TaHo/oBpeMkF/bUyP403l770YfI7i+CM4tqeD9mrHErV6OUfkfMvTD/nnk0V14uRZEMwl3Pu8iWPGCNKZl++yaFsA9SbljtBWDM6of9GUfAbzdc0rVTLVvV2+haGLu9teZ+Qpmuk/IiGv8rSlQAbSsYlcWzf8LSLYryKE9yUd9AhsqDxkiodCH5338aEOULn/fPMnI2CpNNL/57RYXKWsK4zs26u30MuKRdq52tLwzF+i30Dq4PONYCQWbPMkoEPowMwSUpnL1mw6ToJ+zNvc6Scx89yew+OYrZX9m2WLOm0+382MTjgsBCrMCF4uSdcpzxdxss2Er51i1iMX/hMoazmJTzAWiF1xto88MNSwooQ/TyWBXqexzKe2sxMlWQ8G0h2FbPrwvaotu7wN/iDeyGmk1eWZ7TI6B82vQQLEHnDeYkKUJrAU7ge2jJ79tP1wOf7hYbMblGks/JtkphTnpLj/LHbgt4W98bYY04VMQEazfXwdDcE9UzDWj7qJeVTVxqqSZKmZTM6UoQ4+q3favry0Q=","X-OriginatorOrg":"valinux.co.jp","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n d1a6e9f2-f851-4e14-2211-08de3d7f3ca0","X-MS-Exchange-CrossTenant-AuthSource":"TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"17 Dec 2025 15:16:22.1194\n (UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"7a57bee8-f73d-4c5f-a4f7-d72c91c8c111","X-MS-Exchange-CrossTenant-MailboxType":"HOSTED","X-MS-Exchange-CrossTenant-UserPrincipalName":"\n 9fx1PDO60d02lwUeeKRd+Q9AHLnZeRt5lkHcNkDiQIdqFTdrcoEJLjfHXU6fcoCWwv+LHc9kl+UFad2jHnhimg==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"OS9P286MB4633"},"content":"When multiple MSI vectors are allocated for the DesignWare eDMA, the\ndriver currently records the same MSI message for all IRQs by calling\nget_cached_msi_msg() per vector. For multi-vector MSI (as opposed to\nMSI-X), the cached message corresponds to vector 0 and msg.data is\nsupposed to be adjusted by the vector index.\n\nAs a result, all eDMA interrupts share the same MSI data value and the\ninterrupt controller cannot distinguish between them.\n\nIntroduce dw_edma_compose_msi() to construct the correct MSI message for\neach vector. For MSI-X nothing changes. For multi-vector MSI, derive the\nbase IRQ with msi_get_virq(dev, 0) and apply the per-vector offset to\nmsg.data before storing it in dw->irq[i].msi.\n\nThis makes each IMWr MSI vector use a unique MSI data value.\n\nSigned-off-by: Koichiro Den <den@valinux.co.jp>\n---\n drivers/dma/dw-edma/dw-edma-core.c | 28 ++++++++++++++++++++++++----\n 1 file changed, 24 insertions(+), 4 deletions(-)","diff":"diff --git a/drivers/dma/dw-edma/dw-edma-core.c b/drivers/dma/dw-edma/dw-edma-core.c\nindex 744c60ec9641..1b935da65d05 100644\n--- a/drivers/dma/dw-edma/dw-edma-core.c\n+++ b/drivers/dma/dw-edma/dw-edma-core.c\n@@ -855,6 +855,28 @@ static inline void dw_edma_add_irq_mask(u32 *mask, u32 alloc, u16 cnt)\n \t\t(*mask)++;\n }\n \n+static void dw_edma_compose_msi(struct device *dev, int irq, struct msi_msg *out)\n+{\n+\tstruct msi_desc *desc = irq_get_msi_desc(irq);\n+\tstruct msi_msg msg;\n+\tunsigned int base;\n+\n+\tif (!desc)\n+\t\treturn;\n+\n+\tget_cached_msi_msg(irq, &msg);\n+\tif (!desc->pci.msi_attrib.is_msix) {\n+\t\t/*\n+\t\t * For multi-vector MSI, the cached message corresponds to\n+\t\t * vector 0. Adjust msg.data by the IRQ index so that each\n+\t\t * vector gets a unique MSI data value for IMWr Data Register.\n+\t\t */\n+\t\tbase = msi_get_virq(dev, 0);\n+\t\tmsg.data |= (irq - base);\n+\t}\n+\t*out = msg;\n+}\n+\n static int dw_edma_irq_request(struct dw_edma *dw,\n \t\t\t       u32 *wr_alloc, u32 *rd_alloc)\n {\n@@ -885,8 +907,7 @@ static int dw_edma_irq_request(struct dw_edma *dw,\n \t\t\treturn err;\n \t\t}\n \n-\t\tif (irq_get_msi_desc(irq))\n-\t\t\tget_cached_msi_msg(irq, &dw->irq[0].msi);\n+\t\tdw_edma_compose_msi(dev, irq, &dw->irq[0].msi);\n \n \t\tdw->nr_irqs = 1;\n \t} else {\n@@ -912,8 +933,7 @@ static int dw_edma_irq_request(struct dw_edma *dw,\n \t\t\tif (err)\n \t\t\t\tgoto err_irq_free;\n \n-\t\t\tif (irq_get_msi_desc(irq))\n-\t\t\t\tget_cached_msi_msg(irq, &dw->irq[i].msi);\n+\t\t\tdw_edma_compose_msi(dev, irq, &dw->irq[i].msi);\n \t\t}\n \n \t\tdw->nr_irqs = i;\n","prefixes":["RFC","v3","10/35"]}