From patchwork Wed Apr 12 08:42:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hake Huang (OSS)" X-Patchwork-Id: 1768159 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=AhsKLJke; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4PxNgn743Yz1yXv for ; Wed, 12 Apr 2023 23:23:17 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pmaQz-00043h-7n; Wed, 12 Apr 2023 09:22:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pmW3Q-0006LZ-Sv; Wed, 12 Apr 2023 04:42:12 -0400 Received: from mail-db3eur04on061e.outbound.protection.outlook.com ([2a01:111:f400:fe0c::61e] helo=EUR04-DB3-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pmW3N-0005SL-La; Wed, 12 Apr 2023 04:42:12 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gZQzRtLRHViJ+FLfH94BVDj97EqqBvVHPNTIZWmdwFlo3To/GnzbyL/RShH8IeVXSwFOtr8QvzGXvnHy+l3BCMZfKX8iZPglJRyPV/LGOJ1vchTScTZEcFvNIsFZLqCo0h0cbTgc1y+EE4JGzTTWasWbS462Mgyhvpk7CU47nuUod5yBF+7U4o/b7J8QjuHxg5h/dRCjZCcXRb70y1KwU1V0sjMbZO+BwB/IeXSEPlYDKctdmc5RTvNjEvOaxHXAAZRsviDlNVdeaPMpLntwg509wj+zaxhrFiDKi+eeY8AEvHzdBLPCl5+w9pNJnMMTyuVmo91ShHVE9RaJ/Q87Sg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=QzdRff+e+m/9zhnBrSHtHto9BGDUJOlOTo3S2a/eu58=; b=SFLk0zXA62+TUyI44OzajsTWZfcnBbKbOiHx19lsQ3fq+Q+8kEOVTt0QvA77Ytyv6s1j1S3nO6kCpYwGgbURJdFqJ1+f3QfGSrHI2iOJ/yKFZ+KRMA+w+PB2wEHI0fbzIK9vvx1zz+BjevUzjiPPERXzIlJi0lU5EtwJ2Eo2q1GWv5pAhuo2DKr+terf1OQsd9tX9oH012h/Xwr17P2hZzfSsYYXmjQ3vRCdCjQHyF5XQEd47IwoBOrBhQiPw5eqM8Kh9MyMYZKWBvhLxw7D0qjXrP5hFIfJXGc322NvHahIJYULuyskgrKwNIX+D7f/cAr9bjZutwMThvF0ZvLUxA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QzdRff+e+m/9zhnBrSHtHto9BGDUJOlOTo3S2a/eu58=; b=AhsKLJke35Ntw851C5PFPXST7FMvyo/zkrcBsqyraMLr3O8PILGKbke5ws7EN+YIdDlku5AiWu3P+XPQFgfEmeBZIgGaTSw1L42aTmNJwJy0OUvrEJHdSSyMrjcklCa1sYMTl0nucx3qcgw+Ha2kZFgfgnYYsksIfTyfLbqx2nM= Received: from AS1PR04MB9653.eurprd04.prod.outlook.com (2603:10a6:20b:475::14) by AS8PR04MB9176.eurprd04.prod.outlook.com (2603:10a6:20b:44b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6298.30; Wed, 12 Apr 2023 08:42:01 +0000 Received: from AS1PR04MB9653.eurprd04.prod.outlook.com ([fe80::25b3:6460:1888:77f0]) by AS1PR04MB9653.eurprd04.prod.outlook.com ([fe80::25b3:6460:1888:77f0%7]) with mapi id 15.20.6277.035; Wed, 12 Apr 2023 08:42:01 +0000 From: "Hake Huang (OSS)" To: "philmd@linaro.org" , "Meng, Bin" , "qemu-block@nongnu.org" , "qemu-devel@nongnu.org" Subject: [Patch] SDHCI: fixing extend sdhci controller ops usage Thread-Topic: [Patch] SDHCI: fixing extend sdhci controller ops usage Thread-Index: AdltGk2ecq16bKNRQ7uzwslauH+JBw== Date: Wed, 12 Apr 2023 08:42:01 +0000 Message-ID: References: <1223014613.52668026.1681086498001@lonmktmail-batch1f.marketo.org> In-Reply-To: <1223014613.52668026.1681086498001@lonmktmail-batch1f.marketo.org> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AS1PR04MB9653:EE_|AS8PR04MB9176:EE_ x-ms-office365-filtering-correlation-id: 1219b156-d909-4e56-60e0-08db3b31c8d6 x-ms-exchange-sharedmailbox-routingagent-processed: True x-ld-processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: rUqZbh/llv7DMzMqbVhvWJqZ9mVtOamo0gf/IzBEFWofk38B8zhKCVkxHPfspZ1SLWti7OQvv+Wp3lk2pMETuM/8NEDRXqXLSA3wrktCazOcPuex/Y5zZuY5cyj6u8b5DNCP3pYcHP6qpKpaqJX6Cass3b/bPH7K98s1HuATnHrpZ0QumaNWaCQvzDsN0LT+xQMVlbc2zQ3iQb8z6KvI+aQ6OpRknqv295lrvx80bDTUvhqe0mZI5Xt8MGgfOwgTJDzUKm4JtfMhx400evDkfNmyz7/eu8hebMD9hleH7eqMMimQzDG1H8grd23ZuU2417Iw3trGiSLGQcBEdb7JaQySVZFLnd8NzoDSUv5VvDZEnFqJsQX2bnpWTw/EgjzHU1h/yEgmUTAz1db/6xj3eEMLPABuZ/XCsODfSy3IPys5TpsvMMvXqgdmb0390LUP4jHvoDQcI4oNNYnoALAMnUOZANnyDl120aZoCoNdiVQlSvs6DnmrYM9hix/b6UU2Waz4k62w7gSNYdSTkmKGp52P4iBJu33ARRCo2Ey74wTEWP0hqlmfNiAxOrlV5J+mvmxd0M705rT/835xhw4FhMagDvtiiXFxkogxDGK/aZ4pta01UBlNtLzgzm2FMkMb x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS1PR04MB9653.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(376002)(39860400002)(136003)(366004)(396003)(346002)(451199021)(316002)(41300700001)(26005)(9686003)(6506007)(122000001)(38100700002)(186003)(86362001)(71200400001)(38070700005)(7696005)(83380400001)(66446008)(66476007)(66556008)(64756008)(66946007)(110136005)(55016003)(33656002)(478600001)(76116006)(8676002)(8936002)(5660300002)(2906002)(52536014); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?sZAABdn7rXZE4R6+GuPuixa0KGs2?= =?utf-8?q?jJIdC5oxduVefUGPIFzd3hxy12ILMwYiwU0PUruDT8RQecsJB7LZ0wPJv2ux/BtAO?= =?utf-8?q?SvuzpubDQ+pkR354Ve4yAS9XSsYVjUjIni/Z2mdlmDDyIQ6G9DNO0ZQVGYh1MARLo?= =?utf-8?q?osKwWKlnfxllW2wPdcwht+4a2d/8cQe1QTRS5atrCdzsBeJzLDeCbMD4qycpr4q5O?= =?utf-8?q?LbMDzmFeJ6P31j/xHM77bHATO8M4CvhIeRzFnclf9QF53XHVy9I/v+6RE3+GNzlFu?= =?utf-8?q?+8oRrLilzBfT+RA7M1ua4mvcJKaUyYAU71SbR/4jeyWKVjUBhgzp6cqf7ei2pmb3o?= =?utf-8?q?5LFcf01E/KMyhRmRvEntIiGhj+5uSBSMFPJa20XGgnmupiQ1KxT0Iyh40t/Cn8XlS?= =?utf-8?q?QQXc/+Z66zDJoU+jSkwsOKmX8AvgfoTih/JDzsGExa8LWiOsGw+uiBKxPIsgc+3of?= =?utf-8?q?F6aOJMJjq9MjlffOfTQEQmC+KQrzzueoMMMaYMnx6z+NsRosVFQSU++QJg9X1pXab?= =?utf-8?q?540rSbQWiu80TRcuXibAYCE8UgrwlFWA4cM+rWUbEwaqM60ij75BZ4kX0z3FScyLh?= =?utf-8?q?7Ru70dyNNnB0nkQ0/39ClgKXu73O8n0yDg81xPJW4GYnXYcDFqSEq+hiLJpsH7TIC?= =?utf-8?q?8iiaEKG6w8ei9UmUzvnz9Pxp3YFcLE6HlfT1kX8ff3mNnib3EK5hFQ7NGEGri/TMz?= =?utf-8?q?MTRqMIgzlg2XELVSbFEbemSNxpZ5tBt40h9RrG7CzzlM9rkk/z+MecS14U/pp0jMn?= =?utf-8?q?tv29/4SDs8DNZQiqMt4a2AXmCNVGDLB0zVo6Pj6eQZdG7EOTwuuGtN4AHdxvYSZzr?= =?utf-8?q?KxyKPc/4s81At3Pn5Z+Uf58zPmr4Vsc5/1/KmZVhPdL2oqAf6LjAlT8gtj9uWlyWL?= =?utf-8?q?xENuuQMtq9zatIZrPMokbFNbVoes4GTuHakrLHdrUEtipdSr8f0r6K3YvZrWydtVP?= =?utf-8?q?1c3e5D9xE0TlnKhjgjFISWt2xl+YMWmW5mVsg5QFQ3tVzTMM7BroMhTfgrPCGtQ7g?= =?utf-8?q?rsgMx9nsh3Sxm1fgs9mq3UXY7M6K6UfJcc5sDVYtFixvzOp3cBwEGwtnbvg8Hbk5G?= =?utf-8?q?qzGAfLjaHNKNRZTYpfAdnYTBb5h15kZKcrsakQo0exqChZlz/0gw1tXdBvsN1X+Ru?= =?utf-8?q?5cm1iHAUSLhCnGC89azwrg3NI6HvsOWjjLOCqPHkrhjUSIyVkJ0Vho0j7IPiJZMRx?= =?utf-8?q?EUI0R/+wYJDqGoOTuOEP6QOjx/qsqbF3MqwiN16Uk1qnlD4krzDeQAWHqrvW1wl1g?= =?utf-8?q?sifqFLZEa9F0tSTe3v9riZab1llEtoeOUek65if/Y1GDmQkb19I+Bn+8Vdcyz/jQZ?= =?utf-8?q?H+6CoARPA+IseVEV+l1Q+0SGDdJ2zhR2s2vmi4JE8/7OG+fhuBym1+xDJdQCzp1ZQ?= =?utf-8?q?InoXXkdOXGxwvZM/CJUAmKE3p/PNK1z4hrmTXL/xxQM7qAyPWSsizDF626N4WsBQF?= =?utf-8?q?7kWbtlBjKIzPfW9EBFYhDau6TbFJHVarKbM/5/axTq1u75J9dIN6haqQJSAfgzw5/?= =?utf-8?q?OerjC5Pp+DEv?= MIME-Version: 1.0 X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AS1PR04MB9653.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1219b156-d909-4e56-60e0-08db3b31c8d6 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Apr 2023 08:42:01.1862 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: xiaHuc2ENoNXU+yYjjpJ5ZFYpPEQ0udlCCIlMrxk/zqMJDgOkHpjJNBURzqodWpu0fnnAxCV4HFMk7pgK17n1A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB9176 Received-SPF: permerror client-ip=2a01:111:f400:fe0c::61e; envelope-from=hake.huang@oss.nxp.com; helo=EUR04-DB3-obe.outbound.protection.outlook.com X-Spam_score_int: -8 X-Spam_score: -0.9 X-Spam_bar: / X-Spam_report: (-0.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FORGED_SPF_HELO=1, HTML_MESSAGE=0.001, SPF_HELO_PASS=-0.001, T_SPF_PERMERROR=0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Wed, 12 Apr 2023 09:22:46 -0400 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org [Patch] SDHCI: fixing extend sdhci controller ops usage 1. ops bug fixing For IMX and S3C sdhci control the ops are given in inst_init but it will be overwritten by class_init which calls the class_realize fix it by checking whether ops has value of not. 2. CLKCON updates According to usdhc RM for imx, the lower byte is reserved when the card is present, we need set the CLKCON CLK related bit and when write to the CLKCON register the lower byte shall be masked Co-authored-by: Jiamin Ma 423337961@qq.com Signed-off-by: Hake Huang hake.huang@oss.nxp.com Signed-off-by: Hake Huang hake.huang@oss.nxp.com --- hw/sd/sdhci.c | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) case USDHC_UNDOCUMENTED_REG27: case USDHC_TUNING_CTRL: - case USDHC_MIX_CTRL: case USDHC_WTMK_LVL: ret = 0; break; + case USDHC_MIX_CTRL: + ret = s->trnmod; + break; } return ret; @@ -1822,6 +1830,10 @@ usdhc_write(void *opaque, hwaddr offset, uint64_t val, unsigned size) */ sdhci_write(opaque, offset, val | s->trnmod, size); break; + case SDHC_CLKCON: + /* imx usdhc low 7 bits of CLKCON is always 1 */ + sdhci_write(opaque, offset, val | 0xf, size); + break; case SDHC_BLKSIZE: /* * ESDHCI does not implement "Host SDMA Buffer Boundary", and -- 2.34.1 Regards, Hake diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 6811f0f1a8..df45f08da4 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -259,6 +259,10 @@ static void sdhci_set_inserted(DeviceState *dev, bool level) if (s->norintstsen & SDHC_NISEN_INSERT) { s->norintsts |= SDHC_NIS_INSERT; } + /*always ensure the clock is ready */ + s->clkcon |= SDHC_CLOCK_SDCLK_EN; + s->clkcon |= SDHC_CLOCK_INT_STABLE; + s->clkcon |= SDHC_CLOCK_INT_EN; } else { s->prnsts = 0x1fa0000; s->pwrcon &= ~SDHC_POWER_ON; @@ -1397,16 +1401,18 @@ void sdhci_common_realize(SDHCIState *s, Error **errp) { ERRP_GUARD(); - switch (s->endianness) { - case DEVICE_LITTLE_ENDIAN: - s->io_ops = &sdhci_mmio_le_ops; - break; - case DEVICE_BIG_ENDIAN: - s->io_ops = &sdhci_mmio_be_ops; - break; - default: - error_setg(errp, "Incorrect endianness"); - return; + if (s->io_ops == NULL) { + switch (s->endianness) { + case DEVICE_LITTLE_ENDIAN: + s->io_ops = &sdhci_mmio_le_ops; + break; + case DEVICE_BIG_ENDIAN: + s->io_ops = &sdhci_mmio_be_ops; + break; + default: + error_setg(errp, "Incorrect endianness"); + return; + } } sdhci_init_readonly_registers(s, errp); @@ -1669,10 +1675,12 @@ static uint64_t usdhc_read(void *opaque, hwaddr offset, unsigned size) case USDHC_TUNE_CTRL_STATUS: