From patchwork Tue Apr 12 18:18:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 560227 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 08141C433EF for ; Tue, 12 Apr 2022 18:19:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1348537AbiDLSVf (ORCPT ); Tue, 12 Apr 2022 14:21:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49720 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238105AbiDLSVe (ORCPT ); Tue, 12 Apr 2022 14:21:34 -0400 Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0116E12639 for ; Tue, 12 Apr 2022 11:19:15 -0700 (PDT) Received: by mail-pf1-f176.google.com with SMTP id z16so18224335pfh.3 for ; Tue, 12 Apr 2022 11:19:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=kFrJiGoPLc1JlPkJ2qqLkZ4QwtfRPN1jzG22aAKAJhk=; b=NLIX15aY3dvAG1RZTt2p/x+L/uI4jtKPiFK9YWaYQWvp04gynnTagwY4TceWkMCtl1 DSq+WvhyhlraOn01C6E9uq30A7VKX7JKcV863vFOzLj9qNlsIrQiw5rDCuoXa/DolZfS 2KdmaBpXPyUp+RJzMHRn+YiYY/EWv3AdemLCPfoXES6/LmzIYTAD58vZms4jEenNXiYE EN1P7KfMNa1cCQb8ixePg5dYhPRdzHiv9RoccZkJZpJ6zRNAJnd5lRy7UzXMZDMwrT9W cOmaZxFzyVifu3dO9/oENuOjJFZ1uC9Ie5sDwW1MXdNrDABgc7PbFD4Gi24KsZ64zMlE O8Yg== X-Gm-Message-State: AOAM533hnvMwC4Raa68taPLbhnS/gl+5rmJApgxiBTMlipyLwmssc51u 5aMjgdp81cOqqmp40dIza7w= X-Google-Smtp-Source: ABdhPJzpskmL/9fNQ7p6V1C2BzunzttWBr6tH9IvOpraMMNU2MRxivdm09AK7WaGN9px3F35aCClQw== X-Received: by 2002:a63:495b:0:b0:399:8cd:81de with SMTP id y27-20020a63495b000000b0039908cd81demr30821826pgk.508.1649787555343; Tue, 12 Apr 2022 11:19:15 -0700 (PDT) Received: from bvanassche-linux.mtv.corp.google.com ([2620:15c:211:201:d4b2:56ee:d001:c159]) by smtp.gmail.com with ESMTPSA id d18-20020a056a0010d200b004fa2e13ce80sm40367037pfu.76.2022.04.12.11.19.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 11:19:14 -0700 (PDT) From: Bart Van Assche To: "Martin K . Petersen" Cc: Jaegeuk Kim , Adrian Hunter , linux-scsi@vger.kernel.org, Bart Van Assche , Avri Altman , Bean Huo , "James E.J. Bottomley" , Daejun Park Subject: [PATCH v2 02/29] scsi: ufs: Declare ufshcd_wait_for_register() static Date: Tue, 12 Apr 2022 11:18:26 -0700 Message-Id: <20220412181853.3715080-3-bvanassche@acm.org> X-Mailer: git-send-email 2.36.0.rc0.470.gd361397f0d-goog In-Reply-To: <20220412181853.3715080-1-bvanassche@acm.org> References: <20220412181853.3715080-1-bvanassche@acm.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Declare this function static since it is only used inside the ufshcd.c source file. Reviewed-by: Avri Altman Reviewed-by: Bean Huo Signed-off-by: Bart Van Assche --- drivers/scsi/ufs/ufshcd.c | 2 +- drivers/scsi/ufs/ufshcd.h | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 3f9caafa91bf..dbf50b50870b 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -639,7 +639,7 @@ EXPORT_SYMBOL_GPL(ufshcd_delay_us); * Return: * -ETIMEDOUT on error, zero on success. */ -int ufshcd_wait_for_register(struct ufs_hba *hba, u32 reg, u32 mask, +static int ufshcd_wait_for_register(struct ufs_hba *hba, u32 reg, u32 mask, u32 val, unsigned long interval_us, unsigned long timeout_ms) { diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h index 88c20f3608c2..949427714d0e 100644 --- a/drivers/scsi/ufs/ufshcd.h +++ b/drivers/scsi/ufs/ufshcd.h @@ -1030,9 +1030,6 @@ void ufshcd_remove(struct ufs_hba *); int ufshcd_uic_hibern8_enter(struct ufs_hba *hba); int ufshcd_uic_hibern8_exit(struct ufs_hba *hba); void ufshcd_delay_us(unsigned long us, unsigned long tolerance); -int ufshcd_wait_for_register(struct ufs_hba *hba, u32 reg, u32 mask, - u32 val, unsigned long interval_us, - unsigned long timeout_ms); void ufshcd_parse_dev_ref_clk_freq(struct ufs_hba *hba, struct clk *refclk); void ufshcd_update_evt_hist(struct ufs_hba *hba, u32 id, u32 val); void ufshcd_hba_stop(struct ufs_hba *hba); From patchwork Tue Apr 12 18:18:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 560226 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A8F0AC433F5 for ; Tue, 12 Apr 2022 18:19:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1357656AbiDLSWH (ORCPT ); Tue, 12 Apr 2022 14:22:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51258 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1358680AbiDLSWE (ORCPT ); Tue, 12 Apr 2022 14:22:04 -0400 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 02CE830F67 for ; Tue, 12 Apr 2022 11:19:45 -0700 (PDT) Received: by mail-pl1-f169.google.com with SMTP id be5so11542381plb.13 for ; Tue, 12 Apr 2022 11:19:44 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=49vD+yJktDl5B70k2zHugEv8CSNXmVnBJwG39FhcNPI=; b=Q/YE0oNvaxL5WTvO6zIof/KCN8Id8aswJaiGKlpkh5Qlrs58mRIlGhnLgiyXjOsbqK OcRaa6572rhV7DgL4NygERWnvNj+CFuTSpCvrdqiORXZGZmOSdDm/bX2ZE1CC4yWeSAq lRO1BQL/fXMK+utg+0BkbqPELdsppaXJNOmMceOItEGTCeMDyw0DjNTjvef7pnbCxtrT ua7s1jdBdtm6KBuTXZ4HZePEaPbPeFOPTc7EEKIeWfhROQC5WbUtLRASDaa2Aq9mulTi h/W7jq6RbcVm9TTiDDHDVS0V0HpJLdaKboCUpXLdaO/NfDaxw498Uputo9n+GjaDg7YG gTyw== X-Gm-Message-State: AOAM533e2a9H/xyWYChRFQ+8TN7LD1dccIlvtqOjiUfDhl2flKkeRDn+ VTl3u6fi7ywDPgMkkR8Q9L0= X-Google-Smtp-Source: ABdhPJzsekVpsGGF/ASvt9wiT+wxO4XMhtjcMizcp6UBUo1zt/rEKvqQ9uk4yESfUbVFRg8iC6BCKQ== X-Received: by 2002:a17:90b:1e44:b0:1ca:9eb8:e1ec with SMTP id pi4-20020a17090b1e4400b001ca9eb8e1ecmr6526603pjb.63.1649787584406; Tue, 12 Apr 2022 11:19:44 -0700 (PDT) Received: from bvanassche-linux.mtv.corp.google.com ([2620:15c:211:201:d4b2:56ee:d001:c159]) by smtp.gmail.com with ESMTPSA id d18-20020a056a0010d200b004fa2e13ce80sm40367037pfu.76.2022.04.12.11.19.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 11:19:43 -0700 (PDT) From: Bart Van Assche To: "Martin K . Petersen" Cc: Jaegeuk Kim , Adrian Hunter , linux-scsi@vger.kernel.org, Bart Van Assche , Bjorn Andersson , "James E.J. Bottomley" , Bean Huo , Avri Altman , Daejun Park , Keoseong Park Subject: [PATCH v2 04/29] scsi: ufs: Simplify statements that return a boolean Date: Tue, 12 Apr 2022 11:18:28 -0700 Message-Id: <20220412181853.3715080-5-bvanassche@acm.org> X-Mailer: git-send-email 2.36.0.rc0.470.gd361397f0d-goog In-Reply-To: <20220412181853.3715080-1-bvanassche@acm.org> References: <20220412181853.3715080-1-bvanassche@acm.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Convert "if (expr) return true; else return false;" into "return expr;" if either 'expr' is a boolean expression or the return type of the function is 'bool'. Reviewed-by: Bjorn Andersson Signed-off-by: Bart Van Assche --- drivers/scsi/ufs/ufs-qcom.h | 5 +---- drivers/scsi/ufs/ufshcd.c | 22 +++++----------------- drivers/scsi/ufs/ufshpb.c | 8 ++------ 3 files changed, 8 insertions(+), 27 deletions(-) diff --git a/drivers/scsi/ufs/ufs-qcom.h b/drivers/scsi/ufs/ufs-qcom.h index 8208e3a3ef59..51570224a6e2 100644 --- a/drivers/scsi/ufs/ufs-qcom.h +++ b/drivers/scsi/ufs/ufs-qcom.h @@ -239,10 +239,7 @@ int ufs_qcom_testbus_config(struct ufs_qcom_host *host); static inline bool ufs_qcom_cap_qunipro(struct ufs_qcom_host *host) { - if (host->caps & UFS_QCOM_CAP_QUNIPRO) - return true; - else - return false; + return host->caps & UFS_QCOM_CAP_QUNIPRO; } /* ufs-qcom-ice.c */ diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 983fac14b7cd..c60519372b3b 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -939,10 +939,7 @@ static bool ufshcd_is_unipro_pa_params_tuning_req(struct ufs_hba *hba) * logic simple, we will only do manual tuning if local unipro version * doesn't support ver1.6 or later. */ - if (ufshcd_get_local_unipro_ver(hba) < UFS_UNIPRO_VER_1_6) - return true; - else - return false; + return ufshcd_get_local_unipro_ver(hba) < UFS_UNIPRO_VER_1_6; } /** @@ -2216,10 +2213,7 @@ static inline int ufshcd_hba_capabilities(struct ufs_hba *hba) */ static inline bool ufshcd_ready_for_uic_cmd(struct ufs_hba *hba) { - if (ufshcd_readl(hba, REG_CONTROLLER_STATUS) & UIC_COMMAND_READY) - return true; - else - return false; + return ufshcd_readl(hba, REG_CONTROLLER_STATUS) & UIC_COMMAND_READY; } /** @@ -5781,10 +5775,7 @@ static bool ufshcd_wb_presrv_usrspc_keep_vcc_on(struct ufs_hba *hba, return false; } /* Let it continue to flush when available buffer exceeds threshold */ - if (avail_buf < hba->vps->wb_flush_threshold) - return true; - - return false; + return avail_buf < hba->vps->wb_flush_threshold; } static void ufshcd_wb_force_disable(struct ufs_hba *hba) @@ -5863,11 +5854,8 @@ static bool ufshcd_wb_need_flush(struct ufs_hba *hba) return false; } - if (!hba->dev_info.b_presrv_uspc_en) { - if (avail_buf <= UFS_WB_BUF_REMAIN_PERCENT(10)) - return true; - return false; - } + if (!hba->dev_info.b_presrv_uspc_en) + return avail_buf <= UFS_WB_BUF_REMAIN_PERCENT(10); return ufshcd_wb_presrv_usrspc_keep_vcc_on(hba, avail_buf); } diff --git a/drivers/scsi/ufs/ufshpb.c b/drivers/scsi/ufs/ufshpb.c index b2bec19022cd..ebd8fc8fc109 100644 --- a/drivers/scsi/ufs/ufshpb.c +++ b/drivers/scsi/ufs/ufshpb.c @@ -90,12 +90,8 @@ static bool ufshpb_is_general_lun(int lun) static bool ufshpb_is_pinned_region(struct ufshpb_lu *hpb, int rgn_idx) { - if (hpb->lu_pinned_end != PINNED_NOT_SET && - rgn_idx >= hpb->lu_pinned_start && - rgn_idx <= hpb->lu_pinned_end) - return true; - - return false; + return hpb->lu_pinned_end != PINNED_NOT_SET && + rgn_idx >= hpb->lu_pinned_start && rgn_idx <= hpb->lu_pinned_end; } static void ufshpb_kick_map_work(struct ufshpb_lu *hpb) From patchwork Tue Apr 12 18:18:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 560225 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E80DBC433EF for ; Tue, 12 Apr 2022 18:20:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1352737AbiDLSWX (ORCPT ); Tue, 12 Apr 2022 14:22:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52380 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1358682AbiDLSWW (ORCPT ); Tue, 12 Apr 2022 14:22:22 -0400 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6C3A93BF88 for ; Tue, 12 Apr 2022 11:20:03 -0700 (PDT) Received: by mail-pl1-f176.google.com with SMTP id c23so17565172plo.0 for ; Tue, 12 Apr 2022 11:20:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6GfqIOmo1kqFihHls2Z1VsQph6E/ifS15/w+btDWXlE=; b=gyxMjAwjYF3Diz7TsDrBf+ZBXe5DyZEnaS1avQkczWOG7w1N+cY7GDg3VNOvPrBZYQ YCQtb2qPD1RXkOQ1z9w0/3GVjRYkuNcG3obSrdiYNhOQ6gTxU5gThZ/kHF/+gOL1LtAw aFBW+93aZ0VKQZ7oWYsDJzLLNXf36aEGGZ+KZsHFS2w/3Noj+AcoQDy9WlfvuVzDzcrd CKAbTsUFDN/+8t5l7vjV0R0uAdNImA0FJo82Wb0S1OQnNQVlN01DVBhXZOvZ4LbJ9OgD Y8lkjovw+P9NVfJ6lIKe3VXTqVVnG9MQLIOSWui7MBZc/9n0HbM/5xD8TjRrByNZCRgd BZag== X-Gm-Message-State: AOAM532CpWbeDYWwy2CvwL8f1PDIIF51LCChc6FFm+PZ9Dc4oesHniv3 BAtivkBiLjZcaXi3dF2za9g= X-Google-Smtp-Source: ABdhPJwhbdx6MOZTxhjGbS7qo0ioNRZ7I97H1aPT3BJNJfsiGLpG/AwEy4jSksG06aTBoBy4QNGqEQ== X-Received: by 2002:a17:902:d48b:b0:158:558d:c58a with SMTP id c11-20020a170902d48b00b00158558dc58amr13267590plg.105.1649787602828; Tue, 12 Apr 2022 11:20:02 -0700 (PDT) Received: from bvanassche-linux.mtv.corp.google.com ([2620:15c:211:201:d4b2:56ee:d001:c159]) by smtp.gmail.com with ESMTPSA id d18-20020a056a0010d200b004fa2e13ce80sm40367037pfu.76.2022.04.12.11.20.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 11:20:02 -0700 (PDT) From: Bart Van Assche To: "Martin K . Petersen" Cc: Jaegeuk Kim , Adrian Hunter , linux-scsi@vger.kernel.org, Bart Van Assche , "James E.J. Bottomley" , Bean Huo , Avri Altman , Daejun Park Subject: [PATCH v2 06/29] scsi: ufs: Remove ufshcd_lrb.sense_buffer Date: Tue, 12 Apr 2022 11:18:30 -0700 Message-Id: <20220412181853.3715080-7-bvanassche@acm.org> X-Mailer: git-send-email 2.36.0.rc0.470.gd361397f0d-goog In-Reply-To: <20220412181853.3715080-1-bvanassche@acm.org> References: <20220412181853.3715080-1-bvanassche@acm.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org ufshcd_lrb.sense_buffer is NULL if ufshcd_lrb.cmd is NULL and ufshcd_lrb.sense_buffer points at cmd->sense_buffer if ufshcd_lrb.cmd is set. In other words, the ufshcd_lrb.sense_buffer member is identical to cmd->sense_buffer. Hence this patch that removes the ufshcd_lrb.sense_buffer structure member. Signed-off-by: Bart Van Assche Reviewed-by: Avri Altman --- drivers/scsi/ufs/ufshcd.c | 9 ++++----- drivers/scsi/ufs/ufshcd.h | 2 -- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index e52e86b0b7a3..d4ef31e1a409 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -2127,15 +2127,17 @@ void ufshcd_send_command(struct ufs_hba *hba, unsigned int task_tag) */ static inline void ufshcd_copy_sense_data(struct ufshcd_lrb *lrbp) { + u8 *const sense_buffer = lrbp->cmd->sense_buffer; int len; - if (lrbp->sense_buffer && + + if (sense_buffer && ufshcd_get_rsp_upiu_data_seg_len(lrbp->ucd_rsp_ptr)) { int len_to_copy; len = be16_to_cpu(lrbp->ucd_rsp_ptr->sr.sense_data_len); len_to_copy = min_t(int, UFS_SENSE_SIZE, len); - memcpy(lrbp->sense_buffer, lrbp->ucd_rsp_ptr->sr.sense_data, + memcpy(sense_buffer, lrbp->ucd_rsp_ptr->sr.sense_data, len_to_copy); } } @@ -2789,7 +2791,6 @@ static int ufshcd_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd) lrbp = &hba->lrb[tag]; WARN_ON(lrbp->cmd); lrbp->cmd = cmd; - lrbp->sense_buffer = cmd->sense_buffer; lrbp->task_tag = tag; lrbp->lun = ufshcd_scsi_to_upiu_lun(cmd->device->lun); lrbp->intr_cmd = !ufshcd_is_intr_aggr_allowed(hba); @@ -2829,7 +2830,6 @@ static int ufshcd_compose_dev_cmd(struct ufs_hba *hba, struct ufshcd_lrb *lrbp, enum dev_cmd_type cmd_type, int tag) { lrbp->cmd = NULL; - lrbp->sense_buffer = NULL; lrbp->task_tag = tag; lrbp->lun = 0; /* device management cmd is not specific to any LUN */ lrbp->intr_cmd = true; /* No interrupt aggregation */ @@ -6800,7 +6800,6 @@ static int ufshcd_issue_devman_upiu_cmd(struct ufs_hba *hba, lrbp = &hba->lrb[tag]; WARN_ON(lrbp->cmd); lrbp->cmd = NULL; - lrbp->sense_buffer = NULL; lrbp->task_tag = tag; lrbp->lun = 0; lrbp->intr_cmd = true; diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h index b6162b208d99..b9f17219ca18 100644 --- a/drivers/scsi/ufs/ufshcd.h +++ b/drivers/scsi/ufs/ufshcd.h @@ -181,7 +181,6 @@ struct ufs_pm_lvl_states { * @ucd_rsp_dma_addr: UPIU response dma address for debug * @ucd_req_dma_addr: UPIU request dma address for debug * @cmd: pointer to SCSI command - * @sense_buffer: pointer to sense buffer address of the SCSI command * @scsi_status: SCSI status of the command * @command_type: SCSI, UFS, Query. * @task_tag: Task tag of the command @@ -205,7 +204,6 @@ struct ufshcd_lrb { dma_addr_t ucd_prdt_dma_addr; struct scsi_cmnd *cmd; - u8 *sense_buffer; int scsi_status; int command_type; From patchwork Tue Apr 12 18:18:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 560224 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E22E2C433EF for ; Tue, 12 Apr 2022 18:20:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236948AbiDLSWo (ORCPT ); Tue, 12 Apr 2022 14:22:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53492 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1358729AbiDLSWk (ORCPT ); Tue, 12 Apr 2022 14:22:40 -0400 Received: from mail-pj1-f53.google.com (mail-pj1-f53.google.com [209.85.216.53]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 15D014474F for ; Tue, 12 Apr 2022 11:20:22 -0700 (PDT) Received: by mail-pj1-f53.google.com with SMTP id bx5so19236492pjb.3 for ; Tue, 12 Apr 2022 11:20:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=q6RgkMDfw/nJyjAPJS/L3T3rA3g8xfDxZjeiiE7pbto=; b=fTfJumjUOabNzpZTmuLP+jQBhR7AX5/a96Uff4ulcRLxdHguyI/zS9P+E/5oEazLI8 DPnl4cCq4apDafErgL0CXDD/yC+gqaBkESVahOpbEJLtFMj4CKrx1ZcdTjNh54LJLWWL TINgQ0JRpcFxZytn9WjRU9AYa0PwxJvPdS7+jW6hfGLcGVDdG2RVqc2DNm7GPIww/xzg bZeZGZrJDt9F1dgPsACtCSXBSmqv6mmSdygAaLgHIlF3UVbjdRzVEzBEZKNIAoU2i0hE JLVKFwxfzQq09irn/IADU3Iiu1IowIQ13dmJfSU9PWbL/pAagOF2RVhmiy1ucoGwVMag IJwg== X-Gm-Message-State: AOAM532VbMEzedtm/wzjmdeKhk6UDBYYOxKYKcVPhetAf77/VuhFLeus CaBwuuhe9N/JeYcwGrrEt4w= X-Google-Smtp-Source: ABdhPJy8k0ZHH4xnopgnX/fKbd/itKjEPPZauCDTsq19ImWZDuXA6IUixcP/dvMRTqeO6nE1pvVR6w== X-Received: by 2002:a17:902:8490:b0:156:9846:240 with SMTP id c16-20020a170902849000b0015698460240mr38233030plo.141.1649787621535; Tue, 12 Apr 2022 11:20:21 -0700 (PDT) Received: from bvanassche-linux.mtv.corp.google.com ([2620:15c:211:201:d4b2:56ee:d001:c159]) by smtp.gmail.com with ESMTPSA id d18-20020a056a0010d200b004fa2e13ce80sm40367037pfu.76.2022.04.12.11.20.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 11:20:20 -0700 (PDT) From: Bart Van Assche To: "Martin K . Petersen" Cc: Jaegeuk Kim , Adrian Hunter , linux-scsi@vger.kernel.org, Bart Van Assche , Avri Altman , "James E.J. Bottomley" , Matthias Brugger , Stanley Chu , Peter Wang , Bean Huo , Daejun Park Subject: [PATCH v2 08/29] scsi: ufs: Remove the UFS_FIX() and END_FIX() macros Date: Tue, 12 Apr 2022 11:18:32 -0700 Message-Id: <20220412181853.3715080-9-bvanassche@acm.org> X-Mailer: git-send-email 2.36.0.rc0.470.gd361397f0d-goog In-Reply-To: <20220412181853.3715080-1-bvanassche@acm.org> References: <20220412181853.3715080-1-bvanassche@acm.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Since these two macros reduce code readability, remove these two macros. Reviewed-by: Avri Altman Signed-off-by: Bart Van Assche --- drivers/scsi/ufs/ufs-mediatek.c | 12 +++++---- drivers/scsi/ufs/ufs_quirks.h | 9 ------- drivers/scsi/ufs/ufshcd.c | 43 +++++++++++++++++++-------------- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/drivers/scsi/ufs/ufs-mediatek.c b/drivers/scsi/ufs/ufs-mediatek.c index 86a938075f30..b275b440f027 100644 --- a/drivers/scsi/ufs/ufs-mediatek.c +++ b/drivers/scsi/ufs/ufs-mediatek.c @@ -45,11 +45,13 @@ ufs_mtk_smc(UFS_MTK_SIP_DEVICE_RESET, high, res) static struct ufs_dev_fix ufs_mtk_dev_fixups[] = { - UFS_FIX(UFS_VENDOR_MICRON, UFS_ANY_MODEL, - UFS_DEVICE_QUIRK_DELAY_AFTER_LPM), - UFS_FIX(UFS_VENDOR_SKHYNIX, "H9HQ21AFAMZDAR", - UFS_DEVICE_QUIRK_SUPPORT_EXTENDED_FEATURES), - END_FIX + { .wmanufacturerid = UFS_VENDOR_MICRON, + .model = UFS_ANY_MODEL, + .quirk = UFS_DEVICE_QUIRK_DELAY_AFTER_LPM }, + { .wmanufacturerid = UFS_VENDOR_SKHYNIX, + .model = "H9HQ21AFAMZDAR", + .quirk = UFS_DEVICE_QUIRK_SUPPORT_EXTENDED_FEATURES }, + {} }; static const struct of_device_id ufs_mtk_of_match[] = { diff --git a/drivers/scsi/ufs/ufs_quirks.h b/drivers/scsi/ufs/ufs_quirks.h index 35ec9ea79869..e6c535c77527 100644 --- a/drivers/scsi/ufs/ufs_quirks.h +++ b/drivers/scsi/ufs/ufs_quirks.h @@ -29,15 +29,6 @@ struct ufs_dev_fix { unsigned int quirk; }; -#define END_FIX { } - -/* add specific device quirk */ -#define UFS_FIX(_vendor, _model, _quirk) { \ - .wmanufacturerid = (_vendor),\ - .model = (_model), \ - .quirk = (_quirk), \ -} - /* * Some vendor's UFS device sends back to back NACs for the DL data frames * causing the host controller to raise the DFES error status. Sometimes diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 3ec26c9eb1be..5fa93be246a5 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -206,24 +206,31 @@ ufs_get_desired_pm_lvl_for_dev_link_state(enum ufs_dev_pwr_mode dev_state, static struct ufs_dev_fix ufs_fixups[] = { /* UFS cards deviations table */ - UFS_FIX(UFS_VENDOR_MICRON, UFS_ANY_MODEL, - UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM | - UFS_DEVICE_QUIRK_SWAP_L2P_ENTRY_FOR_HPB_READ), - UFS_FIX(UFS_VENDOR_SAMSUNG, UFS_ANY_MODEL, - UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM | - UFS_DEVICE_QUIRK_HOST_PA_TACTIVATE | - UFS_DEVICE_QUIRK_RECOVERY_FROM_DL_NAC_ERRORS), - UFS_FIX(UFS_VENDOR_SKHYNIX, UFS_ANY_MODEL, - UFS_DEVICE_QUIRK_HOST_PA_SAVECONFIGTIME), - UFS_FIX(UFS_VENDOR_SKHYNIX, "hB8aL1" /*H28U62301AMR*/, - UFS_DEVICE_QUIRK_HOST_VS_DEBUGSAVECONFIGTIME), - UFS_FIX(UFS_VENDOR_TOSHIBA, UFS_ANY_MODEL, - UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM), - UFS_FIX(UFS_VENDOR_TOSHIBA, "THGLF2G9C8KBADG", - UFS_DEVICE_QUIRK_PA_TACTIVATE), - UFS_FIX(UFS_VENDOR_TOSHIBA, "THGLF2G9D8KBADG", - UFS_DEVICE_QUIRK_PA_TACTIVATE), - END_FIX + { .wmanufacturerid = UFS_VENDOR_MICRON, + .model = UFS_ANY_MODEL, + .quirk = UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM | + UFS_DEVICE_QUIRK_SWAP_L2P_ENTRY_FOR_HPB_READ }, + { .wmanufacturerid = UFS_VENDOR_SAMSUNG, + .model = UFS_ANY_MODEL, + .quirk = UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM | + UFS_DEVICE_QUIRK_HOST_PA_TACTIVATE | + UFS_DEVICE_QUIRK_RECOVERY_FROM_DL_NAC_ERRORS }, + { .wmanufacturerid = UFS_VENDOR_SKHYNIX, + .model = UFS_ANY_MODEL, + .quirk = UFS_DEVICE_QUIRK_HOST_PA_SAVECONFIGTIME }, + { .wmanufacturerid = UFS_VENDOR_SKHYNIX, + .model = "hB8aL1" /*H28U62301AMR*/, + .quirk = UFS_DEVICE_QUIRK_HOST_VS_DEBUGSAVECONFIGTIME }, + { .wmanufacturerid = UFS_VENDOR_TOSHIBA, + .model = UFS_ANY_MODEL, + .quirk = UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM }, + { .wmanufacturerid = UFS_VENDOR_TOSHIBA, + .model = "THGLF2G9C8KBADG", + .quirk = UFS_DEVICE_QUIRK_PA_TACTIVATE }, + { .wmanufacturerid = UFS_VENDOR_TOSHIBA, + .model = "THGLF2G9D8KBADG", + .quirk = UFS_DEVICE_QUIRK_PA_TACTIVATE }, + {} }; static irqreturn_t ufshcd_tmc_handler(struct ufs_hba *hba); From patchwork Tue Apr 12 18:18:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 560223 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 300F9C433F5 for ; Tue, 12 Apr 2022 18:20:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358680AbiDLSXN (ORCPT ); Tue, 12 Apr 2022 14:23:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55506 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236948AbiDLSXM (ORCPT ); Tue, 12 Apr 2022 14:23:12 -0400 Received: from mail-pg1-f178.google.com (mail-pg1-f178.google.com [209.85.215.178]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CE3F74C41B for ; Tue, 12 Apr 2022 11:20:54 -0700 (PDT) Received: by mail-pg1-f178.google.com with SMTP id s137so15277294pgs.5 for ; Tue, 12 Apr 2022 11:20:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Eta5PBC5X/Kb8I7p5YmauGvSBGUtRZFfJR+9ADQd7To=; b=nA8oQLeGfOKAGcMSrlJ5ZmZoYT1y+Zq5Ij4BCd9VsD9MxB1YhGMr6xQaprz7U6n3t4 /PyoiQjM1FmEH85SRFL8aCjnVSSGMfihJuWmwNa99Pa1wzQ9YvmZ+P5ps8zQ+fuHnBsH Pv+SXi0YRYhl4mlXbVDpUd2L6qP5O9fYmk+6wTmAvdmb95bwlBLpT3GW8OoI7ov/6xjc yO000URN/vYn0jhw0YRpO/YElVZVacGgvHigPLizeHyk2mRXSV0fwGV3SMj6aXXn+y9E lNB+wN9fOQVFyRBj6Nf/bOWxnSRsISIgTENaaZ8lA5yDW3D97QhIx57lw9psbJRAXiae CyBg== X-Gm-Message-State: AOAM532lB2C5AsYz5CLau/lx6ge9dE1XpnNzEaFadTH9akcj1+0Nim6C sQZMlQTTKZzzkhEReOeWxdw= X-Google-Smtp-Source: ABdhPJw76kbDmdD3ACDizbVxG+F5GH4jIZMBdU5A1Hv2kBaaksclBIyFaLovB2v0Pi1caejy3w3Khw== X-Received: by 2002:a05:6a00:1a52:b0:506:110:4ac6 with SMTP id h18-20020a056a001a5200b0050601104ac6mr3490779pfv.20.1649787654216; Tue, 12 Apr 2022 11:20:54 -0700 (PDT) Received: from bvanassche-linux.mtv.corp.google.com ([2620:15c:211:201:d4b2:56ee:d001:c159]) by smtp.gmail.com with ESMTPSA id d18-20020a056a0010d200b004fa2e13ce80sm40367037pfu.76.2022.04.12.11.20.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 11:20:53 -0700 (PDT) From: Bart Van Assche To: "Martin K . Petersen" Cc: Jaegeuk Kim , Adrian Hunter , linux-scsi@vger.kernel.org, Bart Van Assche , Avri Altman , "James E.J. Bottomley" , Matthias Brugger , Stanley Chu , Peter Wang , Bean Huo , Daejun Park Subject: [PATCH v2 10/29] scsi: ufs: Declare the quirks array const Date: Tue, 12 Apr 2022 11:18:34 -0700 Message-Id: <20220412181853.3715080-11-bvanassche@acm.org> X-Mailer: git-send-email 2.36.0.rc0.470.gd361397f0d-goog In-Reply-To: <20220412181853.3715080-1-bvanassche@acm.org> References: <20220412181853.3715080-1-bvanassche@acm.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Declare the quirks array and also its 'model' member const to make it explicit that these are not modified. Reviewed-by: Avri Altman Signed-off-by: Bart Van Assche --- drivers/scsi/ufs/ufs-mediatek.c | 2 +- drivers/scsi/ufs/ufs_quirks.h | 2 +- drivers/scsi/ufs/ufshcd.c | 7 ++++--- drivers/scsi/ufs/ufshcd.h | 3 ++- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/scsi/ufs/ufs-mediatek.c b/drivers/scsi/ufs/ufs-mediatek.c index 217348dde6a6..9a4474210627 100644 --- a/drivers/scsi/ufs/ufs-mediatek.c +++ b/drivers/scsi/ufs/ufs-mediatek.c @@ -44,7 +44,7 @@ #define ufs_mtk_device_reset_ctrl(high, res) \ ufs_mtk_smc(UFS_MTK_SIP_DEVICE_RESET, high, res) -static struct ufs_dev_quirk ufs_mtk_dev_fixups[] = { +static const struct ufs_dev_quirk ufs_mtk_dev_fixups[] = { { .wmanufacturerid = UFS_VENDOR_MICRON, .model = UFS_ANY_MODEL, .quirk = UFS_DEVICE_QUIRK_DELAY_AFTER_LPM }, diff --git a/drivers/scsi/ufs/ufs_quirks.h b/drivers/scsi/ufs/ufs_quirks.h index e38dec5f0351..bcb4f004bed5 100644 --- a/drivers/scsi/ufs/ufs_quirks.h +++ b/drivers/scsi/ufs/ufs_quirks.h @@ -25,7 +25,7 @@ */ struct ufs_dev_quirk { u16 wmanufacturerid; - u8 *model; + const u8 *model; unsigned int quirk; }; diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 9df37c80308a..a1ebfbb6f1b9 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -204,7 +204,7 @@ ufs_get_desired_pm_lvl_for_dev_link_state(enum ufs_dev_pwr_mode dev_state, return UFS_PM_LVL_0; } -static struct ufs_dev_quirk ufs_fixups[] = { +static const struct ufs_dev_quirk ufs_fixups[] = { /* UFS cards deviations table */ { .wmanufacturerid = UFS_VENDOR_MICRON, .model = UFS_ANY_MODEL, @@ -7624,9 +7624,10 @@ static void ufshcd_temp_notif_probe(struct ufs_hba *hba, u8 *desc_buf) } } -void ufshcd_fixup_dev_quirks(struct ufs_hba *hba, struct ufs_dev_quirk *fixups) +void ufshcd_fixup_dev_quirks(struct ufs_hba *hba, + const struct ufs_dev_quirk *fixups) { - struct ufs_dev_quirk *f; + const struct ufs_dev_quirk *f; struct ufs_dev_info *dev_info = &hba->dev_info; if (!fixups) diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h index 3d18581afc2b..107d19e98d52 100644 --- a/drivers/scsi/ufs/ufshcd.h +++ b/drivers/scsi/ufs/ufshcd.h @@ -1180,7 +1180,8 @@ int ufshcd_query_flag(struct ufs_hba *hba, enum query_opcode opcode, void ufshcd_auto_hibern8_enable(struct ufs_hba *hba); void ufshcd_auto_hibern8_update(struct ufs_hba *hba, u32 ahit); -void ufshcd_fixup_dev_quirks(struct ufs_hba *hba, struct ufs_dev_quirk *fixups); +void ufshcd_fixup_dev_quirks(struct ufs_hba *hba, + const struct ufs_dev_quirk *fixups); #define SD_ASCII_STD true #define SD_RAW false int ufshcd_read_string_desc(struct ufs_hba *hba, u8 desc_index, From patchwork Tue Apr 12 18:18:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 560222 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 91147C433EF for ; Tue, 12 Apr 2022 18:21:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1357356AbiDLSXa (ORCPT ); Tue, 12 Apr 2022 14:23:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56636 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241256AbiDLSX2 (ORCPT ); Tue, 12 Apr 2022 14:23:28 -0400 Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com [209.85.215.180]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 48C085D64B for ; Tue, 12 Apr 2022 11:21:10 -0700 (PDT) Received: by mail-pg1-f180.google.com with SMTP id t13so17996110pgn.8 for ; Tue, 12 Apr 2022 11:21:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/6uWtAD/SeeR09KP91P5TwvCx574f8Z/VJ0xjlNkqlU=; b=eLfiRINlq1BaOyvMuwmSL1Qfcw563RrLH3EmWJzD9L/eKP+wnsZKCO3u5bhLsYQ1F5 v59wOaz+5+j3jKPzTlcY/A55/QlVlfgWmqKjBephPcGF9jxxSrWlEQrI4nRZgoFxU3Fe bgnllBdhRMXZVz7zzdhLQYXuymLGd2vTa5DRW/ANYYTB3b93NjOuDGxbhZwLIPIETL4R 2+tht0I2/4FfYTN1+PpSfkCzmVNfD3v2WyMJnxF7G9lcY5seY+ADSvgwRouRwJF+SCkO UQ6St84J6iTi6mP2Ax8+vrQDqjtmpo9Ktzgq+fBHdaOKzZlHVzyG5rkfWXXU6iDci57O TtVA== X-Gm-Message-State: AOAM533zG5G9rUST62VOoJ4eSXjQhERoCJfN5ZSndt4VbZXYZUDdd2pp 4GxXC5TC4Cn+HkM9ztNBoOM= X-Google-Smtp-Source: ABdhPJxcjiSAdrDBAUK+TNOELNvjwpm2Sat/Vj+LyocDsuWO5Xfw9sw1/W40CUNTsGxwTY6Z8J3Spg== X-Received: by 2002:a05:6a00:1d15:b0:505:d605:38fc with SMTP id a21-20020a056a001d1500b00505d60538fcmr5890516pfx.41.1649787669673; Tue, 12 Apr 2022 11:21:09 -0700 (PDT) Received: from bvanassche-linux.mtv.corp.google.com ([2620:15c:211:201:d4b2:56ee:d001:c159]) by smtp.gmail.com with ESMTPSA id d18-20020a056a0010d200b004fa2e13ce80sm40367037pfu.76.2022.04.12.11.21.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 11:21:08 -0700 (PDT) From: Bart Van Assche To: "Martin K . Petersen" Cc: Jaegeuk Kim , Adrian Hunter , linux-scsi@vger.kernel.org, Bart Van Assche , Stanley Chu , "James E.J. Bottomley" , Matthias Brugger , Avri Altman , Daejun Park , Bean Huo , Jinyoung Choi , Asutosh Das Subject: [PATCH v2 12/29] scsi: ufs: Remove unused constants and code Date: Tue, 12 Apr 2022 11:18:36 -0700 Message-Id: <20220412181853.3715080-13-bvanassche@acm.org> X-Mailer: git-send-email 2.36.0.rc0.470.gd361397f0d-goog In-Reply-To: <20220412181853.3715080-1-bvanassche@acm.org> References: <20220412181853.3715080-1-bvanassche@acm.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Commit 5b44a07b6bb2 ("scsi: ufs: Remove pre-defined initial voltage values of device power") removed the code that uses the UFS_VREG_VCC* constants and also the code that sets the min_uV and max_uV member variables. Hence also remove these constants and that member variable. Reviewed-by: Stanley Chu Signed-off-by: Bart Van Assche --- drivers/scsi/ufs/ufs.h | 11 ----------- drivers/scsi/ufs/ufshcd.c | 29 +++-------------------------- 2 files changed, 3 insertions(+), 37 deletions(-) diff --git a/drivers/scsi/ufs/ufs.h b/drivers/scsi/ufs/ufs.h index 4a00c24a3209..225b5b4a2a7e 100644 --- a/drivers/scsi/ufs/ufs.h +++ b/drivers/scsi/ufs/ufs.h @@ -562,15 +562,6 @@ struct ufs_query_res { struct utp_upiu_query upiu_res; }; -#define UFS_VREG_VCC_MIN_UV 2700000 /* uV */ -#define UFS_VREG_VCC_MAX_UV 3600000 /* uV */ -#define UFS_VREG_VCC_1P8_MIN_UV 1700000 /* uV */ -#define UFS_VREG_VCC_1P8_MAX_UV 1950000 /* uV */ -#define UFS_VREG_VCCQ_MIN_UV 1140000 /* uV */ -#define UFS_VREG_VCCQ_MAX_UV 1260000 /* uV */ -#define UFS_VREG_VCCQ2_MIN_UV 1700000 /* uV */ -#define UFS_VREG_VCCQ2_MAX_UV 1950000 /* uV */ - /* * VCCQ & VCCQ2 current requirement when UFS device is in sleep state * and link is in Hibern8 state. @@ -582,8 +573,6 @@ struct ufs_vreg { const char *name; bool always_on; bool enabled; - int min_uV; - int max_uV; int max_uA; }; diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index eabc6b6156fd..69198e37c976 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -8309,33 +8309,10 @@ static inline int ufshcd_config_vreg_hpm(struct ufs_hba *hba, static int ufshcd_config_vreg(struct device *dev, struct ufs_vreg *vreg, bool on) { - int ret = 0; - struct regulator *reg; - const char *name; - int min_uV, uA_load; - - BUG_ON(!vreg); - - reg = vreg->reg; - name = vreg->name; - - if (regulator_count_voltages(reg) > 0) { - uA_load = on ? vreg->max_uA : 0; - ret = ufshcd_config_vreg_load(dev, vreg, uA_load); - if (ret) - goto out; + if (regulator_count_voltages(vreg->reg) <= 0) + return 0; - if (vreg->min_uV && vreg->max_uV) { - min_uV = on ? vreg->min_uV : 0; - ret = regulator_set_voltage(reg, min_uV, vreg->max_uV); - if (ret) - dev_err(dev, - "%s: %s set voltage failed, err=%d\n", - __func__, name, ret); - } - } -out: - return ret; + return ufshcd_config_vreg_load(dev, vreg, on ? vreg->max_uA : 0); } static int ufshcd_enable_vreg(struct device *dev, struct ufs_vreg *vreg) From patchwork Tue Apr 12 18:18:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 560221 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 39E5AC433F5 for ; Tue, 12 Apr 2022 18:21:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358681AbiDLSXo (ORCPT ); Tue, 12 Apr 2022 14:23:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57274 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1358680AbiDLSXm (ORCPT ); Tue, 12 Apr 2022 14:23:42 -0400 Received: from mail-pf1-f178.google.com (mail-pf1-f178.google.com [209.85.210.178]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5B38C5D64B for ; Tue, 12 Apr 2022 11:21:24 -0700 (PDT) Received: by mail-pf1-f178.google.com with SMTP id w7so18178173pfu.11 for ; Tue, 12 Apr 2022 11:21:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=QD+tceN/gEAQQC3Pa7ZlKSYJgpeqDDr4LSkw0SqEVW8=; b=hB9qNSxuS0Joxa2hReg8Vq0AOaDP5mI2ejX8rCCjFOgODgX/WEKpJt7GPeSnrP+S1p IuvLSEOl9pWZ6+bnPZ91M+4+FKGII+HnPkucY6M0t3Cr1a79BiYbSSJmyNltGXEojEk6 aj8osRANaGENw5lHE2Q3fSTWS65PYH2KTE1TSUaOV2KngA8Xy7BJYR9DUZcl5SFL4Hxg p/5CQYFDup+KyEJEc4HLJfhZQx7jVZUEeV4xLp8owwroNTgdBx46M5DBPj9sUx9rvxdp oJf4DbAhuPb0bJt2oDaJdIP5MT3j+KaLhPLa+phT9UXUAKwI/PfN08F4yw5egPKkOXSU dxXA== X-Gm-Message-State: AOAM533X+GUAfA4JU2jLhRj28/S96HPEeKd/7CZ5fPiR3gg1nebqDxuQ 7DENDiHf//c8UT2T6/hvMjw= X-Google-Smtp-Source: ABdhPJzVQwvjQ5odGZ5Zbi+q8jFvs80L+uFCuv3+r5FrWjf9KSu2BZs4uWuY+MyogLTQBhsVd8YEzg== X-Received: by 2002:a05:6a00:21c2:b0:4fe:81f:46c7 with SMTP id t2-20020a056a0021c200b004fe081f46c7mr38826748pfj.5.1649787683755; Tue, 12 Apr 2022 11:21:23 -0700 (PDT) Received: from bvanassche-linux.mtv.corp.google.com ([2620:15c:211:201:d4b2:56ee:d001:c159]) by smtp.gmail.com with ESMTPSA id d18-20020a056a0010d200b004fa2e13ce80sm40367037pfu.76.2022.04.12.11.21.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 11:21:23 -0700 (PDT) From: Bart Van Assche To: "Martin K . Petersen" Cc: Jaegeuk Kim , Adrian Hunter , linux-scsi@vger.kernel.org, Bart Van Assche , Bjorn Andersson , "James E.J. Bottomley" , Bean Huo , Ye Bin , ChanWoo Lee , Peter Wang , Avri Altman , Daejun Park Subject: [PATCH v2 14/29] scsi: ufs: Make the config_scaling_param calls type safe Date: Tue, 12 Apr 2022 11:18:38 -0700 Message-Id: <20220412181853.3715080-15-bvanassche@acm.org> X-Mailer: git-send-email 2.36.0.rc0.470.gd361397f0d-goog In-Reply-To: <20220412181853.3715080-1-bvanassche@acm.org> References: <20220412181853.3715080-1-bvanassche@acm.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Pass the actual type to config_scaling_param callback as the third argment instead of a void pointer. Remove a superfluous NULL pointer check from ufs_qcom_config_scaling_param(). Reviewed-by: Bjorn Andersson Signed-off-by: Bart Van Assche --- drivers/scsi/ufs/ufs-qcom.c | 14 ++++---------- drivers/scsi/ufs/ufshcd.h | 10 +++++----- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c index 808b677f6083..dded29722880 100644 --- a/drivers/scsi/ufs/ufs-qcom.c +++ b/drivers/scsi/ufs/ufs-qcom.c @@ -1463,23 +1463,17 @@ static int ufs_qcom_device_reset(struct ufs_hba *hba) #if IS_ENABLED(CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND) static void ufs_qcom_config_scaling_param(struct ufs_hba *hba, - struct devfreq_dev_profile *p, - void *data) + struct devfreq_dev_profile *p, + struct devfreq_simple_ondemand_data *d) { - static struct devfreq_simple_ondemand_data *d; - - if (!data) - return; - - d = (struct devfreq_simple_ondemand_data *)data; p->polling_ms = 60; d->upthreshold = 70; d->downdifferential = 5; } #else static void ufs_qcom_config_scaling_param(struct ufs_hba *hba, - struct devfreq_dev_profile *p, - void *data) + struct devfreq_dev_profile *p, + struct devfreq_simple_ondemand_data *data) { } #endif diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h index 107d19e98d52..bb2624aabda2 100644 --- a/drivers/scsi/ufs/ufshcd.h +++ b/drivers/scsi/ufs/ufshcd.h @@ -348,8 +348,8 @@ struct ufs_hba_variant_ops { int (*phy_initialization)(struct ufs_hba *); int (*device_reset)(struct ufs_hba *hba); void (*config_scaling_param)(struct ufs_hba *hba, - struct devfreq_dev_profile *profile, - void *data); + struct devfreq_dev_profile *profile, + struct devfreq_simple_ondemand_data *data); int (*program_key)(struct ufs_hba *hba, const union ufs_crypto_cfg_entry *cfg, int slot); void (*event_notify)(struct ufs_hba *hba, @@ -1360,11 +1360,11 @@ static inline int ufshcd_vops_device_reset(struct ufs_hba *hba) } static inline void ufshcd_vops_config_scaling_param(struct ufs_hba *hba, - struct devfreq_dev_profile - *profile, void *data) + struct devfreq_dev_profile *p, + struct devfreq_simple_ondemand_data *data) { if (hba->vops && hba->vops->config_scaling_param) - hba->vops->config_scaling_param(hba, profile, data); + hba->vops->config_scaling_param(hba, p, data); } extern struct ufs_pm_lvl_states ufs_pm_lvl_states[]; From patchwork Tue Apr 12 18:18:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 560220 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 41636C433F5 for ; Tue, 12 Apr 2022 18:22:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239698AbiDLSYY (ORCPT ); Tue, 12 Apr 2022 14:24:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57674 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1358704AbiDLSYM (ORCPT ); Tue, 12 Apr 2022 14:24:12 -0400 Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E09F960A82 for ; Tue, 12 Apr 2022 11:21:52 -0700 (PDT) Received: by mail-pf1-f171.google.com with SMTP id y8so13053019pfw.0 for ; Tue, 12 Apr 2022 11:21:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=yvy83NFDlypGK3KJlA/toH8UX9vzBdAcOUh51JSZ2OY=; b=LI7JyyFEimkDp+YtLxjHS/OvyHnVuW1bdd3N6FtpvI2qB16ds+D+YAg8sP2Iud2lHU FqpUkCiiaimlVdNE9fqiJV4CQ095DqT03wjhlmYu1BfI7Fyr0NINvHvrKKrRT84ZwjOK /nJiMTQiiYxMwukHbMAeC8yfXznKaC+cVTnYToAeBL5AVQIHrZJI54jD4DiQOXVhgZoe y7PZcgkaCoNiWwtDLhiUqTcLMLNU4LXaNntLcPREvXni3CWqDV3k7zW+8yw0m/uVemW2 hJ5TERa7URqa2JgPPrb7rZszH92CZbrcmWDCjzP1fasB0npNW6XDNvx2CliUpeJUnuUc +jxw== X-Gm-Message-State: AOAM533/IIlOvI3EhE031CUj3VNrRxJGaHX1wyWdAZP50UI1GduKwY40 krn7E3ABKTk4qVwgppYtb54= X-Google-Smtp-Source: ABdhPJx/o0RVC8PA2coVevx0SCBE+S2W9ccEjjM1VKi0i3pCf2dXDcdMhOY0Bz6V/Si1W0psMvAhmg== X-Received: by 2002:a63:2cc3:0:b0:39d:a9af:bc5b with SMTP id s186-20020a632cc3000000b0039da9afbc5bmr1440416pgs.3.1649787712317; Tue, 12 Apr 2022 11:21:52 -0700 (PDT) Received: from bvanassche-linux.mtv.corp.google.com ([2620:15c:211:201:d4b2:56ee:d001:c159]) by smtp.gmail.com with ESMTPSA id d18-20020a056a0010d200b004fa2e13ce80sm40367037pfu.76.2022.04.12.11.21.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 11:21:51 -0700 (PDT) From: Bart Van Assche To: "Martin K . Petersen" Cc: Jaegeuk Kim , Adrian Hunter , linux-scsi@vger.kernel.org, Bart Van Assche , Avri Altman , "James E.J. Bottomley" , Bean Huo , Daejun Park Subject: [PATCH v2 16/29] scsi: ufs: Rename sdev_ufs_device into ufs_device_wlun Date: Tue, 12 Apr 2022 11:18:40 -0700 Message-Id: <20220412181853.3715080-17-bvanassche@acm.org> X-Mailer: git-send-email 2.36.0.rc0.470.gd361397f0d-goog In-Reply-To: <20220412181853.3715080-1-bvanassche@acm.org> References: <20220412181853.3715080-1-bvanassche@acm.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org The new name reflects the role of this member variable better: a WLUN through which the power mode of the UFS device is controlled. Reviewed-by: Avri Altman Signed-off-by: Bart Van Assche --- drivers/scsi/ufs/ufshcd.c | 50 +++++++++++++++++++-------------------- drivers/scsi/ufs/ufshcd.h | 17 ++++++------- 2 files changed, 32 insertions(+), 35 deletions(-) diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 912c3ecb8d7a..e0535e4d8669 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -540,7 +540,7 @@ static void ufshcd_print_tmrs(struct ufs_hba *hba, unsigned long bitmap) static void ufshcd_print_host_state(struct ufs_hba *hba) { - struct scsi_device *sdev_ufs = hba->sdev_ufs_device; + struct scsi_device *sdev_ufs = hba->ufs_device_wlun; dev_err(hba->dev, "UFS Host state=%d\n", hba->ufshcd_state); dev_err(hba->dev, "outstanding reqs=0x%lx tasks=0x%lx\n", @@ -4195,7 +4195,7 @@ void ufshcd_auto_hibern8_update(struct ufs_hba *hba, u32 ahit) spin_unlock_irqrestore(hba->host->host_lock, flags); if (update && - !pm_runtime_suspended(&hba->sdev_ufs_device->sdev_gendev)) { + !pm_runtime_suspended(&hba->ufs_device_wlun->sdev_gendev)) { ufshcd_rpm_get_sync(hba); ufshcd_hold(hba, false); ufshcd_auto_hibern8_enable(hba); @@ -4911,13 +4911,13 @@ static void ufshcd_setup_links(struct ufs_hba *hba, struct scsi_device *sdev) * Device wlun is the supplier & rest of the luns are consumers. * This ensures that device wlun suspends after all other luns. */ - if (hba->sdev_ufs_device) { + if (hba->ufs_device_wlun) { link = device_link_add(&sdev->sdev_gendev, - &hba->sdev_ufs_device->sdev_gendev, + &hba->ufs_device_wlun->sdev_gendev, DL_FLAG_PM_RUNTIME | DL_FLAG_RPM_ACTIVE); if (!link) { dev_err(&sdev->sdev_gendev, "Failed establishing link - %s\n", - dev_name(&hba->sdev_ufs_device->sdev_gendev)); + dev_name(&hba->ufs_device_wlun->sdev_gendev)); return; } hba->luns_avail--; @@ -5053,15 +5053,15 @@ static void ufshcd_slave_destroy(struct scsi_device *sdev) /* Drop the reference as it won't be needed anymore */ if (ufshcd_scsi_to_upiu_lun(sdev->lun) == UFS_UPIU_UFS_DEVICE_WLUN) { spin_lock_irqsave(hba->host->host_lock, flags); - hba->sdev_ufs_device = NULL; + hba->ufs_device_wlun = NULL; spin_unlock_irqrestore(hba->host->host_lock, flags); - } else if (hba->sdev_ufs_device) { + } else if (hba->ufs_device_wlun) { struct device *supplier = NULL; /* Ensure UFS Device WLUN exists and does not disappear */ spin_lock_irqsave(hba->host->host_lock, flags); - if (hba->sdev_ufs_device) { - supplier = &hba->sdev_ufs_device->sdev_gendev; + if (hba->ufs_device_wlun) { + supplier = &hba->ufs_device_wlun->sdev_gendev; get_device(supplier); } spin_unlock_irqrestore(hba->host->host_lock, flags); @@ -6037,7 +6037,7 @@ static void ufshcd_clk_scaling_suspend(struct ufs_hba *hba, bool suspend) static void ufshcd_err_handling_prepare(struct ufs_hba *hba) { ufshcd_rpm_get_sync(hba); - if (pm_runtime_status_suspended(&hba->sdev_ufs_device->sdev_gendev) || + if (pm_runtime_status_suspended(&hba->ufs_device_wlun->sdev_gendev) || hba->is_sys_suspended) { enum ufs_pm_op pm_op; @@ -6082,7 +6082,7 @@ static void ufshcd_err_handling_unprepare(struct ufs_hba *hba) static inline bool ufshcd_err_handling_should_stop(struct ufs_hba *hba) { return (!hba->is_powered || hba->shutting_down || - !hba->sdev_ufs_device || + !hba->ufs_device_wlun || hba->ufshcd_state == UFSHCD_STATE_ERROR || (!(hba->saved_err || hba->saved_uic_err || hba->force_reset || ufshcd_is_link_broken(hba)))); @@ -6101,7 +6101,7 @@ static void ufshcd_recover_pm_error(struct ufs_hba *hba) * Set RPM status of wlun device to RPM_ACTIVE, * this also clears its runtime error. */ - ret = pm_runtime_set_active(&hba->sdev_ufs_device->sdev_gendev); + ret = pm_runtime_set_active(&hba->ufs_device_wlun->sdev_gendev); /* hba device might have a runtime error otherwise */ if (ret) @@ -7495,20 +7495,20 @@ static int ufshcd_scsi_add_wlus(struct ufs_hba *hba) int ret = 0; struct scsi_device *sdev_boot, *sdev_rpmb; - hba->sdev_ufs_device = __scsi_add_device(hba->host, 0, 0, + hba->ufs_device_wlun = __scsi_add_device(hba->host, 0, 0, ufshcd_upiu_wlun_to_scsi_wlun(UFS_UPIU_UFS_DEVICE_WLUN), NULL); - if (IS_ERR(hba->sdev_ufs_device)) { - ret = PTR_ERR(hba->sdev_ufs_device); - hba->sdev_ufs_device = NULL; + if (IS_ERR(hba->ufs_device_wlun)) { + ret = PTR_ERR(hba->ufs_device_wlun); + hba->ufs_device_wlun = NULL; goto out; } - scsi_device_put(hba->sdev_ufs_device); + scsi_device_put(hba->ufs_device_wlun); sdev_rpmb = __scsi_add_device(hba->host, 0, 0, ufshcd_upiu_wlun_to_scsi_wlun(UFS_UPIU_RPMB_WLUN), NULL); if (IS_ERR(sdev_rpmb)) { ret = PTR_ERR(sdev_rpmb); - goto remove_sdev_ufs_device; + goto remove_ufs_device_wlun; } ufshcd_blk_pm_runtime_init(sdev_rpmb); scsi_device_put(sdev_rpmb); @@ -7523,8 +7523,8 @@ static int ufshcd_scsi_add_wlus(struct ufs_hba *hba) } goto out; -remove_sdev_ufs_device: - scsi_remove_device(hba->sdev_ufs_device); +remove_ufs_device_wlun: + scsi_remove_device(hba->ufs_device_wlun); out: return ret; } @@ -8660,7 +8660,7 @@ static int ufshcd_set_dev_pwr_mode(struct ufs_hba *hba, int ret, retries; spin_lock_irqsave(hba->host->host_lock, flags); - sdp = hba->sdev_ufs_device; + sdp = hba->ufs_device_wlun; if (sdp) { ret = scsi_device_get(sdp); if (!ret && !scsi_device_online(sdp)) { @@ -9224,7 +9224,7 @@ static void ufshcd_wl_shutdown(struct device *dev) ufshcd_rpm_get_sync(hba); scsi_device_quiesce(sdev); shost_for_each_device(sdev, hba->host) { - if (sdev == hba->sdev_ufs_device) + if (sdev == hba->ufs_device_wlun) continue; scsi_device_quiesce(sdev); } @@ -9445,7 +9445,7 @@ EXPORT_SYMBOL(ufshcd_shutdown); */ void ufshcd_remove(struct ufs_hba *hba) { - if (hba->sdev_ufs_device) + if (hba->ufs_device_wlun) ufshcd_rpm_get_sync(hba); ufs_hwmon_remove(hba); ufs_bsg_remove(hba); @@ -9773,7 +9773,7 @@ EXPORT_SYMBOL_GPL(ufshcd_resume_complete); static bool ufshcd_rpm_ok_for_spm(struct ufs_hba *hba) { - struct device *dev = &hba->sdev_ufs_device->sdev_gendev; + struct device *dev = &hba->ufs_device_wlun->sdev_gendev; enum ufs_dev_pwr_mode dev_pwr_mode; enum uic_link_state link_state; unsigned long flags; @@ -9802,7 +9802,7 @@ int __ufshcd_suspend_prepare(struct device *dev, bool rpm_ok_for_spm) * if it's runtime suspended. But ufs doesn't follow that. * Refer ufshcd_resume_complete() */ - if (hba->sdev_ufs_device) { + if (hba->ufs_device_wlun) { /* Prevent runtime suspend */ ufshcd_rpm_get_noresume(hba); /* diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h index 49edbdb5ffd6..14414225faa1 100644 --- a/drivers/scsi/ufs/ufshcd.h +++ b/drivers/scsi/ufs/ufshcd.h @@ -732,6 +732,7 @@ struct ufs_hba_monitor { * @utmrdl_dma_addr: UTMRDL DMA address * @host: Scsi_Host instance of the driver * @dev: device handle + * @ufs_device_wlun: WLUN that controls the entire UFS device. * @lrb: local reference block * @outstanding_tasks: Bits representing outstanding task requests * @outstanding_lock: Protects @outstanding_reqs. @@ -799,11 +800,7 @@ struct ufs_hba { struct Scsi_Host *host; struct device *dev; - /* - * This field is to keep a reference to "scsi_device" corresponding to - * "UFS device" W-LU. - */ - struct scsi_device *sdev_ufs_device; + struct scsi_device *ufs_device_wlun; #ifdef CONFIG_SCSI_UFS_HWMON struct device *hwmon_device; @@ -1407,27 +1404,27 @@ static inline int ufshcd_update_ee_usr_mask(struct ufs_hba *hba, static inline int ufshcd_rpm_get_sync(struct ufs_hba *hba) { - return pm_runtime_get_sync(&hba->sdev_ufs_device->sdev_gendev); + return pm_runtime_get_sync(&hba->ufs_device_wlun->sdev_gendev); } static inline int ufshcd_rpm_put_sync(struct ufs_hba *hba) { - return pm_runtime_put_sync(&hba->sdev_ufs_device->sdev_gendev); + return pm_runtime_put_sync(&hba->ufs_device_wlun->sdev_gendev); } static inline void ufshcd_rpm_get_noresume(struct ufs_hba *hba) { - pm_runtime_get_noresume(&hba->sdev_ufs_device->sdev_gendev); + pm_runtime_get_noresume(&hba->ufs_device_wlun->sdev_gendev); } static inline int ufshcd_rpm_resume(struct ufs_hba *hba) { - return pm_runtime_resume(&hba->sdev_ufs_device->sdev_gendev); + return pm_runtime_resume(&hba->ufs_device_wlun->sdev_gendev); } static inline int ufshcd_rpm_put(struct ufs_hba *hba) { - return pm_runtime_put(&hba->sdev_ufs_device->sdev_gendev); + return pm_runtime_put(&hba->ufs_device_wlun->sdev_gendev); } #endif /* End of Header */ From patchwork Tue Apr 12 18:18:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 560219 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id EF60EC433F5 for ; Tue, 12 Apr 2022 18:22:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1355149AbiDLSYq (ORCPT ); Tue, 12 Apr 2022 14:24:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58010 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349095AbiDLSYp (ORCPT ); Tue, 12 Apr 2022 14:24:45 -0400 Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DF4D36007E for ; Tue, 12 Apr 2022 11:22:26 -0700 (PDT) Received: by mail-pf1-f181.google.com with SMTP id y8so13054036pfw.0 for ; Tue, 12 Apr 2022 11:22:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Pib4g0ZvHao9HY5NLpAx83kZ15O4dzv233fuVeb3cqc=; b=sz6gI4fruijBEdqyG+2dEuIsk5VAD6nrqArkcEx82F3/OQDvlX+cegr4+SgSvlVCeI QcyRkw3Ub+ZtLgRizfqg80AQk4HriDkd8z9foQ2EnLRqCmI46keHBPimKcChjC3YL9+2 0HwrN+dOD2imOtxg1+vj+Jsz2hnwz/iV3iE5DOVeqmPp7NclS7aBwN8+3TF7ubmkdLLK ilgA+xmW1q1JVlSBKmLym0MG/tzwWGBdXv4uTMzImTsvUPnulrfu/SviBuatxCV8/CXs K08S49942q8BHAZAxsnws+/ghAIRZbDcXZgs/XyrGmZDlZsWULosVoQ89i/04A/LeCwV hASw== X-Gm-Message-State: AOAM533rG3av+YMv7Q+OtDamYSYKlfY3oWTvEILlPST+mIrN3sHXqM73 6TAB/yS9WF7OO4AqmxpFN5cX1r30Jnf6iA== X-Google-Smtp-Source: ABdhPJyVnQIvc0rXf7kJcMyBLFKTWXDs9bHxJfRYqkMnkdPXgK2/CzmipKI5bU+Fa+nVd8CPz2h+Ug== X-Received: by 2002:a63:3441:0:b0:39d:a27b:e594 with SMTP id b62-20020a633441000000b0039da27be594mr2230066pga.98.1649787746254; Tue, 12 Apr 2022 11:22:26 -0700 (PDT) Received: from bvanassche-linux.mtv.corp.google.com ([2620:15c:211:201:d4b2:56ee:d001:c159]) by smtp.gmail.com with ESMTPSA id d18-20020a056a0010d200b004fa2e13ce80sm40367037pfu.76.2022.04.12.11.22.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 11:22:24 -0700 (PDT) From: Bart Van Assche To: "Martin K . Petersen" Cc: Jaegeuk Kim , Adrian Hunter , linux-scsi@vger.kernel.org, Bart Van Assche , "James E.J. Bottomley" , Krzysztof Kozlowski , Chanho Park , Alim Akhtar , Bean Huo , Inki Dae , Avri Altman , Daejun Park Subject: [PATCH v2 19/29] scsi: ufs: Remove the TRUE and FALSE definitions Date: Tue, 12 Apr 2022 11:18:43 -0700 Message-Id: <20220412181853.3715080-20-bvanassche@acm.org> X-Mailer: git-send-email 2.36.0.rc0.470.gd361397f0d-goog In-Reply-To: <20220412181853.3715080-1-bvanassche@acm.org> References: <20220412181853.3715080-1-bvanassche@acm.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org In the Linux kernel coding style document (Documentation/process/coding-style.rst) it is recommended to use the type 'bool' and also the values 'true' and 'false'. Hence this patch that removes the definitions and uses of TRUE and FALSE from the UFS driver. Signed-off-by: Bart Van Assche Reviewed-by: Avri Altman --- drivers/scsi/ufs/ufs-exynos.c | 4 ++-- drivers/scsi/ufs/ufs-exynos.h | 8 ++++---- drivers/scsi/ufs/ufshcd.c | 8 ++++---- drivers/scsi/ufs/unipro.h | 14 -------------- 4 files changed, 10 insertions(+), 24 deletions(-) diff --git a/drivers/scsi/ufs/ufs-exynos.c b/drivers/scsi/ufs/ufs-exynos.c index 474a4a064a68..0b99c74955ef 100644 --- a/drivers/scsi/ufs/ufs-exynos.c +++ b/drivers/scsi/ufs/ufs-exynos.c @@ -704,7 +704,7 @@ static void exynos_ufs_establish_connt(struct exynos_ufs *ufs) /* local unipro attributes */ ufshcd_dme_set(hba, UIC_ARG_MIB(N_DEVICEID), DEV_ID); - ufshcd_dme_set(hba, UIC_ARG_MIB(N_DEVICEID_VALID), TRUE); + ufshcd_dme_set(hba, UIC_ARG_MIB(N_DEVICEID_VALID), true); ufshcd_dme_set(hba, UIC_ARG_MIB(T_PEERDEVICEID), PEER_DEV_ID); ufshcd_dme_set(hba, UIC_ARG_MIB(T_PEERCPORTID), PEER_CPORT_ID); ufshcd_dme_set(hba, UIC_ARG_MIB(T_CPORTFLAGS), CPORT_DEF_FLAGS); @@ -1028,7 +1028,7 @@ static int exynos_ufs_post_link(struct ufs_hba *hba) if (ufs->opts & EXYNOS_UFS_OPT_SKIP_CONNECTION_ESTAB) ufshcd_dme_set(hba, - UIC_ARG_MIB(T_DBG_SKIP_INIT_HIBERN8_EXIT), TRUE); + UIC_ARG_MIB(T_DBG_SKIP_INIT_HIBERN8_EXIT), true); if (attr->pa_granularity) { exynos_ufs_enable_dbg_mode(hba); diff --git a/drivers/scsi/ufs/ufs-exynos.h b/drivers/scsi/ufs/ufs-exynos.h index 1c33e5466082..0b0a3d530ca6 100644 --- a/drivers/scsi/ufs/ufs-exynos.h +++ b/drivers/scsi/ufs/ufs-exynos.h @@ -248,22 +248,22 @@ long exynos_ufs_calc_time_cntr(struct exynos_ufs *, long); static inline void exynos_ufs_enable_ov_tm(struct ufs_hba *hba) { - ufshcd_dme_set(hba, UIC_ARG_MIB(PA_DBG_OV_TM), TRUE); + ufshcd_dme_set(hba, UIC_ARG_MIB(PA_DBG_OV_TM), true); } static inline void exynos_ufs_disable_ov_tm(struct ufs_hba *hba) { - ufshcd_dme_set(hba, UIC_ARG_MIB(PA_DBG_OV_TM), FALSE); + ufshcd_dme_set(hba, UIC_ARG_MIB(PA_DBG_OV_TM), false); } static inline void exynos_ufs_enable_dbg_mode(struct ufs_hba *hba) { - ufshcd_dme_set(hba, UIC_ARG_MIB(PA_DBG_MODE), TRUE); + ufshcd_dme_set(hba, UIC_ARG_MIB(PA_DBG_MODE), true); } static inline void exynos_ufs_disable_dbg_mode(struct ufs_hba *hba) { - ufshcd_dme_set(hba, UIC_ARG_MIB(PA_DBG_MODE), FALSE); + ufshcd_dme_set(hba, UIC_ARG_MIB(PA_DBG_MODE), false); } #endif /* _UFS_EXYNOS_H_ */ diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index e0535e4d8669..37527865e26b 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -4325,18 +4325,18 @@ static int ufshcd_change_power_mode(struct ufs_hba *hba, pwr_mode->lane_rx); if (pwr_mode->pwr_rx == FASTAUTO_MODE || pwr_mode->pwr_rx == FAST_MODE) - ufshcd_dme_set(hba, UIC_ARG_MIB(PA_RXTERMINATION), TRUE); + ufshcd_dme_set(hba, UIC_ARG_MIB(PA_RXTERMINATION), true); else - ufshcd_dme_set(hba, UIC_ARG_MIB(PA_RXTERMINATION), FALSE); + ufshcd_dme_set(hba, UIC_ARG_MIB(PA_RXTERMINATION), false); ufshcd_dme_set(hba, UIC_ARG_MIB(PA_TXGEAR), pwr_mode->gear_tx); ufshcd_dme_set(hba, UIC_ARG_MIB(PA_ACTIVETXDATALANES), pwr_mode->lane_tx); if (pwr_mode->pwr_tx == FASTAUTO_MODE || pwr_mode->pwr_tx == FAST_MODE) - ufshcd_dme_set(hba, UIC_ARG_MIB(PA_TXTERMINATION), TRUE); + ufshcd_dme_set(hba, UIC_ARG_MIB(PA_TXTERMINATION), true); else - ufshcd_dme_set(hba, UIC_ARG_MIB(PA_TXTERMINATION), FALSE); + ufshcd_dme_set(hba, UIC_ARG_MIB(PA_TXTERMINATION), false); if (pwr_mode->pwr_rx == FASTAUTO_MODE || pwr_mode->pwr_tx == FASTAUTO_MODE || diff --git a/drivers/scsi/ufs/unipro.h b/drivers/scsi/ufs/unipro.h index 64647aa5c2e0..0521f887e3ac 100644 --- a/drivers/scsi/ufs/unipro.h +++ b/drivers/scsi/ufs/unipro.h @@ -298,20 +298,6 @@ enum ufs_unipro_ver { #define T_TC0TXMAXSDUSIZE 0x4060 #define T_TC1TXMAXSDUSIZE 0x4061 -#ifdef FALSE -#undef FALSE -#endif - -#ifdef TRUE -#undef TRUE -#endif - -/* Boolean attribute values */ -enum { - FALSE = 0, - TRUE, -}; - /* CPort setting */ #define E2EFC_ON (1 << 0) #define E2EFC_OFF (0 << 0) From patchwork Tue Apr 12 18:18:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 560218 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AF99EC433EF for ; Tue, 12 Apr 2022 18:22:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358680AbiDLSZK (ORCPT ); Tue, 12 Apr 2022 14:25:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58194 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231859AbiDLSZH (ORCPT ); Tue, 12 Apr 2022 14:25:07 -0400 Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 18F8F6007E for ; Tue, 12 Apr 2022 11:22:49 -0700 (PDT) Received: by mail-pj1-f42.google.com with SMTP id nt14-20020a17090b248e00b001ca601046a4so3851561pjb.0 for ; Tue, 12 Apr 2022 11:22:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tGEXHmMu3kvnw3VvaDiJOZqYOiflKEv4GwCAstRS5Bo=; b=2fYA1In3O2J3VpRxgPtV3Ol1Q2X7NZXc/FVgdzfrWee1A2AaPufSnasM15/Qha7bZT kYsa2jNbhBOvLD1e6rbhdUOD4dy0yZRPny/gxE57ED9e8Zf54aPf8Za6rJNXKbdIQxEe 8K2cPxEo7glR2EEKtCwdpTYeXO1J3c1Q3xuqTnMzo5qfzFgVHbizZA/EIOjzcRDW1hRk 5OHHuMZzi/61rcz4L/MXX9LMz/FmJamTAp2glSIGx1RjJRokvo3iog1ncoxWZDjqGhsp nyDW2KMGv+B6rIsRZH904f9DwDbe4AO97nBFqyXW1/iAv2SrP/gXCNRoh0WKDgYVuj5M fHEA== X-Gm-Message-State: AOAM531neIxvQDTpNxgGcoREFNJWfEJYZ2gGre0mMWmT9RWfItEhJHTC Z2jCs7ApAnA9alufR/QgH7r/FGfUN+MecA== X-Google-Smtp-Source: ABdhPJzcoSJtJGzsq1Jp14cmTmQ5WZftjwgUTZ3wWhlwtPsnujI9rh/viRxa8N2nYuHtC342stxLBw== X-Received: by 2002:a17:902:cec1:b0:158:85e5:4c6b with SMTP id d1-20020a170902cec100b0015885e54c6bmr5098714plg.12.1649787768527; Tue, 12 Apr 2022 11:22:48 -0700 (PDT) Received: from bvanassche-linux.mtv.corp.google.com ([2620:15c:211:201:d4b2:56ee:d001:c159]) by smtp.gmail.com with ESMTPSA id d18-20020a056a0010d200b004fa2e13ce80sm40367037pfu.76.2022.04.12.11.22.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 11:22:47 -0700 (PDT) From: Bart Van Assche To: "Martin K . Petersen" Cc: Jaegeuk Kim , Adrian Hunter , linux-scsi@vger.kernel.org, Bart Van Assche , Avri Altman , "James E.J. Bottomley" , Matthias Brugger , Stanley Chu , Peter Wang , Bean Huo , Daejun Park Subject: [PATCH v2 21/29] scsi: ufs: Introduce ufshcd_clkgate_delay_set() Date: Tue, 12 Apr 2022 11:18:45 -0700 Message-Id: <20220412181853.3715080-22-bvanassche@acm.org> X-Mailer: git-send-email 2.36.0.rc0.470.gd361397f0d-goog In-Reply-To: <20220412181853.3715080-1-bvanassche@acm.org> References: <20220412181853.3715080-1-bvanassche@acm.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Since the code to modify delay_ms while holding the host lock occurs twice, introduce a function that performs this action. Reviewed-by: Avri Altman Signed-off-by: Bart Van Assche --- drivers/scsi/ufs/ufs-mediatek.c | 5 +---- drivers/scsi/ufs/ufshcd.c | 18 +++++++++++++----- drivers/scsi/ufs/ufshcd.h | 2 ++ 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/drivers/scsi/ufs/ufs-mediatek.c b/drivers/scsi/ufs/ufs-mediatek.c index 2b26acc74efb..d19b35495302 100644 --- a/drivers/scsi/ufs/ufs-mediatek.c +++ b/drivers/scsi/ufs/ufs-mediatek.c @@ -857,7 +857,6 @@ static int ufs_mtk_pre_link(struct ufs_hba *hba) static void ufs_mtk_setup_clk_gating(struct ufs_hba *hba) { - unsigned long flags; u32 ah_ms; if (ufshcd_is_clkgating_allowed(hba)) { @@ -866,9 +865,7 @@ static void ufs_mtk_setup_clk_gating(struct ufs_hba *hba) hba->ahit); else ah_ms = 10; - spin_lock_irqsave(hba->host->host_lock, flags); - hba->clk_gating.delay_ms = ah_ms + 5; - spin_unlock_irqrestore(hba->host->host_lock, flags); + ufshcd_clkgate_delay_set(hba->dev, ah_ms + 5); } } diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index d1c3f6291538..cb74a9eeee70 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -1864,18 +1864,26 @@ static ssize_t ufshcd_clkgate_delay_show(struct device *dev, return sysfs_emit(buf, "%lu\n", hba->clk_gating.delay_ms); } +void ufshcd_clkgate_delay_set(struct device *dev, unsigned long value) +{ + struct ufs_hba *hba = dev_get_drvdata(dev); + unsigned long flags; + + spin_lock_irqsave(hba->host->host_lock, flags); + hba->clk_gating.delay_ms = value; + spin_unlock_irqrestore(hba->host->host_lock, flags); +} +EXPORT_SYMBOL_GPL(ufshcd_clkgate_delay_set); + static ssize_t ufshcd_clkgate_delay_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { - struct ufs_hba *hba = dev_get_drvdata(dev); - unsigned long flags, value; + unsigned long value; if (kstrtoul(buf, 0, &value)) return -EINVAL; - spin_lock_irqsave(hba->host->host_lock, flags); - hba->clk_gating.delay_ms = value; - spin_unlock_irqrestore(hba->host->host_lock, flags); + ufshcd_clkgate_delay_set(dev, value); return count; } diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h index 14414225faa1..3eb5d2c17e39 100644 --- a/drivers/scsi/ufs/ufshcd.h +++ b/drivers/scsi/ufs/ufshcd.h @@ -1186,6 +1186,8 @@ int ufshcd_read_string_desc(struct ufs_hba *hba, u8 desc_index, int ufshcd_hold(struct ufs_hba *hba, bool async); void ufshcd_release(struct ufs_hba *hba); +void ufshcd_clkgate_delay_set(struct device *dev, unsigned long value); + void ufshcd_map_desc_id_to_length(struct ufs_hba *hba, enum desc_idn desc_id, int *desc_length); From patchwork Tue Apr 12 18:18:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 560217 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C75DCC433F5 for ; Tue, 12 Apr 2022 18:23:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358681AbiDLSZY (ORCPT ); Tue, 12 Apr 2022 14:25:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58322 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349095AbiDLSZY (ORCPT ); Tue, 12 Apr 2022 14:25:24 -0400 Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1A3855D64B for ; Tue, 12 Apr 2022 11:23:06 -0700 (PDT) Received: by mail-pf1-f174.google.com with SMTP id a21so3291224pfv.10 for ; Tue, 12 Apr 2022 11:23:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5FfWqSXzRy/oQYvE7ypEao+2Y/8rPzLEyN3EEy6t1/o=; b=Wvsq7EjtXU0NzN74zSjLNSXFlG+gyoy3UUy8TD7/BA6/r5G4vrnogZOgSPeRItJ0Zl 5WXaHAyhlOyAVR8GH3zCBQ5WGpqTQQ3dDIlr5ILO0dz8r+7gE7KLXyPLSXxToatNsJWC 72bJe2zpE5xU/5X5s4nijwmSClfUAIaPD6boianRmCU/p2s9/6B94oGnrs88kWCPT4z6 5hPOWa4dEyTZmVkYpgi1i4wOnckK8QAMIQLAMVlvW0qr4XNXXcZ0hsb77E1Bk/T3ct4L 1zEbMePM3oGBnUhfzcMAkpS5StwJDjYs710hRGrNc1w7FUCEGl/vpikKUkGVzHaeAepi asUg== X-Gm-Message-State: AOAM531+fblESKGtrT2dplb9G0MC/0VttAGLjZaLtnk7FtAe6xJsCuPy w9cipwJ2osLa8T+GohZGgAI= X-Google-Smtp-Source: ABdhPJxlQd5xHq1VVEKa0PMCBFRJNRqv2h348tbfVZdZWKSFtY0/h57KET9AfgeGnygEKFxnfzUiqg== X-Received: by 2002:a63:4761:0:b0:39c:f432:3d3d with SMTP id w33-20020a634761000000b0039cf4323d3dmr19814631pgk.544.1649787785490; Tue, 12 Apr 2022 11:23:05 -0700 (PDT) Received: from bvanassche-linux.mtv.corp.google.com ([2620:15c:211:201:d4b2:56ee:d001:c159]) by smtp.gmail.com with ESMTPSA id d18-20020a056a0010d200b004fa2e13ce80sm40367037pfu.76.2022.04.12.11.23.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 11:23:04 -0700 (PDT) From: Bart Van Assche To: "Martin K . Petersen" Cc: Jaegeuk Kim , Adrian Hunter , linux-scsi@vger.kernel.org, Bart Van Assche , "James E.J. Bottomley" , Matthias Brugger , Stanley Chu , Avri Altman , Peter Wang , Bjorn Andersson Subject: [PATCH v2 23/29] scsi: ufs: Remove unnecessary ufshcd-crypto.h include directives Date: Tue, 12 Apr 2022 11:18:47 -0700 Message-Id: <20220412181853.3715080-24-bvanassche@acm.org> X-Mailer: git-send-email 2.36.0.rc0.470.gd361397f0d-goog In-Reply-To: <20220412181853.3715080-1-bvanassche@acm.org> References: <20220412181853.3715080-1-bvanassche@acm.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org ufshcd-crypto.h declares functions that must only be called by the UFS core. Hence remove the #include "ufshcd-crypto.h" directive from UFS drivers. Signed-off-by: Bart Van Assche --- drivers/scsi/ufs/ufs-mediatek.c | 1 - drivers/scsi/ufs/ufs-qcom-ice.c | 1 - drivers/scsi/ufs/ufs-qcom.h | 1 + 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/scsi/ufs/ufs-mediatek.c b/drivers/scsi/ufs/ufs-mediatek.c index d19b35495302..84ccb5258736 100644 --- a/drivers/scsi/ufs/ufs-mediatek.c +++ b/drivers/scsi/ufs/ufs-mediatek.c @@ -19,7 +19,6 @@ #include #include "ufshcd.h" -#include "ufshcd-crypto.h" #include "ufshcd-pltfrm.h" #include "ufs_quirks.h" #include "unipro.h" diff --git a/drivers/scsi/ufs/ufs-qcom-ice.c b/drivers/scsi/ufs/ufs-qcom-ice.c index bbb0ad7590ec..921d6a93b653 100644 --- a/drivers/scsi/ufs/ufs-qcom-ice.c +++ b/drivers/scsi/ufs/ufs-qcom-ice.c @@ -9,7 +9,6 @@ #include #include -#include "ufshcd-crypto.h" #include "ufs-qcom.h" #define AES_256_XTS_KEY_SIZE 64 diff --git a/drivers/scsi/ufs/ufs-qcom.h b/drivers/scsi/ufs/ufs-qcom.h index 51570224a6e2..771bc95d02c7 100644 --- a/drivers/scsi/ufs/ufs-qcom.h +++ b/drivers/scsi/ufs/ufs-qcom.h @@ -7,6 +7,7 @@ #include #include +#include "ufshcd.h" #define MAX_UFS_QCOM_HOSTS 1 #define MAX_U32 (~(u32)0) From patchwork Tue Apr 12 18:18:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 560216 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 276F7C433F5 for ; Tue, 12 Apr 2022 18:24:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1352247AbiDLS0z (ORCPT ); Tue, 12 Apr 2022 14:26:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60642 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245485AbiDLS0y (ORCPT ); Tue, 12 Apr 2022 14:26:54 -0400 Received: from mail-pg1-f172.google.com (mail-pg1-f172.google.com [209.85.215.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 547D51D0E7 for ; Tue, 12 Apr 2022 11:24:35 -0700 (PDT) Received: by mail-pg1-f172.google.com with SMTP id t4so18023396pgc.1 for ; Tue, 12 Apr 2022 11:24:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=0O12rwtgqsHEmh9lUh1HTTmix4Cj2OTFSsOdoZF0Vc0=; b=mnmL7d0+sJ38/WKOPa0u/3jUn/hvJbKF1qtWLgACZTEeGwl9Ol8zhiFany0hHMfbQ4 B0sK0f7nEgyioTzGLzo6KwauxOR9ajbarG9nGC1N9DY1OaWM3esY6a6LQ0yN5QhVI3dF Xx3EpTxg9BOKeNmZabXCaT0wQvQHSHyLJL4v70TQpvuURFqGmNuP6cuy3k8WRkz8cOJI sUsJ8qbQEVhNayf9NoLRz8X2nLqyC+HY4QPtzDbOliG7nH/u+0JsewnhWoWJiTIi0Caw hnPaoHzgop6inyPYxpGJzZnclFgyISZYoOdNjwmNBZRlMBvJ08mrawiPYJUwRaBUraQd lqJg== X-Gm-Message-State: AOAM533TYqG5bRweGWXmqtg8uWx+AgW2PykfZTZr0ndnpMoq3VSxMAWG yaFNai5cHTQCA6TfV6KcL9wANvR8IIQBVFyR X-Google-Smtp-Source: ABdhPJxfSLWiu8Q+PXwtwdvai2jFmwaauYpPS63c4/mQ5AijW+/3YK60CRjpVpM1LX3lzdBjl9n7PQ== X-Received: by 2002:a63:ad45:0:b0:382:2459:5bc6 with SMTP id y5-20020a63ad45000000b0038224595bc6mr32498462pgo.474.1649787874688; Tue, 12 Apr 2022 11:24:34 -0700 (PDT) Received: from bvanassche-linux.mtv.corp.google.com ([2620:15c:211:201:d4b2:56ee:d001:c159]) by smtp.gmail.com with ESMTPSA id d18-20020a056a0010d200b004fa2e13ce80sm40367037pfu.76.2022.04.12.11.24.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 11:24:33 -0700 (PDT) From: Bart Van Assche To: "Martin K . Petersen" Cc: Jaegeuk Kim , Adrian Hunter , linux-scsi@vger.kernel.org, Bart Van Assche , "James E.J. Bottomley" , Krzysztof Kozlowski , Matthias Brugger , Bean Huo , Avri Altman , Daejun Park , Chanho Park , Alim Akhtar , Peter Wang , Phillip Potter , Greg Kroah-Hartman , Stanley Chu , Bjorn Andersson , ChanWoo Lee , Ye Bin , Keoseong Park , Jens Axboe , Ulf Hansson , Mike Snitzer , Eric Biggers , Xiaoke Wang , Srinivas Kandagatla , Sergey Shtylyov , Kiwoong Kim Subject: [PATCH v2 25/29] scsi: ufs: Minimize #include directives Date: Tue, 12 Apr 2022 11:18:49 -0700 Message-Id: <20220412181853.3715080-26-bvanassche@acm.org> X-Mailer: git-send-email 2.36.0.rc0.470.gd361397f0d-goog In-Reply-To: <20220412181853.3715080-1-bvanassche@acm.org> References: <20220412181853.3715080-1-bvanassche@acm.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Only include those headers of which the declarations are used directly. Signed-off-by: Bart Van Assche --- drivers/scsi/ufs/cdns-pltfrm.c | 1 + drivers/scsi/ufs/tc-dwc-g210-pci.c | 1 + drivers/scsi/ufs/tc-dwc-g210-pltfrm.c | 1 + drivers/scsi/ufs/tc-dwc-g210.c | 2 ++ drivers/scsi/ufs/tc-dwc-g210.h | 2 ++ drivers/scsi/ufs/ufs-exynos.c | 1 + drivers/scsi/ufs/ufs-hisi.c | 2 ++ drivers/scsi/ufs/ufs-mediatek.c | 3 +++ drivers/scsi/ufs/ufs-qcom-ice.c | 1 + drivers/scsi/ufs/ufs-qcom.c | 4 ++++ drivers/scsi/ufs/ufs-sysfs.c | 1 + drivers/scsi/ufs/ufs-sysfs.h | 3 ++- drivers/scsi/ufs/ufs_bsg.c | 5 ++++ drivers/scsi/ufs/ufs_bsg.h | 7 +----- drivers/scsi/ufs/ufshcd-crypto.h | 5 ++-- drivers/scsi/ufs/ufshcd-dwc.c | 2 ++ drivers/scsi/ufs/ufshcd-dwc.h | 2 ++ drivers/scsi/ufs/ufshcd-pci.c | 2 ++ drivers/scsi/ufs/ufshcd-pltfrm.c | 1 + drivers/scsi/ufs/ufshcd.c | 9 ++++++++ drivers/scsi/ufs/ufshcd.h | 33 ++++----------------------- drivers/scsi/ufs/ufshci.h | 2 ++ drivers/scsi/ufs/ufshpb.c | 4 ++++ 23 files changed, 56 insertions(+), 38 deletions(-) diff --git a/drivers/scsi/ufs/cdns-pltfrm.c b/drivers/scsi/ufs/cdns-pltfrm.c index e91cf9fd5a95..e05c0ae64eea 100644 --- a/drivers/scsi/ufs/cdns-pltfrm.c +++ b/drivers/scsi/ufs/cdns-pltfrm.c @@ -9,6 +9,7 @@ * */ +#include #include #include #include diff --git a/drivers/scsi/ufs/tc-dwc-g210-pci.c b/drivers/scsi/ufs/tc-dwc-g210-pci.c index 7b08e2e07cc5..e635c211c783 100644 --- a/drivers/scsi/ufs/tc-dwc-g210-pci.c +++ b/drivers/scsi/ufs/tc-dwc-g210-pci.c @@ -11,6 +11,7 @@ #include "ufshcd-dwc.h" #include "tc-dwc-g210.h" +#include #include #include diff --git a/drivers/scsi/ufs/tc-dwc-g210-pltfrm.c b/drivers/scsi/ufs/tc-dwc-g210-pltfrm.c index 783ec43efa78..f15a84d0c176 100644 --- a/drivers/scsi/ufs/tc-dwc-g210-pltfrm.c +++ b/drivers/scsi/ufs/tc-dwc-g210-pltfrm.c @@ -12,6 +12,7 @@ #include #include #include +#include #include "ufshcd-pltfrm.h" #include "ufshcd-dwc.h" diff --git a/drivers/scsi/ufs/tc-dwc-g210.c b/drivers/scsi/ufs/tc-dwc-g210.c index f954a68f6b4c..7ef67c9fc5b8 100644 --- a/drivers/scsi/ufs/tc-dwc-g210.c +++ b/drivers/scsi/ufs/tc-dwc-g210.c @@ -7,6 +7,8 @@ * Authors: Joao Pinto */ +#include + #include "ufshcd.h" #include "unipro.h" diff --git a/drivers/scsi/ufs/tc-dwc-g210.h b/drivers/scsi/ufs/tc-dwc-g210.h index 5a506da03f4a..f7154012f5c7 100644 --- a/drivers/scsi/ufs/tc-dwc-g210.h +++ b/drivers/scsi/ufs/tc-dwc-g210.h @@ -10,6 +10,8 @@ #ifndef _TC_DWC_G210_H #define _TC_DWC_G210_H +struct ufs_hba; + int tc_dwc_g210_config_40_bit(struct ufs_hba *hba); int tc_dwc_g210_config_20_bit(struct ufs_hba *hba); diff --git a/drivers/scsi/ufs/ufs-exynos.c b/drivers/scsi/ufs/ufs-exynos.c index 0b99c74955ef..ddb2d42605c5 100644 --- a/drivers/scsi/ufs/ufs-exynos.c +++ b/drivers/scsi/ufs/ufs-exynos.c @@ -9,6 +9,7 @@ */ #include +#include #include #include #include diff --git a/drivers/scsi/ufs/ufs-hisi.c b/drivers/scsi/ufs/ufs-hisi.c index ab1a7ebd89b1..7046143063ee 100644 --- a/drivers/scsi/ufs/ufs-hisi.c +++ b/drivers/scsi/ufs/ufs-hisi.c @@ -7,6 +7,8 @@ */ #include +#include +#include #include #include #include diff --git a/drivers/scsi/ufs/ufs-mediatek.c b/drivers/scsi/ufs/ufs-mediatek.c index 84ccb5258736..083d6bd4d561 100644 --- a/drivers/scsi/ufs/ufs-mediatek.c +++ b/drivers/scsi/ufs/ufs-mediatek.c @@ -8,6 +8,9 @@ #include #include +#include +#include +#include #include #include #include diff --git a/drivers/scsi/ufs/ufs-qcom-ice.c b/drivers/scsi/ufs/ufs-qcom-ice.c index 921d6a93b653..745e48ec598f 100644 --- a/drivers/scsi/ufs/ufs-qcom-ice.c +++ b/drivers/scsi/ufs/ufs-qcom-ice.c @@ -6,6 +6,7 @@ * Copyright 2019 Google LLC */ +#include #include #include diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c index 98ed9e9f7e2e..a63844961222 100644 --- a/drivers/scsi/ufs/ufs-qcom.c +++ b/drivers/scsi/ufs/ufs-qcom.c @@ -5,6 +5,9 @@ #include #include +#include +#include +#include #include #include #include @@ -18,6 +21,7 @@ #include "ufs-qcom.h" #include "ufshci.h" #include "ufs_quirks.h" + #define UFS_QCOM_DEFAULT_DBG_PRINT_EN \ (UFS_QCOM_DBG_PRINT_REGS_EN | UFS_QCOM_DBG_PRINT_TEST_BUS_EN) diff --git a/drivers/scsi/ufs/ufs-sysfs.c b/drivers/scsi/ufs/ufs-sysfs.c index 5c405ff7b6ea..95a4e64ce401 100644 --- a/drivers/scsi/ufs/ufs-sysfs.c +++ b/drivers/scsi/ufs/ufs-sysfs.c @@ -8,6 +8,7 @@ #include "ufs.h" #include "ufs-sysfs.h" +#include "ufshcd.h" static const char *ufshcd_uic_link_state_to_string( enum uic_link_state state) diff --git a/drivers/scsi/ufs/ufs-sysfs.h b/drivers/scsi/ufs/ufs-sysfs.h index 0f4e750a6748..8d94af3b8077 100644 --- a/drivers/scsi/ufs/ufs-sysfs.h +++ b/drivers/scsi/ufs/ufs-sysfs.h @@ -7,11 +7,12 @@ #include -#include "ufshcd.h" +struct device; void ufs_sysfs_add_nodes(struct device *dev); void ufs_sysfs_remove_nodes(struct device *dev); extern const struct attribute_group ufs_sysfs_unit_descriptor_group; extern const struct attribute_group ufs_sysfs_lun_attributes_group; + #endif diff --git a/drivers/scsi/ufs/ufs_bsg.c b/drivers/scsi/ufs/ufs_bsg.c index 39bf204c6ec3..fbcdfb713542 100644 --- a/drivers/scsi/ufs/ufs_bsg.c +++ b/drivers/scsi/ufs/ufs_bsg.c @@ -4,7 +4,12 @@ * * Copyright (C) 2018 Western Digital Corporation */ + +#include +#include +#include #include "ufs_bsg.h" +#include "ufshcd.h" static int ufs_bsg_get_query_desc_size(struct ufs_hba *hba, int *desc_len, struct utp_upiu_query *qr) diff --git a/drivers/scsi/ufs/ufs_bsg.h b/drivers/scsi/ufs/ufs_bsg.h index d09918758631..57712d2656d2 100644 --- a/drivers/scsi/ufs/ufs_bsg.h +++ b/drivers/scsi/ufs/ufs_bsg.h @@ -5,12 +5,7 @@ #ifndef UFS_BSG_H #define UFS_BSG_H -#include -#include -#include - -#include "ufshcd.h" -#include "ufs.h" +struct ufs_hba; #ifdef CONFIG_SCSI_UFS_BSG void ufs_bsg_remove(struct ufs_hba *hba); diff --git a/drivers/scsi/ufs/ufshcd-crypto.h b/drivers/scsi/ufs/ufshcd-crypto.h index e18c01276873..57dd51256b57 100644 --- a/drivers/scsi/ufs/ufshcd-crypto.h +++ b/drivers/scsi/ufs/ufshcd-crypto.h @@ -6,9 +6,10 @@ #ifndef _UFSHCD_CRYPTO_H #define _UFSHCD_CRYPTO_H -#ifdef CONFIG_SCSI_UFS_CRYPTO +#include #include "ufshcd.h" -#include "ufshci.h" + +#ifdef CONFIG_SCSI_UFS_CRYPTO static inline void ufshcd_prepare_lrbp_crypto(struct request *rq, struct ufshcd_lrb *lrbp) diff --git a/drivers/scsi/ufs/ufshcd-dwc.c b/drivers/scsi/ufs/ufshcd-dwc.c index 5bb9d3a88795..a57973c8d2a1 100644 --- a/drivers/scsi/ufs/ufshcd-dwc.c +++ b/drivers/scsi/ufs/ufshcd-dwc.c @@ -7,6 +7,8 @@ * Authors: Joao Pinto */ +#include + #include "ufshcd.h" #include "unipro.h" diff --git a/drivers/scsi/ufs/ufshcd-dwc.h b/drivers/scsi/ufs/ufshcd-dwc.h index 4268ca2eb64c..43b70794e24f 100644 --- a/drivers/scsi/ufs/ufshcd-dwc.h +++ b/drivers/scsi/ufs/ufshcd-dwc.h @@ -10,6 +10,8 @@ #ifndef _UFSHCD_DWC_H #define _UFSHCD_DWC_H +#include "ufshcd.h" + struct ufshcd_dme_attr_val { u32 attr_sel; u32 mib_val; diff --git a/drivers/scsi/ufs/ufshcd-pci.c b/drivers/scsi/ufs/ufshcd-pci.c index d36873bc44fe..5fe30dcf98b4 100644 --- a/drivers/scsi/ufs/ufshcd-pci.c +++ b/drivers/scsi/ufs/ufshcd-pci.c @@ -10,6 +10,8 @@ */ #include "ufshcd.h" +#include +#include #include #include #include diff --git a/drivers/scsi/ufs/ufshcd-pltfrm.c b/drivers/scsi/ufs/ufshcd-pltfrm.c index fc5191101192..f5313f407617 100644 --- a/drivers/scsi/ufs/ufshcd-pltfrm.c +++ b/drivers/scsi/ufs/ufshcd-pltfrm.c @@ -8,6 +8,7 @@ * Vinayak Holikatti */ +#include #include #include #include diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index cb74a9eeee70..5308f43bda6e 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -16,7 +16,16 @@ #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include #include "ufshcd.h" #include "ufs_quirks.h" #include "unipro.h" diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h index 412fe43cd763..ab0c643296c0 100644 --- a/drivers/scsi/ufs/ufshcd.h +++ b/drivers/scsi/ufs/ufshcd.h @@ -12,38 +12,13 @@ #ifndef _UFSHCD_H #define _UFSHCD_H -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include -#include #include +#include +#include +#include +#include #include "unipro.h" - -#include -#include -#include -#include -#include -#include -#include -#include - #include "ufs.h" #include "ufs_quirks.h" #include "ufshci.h" diff --git a/drivers/scsi/ufs/ufshci.h b/drivers/scsi/ufs/ufshci.h index a7ff0e5b5494..f81aa95ffbc4 100644 --- a/drivers/scsi/ufs/ufshci.h +++ b/drivers/scsi/ufs/ufshci.h @@ -11,6 +11,8 @@ #ifndef _UFSHCI_H #define _UFSHCI_H +#include + enum { TASK_REQ_UPIU_SIZE_DWORDS = 8, TASK_RSP_UPIU_SIZE_DWORDS = 8, diff --git a/drivers/scsi/ufs/ufshpb.c b/drivers/scsi/ufs/ufshpb.c index ebd8fc8fc109..5a974642779f 100644 --- a/drivers/scsi/ufs/ufshpb.c +++ b/drivers/scsi/ufs/ufshpb.c @@ -10,6 +10,10 @@ */ #include +#include +#include +#include +#include #include "ufshcd.h" #include "ufshpb.h" From patchwork Tue Apr 12 18:18:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 560215 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B230CC433F5 for ; Tue, 12 Apr 2022 18:25:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1352297AbiDLS1r (ORCPT ); Tue, 12 Apr 2022 14:27:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35324 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346177AbiDLS1q (ORCPT ); Tue, 12 Apr 2022 14:27:46 -0400 Received: from mail-pj1-f54.google.com (mail-pj1-f54.google.com [209.85.216.54]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F00943B02A for ; Tue, 12 Apr 2022 11:25:28 -0700 (PDT) Received: by mail-pj1-f54.google.com with SMTP id e8-20020a17090a118800b001cb13402ea2so3948412pja.0 for ; Tue, 12 Apr 2022 11:25:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=loZN4P8PpEJMzWmmaiVmJVuchCHtJ8qGAORX0RHp8rk=; b=iTBZs4phhqniKqq/iUl69Ewy5kFHI2BYS7JdDYxrB7iHXpoz9yPz9e1BCgxCz7sS1L 971vrjGUXKgYNnCWEuuqiZdzIyier0eLcRDSnQyqOXQXClqJmE9rRVUq8dnuUDHXxo2z Mu6R5YKqX6R7xOpTl1TLLRgQS4xLkcV9FOAL3ee9hr43f0Bguomyf69QtDhI2zh77Ec4 F7GjX9XTiaSIVm8KQHzWW1B+GzUXLpdZ09b0efpmFgBaUHWXBkRdml6NniED/4eK9ZXK kK/rsexBZI/VxQkwbQDqvHOW88zY2R+jLd1cAqRopTX5HMnKz8D0MEadIjf0qPVsBCnp 0sdQ== X-Gm-Message-State: AOAM532QaAFGvMmO6WS825FB2ojS300jAXT8IZA3CEvwuN/7Oyo7hhQV 89cukHsSs2l3AoLWoOKJ9RQ= X-Google-Smtp-Source: ABdhPJwQaxx63ndUmg8gkYc5Q+O0RoTZyW6hItKCnLxQT7fNqkgk0b5BvwdYMFAfhP3z5LwzOD4nkQ== X-Received: by 2002:a17:902:bb92:b0:153:4eae:c77e with SMTP id m18-20020a170902bb9200b001534eaec77emr37978453pls.93.1649787928431; Tue, 12 Apr 2022 11:25:28 -0700 (PDT) Received: from bvanassche-linux.mtv.corp.google.com ([2620:15c:211:201:d4b2:56ee:d001:c159]) by smtp.gmail.com with ESMTPSA id d18-20020a056a0010d200b004fa2e13ce80sm40367037pfu.76.2022.04.12.11.25.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 11:25:27 -0700 (PDT) From: Bart Van Assche To: "Martin K . Petersen" Cc: Jaegeuk Kim , Adrian Hunter , linux-scsi@vger.kernel.org, Bart Van Assche , Avri Altman , "James E.J. Bottomley" , Bean Huo , Stanley Chu , Daejun Park , Jinyoung Choi , Asutosh Das Subject: [PATCH v2 27/29] scsi: ufs: Move the struct ufs_ref_clk definition Date: Tue, 12 Apr 2022 11:18:51 -0700 Message-Id: <20220412181853.3715080-28-bvanassche@acm.org> X-Mailer: git-send-email 2.36.0.rc0.470.gd361397f0d-goog In-Reply-To: <20220412181853.3715080-1-bvanassche@acm.org> References: <20220412181853.3715080-1-bvanassche@acm.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Move the definition of this data structure since it is only used in a single source file. Reviewed-by: Avri Altman Signed-off-by: Bart Van Assche --- drivers/scsi/ufs/ufs.h | 5 ----- drivers/scsi/ufs/ufshcd.c | 5 +++++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/scsi/ufs/ufs.h b/drivers/scsi/ufs/ufs.h index 225b5b4a2a7e..f52173b8ad96 100644 --- a/drivers/scsi/ufs/ufs.h +++ b/drivers/scsi/ufs/ufs.h @@ -415,11 +415,6 @@ enum ufs_ref_clk_freq { REF_CLK_FREQ_INVAL = -1, }; -struct ufs_ref_clk { - unsigned long freq_hz; - enum ufs_ref_clk_freq val; -}; - /* Query response result code */ enum { QUERY_RESULT_SUCCESS = 0x00, diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index da8beed2767c..198bef3eb4b2 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -7959,6 +7959,11 @@ static int ufshcd_device_geo_params_init(struct ufs_hba *hba) return err; } +struct ufs_ref_clk { + unsigned long freq_hz; + enum ufs_ref_clk_freq val; +}; + static struct ufs_ref_clk ufs_ref_clk_freqs[] = { {19200000, REF_CLK_FREQ_19_2_MHZ}, {26000000, REF_CLK_FREQ_26_MHZ}, From patchwork Tue Apr 12 18:31:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 560214 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4DC11C433F5 for ; Tue, 12 Apr 2022 18:31:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244045AbiDLSeA (ORCPT ); Tue, 12 Apr 2022 14:34:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47210 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232756AbiDLSd6 (ORCPT ); Tue, 12 Apr 2022 14:33:58 -0400 Received: from mail-pg1-f179.google.com (mail-pg1-f179.google.com [209.85.215.179]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1B3B94EA12 for ; Tue, 12 Apr 2022 11:31:39 -0700 (PDT) Received: by mail-pg1-f179.google.com with SMTP id s137so15303355pgs.5 for ; Tue, 12 Apr 2022 11:31:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :mime-version:content-transfer-encoding; bh=cP5Vg5bgJ3/TD/53bijOMzVhUUEpAaK5FlL2Lu02NaM=; b=1H3pe/v/nLLCuRXbnKSFVcvsKqgSep+pkjLFS4TISYOez0WXcaUUwleSo4fkOQlYBv 7jEYTfY4JWHMY4hAYIZnZzAB6o82VyWIHkM6PanB+30lxr5xXtVxB6jvJfW39g0wc+fx f2WL33OTThiLXuHn9tEnBJ5ZiSc/9z/EbHOPC9raCXm0FjPR6DVR0BTUS7LvMkVHwIBB JKjSlEKB0W/fXc8F50DU3QeM7MHcIFPlNVvFxvcvTZfgTh7akdRETJ3U/KCXXG0zw729 niofcM5INciqVBKcnPHJ2G7kh7sWXx5RPfayPO85XazYOaQjx0CYZ9Pmc+2Z5VPHG41G 0BwA== X-Gm-Message-State: AOAM531gq/eCBoWY34etP6fo2FH+3El3iWd5VjuV/8igBu5ZDTovk4j1 z3dHRuqqWH8l7uXHRjMK5mlO/zjr0AN4uQ== X-Google-Smtp-Source: ABdhPJzhhuvS24mvfHf84odI31GTjuExNxXMcYmG7nZT91FDfY19FeqU8vTHGNRtiCuRKBiVrsdPHA== X-Received: by 2002:a05:6a00:1a49:b0:505:7ab3:e5c7 with SMTP id h9-20020a056a001a4900b005057ab3e5c7mr23676603pfv.62.1649788298237; Tue, 12 Apr 2022 11:31:38 -0700 (PDT) Received: from bvanassche-linux.mtv.corp.google.com ([2620:15c:211:201:d4b2:56ee:d001:c159]) by smtp.gmail.com with ESMTPSA id g15-20020a056a0023cf00b004e17e11cb17sm41754540pfc.111.2022.04.12.11.31.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 11:31:37 -0700 (PDT) From: Bart Van Assche To: "Martin K . Petersen" Cc: Jaegeuk Kim , Adrian Hunter , linux-scsi@vger.kernel.org, Bart Van Assche Subject: [PATCH v2 29/29] scsi: ufs: Split the drivers/scsi/ufs directory Date: Tue, 12 Apr 2022 11:31:31 -0700 Message-Id: <20220412183131.3729476-1-bvanassche@acm.org> X-Mailer: git-send-email 2.36.0.rc0.470.gd361397f0d-goog Reply-To: <20220412181853.3715080-1-bvanassche@acm.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Split the drivers/scsi/ufs directory into a ufs-core and a ufs-drivers directory. Move shared header files into the include/scsi directory. This separation makes it clear which header files UFS drivers are allowed to include (include/scsi/*.h) and which header files UFS drivers are not allowed to include (drivers/scsi/ufs-core/*.h). Update the MAINTAINERS file. Add myself as a UFS reviewer. Signed-off-by: Bart Van Assche --- MAINTAINERS | 9 ++- drivers/Kconfig | 2 + drivers/Makefile | 1 + drivers/scsi/Kconfig | 1 - drivers/scsi/Makefile | 1 - drivers/ufs/Kconfig | 30 ++++++++ drivers/ufs/Makefile | 5 ++ drivers/ufs/core/Kconfig | 60 +++++++++++++++ drivers/ufs/core/Makefile | 10 +++ drivers/{scsi/ufs => ufs/core}/ufs-debugfs.c | 2 +- drivers/{scsi/ufs => ufs/core}/ufs-debugfs.h | 0 .../ufs => ufs/core}/ufs-fault-injection.c | 0 .../ufs => ufs/core}/ufs-fault-injection.h | 0 drivers/{scsi/ufs => ufs/core}/ufs-hwmon.c | 2 +- drivers/{scsi/ufs => ufs/core}/ufs-sysfs.c | 2 +- drivers/{scsi/ufs => ufs/core}/ufs-sysfs.h | 0 drivers/{scsi/ufs => ufs/core}/ufs_bsg.c | 2 +- drivers/{scsi/ufs => ufs/core}/ufs_bsg.h | 0 .../{scsi/ufs => ufs/core}/ufshcd-crypto.c | 2 +- .../{scsi/ufs => ufs/core}/ufshcd-crypto.h | 4 +- drivers/{scsi/ufs => ufs/core}/ufshcd-priv.h | 2 +- drivers/{scsi/ufs => ufs/core}/ufshcd.c | 4 +- drivers/{scsi/ufs => ufs/core}/ufshpb.c | 2 +- drivers/{scsi/ufs => ufs/core}/ufshpb.h | 0 drivers/{scsi/ufs => ufs/host}/Kconfig | 75 +------------------ drivers/{scsi/ufs => ufs/host}/Makefile | 12 --- drivers/{scsi/ufs => ufs/host}/cdns-pltfrm.c | 0 .../{scsi/ufs => ufs/host}/tc-dwc-g210-pci.c | 2 +- .../ufs => ufs/host}/tc-dwc-g210-pltfrm.c | 0 drivers/{scsi/ufs => ufs/host}/tc-dwc-g210.c | 4 +- drivers/{scsi/ufs => ufs/host}/tc-dwc-g210.h | 0 drivers/{scsi/ufs => ufs/host}/ti-j721e-ufs.c | 0 drivers/{scsi/ufs => ufs/host}/ufs-exynos.c | 6 +- drivers/{scsi/ufs => ufs/host}/ufs-exynos.h | 0 drivers/{scsi/ufs => ufs/host}/ufs-hisi.c | 8 +- drivers/{scsi/ufs => ufs/host}/ufs-hisi.h | 0 .../ufs => ufs/host}/ufs-mediatek-trace.h | 2 +- drivers/{scsi/ufs => ufs/host}/ufs-mediatek.c | 6 +- drivers/{scsi/ufs => ufs/host}/ufs-mediatek.h | 0 drivers/{scsi/ufs => ufs/host}/ufs-qcom-ice.c | 0 drivers/{scsi/ufs => ufs/host}/ufs-qcom.c | 8 +- drivers/{scsi/ufs => ufs/host}/ufs-qcom.h | 2 +- drivers/{scsi/ufs => ufs/host}/ufshcd-dwc.c | 4 +- drivers/{scsi/ufs => ufs/host}/ufshcd-dwc.h | 2 +- drivers/{scsi/ufs => ufs/host}/ufshcd-pci.c | 2 +- .../{scsi/ufs => ufs/host}/ufshcd-pltfrm.c | 4 +- .../{scsi/ufs => ufs/host}/ufshcd-pltfrm.h | 2 +- drivers/{scsi/ufs => ufs/host}/ufshci-dwc.h | 0 {drivers/scsi/ufs => include/scsi}/ufs.h | 0 .../scsi/ufs => include/scsi}/ufs_quirks.h | 0 {drivers/scsi/ufs => include/scsi}/ufshcd.h | 8 +- {drivers/scsi/ufs => include/scsi}/ufshci.h | 0 {drivers/scsi/ufs => include/scsi}/unipro.h | 0 53 files changed, 155 insertions(+), 133 deletions(-) create mode 100644 drivers/ufs/Kconfig create mode 100644 drivers/ufs/Makefile create mode 100644 drivers/ufs/core/Kconfig create mode 100644 drivers/ufs/core/Makefile rename drivers/{scsi/ufs => ufs/core}/ufs-debugfs.c (99%) rename drivers/{scsi/ufs => ufs/core}/ufs-debugfs.h (100%) rename drivers/{scsi/ufs => ufs/core}/ufs-fault-injection.c (100%) rename drivers/{scsi/ufs => ufs/core}/ufs-fault-injection.h (100%) rename drivers/{scsi/ufs => ufs/core}/ufs-hwmon.c (99%) rename drivers/{scsi/ufs => ufs/core}/ufs-sysfs.c (99%) rename drivers/{scsi/ufs => ufs/core}/ufs-sysfs.h (100%) rename drivers/{scsi/ufs => ufs/core}/ufs_bsg.c (99%) rename drivers/{scsi/ufs => ufs/core}/ufs_bsg.h (100%) rename drivers/{scsi/ufs => ufs/core}/ufshcd-crypto.c (99%) rename drivers/{scsi/ufs => ufs/core}/ufshcd-crypto.h (97%) rename drivers/{scsi/ufs => ufs/core}/ufshcd-priv.h (99%) rename drivers/{scsi/ufs => ufs/core}/ufshcd.c (99%) rename drivers/{scsi/ufs => ufs/core}/ufshpb.c (99%) rename drivers/{scsi/ufs => ufs/core}/ufshpb.h (100%) rename drivers/{scsi/ufs => ufs/host}/Kconfig (56%) rename drivers/{scsi/ufs => ufs/host}/Makefile (56%) rename drivers/{scsi/ufs => ufs/host}/cdns-pltfrm.c (100%) rename drivers/{scsi/ufs => ufs/host}/tc-dwc-g210-pci.c (99%) rename drivers/{scsi/ufs => ufs/host}/tc-dwc-g210-pltfrm.c (100%) rename drivers/{scsi/ufs => ufs/host}/tc-dwc-g210.c (99%) rename drivers/{scsi/ufs => ufs/host}/tc-dwc-g210.h (100%) rename drivers/{scsi/ufs => ufs/host}/ti-j721e-ufs.c (100%) rename drivers/{scsi/ufs => ufs/host}/ufs-exynos.c (99%) rename drivers/{scsi/ufs => ufs/host}/ufs-exynos.h (100%) rename drivers/{scsi/ufs => ufs/host}/ufs-hisi.c (99%) rename drivers/{scsi/ufs => ufs/host}/ufs-hisi.h (100%) rename drivers/{scsi/ufs => ufs/host}/ufs-mediatek-trace.h (93%) rename drivers/{scsi/ufs => ufs/host}/ufs-mediatek.c (99%) rename drivers/{scsi/ufs => ufs/host}/ufs-mediatek.h (100%) rename drivers/{scsi/ufs => ufs/host}/ufs-qcom-ice.c (100%) rename drivers/{scsi/ufs => ufs/host}/ufs-qcom.c (99%) rename drivers/{scsi/ufs => ufs/host}/ufs-qcom.h (99%) rename drivers/{scsi/ufs => ufs/host}/ufshcd-dwc.c (98%) rename drivers/{scsi/ufs => ufs/host}/ufshcd-dwc.h (95%) rename drivers/{scsi/ufs => ufs/host}/ufshcd-pci.c (99%) rename drivers/{scsi/ufs => ufs/host}/ufshcd-pltfrm.c (99%) rename drivers/{scsi/ufs => ufs/host}/ufshcd-pltfrm.h (98%) rename drivers/{scsi/ufs => ufs/host}/ufshci-dwc.h (100%) rename {drivers/scsi/ufs => include/scsi}/ufs.h (100%) rename {drivers/scsi/ufs => include/scsi}/ufs_quirks.h (100%) rename {drivers/scsi/ufs => include/scsi}/ufshcd.h (99%) rename {drivers/scsi/ufs => include/scsi}/ufshci.h (100%) rename {drivers/scsi/ufs => include/scsi}/unipro.h (100%) diff --git a/MAINTAINERS b/MAINTAINERS index fd768d43e048..8da66d6b1470 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2547,7 +2547,7 @@ F: drivers/pci/controller/dwc/pcie-qcom.c F: drivers/phy/qualcomm/ F: drivers/power/*/msm* F: drivers/reset/reset-qcom-* -F: drivers/scsi/ufs/ufs-qcom* +F: drivers/ufs/host/ufs-qcom* F: drivers/spi/spi-geni-qcom.c F: drivers/spi/spi-qcom-qspi.c F: drivers/spi/spi-qup.c @@ -20198,24 +20198,25 @@ F: include/linux/visorbus.h UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER R: Alim Akhtar R: Avri Altman +R: Bart Van Assche L: linux-scsi@vger.kernel.org S: Supported F: Documentation/devicetree/bindings/ufs/ F: Documentation/scsi/ufs.rst -F: drivers/scsi/ufs/ +F: drivers/ufs/core/ UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER DWC HOOKS M: Pedro Sousa L: linux-scsi@vger.kernel.org S: Supported -F: drivers/scsi/ufs/*dwc* +F: drivers/ufs/host/*dwc* UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER MEDIATEK HOOKS M: Stanley Chu L: linux-scsi@vger.kernel.org L: linux-mediatek@lists.infradead.org (moderated for non-subscribers) S: Maintained -F: drivers/scsi/ufs/ufs-mediatek* +F: drivers/ufs/host/ufs-mediatek* UNSORTED BLOCK IMAGES (UBI) M: Richard Weinberger diff --git a/drivers/Kconfig b/drivers/Kconfig index 8d6cd5d08722..a7ec388e1848 100644 --- a/drivers/Kconfig +++ b/drivers/Kconfig @@ -107,6 +107,8 @@ source "drivers/usb/Kconfig" source "drivers/mmc/Kconfig" +source "drivers/ufs/Kconfig" + source "drivers/memstick/Kconfig" source "drivers/leds/Kconfig" diff --git a/drivers/Makefile b/drivers/Makefile index 020780b6b4d2..8b4b90202e58 100644 --- a/drivers/Makefile +++ b/drivers/Makefile @@ -128,6 +128,7 @@ obj-$(CONFIG_PM_OPP) += opp/ obj-$(CONFIG_CPU_FREQ) += cpufreq/ obj-$(CONFIG_CPU_IDLE) += cpuidle/ obj-y += mmc/ +obj-y += ufs/ obj-$(CONFIG_MEMSTICK) += memstick/ obj-$(CONFIG_NEW_LEDS) += leds/ obj-$(CONFIG_INFINIBAND) += infiniband/ diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig index 6e3a04107bb6..a9fe5152addd 100644 --- a/drivers/scsi/Kconfig +++ b/drivers/scsi/Kconfig @@ -500,7 +500,6 @@ source "drivers/scsi/megaraid/Kconfig.megaraid" source "drivers/scsi/mpt3sas/Kconfig" source "drivers/scsi/mpi3mr/Kconfig" source "drivers/scsi/smartpqi/Kconfig" -source "drivers/scsi/ufs/Kconfig" config SCSI_HPTIOP tristate "HighPoint RocketRAID 3xxx/4xxx Controller support" diff --git a/drivers/scsi/Makefile b/drivers/scsi/Makefile index 19814c26c908..2ad3bc052531 100644 --- a/drivers/scsi/Makefile +++ b/drivers/scsi/Makefile @@ -101,7 +101,6 @@ obj-$(CONFIG_MEGARAID_NEWGEN) += megaraid/ obj-$(CONFIG_MEGARAID_SAS) += megaraid/ obj-$(CONFIG_SCSI_MPT3SAS) += mpt3sas/ obj-$(CONFIG_SCSI_MPI3MR) += mpi3mr/ -obj-$(CONFIG_SCSI_UFSHCD) += ufs/ obj-$(CONFIG_SCSI_ACARD) += atp870u.o obj-$(CONFIG_SCSI_SUNESP) += esp_scsi.o sun_esp.o obj-$(CONFIG_SCSI_INITIO) += initio.o diff --git a/drivers/ufs/Kconfig b/drivers/ufs/Kconfig new file mode 100644 index 000000000000..90226f72c158 --- /dev/null +++ b/drivers/ufs/Kconfig @@ -0,0 +1,30 @@ +# SPDX-License-Identifier: GPL-2.0-only +# +# UFS subsystem configuration +# + +menuconfig SCSI_UFSHCD + tristate "Universal Flash Storage Controller" + depends on SCSI && SCSI_DMA + select PM_DEVFREQ + select DEVFREQ_GOV_SIMPLE_ONDEMAND + select NLS + help + Enables support for UFS (Universal Flash Storage) host controllers. + A UFS host controller is an electronic component that is able to + communicate with a UFS card. UFS host controllers occur in + smartphones, laptops, digital cameras and also in cars. + The kernel module will be called ufshcd. + + To compile this driver as a module, choose M here and read + . + However, do not compile this as a module if your root file system + (the one containing the directory /) is located on a UFS device. + +if SCSI_UFSHCD + +source "drivers/ufs/core/Kconfig" + +source "drivers/ufs/host/Kconfig" + +endif diff --git a/drivers/ufs/Makefile b/drivers/ufs/Makefile new file mode 100644 index 000000000000..5a199ef18d4c --- /dev/null +++ b/drivers/ufs/Makefile @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0 + +# The link order is important here. ufshcd-core must initialize +# before vendor drivers. +obj-$(CONFIG_SCSI_UFSHCD) += core/ host/ diff --git a/drivers/ufs/core/Kconfig b/drivers/ufs/core/Kconfig new file mode 100644 index 000000000000..e11978171403 --- /dev/null +++ b/drivers/ufs/core/Kconfig @@ -0,0 +1,60 @@ +# SPDX-License-Identifier: GPL-2.0+ +# +# Kernel configuration file for the UFS Host Controller core. +# +# Copyright (C) 2011-2013 Samsung India Software Operations +# +# Authors: +# Santosh Yaraganavi +# Vinayak Holikatti + +config SCSI_UFS_BSG + bool "Universal Flash Storage BSG device node" + select BLK_DEV_BSGLIB + help + Universal Flash Storage (UFS) is SCSI transport specification for + accessing flash storage on digital cameras, mobile phones and + consumer electronic devices. + A UFS controller communicates with a UFS device by exchanging + UFS Protocol Information Units (UPIUs). + UPIUs can not only be used as a transport layer for the SCSI protocol + but are also used by the UFS native command set. + This transport driver supports exchanging UFS protocol information units + with a UFS device. See also the ufshcd driver, which is a SCSI driver + that supports UFS devices. + + Select this if you need a bsg device node for your UFS controller. + If unsure, say N. + +config SCSI_UFS_CRYPTO + bool "UFS Crypto Engine Support" + depends on BLK_INLINE_ENCRYPTION + help + Enable Crypto Engine Support in UFS. + Enabling this makes it possible for the kernel to use the crypto + capabilities of the UFS device (if present) to perform crypto + operations on data being transferred to/from the device. + +config SCSI_UFS_HPB + bool "Support UFS Host Performance Booster" + help + The UFS HPB feature improves random read performance. It caches + L2P (logical to physical) map of UFS to host DRAM. The driver uses HPB + read command by piggybacking physical page number for bypassing FTL (flash + translation layer)'s L2P address translation. + +config SCSI_UFS_FAULT_INJECTION + bool "UFS Fault Injection Support" + depends on FAULT_INJECTION + help + Enable fault injection support in the UFS driver. This makes it easier + to test the UFS error handler and abort handler. + +config SCSI_UFS_HWMON + bool "UFS Temperature Notification" + depends on SCSI_UFSHCD=HWMON || HWMON=y + help + This provides support for UFS hardware monitoring. If enabled, + a hardware monitoring device will be created for the UFS device. + + If unsure, say N. diff --git a/drivers/ufs/core/Makefile b/drivers/ufs/core/Makefile new file mode 100644 index 000000000000..62f38c5bf857 --- /dev/null +++ b/drivers/ufs/core/Makefile @@ -0,0 +1,10 @@ +# SPDX-License-Identifier: GPL-2.0 + +obj-$(CONFIG_SCSI_UFSHCD) += ufshcd-core.o +ufshcd-core-y += ufshcd.o ufs-sysfs.o +ufshcd-core-$(CONFIG_DEBUG_FS) += ufs-debugfs.o +ufshcd-core-$(CONFIG_SCSI_UFS_BSG) += ufs_bsg.o +ufshcd-core-$(CONFIG_SCSI_UFS_CRYPTO) += ufshcd-crypto.o +ufshcd-core-$(CONFIG_SCSI_UFS_HPB) += ufshpb.o +ufshcd-core-$(CONFIG_SCSI_UFS_FAULT_INJECTION) += ufs-fault-injection.o +ufshcd-core-$(CONFIG_SCSI_UFS_HWMON) += ufs-hwmon.o diff --git a/drivers/scsi/ufs/ufs-debugfs.c b/drivers/ufs/core/ufs-debugfs.c similarity index 99% rename from drivers/scsi/ufs/ufs-debugfs.c rename to drivers/ufs/core/ufs-debugfs.c index c10a8f09682b..e1dce1cad177 100644 --- a/drivers/scsi/ufs/ufs-debugfs.c +++ b/drivers/ufs/core/ufs-debugfs.c @@ -4,7 +4,7 @@ #include #include "ufs-debugfs.h" -#include "ufshcd.h" +#include #include "ufshcd-priv.h" static struct dentry *ufs_debugfs_root; diff --git a/drivers/scsi/ufs/ufs-debugfs.h b/drivers/ufs/core/ufs-debugfs.h similarity index 100% rename from drivers/scsi/ufs/ufs-debugfs.h rename to drivers/ufs/core/ufs-debugfs.h diff --git a/drivers/scsi/ufs/ufs-fault-injection.c b/drivers/ufs/core/ufs-fault-injection.c similarity index 100% rename from drivers/scsi/ufs/ufs-fault-injection.c rename to drivers/ufs/core/ufs-fault-injection.c diff --git a/drivers/scsi/ufs/ufs-fault-injection.h b/drivers/ufs/core/ufs-fault-injection.h similarity index 100% rename from drivers/scsi/ufs/ufs-fault-injection.h rename to drivers/ufs/core/ufs-fault-injection.h diff --git a/drivers/scsi/ufs/ufs-hwmon.c b/drivers/ufs/core/ufs-hwmon.c similarity index 99% rename from drivers/scsi/ufs/ufs-hwmon.c rename to drivers/ufs/core/ufs-hwmon.c index c38d9d98a86d..1f1f5c8ab8da 100644 --- a/drivers/scsi/ufs/ufs-hwmon.c +++ b/drivers/ufs/core/ufs-hwmon.c @@ -7,7 +7,7 @@ #include #include -#include "ufshcd.h" +#include #include "ufshcd-priv.h" struct ufs_hwmon_data { diff --git a/drivers/scsi/ufs/ufs-sysfs.c b/drivers/ufs/core/ufs-sysfs.c similarity index 99% rename from drivers/scsi/ufs/ufs-sysfs.c rename to drivers/ufs/core/ufs-sysfs.c index 8a3c6442f291..840d7b79a857 100644 --- a/drivers/scsi/ufs/ufs-sysfs.c +++ b/drivers/ufs/core/ufs-sysfs.c @@ -6,7 +6,7 @@ #include #include -#include "ufs.h" +#include #include "ufs-sysfs.h" #include "ufshcd-priv.h" diff --git a/drivers/scsi/ufs/ufs-sysfs.h b/drivers/ufs/core/ufs-sysfs.h similarity index 100% rename from drivers/scsi/ufs/ufs-sysfs.h rename to drivers/ufs/core/ufs-sysfs.h diff --git a/drivers/scsi/ufs/ufs_bsg.c b/drivers/ufs/core/ufs_bsg.c similarity index 99% rename from drivers/scsi/ufs/ufs_bsg.c rename to drivers/ufs/core/ufs_bsg.c index 9e9b93867cab..dde7887d261f 100644 --- a/drivers/scsi/ufs/ufs_bsg.c +++ b/drivers/ufs/core/ufs_bsg.c @@ -9,7 +9,7 @@ #include #include #include "ufs_bsg.h" -#include "ufshcd.h" +#include #include "ufshcd-priv.h" static int ufs_bsg_get_query_desc_size(struct ufs_hba *hba, int *desc_len, diff --git a/drivers/scsi/ufs/ufs_bsg.h b/drivers/ufs/core/ufs_bsg.h similarity index 100% rename from drivers/scsi/ufs/ufs_bsg.h rename to drivers/ufs/core/ufs_bsg.h diff --git a/drivers/scsi/ufs/ufshcd-crypto.c b/drivers/ufs/core/ufshcd-crypto.c similarity index 99% rename from drivers/scsi/ufs/ufshcd-crypto.c rename to drivers/ufs/core/ufshcd-crypto.c index 67402baf6fae..f8f19d8cf4d4 100644 --- a/drivers/scsi/ufs/ufshcd-crypto.c +++ b/drivers/ufs/core/ufshcd-crypto.c @@ -3,7 +3,7 @@ * Copyright 2019 Google LLC */ -#include "ufshcd.h" +#include #include "ufshcd-crypto.h" /* Blk-crypto modes supported by UFS crypto */ diff --git a/drivers/scsi/ufs/ufshcd-crypto.h b/drivers/ufs/core/ufshcd-crypto.h similarity index 97% rename from drivers/scsi/ufs/ufshcd-crypto.h rename to drivers/ufs/core/ufshcd-crypto.h index 9f98f18f9646..cd4ee661ca96 100644 --- a/drivers/scsi/ufs/ufshcd-crypto.h +++ b/drivers/ufs/core/ufshcd-crypto.h @@ -7,9 +7,9 @@ #define _UFSHCD_CRYPTO_H #include -#include "ufshcd.h" +#include #include "ufshcd-priv.h" -#include "ufshci.h" +#include #ifdef CONFIG_SCSI_UFS_CRYPTO diff --git a/drivers/scsi/ufs/ufshcd-priv.h b/drivers/ufs/core/ufshcd-priv.h similarity index 99% rename from drivers/scsi/ufs/ufshcd-priv.h rename to drivers/ufs/core/ufshcd-priv.h index 38bc77d3dbbd..a6ae5b626752 100644 --- a/drivers/scsi/ufs/ufshcd-priv.h +++ b/drivers/ufs/core/ufshcd-priv.h @@ -4,7 +4,7 @@ #define _UFSHCD_PRIV_H_ #include -#include "ufshcd.h" +#include static inline bool ufshcd_is_user_access_allowed(struct ufs_hba *hba) { diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/ufs/core/ufshcd.c similarity index 99% rename from drivers/scsi/ufs/ufshcd.c rename to drivers/ufs/core/ufshcd.c index 198bef3eb4b2..0696dc30ea09 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -27,8 +27,8 @@ #include #include #include "ufshcd-priv.h" -#include "ufs_quirks.h" -#include "unipro.h" +#include +#include #include "ufs-sysfs.h" #include "ufs-debugfs.h" #include "ufs-fault-injection.h" diff --git a/drivers/scsi/ufs/ufshpb.c b/drivers/ufs/core/ufshpb.c similarity index 99% rename from drivers/scsi/ufs/ufshpb.c rename to drivers/ufs/core/ufshpb.c index 5fae0861b488..791f0bce11bb 100644 --- a/drivers/scsi/ufs/ufshpb.c +++ b/drivers/ufs/core/ufshpb.c @@ -17,7 +17,7 @@ #include "ufshcd-priv.h" #include "ufshpb.h" -#include "../sd.h" +#include "../../scsi/sd.h" #define ACTIVATION_THRESHOLD 8 /* 8 IOs */ #define READ_TO_MS 1000 diff --git a/drivers/scsi/ufs/ufshpb.h b/drivers/ufs/core/ufshpb.h similarity index 100% rename from drivers/scsi/ufs/ufshpb.h rename to drivers/ufs/core/ufshpb.h diff --git a/drivers/scsi/ufs/Kconfig b/drivers/ufs/host/Kconfig similarity index 56% rename from drivers/scsi/ufs/Kconfig rename to drivers/ufs/host/Kconfig index 393b9a01da36..82590224da13 100644 --- a/drivers/scsi/ufs/Kconfig +++ b/drivers/ufs/host/Kconfig @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0+ # -# Kernel configuration file for the UFS Host Controller +# Kernel configuration file for the UFS host controller drivers. # # Copyright (C) 2011-2013 Samsung India Software Operations # @@ -8,26 +8,6 @@ # Santosh Yaraganavi # Vinayak Holikatti -config SCSI_UFSHCD - tristate "Universal Flash Storage Controller Driver Core" - depends on SCSI && SCSI_DMA - select PM_DEVFREQ - select DEVFREQ_GOV_SIMPLE_ONDEMAND - select NLS - help - This selects the support for UFS devices in Linux, say Y and make - sure that you know the name of your UFS host adapter (the card - inside your computer that "speaks" the UFS protocol, also - called UFS Host Controller), because you will be asked for it. - The module will be called ufshcd. - - To compile this driver as a module, choose M here and read - . - However, do not compile this as a module if your root file system - (the one containing the directory /) is located on a UFS device. - -if SCSI_UFSHCD - config SCSI_UFSHCD_PCI tristate "PCI bus based UFS Controller support" depends on PCI @@ -122,24 +102,6 @@ config SCSI_UFS_TI_J721E Selects this if you have TI platform with UFS controller. If unsure, say N. -config SCSI_UFS_BSG - bool "Universal Flash Storage BSG device node" - select BLK_DEV_BSGLIB - help - Universal Flash Storage (UFS) is SCSI transport specification for - accessing flash storage on digital cameras, mobile phones and - consumer electronic devices. - A UFS controller communicates with a UFS device by exchanging - UFS Protocol Information Units (UPIUs). - UPIUs can not only be used as a transport layer for the SCSI protocol - but are also used by the UFS native command set. - This transport driver supports exchanging UFS protocol information units - with a UFS device. See also the ufshcd driver, which is a SCSI driver - that supports UFS devices. - - Select this if you need a bsg device node for your UFS controller. - If unsure, say N. - config SCSI_UFS_EXYNOS tristate "Exynos specific hooks to UFS controller platform driver" depends on SCSI_UFSHCD_PLATFORM && (ARCH_EXYNOS || COMPILE_TEST) @@ -150,38 +112,3 @@ config SCSI_UFS_EXYNOS Select this if you have UFS host controller on Samsung Exynos SoC. If unsure, say N. - -config SCSI_UFS_CRYPTO - bool "UFS Crypto Engine Support" - depends on BLK_INLINE_ENCRYPTION - help - Enable Crypto Engine Support in UFS. - Enabling this makes it possible for the kernel to use the crypto - capabilities of the UFS device (if present) to perform crypto - operations on data being transferred to/from the device. - -config SCSI_UFS_HPB - bool "Support UFS Host Performance Booster" - help - The UFS HPB feature improves random read performance. It caches - L2P (logical to physical) map of UFS to host DRAM. The driver uses HPB - read command by piggybacking physical page number for bypassing FTL (flash - translation layer)'s L2P address translation. - -config SCSI_UFS_FAULT_INJECTION - bool "UFS Fault Injection Support" - depends on FAULT_INJECTION - help - Enable fault injection support in the UFS driver. This makes it easier - to test the UFS error handler and abort handler. - -config SCSI_UFS_HWMON - bool "UFS Temperature Notification" - depends on SCSI_UFSHCD=HWMON || HWMON=y - help - This provides support for UFS hardware monitoring. If enabled, - a hardware monitoring device will be created for the UFS device. - - If unsure, say N. - -endif diff --git a/drivers/scsi/ufs/Makefile b/drivers/ufs/host/Makefile similarity index 56% rename from drivers/scsi/ufs/Makefile rename to drivers/ufs/host/Makefile index 966048875b50..e4be54273c98 100644 --- a/drivers/scsi/ufs/Makefile +++ b/drivers/ufs/host/Makefile @@ -1,16 +1,4 @@ # SPDX-License-Identifier: GPL-2.0 -# UFSHCD makefile - -# The link order is important here. ufshcd-core must initialize -# before vendor drivers. -obj-$(CONFIG_SCSI_UFSHCD) += ufshcd-core.o -ufshcd-core-y += ufshcd.o ufs-sysfs.o -ufshcd-core-$(CONFIG_DEBUG_FS) += ufs-debugfs.o -ufshcd-core-$(CONFIG_SCSI_UFS_BSG) += ufs_bsg.o -ufshcd-core-$(CONFIG_SCSI_UFS_CRYPTO) += ufshcd-crypto.o -ufshcd-core-$(CONFIG_SCSI_UFS_HPB) += ufshpb.o -ufshcd-core-$(CONFIG_SCSI_UFS_FAULT_INJECTION) += ufs-fault-injection.o -ufshcd-core-$(CONFIG_SCSI_UFS_HWMON) += ufs-hwmon.o obj-$(CONFIG_SCSI_UFS_DWC_TC_PCI) += tc-dwc-g210-pci.o ufshcd-dwc.o tc-dwc-g210.o obj-$(CONFIG_SCSI_UFS_DWC_TC_PLATFORM) += tc-dwc-g210-pltfrm.o ufshcd-dwc.o tc-dwc-g210.o diff --git a/drivers/scsi/ufs/cdns-pltfrm.c b/drivers/ufs/host/cdns-pltfrm.c similarity index 100% rename from drivers/scsi/ufs/cdns-pltfrm.c rename to drivers/ufs/host/cdns-pltfrm.c diff --git a/drivers/scsi/ufs/tc-dwc-g210-pci.c b/drivers/ufs/host/tc-dwc-g210-pci.c similarity index 99% rename from drivers/scsi/ufs/tc-dwc-g210-pci.c rename to drivers/ufs/host/tc-dwc-g210-pci.c index e635c211c783..22f581a71230 100644 --- a/drivers/scsi/ufs/tc-dwc-g210-pci.c +++ b/drivers/ufs/host/tc-dwc-g210-pci.c @@ -7,7 +7,7 @@ * Authors: Joao Pinto */ -#include "ufshcd.h" +#include #include "ufshcd-dwc.h" #include "tc-dwc-g210.h" diff --git a/drivers/scsi/ufs/tc-dwc-g210-pltfrm.c b/drivers/ufs/host/tc-dwc-g210-pltfrm.c similarity index 100% rename from drivers/scsi/ufs/tc-dwc-g210-pltfrm.c rename to drivers/ufs/host/tc-dwc-g210-pltfrm.c diff --git a/drivers/scsi/ufs/tc-dwc-g210.c b/drivers/ufs/host/tc-dwc-g210.c similarity index 99% rename from drivers/scsi/ufs/tc-dwc-g210.c rename to drivers/ufs/host/tc-dwc-g210.c index 7ef67c9fc5b8..9c89f0accd82 100644 --- a/drivers/scsi/ufs/tc-dwc-g210.c +++ b/drivers/ufs/host/tc-dwc-g210.c @@ -9,8 +9,8 @@ #include -#include "ufshcd.h" -#include "unipro.h" +#include +#include #include "ufshcd-dwc.h" #include "ufshci-dwc.h" diff --git a/drivers/scsi/ufs/tc-dwc-g210.h b/drivers/ufs/host/tc-dwc-g210.h similarity index 100% rename from drivers/scsi/ufs/tc-dwc-g210.h rename to drivers/ufs/host/tc-dwc-g210.h diff --git a/drivers/scsi/ufs/ti-j721e-ufs.c b/drivers/ufs/host/ti-j721e-ufs.c similarity index 100% rename from drivers/scsi/ufs/ti-j721e-ufs.c rename to drivers/ufs/host/ti-j721e-ufs.c diff --git a/drivers/scsi/ufs/ufs-exynos.c b/drivers/ufs/host/ufs-exynos.c similarity index 99% rename from drivers/scsi/ufs/ufs-exynos.c rename to drivers/ufs/host/ufs-exynos.c index ddb2d42605c5..10f9d9ff84da 100644 --- a/drivers/scsi/ufs/ufs-exynos.c +++ b/drivers/ufs/host/ufs-exynos.c @@ -18,10 +18,10 @@ #include #include -#include "ufshcd.h" +#include #include "ufshcd-pltfrm.h" -#include "ufshci.h" -#include "unipro.h" +#include +#include #include "ufs-exynos.h" diff --git a/drivers/scsi/ufs/ufs-exynos.h b/drivers/ufs/host/ufs-exynos.h similarity index 100% rename from drivers/scsi/ufs/ufs-exynos.h rename to drivers/ufs/host/ufs-exynos.h diff --git a/drivers/scsi/ufs/ufs-hisi.c b/drivers/ufs/host/ufs-hisi.c similarity index 99% rename from drivers/scsi/ufs/ufs-hisi.c rename to drivers/ufs/host/ufs-hisi.c index 7046143063ee..3c7dfdcede26 100644 --- a/drivers/scsi/ufs/ufs-hisi.c +++ b/drivers/ufs/host/ufs-hisi.c @@ -15,12 +15,12 @@ #include #include -#include "ufshcd.h" +#include #include "ufshcd-pltfrm.h" -#include "unipro.h" +#include #include "ufs-hisi.h" -#include "ufshci.h" -#include "ufs_quirks.h" +#include +#include static int ufs_hisi_check_hibern8(struct ufs_hba *hba) { diff --git a/drivers/scsi/ufs/ufs-hisi.h b/drivers/ufs/host/ufs-hisi.h similarity index 100% rename from drivers/scsi/ufs/ufs-hisi.h rename to drivers/ufs/host/ufs-hisi.h diff --git a/drivers/scsi/ufs/ufs-mediatek-trace.h b/drivers/ufs/host/ufs-mediatek-trace.h similarity index 93% rename from drivers/scsi/ufs/ufs-mediatek-trace.h rename to drivers/ufs/host/ufs-mediatek-trace.h index 895e82ea6ece..7e010848dc99 100644 --- a/drivers/scsi/ufs/ufs-mediatek-trace.h +++ b/drivers/ufs/host/ufs-mediatek-trace.h @@ -31,6 +31,6 @@ TRACE_EVENT(ufs_mtk_event, #undef TRACE_INCLUDE_PATH #undef TRACE_INCLUDE_FILE -#define TRACE_INCLUDE_PATH ../../drivers/scsi/ufs/ +#define TRACE_INCLUDE_PATH ../../drivers/ufs/host #define TRACE_INCLUDE_FILE ufs-mediatek-trace #include diff --git a/drivers/scsi/ufs/ufs-mediatek.c b/drivers/ufs/host/ufs-mediatek.c similarity index 99% rename from drivers/scsi/ufs/ufs-mediatek.c rename to drivers/ufs/host/ufs-mediatek.c index 083d6bd4d561..06bcf81490bd 100644 --- a/drivers/scsi/ufs/ufs-mediatek.c +++ b/drivers/ufs/host/ufs-mediatek.c @@ -21,10 +21,10 @@ #include #include -#include "ufshcd.h" +#include #include "ufshcd-pltfrm.h" -#include "ufs_quirks.h" -#include "unipro.h" +#include +#include #include "ufs-mediatek.h" #define CREATE_TRACE_POINTS diff --git a/drivers/scsi/ufs/ufs-mediatek.h b/drivers/ufs/host/ufs-mediatek.h similarity index 100% rename from drivers/scsi/ufs/ufs-mediatek.h rename to drivers/ufs/host/ufs-mediatek.h diff --git a/drivers/scsi/ufs/ufs-qcom-ice.c b/drivers/ufs/host/ufs-qcom-ice.c similarity index 100% rename from drivers/scsi/ufs/ufs-qcom-ice.c rename to drivers/ufs/host/ufs-qcom-ice.c diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c similarity index 99% rename from drivers/scsi/ufs/ufs-qcom.c rename to drivers/ufs/host/ufs-qcom.c index a63844961222..ef12c8a42642 100644 --- a/drivers/scsi/ufs/ufs-qcom.c +++ b/drivers/ufs/host/ufs-qcom.c @@ -15,12 +15,12 @@ #include #include -#include "ufshcd.h" +#include #include "ufshcd-pltfrm.h" -#include "unipro.h" +#include #include "ufs-qcom.h" -#include "ufshci.h" -#include "ufs_quirks.h" +#include +#include #define UFS_QCOM_DEFAULT_DBG_PRINT_EN \ (UFS_QCOM_DBG_PRINT_REGS_EN | UFS_QCOM_DBG_PRINT_TEST_BUS_EN) diff --git a/drivers/scsi/ufs/ufs-qcom.h b/drivers/ufs/host/ufs-qcom.h similarity index 99% rename from drivers/scsi/ufs/ufs-qcom.h rename to drivers/ufs/host/ufs-qcom.h index 771bc95d02c7..ad70d425c544 100644 --- a/drivers/scsi/ufs/ufs-qcom.h +++ b/drivers/ufs/host/ufs-qcom.h @@ -7,7 +7,7 @@ #include #include -#include "ufshcd.h" +#include #define MAX_UFS_QCOM_HOSTS 1 #define MAX_U32 (~(u32)0) diff --git a/drivers/scsi/ufs/ufshcd-dwc.c b/drivers/ufs/host/ufshcd-dwc.c similarity index 98% rename from drivers/scsi/ufs/ufshcd-dwc.c rename to drivers/ufs/host/ufshcd-dwc.c index a57973c8d2a1..ccaaae348a37 100644 --- a/drivers/scsi/ufs/ufshcd-dwc.c +++ b/drivers/ufs/host/ufshcd-dwc.c @@ -9,8 +9,8 @@ #include -#include "ufshcd.h" -#include "unipro.h" +#include +#include #include "ufshcd-dwc.h" #include "ufshci-dwc.h" diff --git a/drivers/scsi/ufs/ufshcd-dwc.h b/drivers/ufs/host/ufshcd-dwc.h similarity index 95% rename from drivers/scsi/ufs/ufshcd-dwc.h rename to drivers/ufs/host/ufshcd-dwc.h index 43b70794e24f..3195002f6692 100644 --- a/drivers/scsi/ufs/ufshcd-dwc.h +++ b/drivers/ufs/host/ufshcd-dwc.h @@ -10,7 +10,7 @@ #ifndef _UFSHCD_DWC_H #define _UFSHCD_DWC_H -#include "ufshcd.h" +#include struct ufshcd_dme_attr_val { u32 attr_sel; diff --git a/drivers/scsi/ufs/ufshcd-pci.c b/drivers/ufs/host/ufshcd-pci.c similarity index 99% rename from drivers/scsi/ufs/ufshcd-pci.c rename to drivers/ufs/host/ufshcd-pci.c index 5fe30dcf98b4..a9db5fbc2c70 100644 --- a/drivers/scsi/ufs/ufshcd-pci.c +++ b/drivers/ufs/host/ufshcd-pci.c @@ -9,7 +9,7 @@ * Vinayak Holikatti */ -#include "ufshcd.h" +#include #include #include #include diff --git a/drivers/scsi/ufs/ufshcd-pltfrm.c b/drivers/ufs/host/ufshcd-pltfrm.c similarity index 99% rename from drivers/scsi/ufs/ufshcd-pltfrm.c rename to drivers/ufs/host/ufshcd-pltfrm.c index f5313f407617..81cf0789c8ad 100644 --- a/drivers/scsi/ufs/ufshcd-pltfrm.c +++ b/drivers/ufs/host/ufshcd-pltfrm.c @@ -13,9 +13,9 @@ #include #include -#include "ufshcd.h" +#include #include "ufshcd-pltfrm.h" -#include "unipro.h" +#include #define UFSHCD_DEFAULT_LANES_PER_DIRECTION 2 diff --git a/drivers/scsi/ufs/ufshcd-pltfrm.h b/drivers/ufs/host/ufshcd-pltfrm.h similarity index 98% rename from drivers/scsi/ufs/ufshcd-pltfrm.h rename to drivers/ufs/host/ufshcd-pltfrm.h index c33e28ac6ef6..63cb306ed0ac 100644 --- a/drivers/scsi/ufs/ufshcd-pltfrm.h +++ b/drivers/ufs/host/ufshcd-pltfrm.h @@ -5,7 +5,7 @@ #ifndef UFSHCD_PLTFRM_H_ #define UFSHCD_PLTFRM_H_ -#include "ufshcd.h" +#include #define UFS_PWM_MODE 1 #define UFS_HS_MODE 2 diff --git a/drivers/scsi/ufs/ufshci-dwc.h b/drivers/ufs/host/ufshci-dwc.h similarity index 100% rename from drivers/scsi/ufs/ufshci-dwc.h rename to drivers/ufs/host/ufshci-dwc.h diff --git a/drivers/scsi/ufs/ufs.h b/include/scsi/ufs.h similarity index 100% rename from drivers/scsi/ufs/ufs.h rename to include/scsi/ufs.h diff --git a/drivers/scsi/ufs/ufs_quirks.h b/include/scsi/ufs_quirks.h similarity index 100% rename from drivers/scsi/ufs/ufs_quirks.h rename to include/scsi/ufs_quirks.h diff --git a/drivers/scsi/ufs/ufshcd.h b/include/scsi/ufshcd.h similarity index 99% rename from drivers/scsi/ufs/ufshcd.h rename to include/scsi/ufshcd.h index 16f69ab1b309..f7f5fe0a4a9f 100644 --- a/drivers/scsi/ufs/ufshcd.h +++ b/include/scsi/ufshcd.h @@ -18,10 +18,10 @@ #include #include #include -#include "unipro.h" -#include "ufs.h" -#include "ufs_quirks.h" -#include "ufshci.h" +#include +#include +#include +#include #define UFSHCD "ufshcd" diff --git a/drivers/scsi/ufs/ufshci.h b/include/scsi/ufshci.h similarity index 100% rename from drivers/scsi/ufs/ufshci.h rename to include/scsi/ufshci.h diff --git a/drivers/scsi/ufs/unipro.h b/include/scsi/unipro.h similarity index 100% rename from drivers/scsi/ufs/unipro.h rename to include/scsi/unipro.h