diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2016-06-17 11:33:51 -0600 |
|---|---|---|
| committer | Linux Build Service Account <lnxbuild@localhost> | 2016-06-17 11:33:51 -0600 |
| commit | e165108ca41c70d571481f296c9c5021321faee5 (patch) | |
| tree | b7fe100b7add417bddb59c5e61ded3969098a238 | |
| parent | fa22bff01fb9199590e7c5cfe1ba87ed9d27b837 (diff) | |
| parent | c72e42a4432b362fa453e86a5aa5ec73e687ad60 (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.txt | 5 | ||||
| -rw-r--r-- | arch/arm/boot/dts/qcom/msm-gdsc-cobalt.dtsi | 3 | ||||
| -rw-r--r-- | arch/arm/boot/dts/qcom/msm8996.dtsi | 2 | ||||
| -rw-r--r-- | arch/arm/boot/dts/qcom/msmcobalt-audio.dtsi | 13 | ||||
| -rw-r--r-- | drivers/clk/msm/clock-gcc-cobalt.c | 4 | ||||
| -rw-r--r-- | drivers/clk/msm/clock-mmss-cobalt.c | 3 | ||||
| -rw-r--r-- | drivers/clk/qcom/gcc-msm8996.c | 4 | ||||
| -rw-r--r-- | drivers/hwtracing/coresight/of_coresight.c | 6 | ||||
| -rw-r--r-- | drivers/platform/msm/ipa/ipa_v2/rmnet_ipa.c | 7 | ||||
| -rw-r--r-- | drivers/platform/msm/ipa/ipa_v3/ipa_dp.c | 6 | ||||
| -rw-r--r-- | drivers/platform/msm/ipa/ipa_v3/ipahal/ipahal.c | 2 | ||||
| -rw-r--r-- | drivers/soc/qcom/msm_glink_pkt.c | 1 | ||||
| -rw-r--r-- | drivers/usb/gadget/function/f_diag.c | 1 | ||||
| -rw-r--r-- | drivers/usb/gadget/function/f_gsi.c | 24 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_dsi.c | 50 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_dsi.h | 4 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_hdmi_tx.c | 22 | ||||
| -rw-r--r-- | include/dt-bindings/clock/qcom,gcc-msm8996.h | 4 |
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 |
