On 1/8/2024 7:27 AM, Mukesh Ojha wrote: > QCOM_SCM_BOOT_SET_DLOAD_MODE was only valid for very older > target and firmware and for recent targets there is dload > mode tcsr registers is available to set the download mode. > > So, it is better to keep it as fallback check instead of > checking its availability and failing it always. > > Signed-off-by: Mukesh Ojha <quic_mojha@xxxxxxxxxxx> Reviewed-by: Elliot Berman <quic_eberman@xxxxxxxxxxx> > --- > drivers/firmware/qcom/qcom_scm.c | 12 +++++------- > 1 file changed, 5 insertions(+), 7 deletions(-) > > diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c > index 4421f219fe9a..87bcd5c02f2b 100644 > --- a/drivers/firmware/qcom/qcom_scm.c > +++ b/drivers/firmware/qcom/qcom_scm.c > @@ -532,18 +532,16 @@ static int __qcom_scm_set_dload_mode(struct device *dev, bool enable) > static void qcom_scm_set_download_mode(bool enable) > { > u32 val = enable ? QCOM_DLOAD_FULLDUMP : QCOM_DLOAD_NODUMP; > - bool avail; > int ret = 0; > > - avail = __qcom_scm_is_call_available(__scm->dev, > - QCOM_SCM_SVC_BOOT, > - QCOM_SCM_BOOT_SET_DLOAD_MODE); > - if (avail) { > - ret = __qcom_scm_set_dload_mode(__scm->dev, enable); > - } else if (__scm->dload_mode_addr) { > + if (__scm->dload_mode_addr) { > ret = qcom_scm_io_rmw(__scm->dload_mode_addr, > QCOM_DLOAD_MASK, > FIELD_PREP(QCOM_DLOAD_MASK, val)); > + } else if (__qcom_scm_is_call_available(__scm->dev, > + QCOM_SCM_SVC_BOOT, > + QCOM_SCM_BOOT_SET_DLOAD_MODE)) { > + ret = __qcom_scm_set_dload_mode(__scm->dev, enable); > } else { > dev_err(__scm->dev, > "No available mechanism for setting download mode\n");