diff options
| -rw-r--r-- | arch/arm/boot/dts/qcom/msm8996.dtsi | 12 | ||||
| -rw-r--r-- | drivers/char/adsprpc.c | 7 | ||||
| -rw-r--r-- | drivers/platform/msm/ipa/ipa_v3/ipa_client.c | 16 | ||||
| -rw-r--r-- | drivers/power/supply/qcom/smb1351-charger.c | 2 | ||||
| -rw-r--r-- | drivers/soc/qcom/icnss.c | 6 | ||||
| -rw-r--r-- | drivers/usb/gadget/function/f_ccid.c | 2 |
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, ¶ms->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, ¶ms->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 | |
