Lines Matching refs:dsi
71 struct clk *dsi; member
177 static void rcar_mipi_dsi_write(struct rcar_mipi_dsi *dsi, u32 reg, u32 data) in rcar_mipi_dsi_write() argument
179 iowrite32(data, dsi->mmio + reg); in rcar_mipi_dsi_write()
182 static u32 rcar_mipi_dsi_read(struct rcar_mipi_dsi *dsi, u32 reg) in rcar_mipi_dsi_read() argument
184 return ioread32(dsi->mmio + reg); in rcar_mipi_dsi_read()
187 static void rcar_mipi_dsi_clr(struct rcar_mipi_dsi *dsi, u32 reg, u32 clr) in rcar_mipi_dsi_clr() argument
189 rcar_mipi_dsi_write(dsi, reg, rcar_mipi_dsi_read(dsi, reg) & ~clr); in rcar_mipi_dsi_clr()
192 static void rcar_mipi_dsi_set(struct rcar_mipi_dsi *dsi, u32 reg, u32 set) in rcar_mipi_dsi_set() argument
194 rcar_mipi_dsi_write(dsi, reg, rcar_mipi_dsi_read(dsi, reg) | set); in rcar_mipi_dsi_set()
197 static int rcar_mipi_dsi_write_phtw(struct rcar_mipi_dsi *dsi, u32 phtw) in rcar_mipi_dsi_write_phtw() argument
202 rcar_mipi_dsi_write(dsi, PHTW, phtw); in rcar_mipi_dsi_write_phtw()
206 2000, 10000, false, dsi, PHTW); in rcar_mipi_dsi_write_phtw()
208 dev_err(dsi->dev, "PHY test interface write timeout (0x%08x)\n", in rcar_mipi_dsi_write_phtw()
216 static int rcar_mipi_dsi_write_phtw_arr(struct rcar_mipi_dsi *dsi, in rcar_mipi_dsi_write_phtw_arr() argument
220 int ret = rcar_mipi_dsi_write_phtw(dsi, phtw[i]); in rcar_mipi_dsi_write_phtw_arr()
233 ret = rcar_mipi_dsi_write_phtw_arr(dsi, phtw, \
238 static int rcar_mipi_dsi_init_phtw_v3u(struct rcar_mipi_dsi *dsi) in rcar_mipi_dsi_init_phtw_v3u() argument
245 static int rcar_mipi_dsi_post_init_phtw_v3u(struct rcar_mipi_dsi *dsi) in rcar_mipi_dsi_post_init_phtw_v3u() argument
252 static int rcar_mipi_dsi_init_phtw_v4h(struct rcar_mipi_dsi *dsi, in rcar_mipi_dsi_init_phtw_v4h() argument
282 if (dsi->lanes <= 1) { in rcar_mipi_dsi_init_phtw_v4h()
288 if (dsi->lanes <= 2) { in rcar_mipi_dsi_init_phtw_v4h()
294 if (dsi->lanes <= 3) { in rcar_mipi_dsi_init_phtw_v4h()
310 rcar_mipi_dsi_post_init_phtw_v4h(struct rcar_mipi_dsi *dsi, in rcar_mipi_dsi_post_init_phtw_v4h() argument
321 dsi, PHTR); in rcar_mipi_dsi_post_init_phtw_v4h()
323 dev_err(dsi->dev, "failed to test PHTR\n"); in rcar_mipi_dsi_post_init_phtw_v4h()
337 static void rcar_mipi_dsi_pll_calc(struct rcar_mipi_dsi *dsi, in rcar_mipi_dsi_pll_calc() argument
343 const struct rcar_mipi_dsi_device_info *info = dsi->info; in rcar_mipi_dsi_pll_calc()
357 fout = div64_u64((u64)fpfd * m, dsi->info->n_mul); in rcar_mipi_dsi_pll_calc()
383 static void rcar_mipi_dsi_parameters_calc(struct rcar_mipi_dsi *dsi, in rcar_mipi_dsi_parameters_calc() argument
398 fout_target = target * mipi_dsi_pixel_format_to_bpp(dsi->format) in rcar_mipi_dsi_parameters_calc()
399 / (2 * dsi->lanes); in rcar_mipi_dsi_parameters_calc()
404 for (clk_cfg = dsi->info->clk_cfg; clk_cfg->min_freq != 0; clk_cfg++) { in rcar_mipi_dsi_parameters_calc()
414 switch (dsi->info->model) { in rcar_mipi_dsi_parameters_calc()
425 rcar_mipi_dsi_pll_calc(dsi, fin_rate, fout_target, setup_info); in rcar_mipi_dsi_parameters_calc()
438 dev_dbg(dsi->dev, in rcar_mipi_dsi_parameters_calc()
440 setup_info->m, fin_rate, dsi->info->n_mul, setup_info->n, in rcar_mipi_dsi_parameters_calc()
444 dev_dbg(dsi->dev, in rcar_mipi_dsi_parameters_calc()
450 static void rcar_mipi_dsi_set_display_timing(struct rcar_mipi_dsi *dsi, in rcar_mipi_dsi_set_display_timing() argument
461 if (mipi_dsi_pixel_format_to_bpp(dsi->format) == 24) in rcar_mipi_dsi_set_display_timing()
462 rcar_mipi_dsi_write(dsi, TXVMPSPHSETR, TXVMPSPHSETR_DT_RGB24); in rcar_mipi_dsi_set_display_timing()
463 else if (mipi_dsi_pixel_format_to_bpp(dsi->format) == 18) in rcar_mipi_dsi_set_display_timing()
464 rcar_mipi_dsi_write(dsi, TXVMPSPHSETR, TXVMPSPHSETR_DT_RGB18); in rcar_mipi_dsi_set_display_timing()
465 else if (mipi_dsi_pixel_format_to_bpp(dsi->format) == 16) in rcar_mipi_dsi_set_display_timing()
466 rcar_mipi_dsi_write(dsi, TXVMPSPHSETR, TXVMPSPHSETR_DT_RGB16); in rcar_mipi_dsi_set_display_timing()
468 dev_warn(dsi->dev, "unsupported format"); in rcar_mipi_dsi_set_display_timing()
476 rcar_mipi_dsi_write(dsi, TXVMSETR, setr); in rcar_mipi_dsi_set_display_timing()
497 rcar_mipi_dsi_write(dsi, TXVMVPRMSET0R, vprmset0r); in rcar_mipi_dsi_set_display_timing()
498 rcar_mipi_dsi_write(dsi, TXVMVPRMSET1R, vprmset1r); in rcar_mipi_dsi_set_display_timing()
499 rcar_mipi_dsi_write(dsi, TXVMVPRMSET2R, vprmset2r); in rcar_mipi_dsi_set_display_timing()
500 rcar_mipi_dsi_write(dsi, TXVMVPRMSET3R, vprmset3r); in rcar_mipi_dsi_set_display_timing()
501 rcar_mipi_dsi_write(dsi, TXVMVPRMSET4R, vprmset4r); in rcar_mipi_dsi_set_display_timing()
504 static int rcar_mipi_dsi_startup(struct rcar_mipi_dsi *dsi, in rcar_mipi_dsi_startup() argument
517 dsi_format = mipi_dsi_pixel_format_to_bpp(dsi->format); in rcar_mipi_dsi_startup()
519 dev_warn(dsi->dev, "invalid format"); in rcar_mipi_dsi_startup()
524 rcar_mipi_dsi_parameters_calc(dsi, dsi->clocks.pll, in rcar_mipi_dsi_startup()
528 rcar_mipi_dsi_set(dsi, LPCLKSET, LPCLKSET_CKEN); in rcar_mipi_dsi_startup()
531 rcar_mipi_dsi_set(dsi, CFGCLKSET, CFGCLKSET_CKEN); in rcar_mipi_dsi_startup()
533 rcar_mipi_dsi_clr(dsi, PHYSETUP, PHYSETUP_RSTZ); in rcar_mipi_dsi_startup()
534 rcar_mipi_dsi_clr(dsi, PHYSETUP, PHYSETUP_SHUTDOWNZ); in rcar_mipi_dsi_startup()
536 rcar_mipi_dsi_set(dsi, PHTC, PHTC_TESTCLR); in rcar_mipi_dsi_startup()
537 rcar_mipi_dsi_clr(dsi, PHTC, PHTC_TESTCLR); in rcar_mipi_dsi_startup()
540 phy_setup = rcar_mipi_dsi_read(dsi, PHYSETUP); in rcar_mipi_dsi_startup()
543 rcar_mipi_dsi_write(dsi, PHYSETUP, phy_setup); in rcar_mipi_dsi_startup()
545 switch (dsi->info->model) { in rcar_mipi_dsi_startup()
548 ret = rcar_mipi_dsi_init_phtw_v3u(dsi); in rcar_mipi_dsi_startup()
554 ret = rcar_mipi_dsi_init_phtw_v4h(dsi, &setup_info); in rcar_mipi_dsi_startup()
561 rcar_mipi_dsi_clr(dsi, CLOCKSET1, CLOCKSET1_SHADOW_CLEAR); in rcar_mipi_dsi_startup()
562 rcar_mipi_dsi_set(dsi, CLOCKSET1, CLOCKSET1_SHADOW_CLEAR); in rcar_mipi_dsi_startup()
563 rcar_mipi_dsi_clr(dsi, CLOCKSET1, CLOCKSET1_SHADOW_CLEAR); in rcar_mipi_dsi_startup()
565 clockset2 = CLOCKSET2_M(setup_info.m - dsi->info->clockset2_m_offset) in rcar_mipi_dsi_startup()
572 rcar_mipi_dsi_write(dsi, CLOCKSET2, clockset2); in rcar_mipi_dsi_startup()
573 rcar_mipi_dsi_write(dsi, CLOCKSET3, clockset3); in rcar_mipi_dsi_startup()
575 rcar_mipi_dsi_clr(dsi, CLOCKSET1, CLOCKSET1_UPDATEPLL); in rcar_mipi_dsi_startup()
576 rcar_mipi_dsi_set(dsi, CLOCKSET1, CLOCKSET1_UPDATEPLL); in rcar_mipi_dsi_startup()
578 rcar_mipi_dsi_clr(dsi, CLOCKSET1, CLOCKSET1_UPDATEPLL); in rcar_mipi_dsi_startup()
581 rcar_mipi_dsi_write(dsi, PPISETR, ppisetr); in rcar_mipi_dsi_startup()
583 rcar_mipi_dsi_set(dsi, PHYSETUP, PHYSETUP_SHUTDOWNZ); in rcar_mipi_dsi_startup()
584 rcar_mipi_dsi_set(dsi, PHYSETUP, PHYSETUP_RSTZ); in rcar_mipi_dsi_startup()
589 if ((rcar_mipi_dsi_read(dsi, PPICLSR) & PPICLSR_STPST) && in rcar_mipi_dsi_startup()
590 (rcar_mipi_dsi_read(dsi, PPIDLSR) & PPIDLSR_STPST) && in rcar_mipi_dsi_startup()
591 (rcar_mipi_dsi_read(dsi, CLOCKSET1) & CLOCKSET1_LOCK)) in rcar_mipi_dsi_startup()
598 dev_err(dsi->dev, "failed to enable PPI clock\n"); in rcar_mipi_dsi_startup()
602 switch (dsi->info->model) { in rcar_mipi_dsi_startup()
605 ret = rcar_mipi_dsi_post_init_phtw_v3u(dsi); in rcar_mipi_dsi_startup()
611 ret = rcar_mipi_dsi_post_init_phtw_v4h(dsi, &setup_info); in rcar_mipi_dsi_startup()
619 rcar_mipi_dsi_write(dsi, VCLKSET, vclkset); in rcar_mipi_dsi_startup()
628 dev_warn(dsi->dev, "unsupported format"); in rcar_mipi_dsi_startup()
632 vclkset |= VCLKSET_COLOR_RGB | VCLKSET_LANE(dsi->lanes - 1); in rcar_mipi_dsi_startup()
634 switch (dsi->info->model) { in rcar_mipi_dsi_startup()
645 rcar_mipi_dsi_write(dsi, VCLKSET, vclkset); in rcar_mipi_dsi_startup()
648 rcar_mipi_dsi_set(dsi, VCLKEN, VCLKEN_CKEN); in rcar_mipi_dsi_startup()
650 dev_dbg(dsi->dev, "DSI device is started\n"); in rcar_mipi_dsi_startup()
655 static void rcar_mipi_dsi_shutdown(struct rcar_mipi_dsi *dsi) in rcar_mipi_dsi_shutdown() argument
658 rcar_mipi_dsi_write(dsi, VCLKSET, 0); in rcar_mipi_dsi_shutdown()
661 rcar_mipi_dsi_write(dsi, VCLKSET, 0); in rcar_mipi_dsi_shutdown()
663 rcar_mipi_dsi_clr(dsi, PHYSETUP, PHYSETUP_RSTZ); in rcar_mipi_dsi_shutdown()
664 rcar_mipi_dsi_clr(dsi, PHYSETUP, PHYSETUP_SHUTDOWNZ); in rcar_mipi_dsi_shutdown()
667 rcar_mipi_dsi_clr(dsi, CFGCLKSET, CFGCLKSET_CKEN); in rcar_mipi_dsi_shutdown()
670 rcar_mipi_dsi_clr(dsi, LPCLKSET, LPCLKSET_CKEN); in rcar_mipi_dsi_shutdown()
672 dev_dbg(dsi->dev, "DSI device is shutdown\n"); in rcar_mipi_dsi_shutdown()
675 static int rcar_mipi_dsi_clk_enable(struct rcar_mipi_dsi *dsi) in rcar_mipi_dsi_clk_enable() argument
679 reset_control_deassert(dsi->rstc); in rcar_mipi_dsi_clk_enable()
681 ret = clk_prepare_enable(dsi->clocks.mod); in rcar_mipi_dsi_clk_enable()
685 ret = clk_prepare_enable(dsi->clocks.dsi); in rcar_mipi_dsi_clk_enable()
692 clk_disable_unprepare(dsi->clocks.mod); in rcar_mipi_dsi_clk_enable()
694 reset_control_assert(dsi->rstc); in rcar_mipi_dsi_clk_enable()
698 static void rcar_mipi_dsi_clk_disable(struct rcar_mipi_dsi *dsi) in rcar_mipi_dsi_clk_disable() argument
700 clk_disable_unprepare(dsi->clocks.dsi); in rcar_mipi_dsi_clk_disable()
701 clk_disable_unprepare(dsi->clocks.mod); in rcar_mipi_dsi_clk_disable()
703 reset_control_assert(dsi->rstc); in rcar_mipi_dsi_clk_disable()
706 static int rcar_mipi_dsi_start_hs_clock(struct rcar_mipi_dsi *dsi) in rcar_mipi_dsi_start_hs_clock() argument
716 rcar_mipi_dsi_set(dsi, PPICLCR, PPICLCR_TXREQHS); in rcar_mipi_dsi_start_hs_clock()
720 2000, 10000, false, dsi, PPICLSR); in rcar_mipi_dsi_start_hs_clock()
722 dev_err(dsi->dev, "failed to enable HS clock\n"); in rcar_mipi_dsi_start_hs_clock()
726 rcar_mipi_dsi_set(dsi, PPICLSCR, PPICLSCR_TOHS); in rcar_mipi_dsi_start_hs_clock()
731 static int rcar_mipi_dsi_start_video(struct rcar_mipi_dsi *dsi) in rcar_mipi_dsi_start_video() argument
739 2000, 10000, false, dsi, LINKSR); in rcar_mipi_dsi_start_video()
741 dev_err(dsi->dev, "Link failed to become ready\n"); in rcar_mipi_dsi_start_video()
746 rcar_mipi_dsi_clr(dsi, TXVMCR, TXVMCR_VFCLR); in rcar_mipi_dsi_start_video()
750 2000, 10000, false, dsi, TXVMSR); in rcar_mipi_dsi_start_video()
752 dev_err(dsi->dev, "Failed to de-assert video FIFO clear\n"); in rcar_mipi_dsi_start_video()
757 rcar_mipi_dsi_set(dsi, TXVMCR, TXVMCR_EN_VIDEO); in rcar_mipi_dsi_start_video()
761 2000, 10000, false, dsi, TXVMSR); in rcar_mipi_dsi_start_video()
763 dev_err(dsi->dev, "Failed to enable video transmission\n"); in rcar_mipi_dsi_start_video()
770 static void rcar_mipi_dsi_stop_video(struct rcar_mipi_dsi *dsi) in rcar_mipi_dsi_stop_video() argument
776 rcar_mipi_dsi_clr(dsi, TXVMCR, TXVMCR_EN_VIDEO); in rcar_mipi_dsi_stop_video()
780 2000, 100000, false, dsi, TXVMSR); in rcar_mipi_dsi_stop_video()
782 dev_err(dsi->dev, "Failed to disable video transmission\n"); in rcar_mipi_dsi_stop_video()
787 rcar_mipi_dsi_set(dsi, TXVMCR, TXVMCR_VFCLR); in rcar_mipi_dsi_stop_video()
791 2000, 100000, false, dsi, TXVMSR); in rcar_mipi_dsi_stop_video()
793 dev_err(dsi->dev, "Failed to assert video FIFO clear\n"); in rcar_mipi_dsi_stop_video()
805 struct rcar_mipi_dsi *dsi = bridge_to_rcar_mipi_dsi(bridge); in rcar_mipi_dsi_attach() local
807 return drm_bridge_attach(bridge->encoder, dsi->next_bridge, bridge, in rcar_mipi_dsi_attach()
814 struct rcar_mipi_dsi *dsi = bridge_to_rcar_mipi_dsi(bridge); in rcar_mipi_dsi_atomic_enable() local
816 rcar_mipi_dsi_start_video(dsi); in rcar_mipi_dsi_atomic_enable()
822 struct rcar_mipi_dsi *dsi = bridge_to_rcar_mipi_dsi(bridge); in rcar_mipi_dsi_atomic_disable() local
824 rcar_mipi_dsi_stop_video(dsi); in rcar_mipi_dsi_atomic_disable()
830 struct rcar_mipi_dsi *dsi = bridge_to_rcar_mipi_dsi(bridge); in rcar_mipi_dsi_pclk_enable() local
841 ret = rcar_mipi_dsi_clk_enable(dsi); in rcar_mipi_dsi_pclk_enable()
843 dev_err(dsi->dev, "failed to enable DSI clocks\n"); in rcar_mipi_dsi_pclk_enable()
847 ret = rcar_mipi_dsi_startup(dsi, mode); in rcar_mipi_dsi_pclk_enable()
851 rcar_mipi_dsi_set_display_timing(dsi, mode); in rcar_mipi_dsi_pclk_enable()
853 ret = rcar_mipi_dsi_start_hs_clock(dsi); in rcar_mipi_dsi_pclk_enable()
860 rcar_mipi_dsi_shutdown(dsi); in rcar_mipi_dsi_pclk_enable()
862 rcar_mipi_dsi_clk_disable(dsi); in rcar_mipi_dsi_pclk_enable()
868 struct rcar_mipi_dsi *dsi = bridge_to_rcar_mipi_dsi(bridge); in rcar_mipi_dsi_pclk_disable() local
870 rcar_mipi_dsi_shutdown(dsi); in rcar_mipi_dsi_pclk_disable()
871 rcar_mipi_dsi_clk_disable(dsi); in rcar_mipi_dsi_pclk_disable()
903 struct rcar_mipi_dsi *dsi = host_to_rcar_mipi_dsi(host); in rcar_mipi_dsi_host_attach() local
906 if (device->lanes > dsi->num_data_lanes) in rcar_mipi_dsi_host_attach()
909 dsi->lanes = device->lanes; in rcar_mipi_dsi_host_attach()
910 dsi->format = device->format; in rcar_mipi_dsi_host_attach()
912 dsi->next_bridge = devm_drm_of_get_bridge(dsi->dev, dsi->dev->of_node, in rcar_mipi_dsi_host_attach()
914 if (IS_ERR(dsi->next_bridge)) { in rcar_mipi_dsi_host_attach()
915 ret = PTR_ERR(dsi->next_bridge); in rcar_mipi_dsi_host_attach()
916 dev_err(dsi->dev, "failed to get next bridge: %d\n", ret); in rcar_mipi_dsi_host_attach()
921 dsi->bridge.funcs = &rcar_mipi_dsi_bridge_ops; in rcar_mipi_dsi_host_attach()
922 dsi->bridge.of_node = dsi->dev->of_node; in rcar_mipi_dsi_host_attach()
923 drm_bridge_add(&dsi->bridge); in rcar_mipi_dsi_host_attach()
931 struct rcar_mipi_dsi *dsi = host_to_rcar_mipi_dsi(host); in rcar_mipi_dsi_host_detach() local
933 drm_bridge_remove(&dsi->bridge); in rcar_mipi_dsi_host_detach()
947 static int rcar_mipi_dsi_parse_dt(struct rcar_mipi_dsi *dsi) in rcar_mipi_dsi_parse_dt() argument
951 ret = drm_of_get_data_lanes_count_ep(dsi->dev->of_node, 1, 0, 1, 4); in rcar_mipi_dsi_parse_dt()
953 dev_err(dsi->dev, "missing or invalid data-lanes property\n"); in rcar_mipi_dsi_parse_dt()
957 dsi->num_data_lanes = ret; in rcar_mipi_dsi_parse_dt()
961 static struct clk *rcar_mipi_dsi_get_clock(struct rcar_mipi_dsi *dsi, in rcar_mipi_dsi_get_clock() argument
967 clk = devm_clk_get(dsi->dev, name); in rcar_mipi_dsi_get_clock()
974 dev_err_probe(dsi->dev, PTR_ERR(clk), "failed to get %s clock\n", in rcar_mipi_dsi_get_clock()
980 static int rcar_mipi_dsi_get_clocks(struct rcar_mipi_dsi *dsi) in rcar_mipi_dsi_get_clocks() argument
982 dsi->clocks.mod = rcar_mipi_dsi_get_clock(dsi, NULL, false); in rcar_mipi_dsi_get_clocks()
983 if (IS_ERR(dsi->clocks.mod)) in rcar_mipi_dsi_get_clocks()
984 return PTR_ERR(dsi->clocks.mod); in rcar_mipi_dsi_get_clocks()
986 dsi->clocks.pll = rcar_mipi_dsi_get_clock(dsi, "pll", true); in rcar_mipi_dsi_get_clocks()
987 if (IS_ERR(dsi->clocks.pll)) in rcar_mipi_dsi_get_clocks()
988 return PTR_ERR(dsi->clocks.pll); in rcar_mipi_dsi_get_clocks()
990 dsi->clocks.dsi = rcar_mipi_dsi_get_clock(dsi, "dsi", true); in rcar_mipi_dsi_get_clocks()
991 if (IS_ERR(dsi->clocks.dsi)) in rcar_mipi_dsi_get_clocks()
992 return PTR_ERR(dsi->clocks.dsi); in rcar_mipi_dsi_get_clocks()
994 if (!dsi->clocks.pll && !dsi->clocks.dsi) { in rcar_mipi_dsi_get_clocks()
995 dev_err(dsi->dev, "no input clock (pll, dsi)\n"); in rcar_mipi_dsi_get_clocks()
1004 struct rcar_mipi_dsi *dsi; in rcar_mipi_dsi_probe() local
1008 dsi = devm_kzalloc(&pdev->dev, sizeof(*dsi), GFP_KERNEL); in rcar_mipi_dsi_probe()
1009 if (dsi == NULL) in rcar_mipi_dsi_probe()
1012 platform_set_drvdata(pdev, dsi); in rcar_mipi_dsi_probe()
1014 dsi->dev = &pdev->dev; in rcar_mipi_dsi_probe()
1015 dsi->info = of_device_get_match_data(&pdev->dev); in rcar_mipi_dsi_probe()
1017 ret = rcar_mipi_dsi_parse_dt(dsi); in rcar_mipi_dsi_probe()
1023 dsi->mmio = devm_ioremap_resource(dsi->dev, mem); in rcar_mipi_dsi_probe()
1024 if (IS_ERR(dsi->mmio)) in rcar_mipi_dsi_probe()
1025 return PTR_ERR(dsi->mmio); in rcar_mipi_dsi_probe()
1027 ret = rcar_mipi_dsi_get_clocks(dsi); in rcar_mipi_dsi_probe()
1031 dsi->rstc = devm_reset_control_get(dsi->dev, NULL); in rcar_mipi_dsi_probe()
1032 if (IS_ERR(dsi->rstc)) { in rcar_mipi_dsi_probe()
1033 dev_err(dsi->dev, "failed to get cpg reset\n"); in rcar_mipi_dsi_probe()
1034 return PTR_ERR(dsi->rstc); in rcar_mipi_dsi_probe()
1038 dsi->host.dev = dsi->dev; in rcar_mipi_dsi_probe()
1039 dsi->host.ops = &rcar_mipi_dsi_host_ops; in rcar_mipi_dsi_probe()
1040 ret = mipi_dsi_host_register(&dsi->host); in rcar_mipi_dsi_probe()
1049 struct rcar_mipi_dsi *dsi = platform_get_drvdata(pdev); in rcar_mipi_dsi_remove() local
1051 mipi_dsi_host_unregister(&dsi->host); in rcar_mipi_dsi_remove()