Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp1872356pxu; Fri, 9 Oct 2020 01:46:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyKhOhxUjT2lwVfiimDpkETR2KU/CUpXdPqHsqCJwQZjY8yBFLXY4jlMWrSxVVSSxeAPjaw X-Received: by 2002:a17:907:2677:: with SMTP id ci23mr12822371ejc.270.1602233215349; Fri, 09 Oct 2020 01:46:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602233215; cv=none; d=google.com; s=arc-20160816; b=vfruJAVoJtAR7l5hTb0cJA8YjJFF1w4wC4x1UM9we0Bt1PRa6hH+bM3M5b7U/u/oLp SxoNCMtFDFy60Is3sn74oURXtWATKeadg8/fY5bxV/wrVbNlMljvvZU4XiVnN1XGJUs4 utwjX7wsWGRzTzv583l7dPgAcqua0hilp/+x4MTkBI0VEpiz8DIxGsnJ09UfQXupxrLL pAq+vPE6HZxqI6Rai20wkd0Oyy8AMB+iXgPJ5Hl5j5O853jfI1Qpw2mq+CxZ97s4Wylk z6n/8HUcU8WY31S7Bgss9DS9+5NR3lrGkDBbWBoK9HLQ6F/FORef/uwWooKXxIse6RpI cweg== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=RE5chgjQSowRtrFYOgf3dMGq/UsaR5KDtNLP2RMrbzk=; b=juiQAWPAj8YFj8bJeizT8Nt8GhjK39fVXSg+MvbQH5BN6EwwEmxQiW8nDJw34gLB1b tJKKsW+zDgNl5c9zSigHaRfei7iGyLiEvfiSTQ7qBw1YL45sfBBdiMj+2BYroQppCOeC 0lpcMHgp0XA+gNOvwZSLFwBGGx/Uco0gmF7P8J7ZoXktcHunHXPQCMaDXoyndqS1uSgh 6IDgNsseoYIGB2vJWXCzAH8WW8jI1DQnZ0Ig+/hFiiKhRpDg0hs5m6cXghZGMQa0p6vJ m3pmu8gByo5jv1oouIwvzIy/AmCdtYixEdLESoxSIkRTVr0wWauDX4/qwqS4HUXQFQ/S mWsQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=sqRQ4+LU; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a24si5528961ejs.437.2020.10.09.01.46.32; Fri, 09 Oct 2020 01:46:55 -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; dkim=pass header.i=@kernel.org header.s=default header.b=sqRQ4+LU; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732806AbgJIInG (ORCPT + 99 others); Fri, 9 Oct 2020 04:43:06 -0400 Received: from mail.kernel.org ([198.145.29.99]:49862 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730726AbgJIInG (ORCPT ); Fri, 9 Oct 2020 04:43:06 -0400 Received: from pali.im (pali.im [31.31.79.79]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 57AB9215A4; Fri, 9 Oct 2020 08:43:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1602232985; bh=1tPbrUnuRvd+9kdjyNxALYwFuoG3rcdxGM7JrBH24vw=; h=From:To:Cc:Subject:Date:From; b=sqRQ4+LU0aUTLhStZvG9aJ5KvlgKk4mI0nOf+0k9VLoTtX60PIWrdq+HFSyT7rvEi c2f5TSVJYyfJcCG8DvJzUIX8Cqtyw5ayKXFTQsGXLDkyLqqD2UN3L0qjB6TtPGsua/ pxQ16GCsXCV5cJwRuVe9UNKSTbkP0L14qol7q8p8= Received: by pali.im (Postfix) id DE9EA515; Fri, 9 Oct 2020 10:43:02 +0200 (CEST) From: =?UTF-8?q?Pali=20Roh=C3=A1r?= To: Jens Axboe , Hans de Goede , Gregory CLEMENT , Miquel Raynal , Grzegorz Jaszczyk , Andre Heider , Tomasz Maciej Nowak Cc: linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] ata: ahci: mvebu: Make SATA PHY optional for Armada 3720 Date: Fri, 9 Oct 2020 10:42:44 +0200 Message-Id: <20201009084244.29156-1-pali@kernel.org> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Older ATF does not provide SMC call for SATA phy power on functionality and therefore initialization of ahci_mvebu is failing when older version of ATF is using. In this case phy_power_on() function returns -EOPNOTSUPP. This patch adds a new hflag AHCI_HFLAG_IGN_NOTSUPP_POWER_ON which cause that ahci_platform_enable_phys() would ignore -EOPNOTSUPP errors from phy_power_on() call. It fixes initialization of ahci_mvebu on Espressobin boards where is older Marvell's Arm Trusted Firmware without SMC call for SATA phy power. This is regression introduced in commit 8e18c8e58da64 ("arm64: dts: marvell: armada-3720-espressobin: declare SATA PHY property") where SATA phy was defined and therefore ahci_platform_enable_phys() on Espressobin started failing. Signed-off-by: Pali Rohár Tested-by: Tomasz Maciej Nowak Fixes: 8e18c8e58da64 ("arm64: dts: marvell: armada-3720-espressobin: declare SATA PHY property") Cc: # 5.1+: ea17a0f153af: phy: marvell: comphy: Convert internal SMCC firmware return codes to errno --- drivers/ata/ahci.h | 2 ++ drivers/ata/ahci_mvebu.c | 2 +- drivers/ata/libahci_platform.c | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h index d991dd46e89c..98b8baa47dc5 100644 --- a/drivers/ata/ahci.h +++ b/drivers/ata/ahci.h @@ -240,6 +240,8 @@ enum { as default lpm_policy */ AHCI_HFLAG_SUSPEND_PHYS = (1 << 26), /* handle PHYs during suspend/resume */ + AHCI_HFLAG_IGN_NOTSUPP_POWER_ON = (1 << 27), /* ignore -EOPNOTSUPP + from phy_power_on() */ /* ap->flags bits */ diff --git a/drivers/ata/ahci_mvebu.c b/drivers/ata/ahci_mvebu.c index d4bba3ace45d..3ad46d26d9d5 100644 --- a/drivers/ata/ahci_mvebu.c +++ b/drivers/ata/ahci_mvebu.c @@ -227,7 +227,7 @@ static const struct ahci_mvebu_plat_data ahci_mvebu_armada_380_plat_data = { static const struct ahci_mvebu_plat_data ahci_mvebu_armada_3700_plat_data = { .plat_config = ahci_mvebu_armada_3700_config, - .flags = AHCI_HFLAG_SUSPEND_PHYS, + .flags = AHCI_HFLAG_SUSPEND_PHYS | AHCI_HFLAG_IGN_NOTSUPP_POWER_ON, }; static const struct of_device_id ahci_mvebu_of_match[] = { diff --git a/drivers/ata/libahci_platform.c b/drivers/ata/libahci_platform.c index 86261deeb4c5..de638dafce21 100644 --- a/drivers/ata/libahci_platform.c +++ b/drivers/ata/libahci_platform.c @@ -59,7 +59,7 @@ int ahci_platform_enable_phys(struct ahci_host_priv *hpriv) } rc = phy_power_on(hpriv->phys[i]); - if (rc) { + if (rc && !(rc == -EOPNOTSUPP && (hpriv->flags & AHCI_HFLAG_IGN_NOTSUPP_POWER_ON))) { phy_exit(hpriv->phys[i]); goto disable_phys; } -- 2.20.1