summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-06-17 11:33:51 -0600
committerLinux Build Service Account <lnxbuild@localhost>2016-06-17 11:33:51 -0600
commite165108ca41c70d571481f296c9c5021321faee5 (patch)
treeb7fe100b7add417bddb59c5e61ded3969098a238
parentfa22bff01fb9199590e7c5cfe1ba87ed9d27b837 (diff)
parentc72e42a4432b362fa453e86a5aa5ec73e687ad60 (diff)
Promotion of kernel.lnx.4.4-160616.
CRs Change ID Subject -------------------------------------------------------------------------------------------------------------- 1022772 I24f3b01ae40d1242e64bfc87177142b0d64ac123 msm: mdss: hdmi: enable additional clocks for register a 1027010 I5e192c4d850bb040983024cfe163714fbebbb199 coresight: make 'coresight-name' a required property 1027807 I044ca5209c364d4bfb4f3bd504cdcb87021fd010 clk: msm: clock: Include logic to treat votable clocks/G 1027031 Id3c7c2627bdf37524067512db51d3180c570106d usb: gadget: f_diag: Decrement counter if zero length pa 1028203 I8f549a48efe19f66e3a336a21b75903f7800ed86 soc: qcom: msm_glink_pkt: Set transport field for device 1027875 If3ca0161923fcd73fdde77984aa5d80bfaec79a1 msm: mdss: enable ref count based PM_QOS request for DSI 1028328 I52761b04c594b10202a3823d49324a4991ecf3e4 msm: ipa3: fix condition tested on ipahal wrapper 1028032 Ie30158592fca057454152f3f46a5d8b89ae36b88 clk: qcom: gcc-msm8996: Add missing BCR for USB3 and PCI 1021499 Ia64afa3adb769674f6a9a60fde2c7397b7e4fe49 usb: gadget: gsi: Fix reporting of USB device's usage co 1028800 Id2625cd71b4c204ce10bc6dd007939834d2b9e10 ARM: dts: msm: Add codec reset gpio device node for msmc 1027443 If04e11b9e44aabb7c9389dbf79ed9c80c66c877e msm: ipa: fix static analysis issues 1027820 I9f804a122090ea4340f7873a5aa276dff00cbcb7 msm: ipa3: fix qmap deaggregation issue 1029606 If65b653137b5c0f69fb66d77389bd71e6c3a0259 ARM: dts: msm: update attributes for dfps memory for msm Change-Id: I4f0cf57b1331183a8159ace78586746d20119e31 CRs-Fixed: 1028328, 1028032, 1027443, 1027875, 1027010, 1021499, 1022772, 1027820, 1028203, 1027031, 1027807, 1028800, 1029606
-rw-r--r--Documentation/devicetree/bindings/arm/coresight.txt5
-rw-r--r--arch/arm/boot/dts/qcom/msm-gdsc-cobalt.dtsi3
-rw-r--r--arch/arm/boot/dts/qcom/msm8996.dtsi2
-rw-r--r--arch/arm/boot/dts/qcom/msmcobalt-audio.dtsi13
-rw-r--r--drivers/clk/msm/clock-gcc-cobalt.c4
-rw-r--r--drivers/clk/msm/clock-mmss-cobalt.c3
-rw-r--r--drivers/clk/qcom/gcc-msm8996.c4
-rw-r--r--drivers/hwtracing/coresight/of_coresight.c6
-rw-r--r--drivers/platform/msm/ipa/ipa_v2/rmnet_ipa.c7
-rw-r--r--drivers/platform/msm/ipa/ipa_v3/ipa_dp.c6
-rw-r--r--drivers/platform/msm/ipa/ipa_v3/ipahal/ipahal.c2
-rw-r--r--drivers/soc/qcom/msm_glink_pkt.c1
-rw-r--r--drivers/usb/gadget/function/f_diag.c1
-rw-r--r--drivers/usb/gadget/function/f_gsi.c24
-rw-r--r--drivers/video/fbdev/msm/mdss_dsi.c50
-rw-r--r--drivers/video/fbdev/msm/mdss_dsi.h4
-rw-r--r--drivers/video/fbdev/msm/mdss_hdmi_tx.c22
-rw-r--r--include/dt-bindings/clock/qcom,gcc-msm8996.h4
18 files changed, 117 insertions, 44 deletions
diff --git a/Documentation/devicetree/bindings/arm/coresight.txt b/Documentation/devicetree/bindings/arm/coresight.txt
index e82b4b79bc7d..598ce14b83ab 100644
--- a/Documentation/devicetree/bindings/arm/coresight.txt
+++ b/Documentation/devicetree/bindings/arm/coresight.txt
@@ -37,6 +37,8 @@ its hardware characteristcs.
layout using the generic DT graph presentation found in
"bindings/graph.txt".
+ * coresight-name: unique descriptive name of the component.
+
* Required properties for devices that don't show up on the AMBA bus, such as
non-configurable replicators:
@@ -54,8 +56,9 @@ its hardware characteristcs.
* port or ports: same as above.
-* Optional properties for all components:
* coresight-name: unique descriptive name of the component.
+
+* Optional properties for all components:
* reg-names: names corresponding to each reg property value.
* Optional properties for ETM/PTMs:
diff --git a/arch/arm/boot/dts/qcom/msm-gdsc-cobalt.dtsi b/arch/arm/boot/dts/qcom/msm-gdsc-cobalt.dtsi
index b761a06b9e2b..a2c8c89b08a3 100644
--- a/arch/arm/boot/dts/qcom/msm-gdsc-cobalt.dtsi
+++ b/arch/arm/boot/dts/qcom/msm-gdsc-cobalt.dtsi
@@ -39,6 +39,7 @@
regulator-name = "gdsc_hlos1_vote_lpass_adsp";
reg = <0x17d034 0x4>;
qcom,no-status-check-on-disable;
+ qcom,gds-timeout = <500>;
status = "disabled";
};
@@ -47,6 +48,7 @@
regulator-name = "gdsc_hlos1_vote_lpass_core";
reg = <0x17d038 0x4>;
qcom,no-status-check-on-disable;
+ qcom,gds-timeout = <500>;
status = "disabled";
};
@@ -125,6 +127,7 @@
<0x5066008 0x4>;
reg-names = "base", "hw_ctrl_addr";
qcom,no-status-check-on-disable;
+ qcom,gds-timeout = <500>;
status = "disabled";
};
diff --git a/arch/arm/boot/dts/qcom/msm8996.dtsi b/arch/arm/boot/dts/qcom/msm8996.dtsi
index 70f98c3b98c7..87a048e940d8 100644
--- a/arch/arm/boot/dts/qcom/msm8996.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8996.dtsi
@@ -220,8 +220,6 @@
};
dfps_data_mem: dfps_data_mem@83400000 {
- compatible = "shared-dma-pool";
- no-map;
reg = <0 0x83400000 0 0x1000>;
label = "dfps_data_mem";
};
diff --git a/arch/arm/boot/dts/qcom/msmcobalt-audio.dtsi b/arch/arm/boot/dts/qcom/msmcobalt-audio.dtsi
index 089b00ac7a4e..f4fa404f6c6b 100644
--- a/arch/arm/boot/dts/qcom/msmcobalt-audio.dtsi
+++ b/arch/arm/boot/dts/qcom/msmcobalt-audio.dtsi
@@ -138,6 +138,14 @@
qcom,node_has_rpm_clock;
#clock-cells = <1>;
};
+
+ wcd_rst_gpio: wcd_gpio_ctrl@64 {
+ compatible = "qcom,wcd-gpio-ctrl";
+ qcom,cdc-rst-n-gpio = <&tlmm 64 0>;
+ pinctrl-names = "aud_active", "aud_sleep";
+ pinctrl-0 = <&cdc_reset_active>;
+ pinctrl-1 = <&cdc_reset_sleep>;
+ };
};
&slim_aud {
@@ -155,10 +163,7 @@
17 18 19 20 21 22 23 24 25 26 27 28 29
30>;
- qcom,cdc-reset-gpio = <&tlmm 64 0>;
- pinctrl-names = "default", "idle";
- pinctrl-0 = <&cdc_reset_active>;
- pinctrl-1 = <&cdc_reset_sleep>;
+ qcom,wcd-rst-gpio-node = <&wcd_rst_gpio>;
clock-names = "wcd_clk", "wcd_native_clk";
clocks = <&clock_audio clk_audio_pmi_clk>,
diff --git a/drivers/clk/msm/clock-gcc-cobalt.c b/drivers/clk/msm/clock-gcc-cobalt.c
index 56b1c2c73dda..e8552f1ebf7e 100644
--- a/drivers/clk/msm/clock-gcc-cobalt.c
+++ b/drivers/clk/msm/clock-gcc-cobalt.c
@@ -1594,6 +1594,7 @@ static struct branch_clk gcc_bimc_gfx_clk = {
.cbcr_reg = GCC_BIMC_GFX_CBCR,
.has_sibling = 1,
.check_enable_bit = true,
+ .no_halt_check_on_disable = true,
.base = &virt_base,
.c = {
.dbg_name = "gcc_bimc_gfx_clk",
@@ -1642,6 +1643,7 @@ static struct branch_clk gcc_gpu_bimc_gfx_clk = {
.cbcr_reg = GCC_GPU_BIMC_GFX_CBCR,
.has_sibling = 1,
.check_enable_bit = true,
+ .no_halt_check_on_disable = true,
.base = &virt_base,
.c = {
.dbg_name = "gcc_gpu_bimc_gfx_clk",
@@ -1664,6 +1666,8 @@ static struct branch_clk gcc_gpu_bimc_gfx_src_clk = {
static struct branch_clk gcc_gpu_cfg_ahb_clk = {
.cbcr_reg = GCC_GPU_CFG_AHB_CBCR,
.has_sibling = 1,
+ .check_enable_bit = true,
+ .no_halt_check_on_disable = true,
.base = &virt_base,
.c = {
.dbg_name = "gcc_gpu_cfg_ahb_clk",
diff --git a/drivers/clk/msm/clock-mmss-cobalt.c b/drivers/clk/msm/clock-mmss-cobalt.c
index 4b102dc3f2a2..9182290d1a80 100644
--- a/drivers/clk/msm/clock-mmss-cobalt.c
+++ b/drivers/clk/msm/clock-mmss-cobalt.c
@@ -1095,6 +1095,7 @@ static struct branch_clk mmss_bimc_smmu_ahb_clk = {
.cbcr_reg = MMSS_BIMC_SMMU_AHB_CBCR,
.has_sibling = 1,
.check_enable_bit = true,
+ .no_halt_check_on_disable = true,
.base = &virt_base,
.c = {
.dbg_name = "mmss_bimc_smmu_ahb_clk",
@@ -1107,6 +1108,7 @@ static struct branch_clk mmss_bimc_smmu_axi_clk = {
.cbcr_reg = MMSS_BIMC_SMMU_AXI_CBCR,
.has_sibling = 1,
.check_enable_bit = true,
+ .no_halt_check_on_disable = true,
.base = &virt_base,
.c = {
.dbg_name = "mmss_bimc_smmu_axi_clk",
@@ -2069,6 +2071,7 @@ static struct branch_clk mmss_mnoc_ahb_clk = {
.cbcr_reg = MMSS_MNOC_AHB_CBCR,
.has_sibling = 0,
.check_enable_bit = true,
+ .no_halt_check_on_disable = true,
.base = &virt_base,
.c = {
.dbg_name = "mmss_mnoc_ahb_clk",
diff --git a/drivers/clk/qcom/gcc-msm8996.c b/drivers/clk/qcom/gcc-msm8996.c
index edcb2c616d31..a63680290219 100644
--- a/drivers/clk/qcom/gcc-msm8996.c
+++ b/drivers/clk/qcom/gcc-msm8996.c
@@ -3435,6 +3435,10 @@ static const struct qcom_reset_map gcc_msm8996_resets[] = {
[GCC_MSMPU_BCR] = { 0x8d000 },
[GCC_MSS_Q6_BCR] = { 0x8e000 },
[GCC_QREFS_VBG_CAL_BCR] = { 0x88020 },
+ [GCC_USB3_PHY_BCR] = { 0x50020 },
+ [GCC_USB3PHY_PHY_BCR] = { 0x50024 },
+ [GCC_PCIE_PHY_NOCSR_COM_PHY_BCR] = { 0x6F00C },
+ [GCC_PCIE_PHY_COM_BCR] = { 0x6F014 },
};
static const struct regmap_config gcc_msm8996_regmap_config = {
diff --git a/drivers/hwtracing/coresight/of_coresight.c b/drivers/hwtracing/coresight/of_coresight.c
index 5afebc05a359..6b935e1e3a20 100644
--- a/drivers/hwtracing/coresight/of_coresight.c
+++ b/drivers/hwtracing/coresight/of_coresight.c
@@ -119,10 +119,8 @@ struct coresight_platform_data *of_get_coresight_platform_data(
return ERR_PTR(-ENOMEM);
ret = of_property_read_string(node, "coresight-name", &pdata->name);
- if (ret) {
- /* Use device name as sysfs handle */
- pdata->name = dev_name(dev);
- }
+ if (ret)
+ return ERR_PTR(ret);
/* Get the number of input and output port for this component */
of_coresight_get_ports(node, &pdata->nr_inport, &pdata->nr_outport);
diff --git a/drivers/platform/msm/ipa/ipa_v2/rmnet_ipa.c b/drivers/platform/msm/ipa/ipa_v2/rmnet_ipa.c
index 9336250352f0..50e820992f29 100644
--- a/drivers/platform/msm/ipa/ipa_v2/rmnet_ipa.c
+++ b/drivers/platform/msm/ipa/ipa_v2/rmnet_ipa.c
@@ -618,6 +618,11 @@ static int wwan_add_ul_flt_rule_to_ipa(void)
struct ipa_flt_rule_add flt_rule_entry;
struct ipa_fltr_installed_notif_req_msg_v01 *req;
+ if (ipa_qmi_ctx == NULL) {
+ IPAWANERR("ipa_qmi_ctx is NULL!\n");
+ return -EFAULT;
+ }
+
pyld_sz = sizeof(struct ipa_ioc_add_flt_rule) +
sizeof(struct ipa_flt_rule_add);
param = kzalloc(pyld_sz, GFP_KERNEL);
@@ -638,7 +643,7 @@ static int wwan_add_ul_flt_rule_to_ipa(void)
param->num_rules = (uint8_t)1;
mutex_lock(&ipa_qmi_lock);
- for (i = 0; i < num_q6_rule && (ipa_qmi_ctx != NULL); i++) {
+ for (i = 0; i < num_q6_rule; i++) {
param->ip = ipa_qmi_ctx->q6_ul_filter_rule[i].ip;
memset(&flt_rule_entry, 0, sizeof(struct ipa_flt_rule_add));
flt_rule_entry.at_rear = true;
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_dp.c b/drivers/platform/msm/ipa/ipa_v3/ipa_dp.c
index f480cba044eb..429574878d1a 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa_dp.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa_dp.c
@@ -705,7 +705,7 @@ failure:
for (j = 0; j < i; j++) {
next_pkt = list_next_entry(tx_pkt, link);
list_del(&tx_pkt->link);
- if (desc[i].type != IPA_DATA_DESC_SKB_PAGED) {
+ if (desc[j].type != IPA_DATA_DESC_SKB_PAGED) {
dma_unmap_single(ipa3_ctx->pdev, tx_pkt->mem.phys_base,
tx_pkt->mem.size,
DMA_TO_DEVICE);
@@ -3157,12 +3157,8 @@ static int ipa3_assign_policy(struct ipa_sys_connect_params *in,
sys->free_skb = ipa3_free_skb_rx;
in->ipa_ep_cfg.aggr.aggr_en = IPA_ENABLE_AGGR;
in->ipa_ep_cfg.aggr.aggr = IPA_GENERIC;
- in->ipa_ep_cfg.aggr.aggr_byte_limit =
- IPA_GENERIC_AGGR_BYTE_LIMIT;
in->ipa_ep_cfg.aggr.aggr_time_limit =
IPA_GENERIC_AGGR_TIME_LIMIT;
- in->ipa_ep_cfg.aggr.aggr_pkt_limit =
- IPA_GENERIC_AGGR_PKT_LIMIT;
if (in->client == IPA_CLIENT_APPS_LAN_CONS) {
sys->pyld_hdlr = ipa3_lan_rx_pyld_hdlr;
sys->repl_hdlr =
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipahal/ipahal.c b/drivers/platform/msm/ipa/ipa_v3/ipahal/ipahal.c
index 7c6318ce121e..fa34b57b2d73 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipahal/ipahal.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipahal/ipahal.c
@@ -1212,7 +1212,7 @@ int ipahal_cp_proc_ctx_to_hw_buff(enum ipa_hdr_proc_type type,
if (!base ||
!hdr_len ||
(!phys_base && !hdr_base_addr) ||
- !hdr_base_addr || offset_entry) {
+ !hdr_base_addr || !offset_entry) {
IPAHAL_ERR("failed on validating params");
return -EINVAL;
}
diff --git a/drivers/soc/qcom/msm_glink_pkt.c b/drivers/soc/qcom/msm_glink_pkt.c
index f99000a973e5..490faf89ab76 100644
--- a/drivers/soc/qcom/msm_glink_pkt.c
+++ b/drivers/soc/qcom/msm_glink_pkt.c
@@ -1125,6 +1125,7 @@ static int glink_pkt_init_add_device(struct glink_pkt_dev *devp, int i)
devp->link_up = false;
devp->link_info.edge = devp->open_cfg.edge;
+ devp->link_info.transport = devp->open_cfg.transport;
devp->link_info.glink_link_state_notif_cb =
glink_pkt_link_state_cb;
devp->i = i;
diff --git a/drivers/usb/gadget/function/f_diag.c b/drivers/usb/gadget/function/f_diag.c
index bddee84d81e0..aea1e1d0fa11 100644
--- a/drivers/usb/gadget/function/f_diag.c
+++ b/drivers/usb/gadget/function/f_diag.c
@@ -270,6 +270,7 @@ static void diag_write_complete(struct usb_ep *ep,
/* Queue zero length packet */
if (!usb_ep_queue(ctxt->in, req, GFP_ATOMIC))
return;
+ ctxt->dpkts_tolaptop_pending--;
} else {
ctxt->dpkts_tolaptop++;
}
diff --git a/drivers/usb/gadget/function/f_gsi.c b/drivers/usb/gadget/function/f_gsi.c
index 461db2ef5e22..6964933e5077 100644
--- a/drivers/usb/gadget/function/f_gsi.c
+++ b/drivers/usb/gadget/function/f_gsi.c
@@ -532,19 +532,30 @@ static void ipa_work_handler(struct work_struct *w)
usb_ipa_w);
u8 event;
int ret = 0;
- struct device *gad_dev = &d_port->gadget->dev;
+ struct usb_gadget *gadget = d_port->gadget;
+ struct device *dev;
+ struct device *gad_dev;
event = read_event(d_port);
log_event_dbg("%s: event = %x sm_state %x", __func__,
event, d_port->sm_state);
+ if (gadget) {
+ dev = &gadget->dev;
+ if (!dev || !dev->parent) {
+ log_event_err("%s(): dev or dev->parent is NULL.\n",
+ __func__);
+ return;
+ }
+ gad_dev = dev->parent;
+ } else {
+ log_event_err("%s(): gadget is NULL.\n", __func__);
+ return;
+ }
+
switch (d_port->sm_state) {
case STATE_UNINITIALIZED:
- if (event == EVT_INITIALIZED) {
- d_port->sm_state = STATE_INITIALIZED;
- log_event_dbg("%s: ST_INIT_EVT_INIT", __func__);
- }
break;
case STATE_INITIALIZED:
if (event == EVT_CONNECT_IN_PROGRESS) {
@@ -2522,8 +2533,7 @@ static int gsi_bind(struct usb_configuration *c, struct usb_function *f)
goto dereg_rndis;
}
- post_event(&gsi->d_port, EVT_INITIALIZED);
- queue_work(gsi->d_port.ipa_usb_wq, &gsi->d_port.usb_ipa_w);
+ gsi->d_port.sm_state = STATE_INITIALIZED;
DBG(cdev, "%s: %s speed IN/%s OUT/%s NOTIFY/%s\n",
f->name,
diff --git a/drivers/video/fbdev/msm/mdss_dsi.c b/drivers/video/fbdev/msm/mdss_dsi.c
index 409fc05de06b..054f48fa0005 100644
--- a/drivers/video/fbdev/msm/mdss_dsi.c
+++ b/drivers/video/fbdev/msm/mdss_dsi.c
@@ -45,17 +45,47 @@ static struct mdss_dsi_data *mdss_dsi_res;
static struct pm_qos_request mdss_dsi_pm_qos_request;
-static void mdss_dsi_pm_qos_add_request(void)
+static void mdss_dsi_pm_qos_add_request(struct mdss_dsi_ctrl_pdata *ctrl_pdata)
{
- pr_debug("%s: add request", __func__);
- pm_qos_add_request(&mdss_dsi_pm_qos_request, PM_QOS_CPU_DMA_LATENCY,
- PM_QOS_DEFAULT_VALUE);
+ struct irq_info *irq_info;
+
+ if (!ctrl_pdata || !ctrl_pdata->shared_data)
+ return;
+
+ irq_info = ctrl_pdata->dsi_hw->irq_info;
+
+ if (!irq_info)
+ return;
+
+ mutex_lock(&ctrl_pdata->shared_data->pm_qos_lock);
+ if (!ctrl_pdata->shared_data->pm_qos_req_cnt) {
+ pr_debug("%s: add request irq\n", __func__);
+
+ mdss_dsi_pm_qos_request.type = PM_QOS_REQ_AFFINE_IRQ;
+ mdss_dsi_pm_qos_request.irq = irq_info->irq;
+ pm_qos_add_request(&mdss_dsi_pm_qos_request,
+ PM_QOS_CPU_DMA_LATENCY, PM_QOS_DEFAULT_VALUE);
+ }
+ ctrl_pdata->shared_data->pm_qos_req_cnt++;
+ mutex_unlock(&ctrl_pdata->shared_data->pm_qos_lock);
}
-static void mdss_dsi_pm_qos_remove_request(void)
+static void mdss_dsi_pm_qos_remove_request(struct dsi_shared_data *sdata)
{
- pr_debug("%s: remove request", __func__);
- pm_qos_remove_request(&mdss_dsi_pm_qos_request);
+ if (!sdata)
+ return;
+
+ mutex_lock(&sdata->pm_qos_lock);
+ if (sdata->pm_qos_req_cnt) {
+ sdata->pm_qos_req_cnt--;
+ if (!sdata->pm_qos_req_cnt) {
+ pr_debug("%s: remove request", __func__);
+ pm_qos_remove_request(&mdss_dsi_pm_qos_request);
+ }
+ } else {
+ pr_warn("%s: unbalanced pm_qos ref count\n", __func__);
+ }
+ mutex_unlock(&sdata->pm_qos_lock);
}
static void mdss_dsi_pm_qos_update_request(int val)
@@ -3183,14 +3213,13 @@ static int mdss_dsi_ctrl_probe(struct platform_device *pdev)
pr_info("%s: Dsi Ctrl->%d initialized, DSI rev:0x%x, PHY rev:0x%x\n",
__func__, index, ctrl_pdata->shared_data->hw_rev,
ctrl_pdata->shared_data->phy_rev);
+ mdss_dsi_pm_qos_add_request(ctrl_pdata);
if (index == 0)
ctrl_pdata->shared_data->dsi0_active = true;
else
ctrl_pdata->shared_data->dsi1_active = true;
- mdss_dsi_pm_qos_add_request();
-
return 0;
error_shadow_clk_deinit:
@@ -3387,6 +3416,7 @@ static int mdss_dsi_res_init(struct platform_device *pdev)
}
mutex_init(&sdata->phy_reg_lock);
+ mutex_init(&sdata->pm_qos_lock);
for (i = 0; i < DSI_CTRL_MAX; i++) {
mdss_dsi_res->ctrl_pdata[i] = devm_kzalloc(&pdev->dev,
@@ -3657,7 +3687,7 @@ static int mdss_dsi_ctrl_remove(struct platform_device *pdev)
return -ENODEV;
}
- mdss_dsi_pm_qos_remove_request();
+ mdss_dsi_pm_qos_remove_request(ctrl_pdata->shared_data);
if (msm_dss_config_vreg(&pdev->dev,
ctrl_pdata->panel_power_data.vreg_config,
diff --git a/drivers/video/fbdev/msm/mdss_dsi.h b/drivers/video/fbdev/msm/mdss_dsi.h
index a6f27c0aaee7..6be44e070205 100644
--- a/drivers/video/fbdev/msm/mdss_dsi.h
+++ b/drivers/video/fbdev/msm/mdss_dsi.h
@@ -281,6 +281,10 @@ struct dsi_shared_data {
struct msm_bus_scale_pdata *bus_scale_table;
u32 bus_handle;
u32 bus_refcount;
+
+ /* Shared mutex for pm_qos ref count */
+ struct mutex pm_qos_lock;
+ u32 pm_qos_req_cnt;
};
struct mdss_dsi_data {
diff --git a/drivers/video/fbdev/msm/mdss_hdmi_tx.c b/drivers/video/fbdev/msm/mdss_hdmi_tx.c
index 09ece57e7909..7887b865f3c4 100644
--- a/drivers/video/fbdev/msm/mdss_hdmi_tx.c
+++ b/drivers/video/fbdev/msm/mdss_hdmi_tx.c
@@ -3920,7 +3920,7 @@ static int hdmi_tx_get_dt_clk_data(struct device *dev,
switch (module_type) {
case HDMI_TX_HPD_PM:
- mp->num_clk = 4;
+ mp->num_clk = 5;
mp->clk_config = devm_kzalloc(dev, sizeof(struct dss_clk) *
mp->num_clk, GFP_KERNEL);
if (!mp->clk_config) {
@@ -3933,9 +3933,13 @@ static int hdmi_tx_get_dt_clk_data(struct device *dev,
mp->clk_config[0].type = DSS_CLK_AHB;
mp->clk_config[0].rate = 0;
- snprintf(mp->clk_config[1].clk_name, 32, "%s", "core_clk");
- mp->clk_config[1].type = DSS_CLK_OTHER;
- mp->clk_config[1].rate = 19200000;
+ snprintf(mp->clk_config[1].clk_name, 32, "%s", "mnoc_clk");
+ mp->clk_config[1].type = DSS_CLK_AHB;
+ mp->clk_config[1].rate = 0;
+
+ snprintf(mp->clk_config[2].clk_name, 32, "%s", "core_clk");
+ mp->clk_config[2].type = DSS_CLK_OTHER;
+ mp->clk_config[2].rate = 19200000;
/*
* This clock is required to clock MDSS interrupt registers
@@ -3943,13 +3947,13 @@ static int hdmi_tx_get_dt_clk_data(struct device *dev,
* rate for this clock is controlled by MDP driver, treat this
* similar to AHB clock and do not set rate for it.
*/
- snprintf(mp->clk_config[2].clk_name, 32, "%s", "mdp_core_clk");
- mp->clk_config[2].type = DSS_CLK_AHB;
- mp->clk_config[2].rate = 0;
-
- snprintf(mp->clk_config[3].clk_name, 32, "%s", "alt_iface_clk");
+ snprintf(mp->clk_config[3].clk_name, 32, "%s", "mdp_core_clk");
mp->clk_config[3].type = DSS_CLK_AHB;
mp->clk_config[3].rate = 0;
+
+ snprintf(mp->clk_config[4].clk_name, 32, "%s", "alt_iface_clk");
+ mp->clk_config[4].type = DSS_CLK_AHB;
+ mp->clk_config[4].rate = 0;
break;
case HDMI_TX_CORE_PM:
diff --git a/include/dt-bindings/clock/qcom,gcc-msm8996.h b/include/dt-bindings/clock/qcom,gcc-msm8996.h
index 5e1635218ab0..3819485dead3 100644
--- a/include/dt-bindings/clock/qcom,gcc-msm8996.h
+++ b/include/dt-bindings/clock/qcom,gcc-msm8996.h
@@ -335,6 +335,10 @@
#define GCC_MSMPU_BCR 98
#define GCC_MSS_Q6_BCR 99
#define GCC_QREFS_VBG_CAL_BCR 100
+#define GCC_USB3_PHY_BCR 101
+#define GCC_USB3PHY_PHY_BCR 102
+#define GCC_PCIE_PHY_NOCSR_COM_PHY_BCR 103
+#define GCC_PCIE_PHY_COM_BCR 104
/* Indexes for GDSCs */
#define AGGRE0_NOC_GDSC 0