Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp1592841ybv; Thu, 20 Feb 2020 23:55:35 -0800 (PST) X-Google-Smtp-Source: APXvYqxYMnzgmHQZSmZK4co3R+6GIRTSARwC0m7KbFDd2l5zWOeIDDPpPHU9AWxazp6Fq984Fp/j X-Received: by 2002:aca:2315:: with SMTP id e21mr888345oie.147.1582271735496; Thu, 20 Feb 2020 23:55:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1582271735; cv=none; d=google.com; s=arc-20160816; b=WtCC34JPbbGfIKy2ovpNcxigJsJSWitgA4/RKBcRdIJcY4IXINj15bOs8dwRHFVyJJ etxaSJ35aDWUisB4g7edjOpRzPDX5uWFn9j8Ur/CxNSxc7iJIcvr6FuhusX5Yf1TY4jp bSPTZ8916jU6zCbZD2C0PeNraBnL+NKyijeH52BjCk53KEwymS8t8ZmpxhHxDgQMwbUa u+Zb4pYRM2nLRPXw3fj+pOq3nrbJwjq3pdMK8emUTCXX81t/NvOFHatMYD3l5pJbfj/F Hpm+tZP8a36PdYlw8blwfbCwJxx1482IpFQ//u+TftejWZwu3SNhYglFc7KxgpSKTODl BrdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=GJgjYXhDB9n7Zkue3UWTnNYooDysAWixB5+qhuz+BBI=; b=XivwbI22Yp7+2nFEAQYeiCabKaZY9xdIWifGgFlgASXXhoy5rJO28wDTVX7Hvx80dy 8xAJjUDtC1ebJ64X1ADkWTYuM3vKLDef4JN5b009Cfi4RMcgr+DMHQx04Lr4mVWTwwTi igzmHXDsfdBpTcc43SC3iumfvQl3K/1LDwTAlm2C61pyrYo/vV0XpCo4usvfVdyQbP69 rTf0ybM3xiDGueYm+yAliutEXkO8oslcjsGYpoyOVHj5fBT9d0e7BPVFfGUbZlnuMcYM c+PJOaNsBwMZWWGsbqoQqBIaS4AgAIRIR5CjCwa46AOzVbaH8ZNWu1xXvpBxrrMXK3yx 7RTw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=OJZmOXml; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p25si1034232oto.191.2020.02.20.23.55.23; Thu, 20 Feb 2020 23:55:35 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=OJZmOXml; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730301AbgBUHzW (ORCPT + 99 others); Fri, 21 Feb 2020 02:55:22 -0500 Received: from mail.kernel.org ([198.145.29.99]:54182 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730194AbgBUHzT (ORCPT ); Fri, 21 Feb 2020 02:55:19 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (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 C9EA720801; Fri, 21 Feb 2020 07:55:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1582271718; bh=VsoPGYP7IwxvKxpWReLwO2yQMlJO/BfI+jGEu2gpKqs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OJZmOXmlihPXOt8ckDEhSNzJIRnlnXlamGFmxu+BcnGUh0IL6Ck7+KpX0l8serT5L S6IVdNavMz1YKgQvNz/UW17xLgHWglA6FmQWwk++cZI7eNJOyWw60qhi7MnhnCcoha fbFOYtmYlGbDFgosUaR3Kvmz02ENv1sCu2+Nh8cw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Alim Akhtar , Asutosh Das , Avri Altman , Bart Van Assche , Bean Huo , Can Guo , Matthias Brugger , Stanley Chu , "Martin K. Petersen" , Sasha Levin Subject: [PATCH 5.5 271/399] scsi: ufs: pass device information to apply_dev_quirks Date: Fri, 21 Feb 2020 08:39:56 +0100 Message-Id: <20200221072428.555909237@linuxfoundation.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200221072402.315346745@linuxfoundation.org> References: <20200221072402.315346745@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Stanley Chu [ Upstream commit c40ad6b7fcd35bc4d36db820c7737e1aa18d5d41 ] Pass UFS device information to vendor-specific variant callback "apply_dev_quirks" because some platform vendors need to know such information to apply special handling or quirks in specific devices. At the same time, modify existing vendor implementations according to the new interface for those vendor drivers which will be built-in or built as a module alone with UFS core driver. [mkp: clarified commit desc] Cc: Alim Akhtar Cc: Asutosh Das Cc: Avri Altman Cc: Bart Van Assche Cc: Bean Huo Cc: Can Guo Cc: Matthias Brugger Link: https://lore.kernel.org/r/1578726707-6596-2-git-send-email-stanley.chu@mediatek.com Reviewed-by: Avri Altman Reviewed-by: Bean Huo Signed-off-by: Stanley Chu Signed-off-by: Martin K. Petersen Signed-off-by: Sasha Levin --- drivers/scsi/ufs/ufs-qcom.c | 3 ++- drivers/scsi/ufs/ufshcd.c | 8 ++++---- drivers/scsi/ufs/ufshcd.h | 7 ++++--- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c index c69c29a1ceb90..ebb5c66e069fa 100644 --- a/drivers/scsi/ufs/ufs-qcom.c +++ b/drivers/scsi/ufs/ufs-qcom.c @@ -949,7 +949,8 @@ out: return err; } -static int ufs_qcom_apply_dev_quirks(struct ufs_hba *hba) +static int ufs_qcom_apply_dev_quirks(struct ufs_hba *hba, + struct ufs_dev_desc *card) { int err = 0; diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 7d8300c9a0148..5340a980d24b8 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -6798,7 +6798,8 @@ out: return ret; } -static void ufshcd_tune_unipro_params(struct ufs_hba *hba) +static void ufshcd_tune_unipro_params(struct ufs_hba *hba, + struct ufs_dev_desc *card) { if (ufshcd_is_unipro_pa_params_tuning_req(hba)) { ufshcd_tune_pa_tactivate(hba); @@ -6812,7 +6813,7 @@ static void ufshcd_tune_unipro_params(struct ufs_hba *hba) if (hba->dev_quirks & UFS_DEVICE_QUIRK_HOST_PA_TACTIVATE) ufshcd_quirk_tune_host_pa_tactivate(hba); - ufshcd_vops_apply_dev_quirks(hba); + ufshcd_vops_apply_dev_quirks(hba, card); } static void ufshcd_clear_dbg_ufs_stats(struct ufs_hba *hba) @@ -6975,10 +6976,9 @@ static int ufshcd_probe_hba(struct ufs_hba *hba) } ufs_fixup_device_setup(hba, &card); + ufshcd_tune_unipro_params(hba, &card); ufs_put_device_desc(&card); - ufshcd_tune_unipro_params(hba); - /* UFS device is also active now */ ufshcd_set_ufs_dev_active(hba); ufshcd_force_reset_auto_bkops(hba); diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h index 2e59f9d8ab89e..46bec0e18c724 100644 --- a/drivers/scsi/ufs/ufshcd.h +++ b/drivers/scsi/ufs/ufshcd.h @@ -322,7 +322,7 @@ struct ufs_hba_variant_ops { void (*setup_task_mgmt)(struct ufs_hba *, int, u8); void (*hibern8_notify)(struct ufs_hba *, enum uic_cmd_dme, enum ufs_notify_change_status); - int (*apply_dev_quirks)(struct ufs_hba *); + int (*apply_dev_quirks)(struct ufs_hba *, struct ufs_dev_desc *); int (*suspend)(struct ufs_hba *, enum ufs_pm_op); int (*resume)(struct ufs_hba *, enum ufs_pm_op); void (*dbg_register_dump)(struct ufs_hba *hba); @@ -1057,10 +1057,11 @@ static inline void ufshcd_vops_hibern8_notify(struct ufs_hba *hba, return hba->vops->hibern8_notify(hba, cmd, status); } -static inline int ufshcd_vops_apply_dev_quirks(struct ufs_hba *hba) +static inline int ufshcd_vops_apply_dev_quirks(struct ufs_hba *hba, + struct ufs_dev_desc *card) { if (hba->vops && hba->vops->apply_dev_quirks) - return hba->vops->apply_dev_quirks(hba); + return hba->vops->apply_dev_quirks(hba, card); return 0; } -- 2.20.1