Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2458425pxj; Mon, 10 May 2021 03:33:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz+SHoiropNqiKR8rhbCvYBjZodOY+w9qd/3a5t9qdlTFgvvBDIUvmAJmpKAMUWkPVD7f+k X-Received: by 2002:a05:6402:7d1:: with SMTP id u17mr28742824edy.312.1620642818383; Mon, 10 May 2021 03:33:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620642818; cv=none; d=google.com; s=arc-20160816; b=IbOxPJNA3Ba6+iw0sOfrG3L2FAANRIGe7Q1yi+QixGRUMBTHfcX2XBgW+C+tFoEVhW InX7kUPg30r3Rhhn1B71FV6mSm/hXq/VoShHV5iK1nVxmvvt8/pCV1C3EJZ4BMPE8ow8 jb0VEe0rtjfbGa4c1dPvtkwjliM6jbOJLcQyqSOOx2UtdYddcVoLMNae7MehXFGUuqPT rrzuUXp/byjUCvx1KfmCius2tFPKH5tW+gP7C3wfk07OBuzHPEbOGln/NIZSGWukl2ja kDAsdmSY3PCvydjSo07bncIR/mzZs1r09AVOaaTTt8bxwghkxcxbnZBmmedk/u77qQMg FwRw== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=a9FQGupQn2bsjFcoWhYpUV6paWiSCVclT+vRGpP4T6w=; b=FBQQF5W9YZSDD8iNzpVmqbnsh3JSaEHJfP7cOtMM9M3A8tVMcxwutVy/O2LYs1Q7yw gqHpQPUqsuv91FxorxQ2E9UqLe+VGoMDTAZaojtV+MDq4Ob3FYQHP0vgzhssuK4KmGf+ 8DT2GYUb8JPC/TYiieVIVBkmKt5HYZpXNx9jaYkn9Cv19tOhGUhR8LmqGh8R9fR62aDy 6LQ0jeUlOlf9lCPyhCmnIBWGD3JTMTK7aHhxjaeyG6Jnn6+CmA+4ihz30c9ObHgmDKRz iPN8n1rMPq88+bwRAA090QGkCxxJLVG8lEbeMKefqP2ocUBSOsstqNvh20F+zqhaZOVw 5V0g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=0hJYGnWn; 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=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cw16si13503834ejb.337.2021.05.10.03.33.15; Mon, 10 May 2021 03:33:38 -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=@linuxfoundation.org header.s=korg header.b=0hJYGnWn; 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=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232050AbhEJKc0 (ORCPT + 99 others); Mon, 10 May 2021 06:32:26 -0400 Received: from mail.kernel.org ([198.145.29.99]:60688 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231621AbhEJK2v (ORCPT ); Mon, 10 May 2021 06:28:51 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 5BD3D613D3; Mon, 10 May 2021 10:27:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620642440; bh=tDBr1YL/om3BA+QjbMhSLmv9DZ+RSwDryarvMp7Ab2I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=0hJYGnWnAkya8pVqMHgnqPAVl6xqvK2pH7ykr1kK9KG4LxOJzoI//2s064W1O0UUq 6yFpkaz2fprKRuMHiY6SesVaMYOmDCrlbP/K2btkLUI+AjY33lQVRV8P2mj8WAOfub n7pOmEpXf5ggSaWqtEmf6zP86qWbjWiX+tL7BsnU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Xingui Yang , Luo Jiaxing , John Garry , Jens Axboe , Sasha Levin Subject: [PATCH 5.4 096/184] ata: ahci: Disable SXS for Hisilicon Kunpeng920 Date: Mon, 10 May 2021 12:19:50 +0200 Message-Id: <20210510101953.339791920@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210510101950.200777181@linuxfoundation.org> References: <20210510101950.200777181@linuxfoundation.org> User-Agent: quilt/0.66 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 From: Xingui Yang [ Upstream commit 234e6d2c18f5b080cde874483c4c361f3ae7cffe ] On Hisilicon Kunpeng920, ESP is set to 1 by default for all ports of SATA controller. In some scenarios, some ports are not external SATA ports, and it cause disks connected to these ports to be identified as removable disks. So disable the SXS capability on the software side to prevent users from mistakenly considering non-removable disks as removable disks and performing related operations. Signed-off-by: Xingui Yang Signed-off-by: Luo Jiaxing Reviewed-by: John Garry Link: https://lore.kernel.org/r/1615544676-61926-1-git-send-email-luojiaxing@huawei.com Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin --- drivers/ata/ahci.c | 5 +++++ drivers/ata/ahci.h | 1 + drivers/ata/libahci.c | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index d33528033042..8beb418ce167 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c @@ -1728,6 +1728,11 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) hpriv->flags |= AHCI_HFLAG_NO_DEVSLP; #ifdef CONFIG_ARM64 + if (pdev->vendor == PCI_VENDOR_ID_HUAWEI && + pdev->device == 0xa235 && + pdev->revision < 0x30) + hpriv->flags |= AHCI_HFLAG_NO_SXS; + if (pdev->vendor == 0x177d && pdev->device == 0xa01c) hpriv->irq_handler = ahci_thunderx_irq_handler; #endif diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h index 9ef62e647cd2..732912cd4e08 100644 --- a/drivers/ata/ahci.h +++ b/drivers/ata/ahci.h @@ -242,6 +242,7 @@ enum { suspend/resume */ AHCI_HFLAG_IGN_NOTSUPP_POWER_ON = (1 << 27), /* ignore -EOPNOTSUPP from phy_power_on() */ + AHCI_HFLAG_NO_SXS = (1 << 28), /* SXS not supported */ /* ap->flags bits */ diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c index ea5bf5f4cbed..fec2e9754aed 100644 --- a/drivers/ata/libahci.c +++ b/drivers/ata/libahci.c @@ -493,6 +493,11 @@ void ahci_save_initial_config(struct device *dev, struct ahci_host_priv *hpriv) cap |= HOST_CAP_ALPM; } + if ((cap & HOST_CAP_SXS) && (hpriv->flags & AHCI_HFLAG_NO_SXS)) { + dev_info(dev, "controller does not support SXS, disabling CAP_SXS\n"); + cap &= ~HOST_CAP_SXS; + } + if (hpriv->force_port_map && port_map != hpriv->force_port_map) { dev_info(dev, "forcing port_map 0x%x -> 0x%x\n", port_map, hpriv->force_port_map); -- 2.30.2