From patchwork Tue Aug 22 03:46:40 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bin Meng X-Patchwork-Id: 804246 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Yn/UyWyT"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3xbxFy1XlYz9s8J for ; Tue, 22 Aug 2017 13:42:28 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 2C659C21E0D; Tue, 22 Aug 2017 03:42:23 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, KHOP_BIG_TO_CC, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 2287CC21D65; Tue, 22 Aug 2017 03:42:21 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 69205C21D65; Tue, 22 Aug 2017 03:42:19 +0000 (UTC) Received: from mail-io0-f196.google.com (mail-io0-f196.google.com [209.85.223.196]) by lists.denx.de (Postfix) with ESMTPS id D59DAC21C26 for ; Tue, 22 Aug 2017 03:42:18 +0000 (UTC) Received: by mail-io0-f196.google.com with SMTP id p141so4323751iop.1 for ; Mon, 21 Aug 2017 20:42:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=cG5WQyp2XT5KiPs6s2ZZxoP3SgccXWl/0jevn/mYk70=; b=Yn/UyWyTC2PdqBfSQmObDqWl/wJNmo8bM8UyswZ5hm+UrtPUT+jwanRibQ7i47YlSr oK6Q+6YAoTs8nRtB3pLedR3W7z4z4MjwCRx+ABIXJ9+n/zVSOyf5gHKu7wFPYb0hXbbk jaPt/SbL/hkdsCHhas9Jq4rfzvCOkNzAOCEOagOmaandc4nKKaH6zBBmTm7MSi2CHCam adG4oUBDnSuhi7frTjNNxf/YJX4BJV7q+h2qYpg8a43xoVD4H6azyAwBEB+TdY+t0AMp wmK4sCaR6BiQHqMUPk6mV6urQcY0txcVBGMJ9YE8Gio/EVXR4DKJE+P1dwmq4Sd6D7YJ la8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=cG5WQyp2XT5KiPs6s2ZZxoP3SgccXWl/0jevn/mYk70=; b=iKhrb+uLMgsBNVtUxQvUTUTVbnyLV8pE0PrWIEWJd9Bw9V4LHldGchRqF3WLxNleuT RTwLAsN/nTU2epH11q8zfloQHKLTQnbZ4TeiL1wY5/0PVw5XZPCATRI+Tb13w2V/ctcd tUAdWRiahA5IIXbVY2cUANQOcgsFBJ77792zHp40hU93tqQbEGoz63CRBWmhz1rkJWOw vTBzRkDXMHOpTLqwX++RvpsQgnC6Ik5NZcjle70kQ1BGTdauEinSOuxbbe86vyfnvfem dCnNfg+ChkUddyq/6cfUEM5f0M4BwFV//M/eWGuFHYZqjdu8bXmrqXJ7aMwvUo9cMSpl V6uQ== X-Gm-Message-State: AHYfb5jgF51ani+LSLUijPhAZ1SLIWKJIOQi2PeIvBG7SRDxJEO8+j/8 pi6BHMk9+vjkXQ== X-Received: by 10.107.202.5 with SMTP id a5mr15877856iog.46.1503373337429; Mon, 21 Aug 2017 20:42:17 -0700 (PDT) Received: from ala-d2121-lx1.wrs.com (unknown-156-139.windriver.com. [147.11.156.139]) by smtp.gmail.com with ESMTPSA id j3sm6359867iob.17.2017.08.21.20.42.14 (version=TLS1_1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 21 Aug 2017 20:42:16 -0700 (PDT) From: Bin Meng To: Grygorii Strashko , Michal Simek , York Sun , Angelo Dureghello , Kever Yang , Jaehoon Chung , Albert Aribaud , Marcel Ziswiler , Markus Niebel , Hou Zhiqiang , Sumit Garg , Joe Hershberger , Stefan Roese , Wenbin Song , Zhao Qiang , Simon Glass , Max Krummenacher , Masahiro Yamada , Tomas Melin , Qianyu Gong , Tom Rini , U-Boot Mailing List Date: Mon, 21 Aug 2017 20:46:40 -0700 Message-Id: <1503373600-20847-1-git-send-email-bmeng.cn@gmail.com> X-Mailer: git-send-email 1.7.9.5 Subject: [U-Boot] [PATCH] blk: Remove various places that do flush cache after read X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" All these places seem to inherit the codes from the MMC driver where a FIXME was put in the comment. However the correct operation after read should be cache invalidate, not flush. The underlying drivers should be responsible for the cache operation. Remove these codes completely. Signed-off-by: Bin Meng Reviewed-by: Stefan Roese Tested-by: York Sun Reviewed-by: York Sun Reviewed-by: Joe Hershberger Reviewed-by: Simon Glass --- arch/arm/cpu/armv8/fsl-layerscape/ppa.c | 15 --------------- board/toradex/common/tdx-cfg-block.c | 2 -- cmd/mmc.c | 2 -- drivers/block/blk-uclass.c | 3 --- drivers/block/blk_legacy.c | 3 --- drivers/net/fm/fm.c | 2 -- drivers/net/phy/cortina.c | 2 -- drivers/qe/qe.c | 2 -- 8 files changed, 31 deletions(-) diff --git a/arch/arm/cpu/armv8/fsl-layerscape/ppa.c b/arch/arm/cpu/armv8/fsl-layerscape/ppa.c index 24ddb5d..bbf8bba 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/ppa.c +++ b/arch/arm/cpu/armv8/fsl-layerscape/ppa.c @@ -107,9 +107,6 @@ int ppa_init(void) return -EIO; } - /* flush cache after read */ - flush_cache((ulong)fitp, cnt * 512); - ret = fdt_check_header(fitp); if (ret) { free(fitp); @@ -134,9 +131,6 @@ int ppa_init(void) } debug("Read PPA header to 0x%p\n", ppa_hdr_ddr); - /* flush cache after read */ - flush_cache((ulong)ppa_hdr_ddr, cnt * 512); - ppa_esbc_hdr = (uintptr_t)ppa_hdr_ddr; #endif @@ -164,9 +158,6 @@ int ppa_init(void) return -EIO; } - /* flush cache after read */ - flush_cache((ulong)ppa_fit_addr, cnt * 512); - #elif defined(CONFIG_SYS_LS_PPA_FW_IN_NAND) struct fdt_header fit; @@ -208,9 +199,6 @@ int ppa_init(void) } debug("Read PPA header to 0x%p\n", ppa_hdr_ddr); - /* flush cache after read */ - flush_cache((ulong)ppa_hdr_ddr, fw_length); - ppa_esbc_hdr = (uintptr_t)ppa_hdr_ddr; #endif @@ -232,9 +220,6 @@ int ppa_init(void) CONFIG_SYS_LS_PPA_FW_ADDR); return -EIO; } - - /* flush cache after read */ - flush_cache((ulong)ppa_fit_addr, fw_length); #else #error "No CONFIG_SYS_LS_PPA_FW_IN_xxx defined" #endif diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index 328c4c0..f850a3c 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -129,8 +129,6 @@ static int tdx_cfg_block_mmc_storage(u8 *config_block, int write) ret = -EIO; goto out; } - /* Flush cache after read */ - flush_cache((ulong)(unsigned char *)config_block, 512); } else { /* Just writing one 512 byte block */ if (blk_dwrite(mmc_get_blk_desc(mmc), blk_start, 1, diff --git a/cmd/mmc.c b/cmd/mmc.c index 00697fc..5def4ea 100644 --- a/cmd/mmc.c +++ b/cmd/mmc.c @@ -293,8 +293,6 @@ static int do_mmc_read(cmd_tbl_t *cmdtp, int flag, curr_device, blk, cnt); n = blk_dread(mmc_get_blk_desc(mmc), blk, cnt, addr); - /* flush cache after read */ - flush_cache((ulong)addr, cnt * 512); /* FIXME */ printf("%d blocks read: %s\n", n, (n == cnt) ? "OK" : "ERROR"); return (n == cnt) ? CMD_RET_SUCCESS : CMD_RET_FAILURE; diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk-uclass.c index 3aec569..e5f00dc 100644 --- a/drivers/block/blk-uclass.c +++ b/drivers/block/blk-uclass.c @@ -294,9 +294,6 @@ ulong blk_read_devnum(enum if_type if_type, int devnum, lbaint_t start, if (IS_ERR_VALUE(n)) return n; - /* flush cache after read */ - flush_cache((ulong)buffer, blkcnt * desc->blksz); - return n; } diff --git a/drivers/block/blk_legacy.c b/drivers/block/blk_legacy.c index 981872e..16d3bfe 100644 --- a/drivers/block/blk_legacy.c +++ b/drivers/block/blk_legacy.c @@ -232,9 +232,6 @@ ulong blk_read_devnum(enum if_type if_type, int devnum, lbaint_t start, if (IS_ERR_VALUE(n)) return n; - /* flush cache after read */ - flush_cache((ulong)buffer, blkcnt * desc->blksz); - return n; } diff --git a/drivers/net/fm/fm.c b/drivers/net/fm/fm.c index 451dfde..261f1b9 100644 --- a/drivers/net/fm/fm.c +++ b/drivers/net/fm/fm.c @@ -405,8 +405,6 @@ int fm_init_common(int index, struct ccsr_fman *reg) mmc_init(mmc); (void)mmc->block_dev.block_read(&mmc->block_dev, blk, cnt, addr); - /* flush cache after read */ - flush_cache((ulong)addr, cnt * 512); } #elif defined(CONFIG_SYS_QE_FMAN_FW_IN_REMOTE) void *addr = (void *)CONFIG_SYS_FMAN_FW_ADDR; diff --git a/drivers/net/phy/cortina.c b/drivers/net/phy/cortina.c index e0e9ed9..637d89a 100644 --- a/drivers/net/phy/cortina.c +++ b/drivers/net/phy/cortina.c @@ -177,8 +177,6 @@ void cs4340_upload_firmware(struct phy_device *phydev) mmc_init(mmc); (void)mmc->block_dev.block_read(&mmc->block_dev, blk, cnt, addr); - /* flush cache after read */ - flush_cache((ulong)addr, cnt * 512); } #endif diff --git a/drivers/qe/qe.c b/drivers/qe/qe.c index 24e764d..931c9d9 100644 --- a/drivers/qe/qe.c +++ b/drivers/qe/qe.c @@ -221,8 +221,6 @@ void u_qe_init(void) mmc_init(mmc); (void)mmc->block_dev.block_read(&mmc->block_dev, blk, cnt, addr); - /* flush cache after read */ - flush_cache((ulong)addr, cnt * 512); } #endif u_qe_upload_firmware(addr);