• Home
  • Raw
  • Download

Lines Matching full:dss

10 #define DSS_SUBSYS_NAME "DSS"
38 #include "dss.h"
54 #define REG_GET(dss, idx, start, end) \ argument
55 FLD_GET(dss_read_reg(dss, idx), start, end)
57 #define REG_FLD_MOD(dss, idx, val, start, end) \ argument
58 dss_write_reg(dss, idx, \
59 FLD_MOD(dss_read_reg(dss, idx), val, start, end))
62 int (*dpi_select_source)(struct dss_device *dss, int port,
64 int (*select_lcd_source)(struct dss_device *dss,
94 static inline void dss_write_reg(struct dss_device *dss, in dss_write_reg() argument
97 __raw_writel(val, dss->base + idx.idx); in dss_write_reg()
100 static inline u32 dss_read_reg(struct dss_device *dss, const struct dss_reg idx) in dss_read_reg() argument
102 return __raw_readl(dss->base + idx.idx); in dss_read_reg()
105 #define SR(dss, reg) \ argument
106 dss->ctx[(DSS_##reg).idx / sizeof(u32)] = dss_read_reg(dss, DSS_##reg)
107 #define RR(dss, reg) \ argument
108 dss_write_reg(dss, DSS_##reg, dss->ctx[(DSS_##reg).idx / sizeof(u32)])
110 static void dss_save_context(struct dss_device *dss) in dss_save_context() argument
114 SR(dss, CONTROL); in dss_save_context()
116 if (dss->feat->outputs[OMAP_DSS_CHANNEL_LCD] & OMAP_DSS_OUTPUT_SDI) { in dss_save_context()
117 SR(dss, SDI_CONTROL); in dss_save_context()
118 SR(dss, PLL_CONTROL); in dss_save_context()
121 dss->ctx_valid = true; in dss_save_context()
126 static void dss_restore_context(struct dss_device *dss) in dss_restore_context() argument
130 if (!dss->ctx_valid) in dss_restore_context()
133 RR(dss, CONTROL); in dss_restore_context()
135 if (dss->feat->outputs[OMAP_DSS_CHANNEL_LCD] & OMAP_DSS_OUTPUT_SDI) { in dss_restore_context()
136 RR(dss, SDI_CONTROL); in dss_restore_context()
137 RR(dss, PLL_CONTROL); in dss_restore_context()
151 if (!pll->dss->syscon_pll_ctrl) in dss_ctrl_pll_enable()
167 DSSERR("illegal DSS PLL ID %d\n", pll->id); in dss_ctrl_pll_enable()
171 regmap_update_bits(pll->dss->syscon_pll_ctrl, in dss_ctrl_pll_enable()
172 pll->dss->syscon_pll_ctrl_offset, in dss_ctrl_pll_enable()
176 static int dss_ctrl_pll_set_control_mux(struct dss_device *dss, in dss_ctrl_pll_set_control_mux() argument
182 if (!dss->syscon_pll_ctrl) in dss_ctrl_pll_set_control_mux()
237 regmap_update_bits(dss->syscon_pll_ctrl, dss->syscon_pll_ctrl_offset, in dss_ctrl_pll_set_control_mux()
243 void dss_sdi_init(struct dss_device *dss, int datapairs) in dss_sdi_init() argument
249 l = dss_read_reg(dss, DSS_SDI_CONTROL); in dss_sdi_init()
253 dss_write_reg(dss, DSS_SDI_CONTROL, l); in dss_sdi_init()
255 l = dss_read_reg(dss, DSS_PLL_CONTROL); in dss_sdi_init()
259 dss_write_reg(dss, DSS_PLL_CONTROL, l); in dss_sdi_init()
262 int dss_sdi_enable(struct dss_device *dss) in dss_sdi_enable() argument
266 dispc_pck_free_enable(dss->dispc, 1); in dss_sdi_enable()
269 REG_FLD_MOD(dss, DSS_PLL_CONTROL, 1, 18, 18); /* SDI_PLL_SYSRESET */ in dss_sdi_enable()
273 REG_FLD_MOD(dss, DSS_PLL_CONTROL, 1, 28, 28); /* SDI_PLL_GOBIT */ in dss_sdi_enable()
277 while (dss_read_reg(dss, DSS_SDI_STATUS) & (1 << 6)) { in dss_sdi_enable()
285 REG_FLD_MOD(dss, DSS_PLL_CONTROL, 0, 28, 28); in dss_sdi_enable()
289 while (!(dss_read_reg(dss, DSS_SDI_STATUS) & (1 << 5))) { in dss_sdi_enable()
296 dispc_lcd_enable_signal(dss->dispc, 1); in dss_sdi_enable()
300 while (!(dss_read_reg(dss, DSS_SDI_STATUS) & (1 << 2))) { in dss_sdi_enable()
310 dispc_lcd_enable_signal(dss->dispc, 0); in dss_sdi_enable()
313 REG_FLD_MOD(dss, DSS_PLL_CONTROL, 0, 18, 18); /* SDI_PLL_SYSRESET */ in dss_sdi_enable()
315 dispc_pck_free_enable(dss->dispc, 0); in dss_sdi_enable()
320 void dss_sdi_disable(struct dss_device *dss) in dss_sdi_disable() argument
322 dispc_lcd_enable_signal(dss->dispc, 0); in dss_sdi_disable()
324 dispc_pck_free_enable(dss->dispc, 0); in dss_sdi_disable()
327 REG_FLD_MOD(dss, DSS_PLL_CONTROL, 0, 18, 18); /* SDI_PLL_SYSRESET */ in dss_sdi_disable()
335 static void dss_dump_clocks(struct dss_device *dss, struct seq_file *s) in dss_dump_clocks() argument
340 if (dss_runtime_get(dss)) in dss_dump_clocks()
343 seq_printf(s, "- DSS -\n"); in dss_dump_clocks()
346 fclk_rate = clk_get_rate(dss->dss_clk); in dss_dump_clocks()
352 dss_runtime_put(dss); in dss_dump_clocks()
357 struct dss_device *dss = s->private; in dss_dump_regs() local
359 #define DUMPREG(dss, r) seq_printf(s, "%-35s %08x\n", #r, dss_read_reg(dss, r)) in dss_dump_regs() argument
361 if (dss_runtime_get(dss)) in dss_dump_regs()
364 DUMPREG(dss, DSS_REVISION); in dss_dump_regs()
365 DUMPREG(dss, DSS_SYSCONFIG); in dss_dump_regs()
366 DUMPREG(dss, DSS_SYSSTATUS); in dss_dump_regs()
367 DUMPREG(dss, DSS_CONTROL); in dss_dump_regs()
369 if (dss->feat->outputs[OMAP_DSS_CHANNEL_LCD] & OMAP_DSS_OUTPUT_SDI) { in dss_dump_regs()
370 DUMPREG(dss, DSS_SDI_CONTROL); in dss_dump_regs()
371 DUMPREG(dss, DSS_PLL_CONTROL); in dss_dump_regs()
372 DUMPREG(dss, DSS_SDI_STATUS); in dss_dump_regs()
375 dss_runtime_put(dss); in dss_dump_regs()
382 struct dss_device *dss = s->private; in dss_debug_dump_clocks() local
384 dss_dump_clocks(dss, s); in dss_debug_dump_clocks()
385 dispc_dump_clocks(dss->dispc, s); in dss_debug_dump_clocks()
404 static void dss_select_dispc_clk_source(struct dss_device *dss, in dss_select_dispc_clk_source() argument
413 if (WARN_ON(dss->feat->has_lcd_clk_src && clk_src != DSS_CLK_SRC_FCK)) in dss_select_dispc_clk_source()
431 REG_FLD_MOD(dss, DSS_CONTROL, b, /* DISPC_CLK_SWITCH */ in dss_select_dispc_clk_source()
432 dss->feat->dispc_clk_switch.start, in dss_select_dispc_clk_source()
433 dss->feat->dispc_clk_switch.end); in dss_select_dispc_clk_source()
435 dss->dispc_clk_source = clk_src; in dss_select_dispc_clk_source()
438 void dss_select_dsi_clk_source(struct dss_device *dss, int dsi_module, in dss_select_dsi_clk_source() argument
461 REG_FLD_MOD(dss, DSS_CONTROL, b, pos, pos); /* DSIx_CLK_SWITCH */ in dss_select_dsi_clk_source()
463 dss->dsi_clk_source[dsi_module] = clk_src; in dss_select_dsi_clk_source()
466 static int dss_lcd_clk_mux_dra7(struct dss_device *dss, in dss_lcd_clk_mux_dra7() argument
481 REG_FLD_MOD(dss, DSS_CONTROL, 0, ctrl_bit, ctrl_bit); in dss_lcd_clk_mux_dra7()
485 r = dss_ctrl_pll_set_control_mux(dss, clk_src, channel); in dss_lcd_clk_mux_dra7()
489 REG_FLD_MOD(dss, DSS_CONTROL, 1, ctrl_bit, ctrl_bit); in dss_lcd_clk_mux_dra7()
494 static int dss_lcd_clk_mux_omap5(struct dss_device *dss, in dss_lcd_clk_mux_omap5() argument
513 REG_FLD_MOD(dss, DSS_CONTROL, 0, ctrl_bit, ctrl_bit); in dss_lcd_clk_mux_omap5()
520 REG_FLD_MOD(dss, DSS_CONTROL, 1, ctrl_bit, ctrl_bit); in dss_lcd_clk_mux_omap5()
525 static int dss_lcd_clk_mux_omap4(struct dss_device *dss, in dss_lcd_clk_mux_omap4() argument
542 REG_FLD_MOD(dss, DSS_CONTROL, 0, ctrl_bit, ctrl_bit); in dss_lcd_clk_mux_omap4()
549 REG_FLD_MOD(dss, DSS_CONTROL, 1, ctrl_bit, ctrl_bit); in dss_lcd_clk_mux_omap4()
554 void dss_select_lcd_clk_source(struct dss_device *dss, in dss_select_lcd_clk_source() argument
561 if (!dss->feat->has_lcd_clk_src) { in dss_select_lcd_clk_source()
562 dss_select_dispc_clk_source(dss, clk_src); in dss_select_lcd_clk_source()
563 dss->lcd_clk_source[idx] = clk_src; in dss_select_lcd_clk_source()
567 r = dss->feat->ops->select_lcd_source(dss, channel, clk_src); in dss_select_lcd_clk_source()
571 dss->lcd_clk_source[idx] = clk_src; in dss_select_lcd_clk_source()
574 enum dss_clk_source dss_get_dispc_clk_source(struct dss_device *dss) in dss_get_dispc_clk_source() argument
576 return dss->dispc_clk_source; in dss_get_dispc_clk_source()
579 enum dss_clk_source dss_get_dsi_clk_source(struct dss_device *dss, in dss_get_dsi_clk_source() argument
582 return dss->dsi_clk_source[dsi_module]; in dss_get_dsi_clk_source()
585 enum dss_clk_source dss_get_lcd_clk_source(struct dss_device *dss, in dss_get_lcd_clk_source() argument
588 if (dss->feat->has_lcd_clk_src) { in dss_get_lcd_clk_source()
590 return dss->lcd_clk_source[idx]; in dss_get_lcd_clk_source()
594 return dss->dispc_clk_source; in dss_get_lcd_clk_source()
598 bool dss_div_calc(struct dss_device *dss, unsigned long pck, in dss_div_calc() argument
608 fck_hw_max = dss->feat->fck_freq_max; in dss_div_calc()
610 if (dss->parent_clk == NULL) { in dss_div_calc()
617 fck = clk_round_rate(dss->dss_clk, fck); in dss_div_calc()
622 fckd_hw_max = dss->feat->fck_div_max; in dss_div_calc()
624 m = dss->feat->dss_fck_multiplier; in dss_div_calc()
625 prate = clk_get_rate(dss->parent_clk); in dss_div_calc()
642 int dss_set_fck_rate(struct dss_device *dss, unsigned long rate) in dss_set_fck_rate() argument
648 r = clk_set_rate(dss->dss_clk, rate); in dss_set_fck_rate()
652 dss->dss_clk_rate = clk_get_rate(dss->dss_clk); in dss_set_fck_rate()
654 WARN_ONCE(dss->dss_clk_rate != rate, "clk rate mismatch: %lu != %lu", in dss_set_fck_rate()
655 dss->dss_clk_rate, rate); in dss_set_fck_rate()
660 unsigned long dss_get_dispc_clk_rate(struct dss_device *dss) in dss_get_dispc_clk_rate() argument
662 return dss->dss_clk_rate; in dss_get_dispc_clk_rate()
665 unsigned long dss_get_max_fck_rate(struct dss_device *dss) in dss_get_max_fck_rate() argument
667 return dss->feat->fck_freq_max; in dss_get_max_fck_rate()
670 static int dss_setup_default_clock(struct dss_device *dss) in dss_setup_default_clock() argument
677 max_dss_fck = dss->feat->fck_freq_max; in dss_setup_default_clock()
679 if (dss->parent_clk == NULL) { in dss_setup_default_clock()
680 fck = clk_round_rate(dss->dss_clk, max_dss_fck); in dss_setup_default_clock()
682 prate = clk_get_rate(dss->parent_clk); in dss_setup_default_clock()
684 fck_div = DIV_ROUND_UP(prate * dss->feat->dss_fck_multiplier, in dss_setup_default_clock()
687 * dss->feat->dss_fck_multiplier; in dss_setup_default_clock()
690 r = dss_set_fck_rate(dss, fck); in dss_setup_default_clock()
697 void dss_set_venc_output(struct dss_device *dss, enum omap_dss_venc_type type) in dss_set_venc_output() argument
709 REG_FLD_MOD(dss, DSS_CONTROL, l, 6, 6); in dss_set_venc_output()
712 void dss_set_dac_pwrdn_bgz(struct dss_device *dss, bool enable) in dss_set_dac_pwrdn_bgz() argument
715 REG_FLD_MOD(dss, DSS_CONTROL, enable, 5, 5); in dss_set_dac_pwrdn_bgz()
718 void dss_select_hdmi_venc_clk_source(struct dss_device *dss, in dss_select_hdmi_venc_clk_source() argument
723 outputs = dss->feat->outputs[OMAP_DSS_CHANNEL_DIGIT]; in dss_select_hdmi_venc_clk_source()
733 REG_FLD_MOD(dss, DSS_CONTROL, src, 15, 15); in dss_select_hdmi_venc_clk_source()
736 static int dss_dpi_select_source_omap2_omap3(struct dss_device *dss, int port, in dss_dpi_select_source_omap2_omap3() argument
745 static int dss_dpi_select_source_omap4(struct dss_device *dss, int port, in dss_dpi_select_source_omap4() argument
761 REG_FLD_MOD(dss, DSS_CONTROL, val, 17, 17); in dss_dpi_select_source_omap4()
766 static int dss_dpi_select_source_omap5(struct dss_device *dss, int port, in dss_dpi_select_source_omap5() argument
788 REG_FLD_MOD(dss, DSS_CONTROL, val, 17, 16); in dss_dpi_select_source_omap5()
793 static int dss_dpi_select_source_dra7xx(struct dss_device *dss, int port, in dss_dpi_select_source_dra7xx() argument
798 return dss_dpi_select_source_omap5(dss, port, channel); in dss_dpi_select_source_dra7xx()
814 int dss_dpi_select_source(struct dss_device *dss, int port, in dss_dpi_select_source() argument
817 return dss->feat->ops->dpi_select_source(dss, port, channel); in dss_dpi_select_source()
820 static int dss_get_clocks(struct dss_device *dss) in dss_get_clocks() argument
824 clk = devm_clk_get(&dss->pdev->dev, "fck"); in dss_get_clocks()
830 dss->dss_clk = clk; in dss_get_clocks()
832 if (dss->feat->parent_clk_name) { in dss_get_clocks()
833 clk = clk_get(NULL, dss->feat->parent_clk_name); in dss_get_clocks()
836 dss->feat->parent_clk_name); in dss_get_clocks()
843 dss->parent_clk = clk; in dss_get_clocks()
848 static void dss_put_clocks(struct dss_device *dss) in dss_put_clocks() argument
850 if (dss->parent_clk) in dss_put_clocks()
851 clk_put(dss->parent_clk); in dss_put_clocks()
854 int dss_runtime_get(struct dss_device *dss) in dss_runtime_get() argument
860 r = pm_runtime_get_sync(&dss->pdev->dev); in dss_runtime_get()
865 void dss_runtime_put(struct dss_device *dss) in dss_runtime_put() argument
871 r = pm_runtime_put_sync(&dss->pdev->dev); in dss_runtime_put()
882 static int dss_initialize_debugfs(struct dss_device *dss) in dss_initialize_debugfs() argument
890 dss->debugfs.root = dir; in dss_initialize_debugfs()
895 static void dss_uninitialize_debugfs(struct dss_device *dss) in dss_uninitialize_debugfs() argument
897 debugfs_remove_recursive(dss->debugfs.root); in dss_uninitialize_debugfs()
921 dss_debugfs_create_file(struct dss_device *dss, const char *name, in dss_debugfs_create_file() argument
933 entry->dentry = debugfs_create_file(name, 0444, dss->debugfs.root, in dss_debugfs_create_file()
949 static inline int dss_initialize_debugfs(struct dss_device *dss) in dss_initialize_debugfs() argument
953 static inline void dss_uninitialize_debugfs(struct dss_device *dss) in dss_uninitialize_debugfs() argument
1154 static void __dss_uninit_ports(struct dss_device *dss, unsigned int num_ports) in __dss_uninit_ports() argument
1156 struct platform_device *pdev = dss->pdev; in __dss_uninit_ports()
1166 switch (dss->feat->ports[i]) { in __dss_uninit_ports()
1179 static int dss_init_ports(struct dss_device *dss) in dss_init_ports() argument
1181 struct platform_device *pdev = dss->pdev; in dss_init_ports()
1187 for (i = 0; i < dss->feat->num_ports; i++) { in dss_init_ports()
1192 switch (dss->feat->ports[i]) { in dss_init_ports()
1194 r = dpi_init_port(dss, pdev, port, dss->feat->model); in dss_init_ports()
1200 r = sdi_init_port(dss, pdev, port); in dss_init_ports()
1213 __dss_uninit_ports(dss, i); in dss_init_ports()
1217 static void dss_uninit_ports(struct dss_device *dss) in dss_uninit_ports() argument
1219 __dss_uninit_ports(dss, dss->feat->num_ports); in dss_uninit_ports()
1222 static int dss_video_pll_probe(struct dss_device *dss) in dss_video_pll_probe() argument
1224 struct platform_device *pdev = dss->pdev; in dss_video_pll_probe()
1233 dss->syscon_pll_ctrl = syscon_regmap_lookup_by_phandle(np, in dss_video_pll_probe()
1235 if (IS_ERR(dss->syscon_pll_ctrl)) { in dss_video_pll_probe()
1238 return PTR_ERR(dss->syscon_pll_ctrl); in dss_video_pll_probe()
1242 &dss->syscon_pll_ctrl_offset)) { in dss_video_pll_probe()
1268 dss->video1_pll = dss_video_pll_init(dss, pdev, 0, in dss_video_pll_probe()
1270 if (IS_ERR(dss->video1_pll)) in dss_video_pll_probe()
1271 return PTR_ERR(dss->video1_pll); in dss_video_pll_probe()
1275 dss->video2_pll = dss_video_pll_init(dss, pdev, 1, in dss_video_pll_probe()
1277 if (IS_ERR(dss->video2_pll)) { in dss_video_pll_probe()
1278 dss_video_pll_uninit(dss->video1_pll); in dss_video_pll_probe()
1279 return PTR_ERR(dss->video2_pll); in dss_video_pll_probe()
1286 /* DSS HW IP initialisation */
1288 { .compatible = "ti,omap2-dss", .data = &omap24xx_dss_feats },
1289 { .compatible = "ti,omap3-dss", .data = &omap3630_dss_feats },
1290 { .compatible = "ti,omap4-dss", .data = &omap44xx_dss_feats },
1291 { .compatible = "ti,omap5-dss", .data = &omap54xx_dss_feats },
1292 { .compatible = "ti,dra7-dss", .data = &dra7xx_dss_feats },
1306 struct dss_device *dss = dev_get_drvdata(dev); in dss_bind() local
1316 omapdss_set_dss(dss); in dss_bind()
1324 dss->drm_pdev = drm_pdev; in dss_bind()
1331 struct dss_device *dss = dev_get_drvdata(dev); in dss_unbind() local
1333 platform_device_unregister(dss->drm_pdev); in dss_unbind()
1364 * Otherwise dss will never get probed successfully, as it will wait in dss_add_child_component()
1371 * Handle possible interconnect target modules defined within the DSS. in dss_add_child_component()
1372 * The DSS components can be children of an interconnect target module in dss_add_child_component()
1385 static int dss_probe_hardware(struct dss_device *dss) in dss_probe_hardware() argument
1390 r = dss_runtime_get(dss); in dss_probe_hardware()
1394 dss->dss_clk_rate = clk_get_rate(dss->dss_clk); in dss_probe_hardware()
1397 REG_FLD_MOD(dss, DSS_CONTROL, 0, 0, 0); in dss_probe_hardware()
1399 dss_select_dispc_clk_source(dss, DSS_CLK_SRC_FCK); in dss_probe_hardware()
1402 REG_FLD_MOD(dss, DSS_CONTROL, 1, 4, 4); /* venc dac demen */ in dss_probe_hardware()
1403 REG_FLD_MOD(dss, DSS_CONTROL, 1, 3, 3); /* venc clock 4x enable */ in dss_probe_hardware()
1404 REG_FLD_MOD(dss, DSS_CONTROL, 0, 2, 2); /* venc clock mode = normal */ in dss_probe_hardware()
1406 dss->dsi_clk_source[0] = DSS_CLK_SRC_FCK; in dss_probe_hardware()
1407 dss->dsi_clk_source[1] = DSS_CLK_SRC_FCK; in dss_probe_hardware()
1408 dss->dispc_clk_source = DSS_CLK_SRC_FCK; in dss_probe_hardware()
1409 dss->lcd_clk_source[0] = DSS_CLK_SRC_FCK; in dss_probe_hardware()
1410 dss->lcd_clk_source[1] = DSS_CLK_SRC_FCK; in dss_probe_hardware()
1412 rev = dss_read_reg(dss, DSS_REVISION); in dss_probe_hardware()
1413 pr_info("OMAP DSS rev %d.%d\n", FLD_GET(rev, 7, 4), FLD_GET(rev, 3, 0)); in dss_probe_hardware()
1415 dss_runtime_put(dss); in dss_probe_hardware()
1426 struct dss_device *dss; in dss_probe() local
1429 dss = kzalloc(sizeof(*dss), GFP_KERNEL); in dss_probe()
1430 if (!dss) in dss_probe()
1433 dss->pdev = pdev; in dss_probe()
1434 platform_set_drvdata(pdev, dss); in dss_probe()
1448 dss->feat = soc->data; in dss_probe()
1450 dss->feat = of_match_device(dss_of_match, &pdev->dev)->data; in dss_probe()
1454 dss->base = devm_ioremap_resource(&pdev->dev, dss_mem); in dss_probe()
1455 if (IS_ERR(dss->base)) { in dss_probe()
1456 r = PTR_ERR(dss->base); in dss_probe()
1460 r = dss_get_clocks(dss); in dss_probe()
1464 r = dss_setup_default_clock(dss); in dss_probe()
1469 r = dss_video_pll_probe(dss); in dss_probe()
1473 r = dss_init_ports(dss); in dss_probe()
1480 r = dss_probe_hardware(dss); in dss_probe()
1485 r = dss_initialize_debugfs(dss); in dss_probe()
1489 dss->debugfs.clk = dss_debugfs_create_file(dss, "clk", in dss_probe()
1490 dss_debug_dump_clocks, dss); in dss_probe()
1491 dss->debugfs.dss = dss_debugfs_create_file(dss, "dss", dss_dump_regs, in dss_probe()
1492 dss); in dss_probe()
1515 dss_debugfs_remove_file(dss->debugfs.clk); in dss_probe()
1516 dss_debugfs_remove_file(dss->debugfs.dss); in dss_probe()
1517 dss_uninitialize_debugfs(dss); in dss_probe()
1521 dss_uninit_ports(dss); in dss_probe()
1524 if (dss->video1_pll) in dss_probe()
1525 dss_video_pll_uninit(dss->video1_pll); in dss_probe()
1526 if (dss->video2_pll) in dss_probe()
1527 dss_video_pll_uninit(dss->video2_pll); in dss_probe()
1530 dss_put_clocks(dss); in dss_probe()
1533 kfree(dss); in dss_probe()
1540 struct dss_device *dss = platform_get_drvdata(pdev); in dss_remove() local
1546 dss_debugfs_remove_file(dss->debugfs.clk); in dss_remove()
1547 dss_debugfs_remove_file(dss->debugfs.dss); in dss_remove()
1548 dss_uninitialize_debugfs(dss); in dss_remove()
1552 dss_uninit_ports(dss); in dss_remove()
1554 if (dss->video1_pll) in dss_remove()
1555 dss_video_pll_uninit(dss->video1_pll); in dss_remove()
1557 if (dss->video2_pll) in dss_remove()
1558 dss_video_pll_uninit(dss->video2_pll); in dss_remove()
1560 dss_put_clocks(dss); in dss_remove()
1562 kfree(dss); in dss_remove()
1582 struct dss_device *dss = dev_get_drvdata(dev); in dss_runtime_suspend() local
1584 dss_save_context(dss); in dss_runtime_suspend()
1594 struct dss_device *dss = dev_get_drvdata(dev); in dss_runtime_resume() local
1610 dss_restore_context(dss); in dss_runtime_resume()