On 2018-05-15 21:31, Alim Akhtar wrote:
Ping !!!
On Thu, Mar 8, 2018 at 4:33 PM, Alim Akhtar
wrote:
Currently DMA mask for UFS HCI is set by reading CAP register's
[64AS] bit. Some HCI controller like Exynos support 36-bit bus
address.
This works perfectly fine with DMA mask set as 64 in ca
);
+extern int ufshcd_config_pwr_mode(struct ufs_hba *hba,
+ struct ufs_pa_layer_attr *desired_pwr_mode);
/* UIC command interfaces for DME primitives */
#define DME_LOCAL 0
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a
ks;/* Deviations from standard UFSHCI spec. */
/* Device deviations from standard UFS device spec. */
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
UIRK_SKIP_RESET_INTR_AGGR 0x200
+
unsigned int quirks;/* Deviations from standard UFSHCI spec. */
/* Device deviations from standard UFS device spec. */
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of C
ist is just opposite.
+*/
+ #define UFSHCI_QUIRK_BROKEN_REQ_LIST_CLR0x100
+
unsigned int quirks;/* Deviations from standard UFSHCI spec. */
/* Device deviations from standard UFS device spec. */
Looks good to me.
Reviewed-by: Subhash Jadavani
caling.workq);
+ ufshcd_devfreq_remove(hba);
}
ufshcd_setup_clocks(hba, false);
ufshcd_setup_hba_vreg(hba, false);
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
i/ufs/ufshcd.h
@@ -361,6 +361,7 @@ struct ufs_clk_gating {
struct device_attribute enable_attr;
bool is_enabled;
int active_reqs;
+ struct workqueue_struct *clk_gating_workq;
};
struct ufs_saved_pwr_info {
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
On 2018-05-03 04:07, Asutosh Das wrote:
From: Subhash Jadavani
UFSHCD_QUIRK_BROKEN_UFS_HCI_VERSION is only applicable for QCOM UFS
host
controller version 2.x.y and this has been fixed from version 3.x.y
onwards, hence this change removes this quirk for version 3.x.y
onwards.
Signed-off
_unlock(hba->host->host_lock);
return retval;
}
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
On 2018-05-03 04:07, Asutosh Das wrote:
From: Subhash Jadavani
Currently we call the scsi_block_requests()/scsi_unblock_requests()
whenever we want to block/unblock scsi requests but as there is no
reference counting, nesting of these calls could leave us in undesired
state sometime. Consider
On 2018-05-03 04:07, Asutosh Das wrote:
From: Subhash Jadavani
vendor specific setup_clocks ops may depend on clocks managed by ufshcd
driver so if the vendor specific setup_clocks callback is called when
the required clocks are turned off, it results into unclocked register
access.
This
retransmissions of the query requests,
in case of timeout.
Signed-off-by: Subhash Jadavani
Signed-off-by: Maya Erez
Signed-off-by: Can Guo
Signed-off-by: Asutosh Das
---
drivers/scsi/ufs/ufshcd.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs
we don't want to disable the LCC
on both host & device; hence this change splits the quirk in 2 parts
one for host and one for device.
Signed-off-by: Subhash Jadavani
Signed-off-by: Venkat Gopalakrishnan
Signed-off-by: Can Guo
Signed-off-by: Asutosh Das
---
drivers/scsi/ufs/ufsh
On 2018-05-03 04:07, Asutosh Das wrote:
Enable UFSHCD_QUIRK_BROKEN_PWR_MODE_CHANGE quirk to avoid failures
in seen on some UFS devices.
Signed-off-by: Asutosh Das
---
drivers/scsi/ufs/ufs-qcom.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/ufs/ufs-qcom.c b/d
On 2018-05-03 04:07, Asutosh Das wrote:
From: Yaniv Gardi
Due to M-PHY issues, moving from HS to any other mode or gear or
even Hibern8 may cause some un-predicted behavior
of the device.
This patch adds provides a quirk to address that.
Signed-off-by: Yaniv Gardi
Signed-off-by: Subhash
X_MODEL_LEN] = '\0';
out:
+ kfree(desc_buf);
return err;
}
--
2.17.0
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
t;freq_table[0] = clki->min_freq;
+ profile->freq_table[1] = clki->max_freq;
+
devfreq = devm_devfreq_add_device(hba->dev,
- &ufs_devfreq_profile,
+ profile,
"simple_ondemand",
goto out;
- }
}
hba->clk_scaling.is_allowed = true;
}
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
retransmissions of the query requests,
in case of timeout.
Signed-off-by: Subhash Jadavani
Signed-off-by: Maya Erez
Signed-off-by: Can Guo
Signed-off-by: Asutosh Das
---
drivers/scsi/ufs/ufshcd.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs
On 2017-11-13 01:14, Michal Potomski wrote:
From: Michał Potomski
Recent testing of Runtime PM for UFS has shown it's not
working as intended. To acheive fully working Runtime PM,
first we have to put back scsi_device autopm reference counter.
Existing implementation was prone to races and n
et_voltage(reg, min_uV, vreg->max_uV);
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
phy *phy);
int ufs_qcom_phy_set_tx_lane_enable(struct phy *phy, u32 tx_lanes);
-int ufs_qcom_phy_calibrate_phy(struct phy *phy, bool is_rate_B);
-int ufs_qcom_phy_is_pcs_ready(struct phy *phy);
void ufs_qcom_phy_save_controller_version(struct phy *phy,
u8 major, u16 minor, u16 step);
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
*/
struct ufshcd_lrb {
@@ -189,6 +190,7 @@ struct ufshcd_lrb {
u8 lun; /* UPIU LUN id field is only 8-bit wide */
bool intr_cmd;
ktime_t issue_time_stamp;
+ ktime_t compl_time_stamp;
bool req_abort_skip;
};
Looks good to me.
Reviewed-by: Subhash Jadavani
--
Hi Vivek,
Please find one comment inline below, rest look good.
Regards,
Subhash
On 2017-08-03 23:48, Vivek Gautam wrote:
Refactor ufs_qcom_power_up_sequence() to get rid of ugly
exported phy APIs and use the phy_init() and phy_power_on()
to do the phy initialization.
Signed-off-by: Vivek Gau
);
/* provide 1ms delay to let the reset pulse propagate */
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
On 2017-08-09 00:28, Bean Huo (beanhuo) wrote:
Hi,
I am now using one hikey960, and Linux kernel version is 4.4.77.
And found that for UFS driver version, the maximum transformation is
8KB.
Means that if I using 128KB chuck size to program in the user space,
but, from ftrace/blktrace,
It shows
) ||
+ (hba->ufs_version == UFSHCI_VERSION_11))
lrbp->command_type = UTP_CMD_TYPE_SCSI;
+ else
+ lrbp->command_type = UTP_CMD_TYPE_UFS_STORAGE;
if (likely(lrbp->cmd)) {
ufshcd_prepare_req_desc_hdr(lrbp, &upiu_flags,
host upmcrs:0x%x\n",
cmd->command, status);
ret = (status != PWR_OK) ? status : -1;
}
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
On 2017-09-20 03:30, Zang Leigang wrote:
Signed-off-by: Zang Leigang
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 794a4600e952..2984f33095be 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -385,6 +385,8 @@ void ufshcd_print_trs(struct ufs_hb
e_put(sdev_boot);
goto out;
-remove_sdev_boot:
- scsi_remove_device(sdev_boot);
remove_sdev_ufs_device:
scsi_remove_device(hba->sdev_ufs_device);
out:
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code
On 2017-06-28 19:25, Zang Leigang wrote:
On Wed, Jun 28, 2017 at 04:42:36PM -0700, Subhash Jadavani wrote:
On 2017-06-24 03:27, Zang Leigang wrote:
>Host set ocs to OCS_ABORTED when clear a doorbell in err handler.
OCS field is valid after host controller has cleared the
corresponding doorb
On 2017-06-24 04:44, Zang Leigang wrote:
Some device can successfully link and switch to HS mode. But failed
to do more. ufshcd_verify_dev_init can help to find this earlier.
Signed-off-by: Zang Leigang
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index ffe8d8608818..eb03
_dbg(hba->dev, "%s: reset in progress\n", __func__);
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
On 2017-06-24 03:27, Zang Leigang wrote:
Host set ocs to OCS_ABORTED when clear a doorbell in err handler.
OCS field is valid after host controller has cleared the corresponding
doorbell (UTRLDBR) bit to zero. And here HW would be clearing the
doorbell bit, not the SW. So I am not sure what d
On 2017-06-22 04:51, Arnd Bergmann wrote:
On Thu, Jun 22, 2017 at 1:44 PM, Bu Tao wrote:
在 2017/6/17 5:51, Arnd Bergmann 写道:
On Fri, Jun 16, 2017 at 8:51 AM, Bu Tao wrote:
+Optional properties for board device:
+- ufs-hi3660-use-rate-B: specifies UFS rate-B
+- ufs-hi3660-brok
On 2017-06-09 18:20, butao wrote:
add Auto-Hibernate Idle Timer value for hi3660 ufs
Signed-off-by: Bu Tao
Signed-off-by: Geng Jianfeng
Signed-off-by: Zang Leigang
Signed-off-by: Yu Jianfeng
---
drivers/scsi/ufs/ufshci.h | 3 +++
1 file changed, 3 insertions(+)
mode change 100644 => 100755
On 2017-06-05 01:36, Adrian Hunter wrote:
From: Szymon Mielczarek
This patch adds a glue pci driver for Intel UFS Host controllers.
Signed-off-by: Szymon Mielczarek
Signed-off-by: Adrian Hunter
---
drivers/scsi/ufs/Kconfig| 11 +++
drivers/scsi/ufs/Makefile | 1 +
d
list_for_each_entry(clki, head, list) {
@@ -7811,6 +7811,8 @@ int ufshcd_alloc_host(struct device *dev, struct
ufs_hba **hba_handle)
hba->dev = dev;
*hba_handle = hba;
+ INIT_LIST_HEAD(&hba->clk_list_head);
+
out_error:
return err;
}
Looks good to m
ufshcd_disable_intr(hba, hba->intr_mask);
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
tatic void
ufshcd_exception_event_handler(struct work_struct *work)
out:
pm_runtime_put_sync(hba->dev);
- return;
}
/* Complete requests that have door-bell cleared */
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora F
on failed\n");
+ if (!hba->lrb)
goto out;
- }
+
return 0;
out:
return -ENOMEM;
Looks good to me.
Reviewed-by: Subhash Jadavani
PS: ufshcd_memory_alloc() also does some DMA coherent memory allocation
(via dmam_alloc_coherent() APIs) and tries
lrb) {
dev_err(hba->dev, "LRB Memory allocation failed\n");
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
_TASK_REQ_LIST_READY |\
+ UIC_COMMAND_READY)
+
enum {
PWR_OK = 0x0,
PWR_LOCAL = 0x01,
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
On 2017-04-20 05:01, kusumi.tomoh...@gmail.com wrote:
From: Tomohiro Kusumi
It could be just cmp 0xe instead of >>1 and cmp 0x7, with readable
code.
Signed-off-by: Tomohiro Kusumi
---
drivers/scsi/ufs/ufshcd.c | 11 +--
drivers/scsi/ufs/ufshci.h | 4
2 files changed, 5 insert
NTROL, 0, 0, &val);
if (!err)
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
hba->clk_scaling.workq = create_singlethread_workqueue(wq_name);
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
ENABLE,
- UFSHCD_INT_CLEAR,
-};
-
#define ufshcd_set_eh_in_progress(h) \
((h)->eh_flags |= UFSHCD_EH_IN_PROGRESS)
#define ufshcd_eh_in_progress(h) \
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum
UFS_BIT(1)
/* UECPA - Host UIC Error Code PHY Adapter Layer 38h */
#define UIC_PHY_ADAPTER_LAYER_ERRORUFS_BIT(31)
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative
}
/*
-* If we here, it means gating work is either done or
+* If we are here, it means gating work is either done or
* currently running. Hence, fall through to cancel gating
* work and to enable clocks.
, REG_CONTROLLER_ENABLE) & 0x1) ? false :
true;
+ return (ufshcd_readl(hba, REG_CONTROLLER_ENABLE) & CONTROLLER_ENABLE)
+ ? false : true;
}
static const char *ufschd_uic_link_state_to_string(
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm In
bool ufshcd_is_hba_active(struct ufs_hba *hba)
{
- return (ufshcd_readl(hba, REG_CONTROLLER_ENABLE) & 0x1) ? 0 : 1;
+ return (ufshcd_readl(hba, REG_CONTROLLER_ENABLE) & 0x1) ? false :
true;
}
static const char *ufschd_uic_link_state_to_string(
Looks good to me.
Reviewed-by: Subh
ERY_OPCODE_WRITE_ATTR,
+ QUERY_ATTR_IDN_ACTIVE_ICC_LVL, 0, 0,
+ &hba->init_prefetch_data.icc_level);
if (ret)
dev_err(hba->dev,
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
_mask = INTERRUPT_MASK_ALL_VER_21;
+ break;
}
return intr_mask;
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
wed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
goto out;
}
LGTM.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
On 2017-03-15 10:26, James Bottomley wrote:
On Mon, 2017-03-13 at 17:19 -0700, Subhash Jadavani wrote:
On 2017-03-12 03:22, Tomas Winkler wrote:
> Fix compilation warning
>
> drivers/scsi/ufs/ufshcd.c:7645:13: warning: comparison of unsigned
> expression < 0 is always false [-Wty
flags);
LGTM.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
On 2017-02-27 19:24, Martin K. Petersen wrote:
"Michal" == Potomski, MichalX writes:
Michal> Since in UFS 2.1 specification some of the descriptor lengths
Michal> differs from 2.0 specification and some devices, which are
Michal> reporting spec version 2.0 have different descriptor lengths we
On 2017-02-20 19:06, Martin K. Petersen wrote:
"Subhash" == Subhash Jadavani writes:
Subhash,
Subhash> Dan Carpenter reported this: ---
The
Subhash> patch 9c46b8676271: "scsi: ufs-qcom: dump additional testbus
Subhash> registers" from Feb 3, 2017, leads to
ns true if clocks can be gated. Otherwise false */
@@ -733,6 +744,10 @@ int ufshcd_query_flag(struct ufs_hba *hba, enum
query_opcode opcode,
enum flag_idn idn, bool *flag_res);
int ufshcd_hold(struct ufs_hba *hba, bool async);
void ufshcd_release(struct ufs_hba *hba);
+
+int ufshcd_ma
__func__, host->testbus.select_minor);
1535 return false;
1536 }
1537
1538 return true;
1539 }
---
As data type of "select_minor" is u8, above check is redundant. This change
removes it.
Reported-by: Dan Carpenter
Signed-off-by: Subha
On 2017-02-13 23:58, Dan Carpenter wrote:
Hello Venkat Gopalakrishnan,
The patch 9c46b8676271: "scsi: ufs-qcom: dump additional testbus
registers" from Feb 3, 2017, leads to the following static checker
warning:
drivers/scsi/ufs/ufs-qcom.c:1531 ufs_qcom_testbus_cfg_is_ok()
warn:
From: Venkat Gopalakrishnan
Change testbus default config, dump additional testbus registers along
with other debug vendor specific registers. These additional info are
useful in debugging link related failures.
Signed-off-by: Venkat Gopalakrishnan
Signed-off-by: Subhash Jadavani
---
drivers
UFS clock scaling might start kicking in even before the device
is running at the fastest interface speed which is undesirable.
This change moves the clock scaling kick start only after the
device is detected and running at the fastest interface speed.
Signed-off-by: Subhash Jadavani
From: Venkat Gopalakrishnan
Dump host state, power info and host/vendor specific registers
on link failures. This provides useful info to debug the failures.
Signed-off-by: Venkat Gopalakrishnan
Signed-off-by: Subhash Jadavani
---
drivers/scsi/ufs/ufshcd.c | 12 +++-
1 file changed
ff-by: Subhash Jadavani
---
drivers/scsi/ufs/ufshcd.c | 185 --
drivers/scsi/ufs/ufshcd.h | 31 +++-
2 files changed, 171 insertions(+), 45 deletions(-)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 056e912..4f6ba24 100644
efforts.
Added prints of various fields in the hba struct which may be
of interest.
Signed-off-by: Gilad Broner
Signed-off-by: Subhash Jadavani
---
drivers/scsi/ufs/ufshcd.c | 25 +
1 file changed, 25 insertions(+)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi
rt
to scale gear between HS-G3 and HS-G1 based on same existing load based
clock scaling logic.
Signed-off-by: Subhash Jadavani
---
drivers/scsi/ufs/ufshcd.c | 594 --
drivers/scsi/ufs/ufshcd.h | 9 +
2 files changed, 428 insertions(+), 175 deletions(-)
subsequent requests.
Signed-off-by: Gilad Broner
Signed-off-by: Subhash Jadavani
---
drivers/scsi/ufs/ufshcd.c | 46 --
drivers/scsi/ufs/ufshcd.h | 3 +++
2 files changed, 35 insertions(+), 14 deletions(-)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi
(3):
scsi: ufs: skip request abort task when previous aborts failed
scsi: ufs: reduce printout for aborted requests
scsi: ufs: add host state prints in failure cases
Subhash Jadavani (3):
scsi: ufs: add load based scaling of UFS gear
scsi: ufs: don't suspend clock scaling during
Signed-off-by: Subhash Jadavani
---
drivers/scsi/ufs/ufshcd.c | 20
drivers/scsi/ufs/ufshcd.h | 3 +++
2 files changed, 23 insertions(+)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index a70bf06..61fea17 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b
__func__, ret);
+ goto out;
+ }
+
+ ufs_fixup_device_setup(hba, &card);
ufshcd_tune_unipro_params(hba);
ret = ufshcd_set_vccq_rail_unused(hba,
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of C
L_UNIT_MASK) >>
ATTR_ICC_LVL_UNIT_OFFSET;
curr_uA = data & ATTR_ICC_LVL_VALUE_MASK;
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
--
To unsubscribe from this list: send the li
struct ufs_hba *hba, int desc_index, u8
*buf,
- u32 size, bool ascii);
-
/* Expose Query-Request API */
int ufshcd_query_flag(struct ufs_hba *hba, enum query_opcode opcode,
enum flag_idn idn, bool *flag_res);
Looks good to me.
Reviewed-by: Subhash Jadavani
);
/**
* ufshcd_read_desc_param - read the specified descriptor parameter
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
--
To unsubscribe from this list: send the line "unsubscribe linux
tem_resume,
and trace_ufshcd_init
Where:
hba->uic_link_state is passed to dev_state
hba->curr_dev_pwr_mode is passed to link_state
This wasn't intentional so it's a bug. This change fixed this bug.
Reported-by: Colin Ian King
Signed-off-by: Subhash Jadavani
---
driv
_device_id
ufs_qcom_of_match[] = {
{ .compatible = "qcom,ufshc"},
{},
};
+MODULE_DEVICE_TABLE(of, ufs_qcom_of_match);
static const struct dev_pm_ops ufs_qcom_pm_ops = {
.suspend= ufshcd_pltfrm_suspend,
Looks good to me.
Reviewed-by: Subhash Jadavani
--
The
doing any
regular data transfer but sometimes device may not behave properly if host
keeps the auto-bkops disabled. This change adds the capability to let the
device auto-bkops always enabled except suspend.
Reviewed-by: Sahitya Tummala
Signed-off-by: Subhash Jadavani
---
drivers/scsi/ufs/ufs
ts/ufs/enable
cat /sys/kernel/debug/tracing/trace_pipe
Signed-off-by: Lee Susman
Signed-off-by: Subhash Jadavani
---
Changes from v2 -> v3:
- Removed conditional compilation based on CONFIG_TRACEPOINTS and
used trace_*_enabled() to skip unnecessary code path execution.
---
drivers/scsi/uf
From: Sahitya Tummala
Provide an option to enable/disable clock gating during runtime.
Write 1 or 0 to "clkgate_enable" sysfs node to enable/disable
clock gating.
Signed-off-by: Sahitya Tummala
Signed-off-by: Subhash Jadavani
---
drivers/scsi/ufs/ufs
This patch adds the profiling support for some of the time critical
operations like hibern8 enter/exit, clock gating & clock scaling.
Reviewed-by: Venkat Gopalakrishnan
Signed-off-by: Subhash Jadavani
---
drivers/scsi/ufs/ufshcd.c | 24
include/trace/events/ufs.h
.
Above issue is fixed by setting the default power mode immediately after
successful link startup.
Reviewed-by: Sahitya Tummala
Signed-off-by: Subhash Jadavani
---
drivers/scsi/ufs/ufshcd.c | 7 ---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drive
From: Sahitya Tummala
Provide an option to enable/disable clock scaling during runtime.
Write 1/0 to "clkscale_enable" sysfs node to enable/disable clock
scaling.
Signed-off-by: Sahitya Tummala
Signed-off-by: Subhash Jadavani
---
drivers/scsi/ufs/ufs
good power savings with relatively less enter/exit
latencies.
Reviewed-by: Yaniv Gardi
Signed-off-by: Subhash Jadavani
---
Changes from v2 -> v3:
- Simplified patch to just set the default power management level.
Device tree capability to specify broken hardware will be taken up
: Subhash Jadavani
---
Changes from v1 -> v2:
- Added explicit new line character at the end of the printk messages.
---
drivers/scsi/ufs/ufshcd.c | 203 --
drivers/scsi/ufs/ufshcd.h | 47 +++
2 files changed, 208 insertions(+), 42 deletions(-)
d
This patch provides the sysfs attribute to choose the power management
level for UFS runtime and system suspend.
Reviewed-by: Sujit Reddy Thumma
Signed-off-by: Subhash Jadavani
---
drivers/scsi/ufs/ufshcd.c | 144 ++
drivers/scsi/ufs/ufshcd.h | 2
are skipped
and the last step, reset and restore process, is initiated.
Signed-off-by: Dolev Raviv
Signed-off-by: Subhash Jadavani
---
drivers/scsi/ufs/ufshcd.c | 13 -
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs
ing/trace_pipe
Reviewed-by: Sahitya Tummala
Signed-off-by: Subhash Jadavani
---
Changes from v2 -> v3:
- Used TRACE_DEFINE_ENUM to print out enums
---
drivers/scsi/ufs/ufshcd.c | 85 ++---
include/trace/events/ufs.h | 185 +
2 files change
From: Dolev Raviv
Inserts driver dumps for UFS Host Controller registers, Transfer Requests
and Task Management Requests.
The dumps will occur on driver initialization failure, ufshcd_abort() and
on error handling path.
Signed-off-by: Dolev Raviv
Signed-off-by: Subhash Jadavani
---
Changes
:
scsi: ufs: Add sysfs node to dynamically control clock gating
scsi: ufs: Add sysfs node to dynamically control clock scaling
Subhash Jadavani (6):
scsi: ufs: add tracing support
scsi: ufs: provide sysfs attribute to select the PM level
scsi: ufs: set default UFS power managemen
On 2016-12-19 10:38, Rob Herring wrote:
On Tue, Dec 13, 2016 at 2:16 PM, Subhash Jadavani
wrote:
On 2016-12-13 12:04, Rob Herring wrote:
On Mon, Dec 12, 2016 at 04:54:20PM -0800, Subhash Jadavani wrote:
UFS device and link can be put in multiple different low power modes
hence
UFS driver
On 2016-12-13 12:22, Steven Rostedt wrote:
On Tue, 13 Dec 2016 11:52:16 -0800
Subhash Jadavani wrote:
From: Lee Susman
Use the ftrace infrastructure to conditionally trace ufs command
events.
New trace event is created, which samples the following ufs command
data:
- device name
On 2016-12-13 12:10, Steven Rostedt wrote:
On Tue, 13 Dec 2016 11:48:45 -0800
Subhash Jadavani wrote:
This change adds the ftrace support for following:
1. UFS initialization time
2. Clock gating states
3. Clock scaling states
4. Power management APIs latency
5. BKOPs enable/disable
Usage
On 2016-12-13 12:04, Rob Herring wrote:
On Mon, Dec 12, 2016 at 04:54:20PM -0800, Subhash Jadavani wrote:
UFS device and link can be put in multiple different low power modes
hence
UFS driver supports multiple different low power modes. By default UFS
driver selects the default (optimal) low
ts/ufs/enable
cat /sys/kernel/debug/tracing/trace_pipe
Signed-off-by: Lee Susman
Signed-off-by: Subhash Jadavani
---
drivers/scsi/ufs/ufshcd.c | 52 +-
include/trace/events/ufs.h | 38 +
2 files changed, 89 insertions(+
From: Dolev Raviv
Inserts driver dumps for UFS Host Controller registers, Transfer Requests
and Task Management Requests.
The dumps will occur on driver initialization failure, ufshcd_abort() and
on error handling path.
Signed-off-by: Dolev Raviv
Signed-off-by: Subhash Jadavani
---
Changes v1
ent for ufs commands
Sahitya Tummala (2):
scsi: ufs: Add sysfs node to dynamically control clock gating
scsi: ufs: Add sysfs node to dynamically control clock scaling
Subhash Jadavani (6):
scsi: ufs: add tracing support
scsi: ufs: provide sysfs attribute to select the PM level
scsi: u
From: Sahitya Tummala
Provide an option to enable/disable clock gating during runtime.
Write 1 or 0 to "clkgate_enable" sysfs node to enable/disable
clock gating.
Signed-off-by: Sahitya Tummala
Signed-off-by: Subhash Jadavani
---
drivers/scsi/ufs/ufs
have to tune this default power mode for different chipset
platforms to meet the low power requirements/goals. Hence this patch
adds option to change default UFS low power mode (level).
Reviewed-by: Yaniv Gardi
Signed-off-by: Subhash Jadavani
---
.../devicetree/bindings/ufs/ufshcd-pltfrm.txt
: Subhash Jadavani
---
Changes v1 -> v2:
- Added explicit new line character at the end of the printk messages.
---
drivers/scsi/ufs/ufshcd.c | 203 --
drivers/scsi/ufs/ufshcd.h | 47 +++
2 files changed, 208 insertions(+), 42 deletions(-)
diff --
1 - 100 of 281 matches
Mail list logo