From nobody Mon Feb 9 23:59:42 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.49 as permitted sender) client-ip=209.85.221.49; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f49.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.49 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1603301729; cv=none; d=zohomail.com; s=zohoarc; b=XpYFvk/E1AU+xTaXScjYP4KZvSrzhyqq5qeY9tA0busVfHsDhObXQSwtuRix7aBZHKAAs7qb8dSN0WQwo6iLfe0zDIx8wcVaOrBCo8r4bmrZ3OLIaB8dmgpknEojFParaS/uiiv+tgiT6nASS9q8l0yoeS1WD+zOrdTdTJKnu1I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1603301729; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=1T44dRrHJFyTG6J3zUPzNWduAlmSBzN4WxwodQQd2DE=; b=Wq4aR5ddqn49DItLJT4AWK5c9CP841UFktdiMDpDuatDgYmQMdN1vAVSKuNKuLTTCugej47B25d0lSJTw/R/ToeO5Fnt7ttIvIT2POKMNLX2VW3S1z035wuw9/msIsC0i9+U6+zlIZt7ubJVapLKc3djg9TgBYFhldk3ujqjLto= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.49 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) by mx.zohomail.com with SMTPS id 1603301729188753.3215300008851; Wed, 21 Oct 2020 10:35:29 -0700 (PDT) Received: by mail-wr1-f49.google.com with SMTP id n18so4023562wrs.5 for ; Wed, 21 Oct 2020 10:35:26 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (237.red-88-18-140.staticip.rima-tde.net. [88.18.140.237]) by smtp.gmail.com with ESMTPSA id s5sm4320261wmc.3.2020.10.21.10.35.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Oct 2020 10:35:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1T44dRrHJFyTG6J3zUPzNWduAlmSBzN4WxwodQQd2DE=; b=vDcf6gZu0N7BOib+GMVdXn2IJ+yMN7KzNJyEZt8IbpLlR0mqm1pLlyHuEcmULWLQ1R pLeUa5zPK0MtS83JrcwSA1MeBzbBY62lzHueHhozsZtyrhWATjOzP7pdEXVxUnx44vgc RHPALfbJYmNuq+AwmpE0zEFDV6vg/MnOB4F/iJ1WPzuu8RLaQTot8Ml84Zuf7YsS5PeH f/5fogY7GUshEdB5mLXk/EDav3YGluzZF4UUCzwxNFUHc97NesLIlafy9DEyOWvTir6N YwqJb2pdzSCxZHnnfdLiDd6NE/oON580qMYNa4PVOGyPZGSfdLssqMMdxlxDcYwe+hIY u8Xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=1T44dRrHJFyTG6J3zUPzNWduAlmSBzN4WxwodQQd2DE=; b=QAUU5JOK3QzReTKaYCNkvE2PCyReczA7yv+QAkosfH29oL5hKvee4kx3WZbyzx6wSi 6uiVjAL9lRt8n8BbjoJNqkEZJ8dXwvZtRvv8tT8/3wAFuCzf72+g7VRj5VDPbAc17Z4H f1pNf0qE+xOz8VX4VO5paMY7RqS30ASAIVfSqbVFBwUtnS8ItttWeWqJx8XT5s2YUg1s JTcd+Io0L78CkOaEK0R9Pu0rIxXem291/rVCO/1FbAn3QIOixReC9W24fLXI4hkxyqee SzhBpNjykQdcsCW72Qn4nx6sEVWT29T0mmKbi83DyJf7DNx1/ri7HUsZaCDxr1wrrbeB A+dg== X-Gm-Message-State: AOAM533/Gxb/mUfq/wZPjH7NQi0jxKvNkklNICNdvI6AuuN6t6cxnTLw wxf3hsRMXTOD5nGQKjpj78o= X-Google-Smtp-Source: ABdhPJxsvOAD4Sg/dhZO+BQpjrfn3YX1tqt3EiPn72WcpBB/de83OEXxGzxoJmuosXE+Jv5PQR4SDQ== X-Received: by 2002:adf:9069:: with SMTP id h96mr6289680wrh.358.1603301725217; Wed, 21 Oct 2020 10:35:25 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Alexander Bulekov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 07/13] hw/sd/sdhci: Yield if interrupt delivered during multiple transfer Date: Wed, 21 Oct 2020 19:34:44 +0200 Message-Id: <20201021173450.2616910-8-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201021173450.2616910-1-f4bug@amsat.org> References: <20201021173450.2616910-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) The Descriptor Table has a bit to allow the DMA to generates Interrupt when the operation of the descriptor line is completed (see "1.13.4. Descriptor Table" of 'SD Host Controller Simplified Specification Version 2.00'). If we have pending interrupt and the descriptor requires it to be generated as soon as it is completed, reschedule pending transfers and yield to the CPU. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Alexander Bulekov Message-Id: <20200903172806.489710-5-f4bug@amsat.org> --- hw/sd/sdhci.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index b93ecefd20c..2f8b74a84f7 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -837,7 +837,10 @@ static void sdhci_do_adma(SDHCIState *s) s->norintsts |=3D SDHC_NIS_DMA; } =20 - sdhci_update_irq(s); + if (sdhci_update_irq(s) && !(dscr.attr & SDHC_ADMA_ATTR_END)) { + /* IRQ delivered, reschedule current transfer */ + break; + } } =20 /* ADMA transfer terminates if blkcnt =3D=3D 0 or by END attribute= */ --=20 2.26.2