summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/boot/dts/qcom/msm8996.dtsi12
-rw-r--r--drivers/char/adsprpc.c7
-rw-r--r--drivers/platform/msm/ipa/ipa_v3/ipa_client.c16
-rw-r--r--drivers/power/supply/qcom/smb1351-charger.c2
-rw-r--r--drivers/soc/qcom/icnss.c6
-rw-r--r--drivers/usb/gadget/function/f_ccid.c2
6 files changed, 41 insertions, 4 deletions
diff --git a/arch/arm/boot/dts/qcom/msm8996.dtsi b/arch/arm/boot/dts/qcom/msm8996.dtsi
index 016fa30a876c..ed72e18d90bc 100644
--- a/arch/arm/boot/dts/qcom/msm8996.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8996.dtsi
@@ -186,9 +186,17 @@
dev = "/dev/block/platform/soc/7464900.sdhci/by-name/vendor";
type = "ext4";
mnt_flags = "ro,barrier=1,discard";
- fsmgr_flags = "wait,slotselect";
+ fsmgr_flags = "wait";
status = "ok";
- };
+ };
+ system {
+ compatible = "android,system";
+ dev = "/dev/block/platform/soc/7464900.sdhci/by-name/system";
+ type = "ext4";
+ mnt_flags = "ro,barrier=1,discard";
+ fsmgr_flags = "wait";
+ status = "ok";
+ };
};
};
};
diff --git a/drivers/char/adsprpc.c b/drivers/char/adsprpc.c
index def2694eb3de..614ce7b7d5a6 100644
--- a/drivers/char/adsprpc.c
+++ b/drivers/char/adsprpc.c
@@ -1665,12 +1665,19 @@ static int fastrpc_init_process(struct fastrpc_file *fl,
inbuf.namelen = strlen(current->comm) + 1;
inbuf.filelen = init->filelen;
fl->pd = 1;
+
+ if (!access_ok(0, (void const __user *)init->file,
+ init->filelen))
+ goto bail;
if (init->filelen) {
VERIFY(err, !fastrpc_mmap_create(fl, init->filefd, 0,
init->file, init->filelen, mflags, &file));
if (err)
goto bail;
}
+ if (!access_ok(1, (void const __user *)init->mem,
+ init->memlen))
+ goto bail;
inbuf.pageslen = 1;
VERIFY(err, !fastrpc_mmap_create(fl, init->memfd, 0,
init->mem, init->memlen, mflags, &mem));
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_client.c b/drivers/platform/msm/ipa/ipa_v3/ipa_client.c
index 1ec73c4a35de..69dda048f2bb 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa_client.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa_client.c
@@ -1210,6 +1210,22 @@ int ipa3_request_gsi_channel(struct ipa_request_gsi_channel_params *params,
ep->priv = params->priv;
ep->keep_ipa_awake = params->keep_ipa_awake;
+
+ /* Config QMB for USB_CONS ep */
+ if (!IPA_CLIENT_IS_PROD(ep->client)) {
+ IPADBG("Configuring QMB on USB CONS pipe\n");
+ if (ipa_ep_idx >= ipa3_ctx->ipa_num_pipes ||
+ ipa3_ctx->ep[ipa_ep_idx].valid == 0) {
+ IPAERR("bad parm.\n");
+ return -EINVAL;
+ }
+ result = ipa3_cfg_ep_cfg(ipa_ep_idx, &params->ipa_ep_cfg.cfg);
+ if (result) {
+ IPAERR("fail to configure QMB.\n");
+ return result;
+ }
+ }
+
if (!ep->skip_ep_cfg) {
if (ipa3_cfg_ep(ipa_ep_idx, &params->ipa_ep_cfg)) {
IPAERR("fail to configure EP.\n");
diff --git a/drivers/power/supply/qcom/smb1351-charger.c b/drivers/power/supply/qcom/smb1351-charger.c
index 9ba333a59d45..2f8833539cb4 100644
--- a/drivers/power/supply/qcom/smb1351-charger.c
+++ b/drivers/power/supply/qcom/smb1351-charger.c
@@ -1634,7 +1634,7 @@ static int smb1351_parallel_set_property(struct power_supply *psy,
case POWER_SUPPLY_PROP_VOLTAGE_MAX:
chip->vfloat_mv = val->intval / 1000;
if (!chip->parallel_charger_suspended)
- rc = smb1351_float_voltage_set(chip, val->intval);
+ rc = smb1351_float_voltage_set(chip, chip->vfloat_mv);
break;
default:
return -EINVAL;
diff --git a/drivers/soc/qcom/icnss.c b/drivers/soc/qcom/icnss.c
index 73d6bea83b95..e7f83ed1307b 100644
--- a/drivers/soc/qcom/icnss.c
+++ b/drivers/soc/qcom/icnss.c
@@ -2246,6 +2246,12 @@ static int icnss_driver_event_register_driver(void *data)
if (test_bit(SKIP_QMI, &quirks))
set_bit(ICNSS_FW_READY, &penv->state);
+ if (test_bit(ICNSS_FW_DOWN, &penv->state)) {
+ icnss_pr_err("FW is in bad state, state: 0x%lx\n",
+ penv->state);
+ return -ENODEV;
+ }
+
if (!test_bit(ICNSS_FW_READY, &penv->state)) {
icnss_pr_dbg("FW is not ready yet, state: 0x%lx\n",
penv->state);
diff --git a/drivers/usb/gadget/function/f_ccid.c b/drivers/usb/gadget/function/f_ccid.c
index 9523d67dfb15..9a53cd328cc5 100644
--- a/drivers/usb/gadget/function/f_ccid.c
+++ b/drivers/usb/gadget/function/f_ccid.c
@@ -121,7 +121,7 @@ static struct usb_ccid_class_descriptor ccid_class_desc = {
.dwSynchProtocols = 0,
.dwMechanical = 0,
/* This value indicates what intelligent features the CCID has */
- .dwFeatures = CCID_FEATURES_EXC_SAPDU |
+ .dwFeatures = CCID_FEATURES_EXC_TPDU |
CCID_FEATURES_AUTO_PNEGO |
CCID_FEATURES_AUTO_BAUD |
CCID_FEATURES_AUTO_CLOCK |