Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp1571152ybl; Sun, 19 Jan 2020 06:14:35 -0800 (PST) X-Google-Smtp-Source: APXvYqznFbhDMb+lOsx9a7oMYd+CN8ajn0++IEJ3ep5eSEg07MsI0r+7rbn0kKTqzHsQ2lulcr+q X-Received: by 2002:aca:bac3:: with SMTP id k186mr10357895oif.19.1579443275478; Sun, 19 Jan 2020 06:14:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579443275; cv=none; d=google.com; s=arc-20160816; b=csmtigkKXLGGn8coKMgTeR1AtuSlW0j6DLJdvtzRPuaZs78LyXTb0WRWcYRxx2lns4 IH1ESoDkIYXD4U0EWgUF8e0ABIqp/mW/Glh89wjFoXzRbM6Rsfq6GnOjU3ULRvwCySBJ VFFfnZuX6/53vyVApwKcCqmfz8em3VxoJqL/i/zPfteBrzlVUvPUbSXxaar9Bm+AhlKt 0ZYu7yYKrsvsxkjvkB/yGWZe/t6Onmlk4IItfcEyYyhG1IarBd+AAgypBGi8okzNxUIj kZr+jYFw3i//V5W39UoieTZLKDtN+oMdsQYiN66b0DMsSGFFcSF1yxE3duY+G764Oerd CpaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=WS4hpiPJ4ZsLS0bhjTBuxcDiBx1tLS6ob2vAGCFesxE=; b=dEF/bpYvAWIY+HJl3BF3RkFjpLS9/OivwDhPygwUgr+W3cgXCGcU7nTvdzPUa1RBy/ ECFlLq8MeAWHDAbdRfzQhQdUXQ5v/pO4EnDFxH6by7j7gEGaBhZLOk299O7VBFykInDo xc+0KywvnohCxrRLQi9xwCKGpgU4g//SdGnqsdo6og7QcC3ayAQSzAAUt/nLduliFaDZ J0wcz1i6/sBBpiZYNVwMT2SdpkeLrcM8ESicfOlzwMxDqagl/YQ2mAenLqKTi5AD56wh uZowlcw1Sipknmm8xFqnXW9A3A5/sxqH8I11WhSquLJrSaPyQyk5qMVagFH6/r+04aT0 x8qA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=QOuc3nSY; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p26si18842770oto.240.2020.01.19.06.14.23; Sun, 19 Jan 2020 06:14: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=@gmail.com header.s=20161025 header.b=QOuc3nSY; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726988AbgASON2 (ORCPT + 99 others); Sun, 19 Jan 2020 09:13:28 -0500 Received: from mail-vs1-f66.google.com ([209.85.217.66]:33920 "EHLO mail-vs1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726860AbgASON2 (ORCPT ); Sun, 19 Jan 2020 09:13:28 -0500 Received: by mail-vs1-f66.google.com with SMTP id g15so17518055vsf.1; Sun, 19 Jan 2020 06:13:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=WS4hpiPJ4ZsLS0bhjTBuxcDiBx1tLS6ob2vAGCFesxE=; b=QOuc3nSYWc5b82Vq+EXtiBO+wIuxcXrcnVdRw/OwDX2vo59211p80vm6G1wVNEp1FM M1hPMqTOcarVwUNrjg0dqeaFu8FrMx59Dq3k2BSCiVoScLFrbKnUz3Lskx8u/csP/K2M n3hJXUaO58pnk9dWkgzWpLCq7BbR5svTUBAoLU1f3Gd05sNJQGmX2fGVE0MEKIbc5FFd E3prO93PSEy3ktg88DgQuxu7NSiW+hufzXPrXUjeJwpW3pegx9B9nCoevU333c5xsZv0 XLa0eXZQUyIC0ansVKKx0WYWEEdb+ZWaapL8tieFU1MjzPyZv77eb/HbXLh4f82hziGm iTTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=WS4hpiPJ4ZsLS0bhjTBuxcDiBx1tLS6ob2vAGCFesxE=; b=dqe/9zuBGHt+xcE49nHOCFmvWfqMt+pCRb5PPpd4or8DcgPl9pXukmMG4DV5nJF8sK ifpc+4h7r/529SJ/mkSXTlaKlm1NIKLfEQ0Gm+mMhSOfIQhVFK/vMnA9Il+KtWWh/R0e +DVHLe0UYV+ZVv8Fa5yr9NHZjD84F5rnLiBPYxRWmQ+XaLsSm62dun8XKCnFl74MW0ld ViWaFfsRj6OEBOKWYuTjESde4KdcOS+wx0IQXT8iE8f7ed/i1rEYDSZuVlyQ9MIPYNIA YJTTwVt+lFecINy/c/gDxAhs5r7CnWE0U5oLlnd/kPVLmiG4fz8yMFZdxxteeO0S4GBf 7thg== X-Gm-Message-State: APjAAAUFUtkje91gHKu1+MLdxdh93daHD0yut1kYiZLxYIEXrYNC/WVa s30oEaIdmDfRu6Q9ITz/uU/o/6u6VXZzqR3+z5U= X-Received: by 2002:a67:1447:: with SMTP id 68mr9872067vsu.76.1579443206847; Sun, 19 Jan 2020 06:13:26 -0800 (PST) MIME-Version: 1.0 References: <20200117035108.19699-1-stanley.chu@mediatek.com> <20200117035108.19699-3-stanley.chu@mediatek.com> In-Reply-To: <20200117035108.19699-3-stanley.chu@mediatek.com> From: Alim Akhtar Date: Sun, 19 Jan 2020 19:42:50 +0530 Message-ID: Subject: Re: [PATCH v1 2/3] scsi: ufs: export some functions for vendor usage To: Stanley Chu Cc: linux-scsi@vger.kernel.org, "Martin K. Petersen" , Avri Altman , Alim Akhtar , "James E.J. Bottomley" , "Bean Huo (beanhuo)" , asutoshd@codeaurora.org, Can Guo , Matthias Brugger , Bart Van Assche , linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, open list , Kuohong Wang , peter.wang@mediatek.com, chun-hung.wu@mediatek.com, andy.teng@mediatek.com Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 17, 2020 at 9:45 AM Stanley Chu wrote: > > Export below functions for vendor usage, > > int ufshcd_hba_enable(struct ufs_hba *hba); > int ufshcd_make_hba_operational(struct ufs_hba *hba); > int ufshcd_uic_hibern8_exit(struct ufs_hba *hba); > > Signed-off-by: Stanley Chu > --- Reviewed-by: Alim Akhtar > drivers/scsi/ufs/ufshcd.c | 11 +++++++---- > drivers/scsi/ufs/ufshcd.h | 3 +++ > 2 files changed, 10 insertions(+), 4 deletions(-) > > diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c > index bea036ab189a..1168baf358ea 100644 > --- a/drivers/scsi/ufs/ufshcd.c > +++ b/drivers/scsi/ufs/ufshcd.c > @@ -250,7 +250,6 @@ static int ufshcd_probe_hba(struct ufs_hba *hba); > static int __ufshcd_setup_clocks(struct ufs_hba *hba, bool on, > bool skip_ref_clk); > static int ufshcd_setup_clocks(struct ufs_hba *hba, bool on); > -static int ufshcd_uic_hibern8_exit(struct ufs_hba *hba); > static int ufshcd_uic_hibern8_enter(struct ufs_hba *hba); > static inline void ufshcd_add_delay_before_dme_cmd(struct ufs_hba *hba); > static int ufshcd_host_reset_and_restore(struct ufs_hba *hba); > @@ -3865,7 +3864,7 @@ static int ufshcd_uic_hibern8_enter(struct ufs_hba *hba) > return ret; > } > > -static int ufshcd_uic_hibern8_exit(struct ufs_hba *hba) > +int ufshcd_uic_hibern8_exit(struct ufs_hba *hba) > { > struct uic_command uic_cmd = {0}; > int ret; > @@ -3891,6 +3890,7 @@ static int ufshcd_uic_hibern8_exit(struct ufs_hba *hba) > > return ret; > } > +EXPORT_SYMBOL_GPL(ufshcd_uic_hibern8_exit); > > void ufshcd_auto_hibern8_update(struct ufs_hba *hba, u32 ahit) > { > @@ -4162,7 +4162,7 @@ static int ufshcd_complete_dev_init(struct ufs_hba *hba) > * > * Returns 0 on success, non-zero value on failure > */ > -static int ufshcd_make_hba_operational(struct ufs_hba *hba) > +int ufshcd_make_hba_operational(struct ufs_hba *hba) > { > int err = 0; > u32 reg; > @@ -4208,6 +4208,7 @@ static int ufshcd_make_hba_operational(struct ufs_hba *hba) > out: > return err; > } > +EXPORT_SYMBOL_GPL(ufshcd_make_hba_operational); > > /** > * ufshcd_hba_stop - Send controller to reset state > @@ -4285,7 +4286,7 @@ static int ufshcd_hba_execute_hce(struct ufs_hba *hba) > return 0; > } > > -static int ufshcd_hba_enable(struct ufs_hba *hba) > +int ufshcd_hba_enable(struct ufs_hba *hba) > { > int ret; > > @@ -4310,6 +4311,8 @@ static int ufshcd_hba_enable(struct ufs_hba *hba) > > return ret; > } > +EXPORT_SYMBOL_GPL(ufshcd_hba_enable); > + > static int ufshcd_disable_tx_lcc(struct ufs_hba *hba, bool peer) > { > int tx_lanes, i, err = 0; > diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h > index b1a1c65be8b1..fca372d98495 100644 > --- a/drivers/scsi/ufs/ufshcd.h > +++ b/drivers/scsi/ufs/ufshcd.h > @@ -799,8 +799,11 @@ static inline void ufshcd_rmwl(struct ufs_hba *hba, u32 mask, u32 val, u32 reg) > > int ufshcd_alloc_host(struct device *, struct ufs_hba **); > void ufshcd_dealloc_host(struct ufs_hba *); > +int ufshcd_hba_enable(struct ufs_hba *hba); > int ufshcd_init(struct ufs_hba * , void __iomem * , unsigned int); > +int ufshcd_make_hba_operational(struct ufs_hba *hba); > void ufshcd_remove(struct ufs_hba *); > +int ufshcd_uic_hibern8_exit(struct ufs_hba *hba); > int ufshcd_wait_for_register(struct ufs_hba *hba, u32 reg, u32 mask, > u32 val, unsigned long interval_us, > unsigned long timeout_ms, bool can_sleep); > -- > 2.18.0 -- Regards, Alim