Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1913479pxf; Sat, 3 Apr 2021 04:52:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyOjUcPGVSofR/CEGTr5SDbE6Fb5mfcZoBW8YFtO9VUzzA31mqYPWJTPMogNeF4XhY7EIiF X-Received: by 2002:a17:906:eb87:: with SMTP id mh7mr6302990ejb.143.1617450765116; Sat, 03 Apr 2021 04:52:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617450765; cv=none; d=google.com; s=arc-20160816; b=nd3aRuJaJiWyd35SZuBBwVNz6TlxYt7JODGhe9/fCnEKDib/K8ZSidHCA9zEHUHHMN pScZqU7Q/4KU44w2em3/TDqv5TI8jOjb5xQjANnX92kbBxWHTk0OwjO9dolwSAdGtT6P HNvSd4XN6+fU6NFfWg2r7AEF87MbmtHnS0fgmNVyOE4sTMc1Z6tmIfc1mT1Kl+e9TXDd W7K3eqEur4iPrv2HvoMaUpkdKnrGPORS+PrAoCv9lvN/WJ21xOVjMziRtt+En5t31n5v OFRIzkfDj8GMdYfZqT36cfGcqA5jmrUtLkIh/IvcstMMtok8uCCH+H7uCObthUjkSLKM njTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=Aagw9T20w1SbBjwMQi8wyNXghE5MmFIzcrpSseowOMk=; b=DYee24qmRFDxgkCwOhJWZ9kbwMHFykvnUxdxcuBhg7xi+wHlBaYRe6rZq8pyFRvfk/ XNRoknzE/yGCZxI2IvwObL3Zy03Dh4cK+eNbXyrrCQ5777pR8pTz3ob1a7jjY+b/D0rK Hdb7PSSq7PFwHsjJEuNKGOgYgj9UFzhQEmIbOAgUFC+aK9DHg+pcbkreGfyHvZ766JwJ pNo2yOQn4cF3HgbZ80W2/jNdjKew3VEsZAetmcPpV/q/P4xbU3tPmvMMKTBPg8FS+bjG pWtdUr9CsGS9D5A26sk3J50D33frjKhQcGxnTZLre2wuJS33eGG/1h9CB/KXOoHeUtp9 X90w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g15si2604492ejo.391.2021.04.03.04.52.23; Sat, 03 Apr 2021 04:52:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236730AbhDCLuS (ORCPT + 99 others); Sat, 3 Apr 2021 07:50:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38580 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236666AbhDCLtK (ORCPT ); Sat, 3 Apr 2021 07:49:10 -0400 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4172CC061794 for ; Sat, 3 Apr 2021 04:49:08 -0700 (PDT) Received: from dude.hi.pengutronix.de ([2001:67c:670:100:1d::7]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lSelp-0000es-7B; Sat, 03 Apr 2021 13:48:53 +0200 Received: from ore by dude.hi.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1lSell-0007xp-OX; Sat, 03 Apr 2021 13:48:49 +0200 From: Oleksij Rempel To: Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Jakub Kicinski , Russell King Cc: Oleksij Rempel , Pengutronix Kernel Team , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org Subject: [PATCH net-next v1 3/9] net: dsa: qca: ar9331: reorder MDIO write sequence Date: Sat, 3 Apr 2021 13:48:42 +0200 Message-Id: <20210403114848.30528-4-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210403114848.30528-1-o.rempel@pengutronix.de> References: <20210403114848.30528-1-o.rempel@pengutronix.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::7 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In case of this switch we work with 32bit registers on top of 16bit bus. Some registers (for example access to forwarding database) have trigger bit on the first 16bit half of request and the result + configuration of request in the second half. Without this this patch, we would trigger database operation and overwrite result in one run. To make it work properly, we should do the second part of transfer before the first one is done. So far, this rule seems to work for all registers on this switch. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/qca/ar9331.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/dsa/qca/ar9331.c b/drivers/net/dsa/qca/ar9331.c index ca2ad77b71f1..9a5035b2f0ff 100644 --- a/drivers/net/dsa/qca/ar9331.c +++ b/drivers/net/dsa/qca/ar9331.c @@ -837,16 +837,17 @@ static int ar9331_mdio_write(void *ctx, u32 reg, u32 val) return 0; } - ret = __ar9331_mdio_write(sbus, AR9331_SW_MDIO_PHY_MODE_REG, reg, val); + ret = __ar9331_mdio_write(sbus, AR9331_SW_MDIO_PHY_MODE_REG, reg + 2, + val >> 16); if (ret < 0) goto error; - ret = __ar9331_mdio_write(sbus, AR9331_SW_MDIO_PHY_MODE_REG, reg + 2, - val >> 16); + ret = __ar9331_mdio_write(sbus, AR9331_SW_MDIO_PHY_MODE_REG, reg, val); if (ret < 0) goto error; return 0; + error: dev_err_ratelimited(&sbus->dev, "Bus error. Failed to write register.\n"); return ret; -- 2.29.2