Lines Matching +full:data +full:- +full:width
17 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
27 #include <linux/media-bus-format.h>
45 * struct panel_desc - Describes a simple panel.
77 * @size.width: Width (in mm) of the active display area.
79 unsigned int width; member
93 * become ready and start receiving video data
102 * video data.
171 for (i = 0; i < panel->desc->num_timings; i++) { in panel_simple_get_timings_modes()
172 const struct display_timing *dt = &panel->desc->timings[i]; in panel_simple_get_timings_modes()
176 mode = drm_mode_create(connector->dev); in panel_simple_get_timings_modes()
178 dev_err(panel->base.dev, "failed to add mode %ux%u\n", in panel_simple_get_timings_modes()
179 dt->hactive.typ, dt->vactive.typ); in panel_simple_get_timings_modes()
185 mode->type |= DRM_MODE_TYPE_DRIVER; in panel_simple_get_timings_modes()
187 if (panel->desc->num_timings == 1) in panel_simple_get_timings_modes()
188 mode->type |= DRM_MODE_TYPE_PREFERRED; in panel_simple_get_timings_modes()
203 for (i = 0; i < panel->desc->num_modes; i++) { in panel_simple_get_display_modes()
204 const struct drm_display_mode *m = &panel->desc->modes[i]; in panel_simple_get_display_modes()
206 mode = drm_mode_duplicate(connector->dev, m); in panel_simple_get_display_modes()
208 dev_err(panel->base.dev, "failed to add mode %ux%u@%u\n", in panel_simple_get_display_modes()
209 m->hdisplay, m->vdisplay, in panel_simple_get_display_modes()
214 mode->type |= DRM_MODE_TYPE_DRIVER; in panel_simple_get_display_modes()
216 if (panel->desc->num_modes == 1) in panel_simple_get_display_modes()
217 mode->type |= DRM_MODE_TYPE_PREFERRED; in panel_simple_get_display_modes()
232 bool has_override = panel->override_mode.type; in panel_simple_get_non_edid_modes()
235 if (!panel->desc) in panel_simple_get_non_edid_modes()
239 mode = drm_mode_duplicate(connector->dev, in panel_simple_get_non_edid_modes()
240 &panel->override_mode); in panel_simple_get_non_edid_modes()
245 dev_err(panel->base.dev, "failed to add override mode\n"); in panel_simple_get_non_edid_modes()
250 if (num == 0 && panel->desc->num_timings) in panel_simple_get_non_edid_modes()
259 WARN_ON(panel->desc->num_timings && panel->desc->num_modes); in panel_simple_get_non_edid_modes()
263 connector->display_info.bpc = panel->desc->bpc; in panel_simple_get_non_edid_modes()
264 connector->display_info.width_mm = panel->desc->size.width; in panel_simple_get_non_edid_modes()
265 connector->display_info.height_mm = panel->desc->size.height; in panel_simple_get_non_edid_modes()
266 if (panel->desc->bus_format) in panel_simple_get_non_edid_modes()
267 drm_display_info_set_bus_formats(&connector->display_info, in panel_simple_get_non_edid_modes()
268 &panel->desc->bus_format, 1); in panel_simple_get_non_edid_modes()
269 connector->display_info.bus_flags = panel->desc->bus_flags; in panel_simple_get_non_edid_modes()
292 if (!p->enabled) in panel_simple_disable()
295 if (p->desc->delay.disable) in panel_simple_disable()
296 msleep(p->desc->delay.disable); in panel_simple_disable()
298 p->enabled = false; in panel_simple_disable()
307 gpiod_set_value_cansleep(p->enable_gpio, 0); in panel_simple_suspend()
308 regulator_disable(p->supply); in panel_simple_suspend()
309 p->unprepared_time = ktime_get_boottime(); in panel_simple_suspend()
311 kfree(p->edid); in panel_simple_suspend()
312 p->edid = NULL; in panel_simple_suspend()
322 /* Unpreparing when already unprepared is a no-op */ in panel_simple_unprepare()
323 if (!p->prepared) in panel_simple_unprepare()
326 pm_runtime_mark_last_busy(panel->dev); in panel_simple_unprepare()
327 ret = pm_runtime_put_autosuspend(panel->dev); in panel_simple_unprepare()
330 p->prepared = false; in panel_simple_unprepare()
340 panel_simple_wait(p->unprepared_time, p->desc->delay.unprepare); in panel_simple_resume()
342 err = regulator_enable(p->supply); in panel_simple_resume()
348 gpiod_set_value_cansleep(p->enable_gpio, 1); in panel_simple_resume()
350 if (p->desc->delay.prepare) in panel_simple_resume()
351 msleep(p->desc->delay.prepare); in panel_simple_resume()
361 /* Preparing when already prepared is a no-op */ in panel_simple_prepare()
362 if (p->prepared) in panel_simple_prepare()
365 ret = pm_runtime_get_sync(panel->dev); in panel_simple_prepare()
367 pm_runtime_put_autosuspend(panel->dev); in panel_simple_prepare()
371 p->prepared = true; in panel_simple_prepare()
380 if (p->enabled) in panel_simple_enable()
383 if (p->desc->delay.enable) in panel_simple_enable()
384 msleep(p->desc->delay.enable); in panel_simple_enable()
386 p->enabled = true; in panel_simple_enable()
398 if (p->ddc) { in panel_simple_get_modes()
399 pm_runtime_get_sync(panel->dev); in panel_simple_get_modes()
401 if (!p->edid) in panel_simple_get_modes()
402 p->edid = drm_get_edid(connector, p->ddc); in panel_simple_get_modes()
404 if (p->edid) in panel_simple_get_modes()
405 num += drm_add_edid_modes(connector, p->edid); in panel_simple_get_modes()
407 pm_runtime_mark_last_busy(panel->dev); in panel_simple_get_modes()
408 pm_runtime_put_autosuspend(panel->dev); in panel_simple_get_modes()
411 /* add hard-coded panel modes */ in panel_simple_get_modes()
418 drm_connector_set_panel_orientation(connector, p->orientation); in panel_simple_get_modes()
430 if (p->desc->num_timings < num_timings) in panel_simple_get_timings()
431 num_timings = p->desc->num_timings; in panel_simple_get_timings()
435 timings[i] = p->desc->timings[i]; in panel_simple_get_timings()
437 return p->desc->num_timings; in panel_simple_get_timings()
444 return p->orientation; in panel_simple_get_orientation()
469 np = dev->of_node; in panel_dpi_probe()
472 return -ENOMEM; in panel_dpi_probe()
476 return -ENOMEM; in panel_dpi_probe()
478 ret = of_get_display_timing(np, "panel-timing", timing); in panel_dpi_probe()
480 dev_err(dev, "%pOF: no panel-timing node found for \"panel-dpi\" binding\n", in panel_dpi_probe()
485 desc->timings = timing; in panel_dpi_probe()
486 desc->num_timings = 1; in panel_dpi_probe()
488 of_property_read_u32(np, "width-mm", &desc->size.width); in panel_dpi_probe()
489 of_property_read_u32(np, "height-mm", &desc->size.height); in panel_dpi_probe()
493 vm.flags = timing->flags; in panel_dpi_probe()
495 desc->bus_flags = bus_flags; in panel_dpi_probe()
498 desc->connector_type = DRM_MODE_CONNECTOR_DPI; in panel_dpi_probe()
500 panel->desc = desc; in panel_dpi_probe()
506 (to_check->field.typ >= bounds->field.min && \
507 to_check->field.typ <= bounds->field.max)
512 const struct panel_desc *desc = panel->desc; in panel_simple_parse_panel_timing_node()
516 if (WARN_ON(desc->num_modes)) { in panel_simple_parse_panel_timing_node()
520 if (WARN_ON(!desc->num_timings)) { in panel_simple_parse_panel_timing_node()
525 for (i = 0; i < panel->desc->num_timings; i++) { in panel_simple_parse_panel_timing_node()
526 const struct display_timing *dt = &panel->desc->timings[i]; in panel_simple_parse_panel_timing_node()
538 if (ot->flags != dt->flags) in panel_simple_parse_panel_timing_node()
542 drm_display_mode_from_videomode(&vm, &panel->override_mode); in panel_simple_parse_panel_timing_node()
543 panel->override_mode.type |= DRM_MODE_TYPE_DRIVER | in panel_simple_parse_panel_timing_node()
548 if (WARN_ON(!panel->override_mode.type)) in panel_simple_parse_panel_timing_node()
563 return -ENOMEM; in panel_simple_probe()
565 panel->enabled = false; in panel_simple_probe()
566 panel->desc = desc; in panel_simple_probe()
568 panel->supply = devm_regulator_get(dev, "power"); in panel_simple_probe()
569 if (IS_ERR(panel->supply)) in panel_simple_probe()
570 return PTR_ERR(panel->supply); in panel_simple_probe()
572 panel->enable_gpio = devm_gpiod_get_optional(dev, "enable", in panel_simple_probe()
574 if (IS_ERR(panel->enable_gpio)) in panel_simple_probe()
575 return dev_err_probe(dev, PTR_ERR(panel->enable_gpio), in panel_simple_probe()
578 err = of_drm_get_panel_orientation(dev->of_node, &panel->orientation); in panel_simple_probe()
580 dev_err(dev, "%pOF: failed to get orientation %d\n", dev->of_node, err); in panel_simple_probe()
584 ddc = of_parse_phandle(dev->of_node, "ddc-i2c-bus", 0); in panel_simple_probe()
586 panel->ddc = of_find_i2c_adapter_by_node(ddc); in panel_simple_probe()
589 if (!panel->ddc) in panel_simple_probe()
590 return -EPROBE_DEFER; in panel_simple_probe()
594 /* Handle the generic panel-dpi binding */ in panel_simple_probe()
598 desc = panel->desc; in panel_simple_probe()
600 if (!of_get_display_timing(dev->of_node, "panel-timing", &dt)) in panel_simple_probe()
604 connector_type = desc->connector_type; in panel_simple_probe()
612 WARN_ON(desc->bus_flags & in panel_simple_probe()
617 WARN_ON(desc->bus_format != MEDIA_BUS_FMT_RGB666_1X7X3_SPWG && in panel_simple_probe()
618 desc->bus_format != MEDIA_BUS_FMT_RGB888_1X7X4_SPWG && in panel_simple_probe()
619 desc->bus_format != MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA); in panel_simple_probe()
620 WARN_ON(desc->bus_format == MEDIA_BUS_FMT_RGB666_1X7X3_SPWG && in panel_simple_probe()
621 desc->bpc != 6); in panel_simple_probe()
622 WARN_ON((desc->bus_format == MEDIA_BUS_FMT_RGB888_1X7X4_SPWG || in panel_simple_probe()
623 desc->bus_format == MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA) && in panel_simple_probe()
624 desc->bpc != 8); in panel_simple_probe()
627 dev_warn(dev, "eDP panels moved to panel-edp\n"); in panel_simple_probe()
628 err = -EINVAL; in panel_simple_probe()
631 if (desc->bpc != 6 && desc->bpc != 8) in panel_simple_probe()
632 dev_warn(dev, "Expected bpc in {6,8} but got: %u\n", desc->bpc); in panel_simple_probe()
643 if (desc->bus_flags & ~bus_flags) in panel_simple_probe()
644 dev_warn(dev, "Unexpected bus_flags(%d)\n", desc->bus_flags & ~bus_flags); in panel_simple_probe()
645 if (!(desc->bus_flags & bus_flags)) in panel_simple_probe()
647 if (desc->bus_format == 0) in panel_simple_probe()
649 if (desc->bpc != 6 && desc->bpc != 8) in panel_simple_probe()
650 dev_warn(dev, "Expected bpc in {6,8} but got: %u\n", desc->bpc); in panel_simple_probe()
653 dev_warn(dev, "Specify a valid connector_type: %d\n", desc->connector_type); in panel_simple_probe()
670 drm_panel_init(&panel->base, dev, &panel_simple_funcs, connector_type); in panel_simple_probe()
672 err = drm_panel_of_backlight(&panel->base); in panel_simple_probe()
678 drm_panel_add(&panel->base); in panel_simple_probe()
686 if (panel->ddc) in panel_simple_probe()
687 put_device(&panel->ddc->dev); in panel_simple_probe()
696 drm_panel_remove(&panel->base); in panel_simple_remove()
697 drm_panel_disable(&panel->base); in panel_simple_remove()
698 drm_panel_unprepare(&panel->base); in panel_simple_remove()
702 if (panel->ddc) in panel_simple_remove()
703 put_device(&panel->ddc->dev); in panel_simple_remove()
710 drm_panel_disable(&panel->base); in panel_simple_shutdown()
711 drm_panel_unprepare(&panel->base); in panel_simple_shutdown()
732 .width = 217,
758 .width = 99,
797 .width = 111,
812 .width = 152,
838 .width = 162,
867 .width = 154,
891 .width = 223,
917 .width = 223,
940 .width = 256,
971 .width = 152,
999 .width = 216,
1023 .width = 211,
1047 .width = 261,
1071 .width = 293,
1101 .width = 344,
1125 .width = 409,
1155 .width = 376,
1185 .width = 698,
1214 .width = 430,
1242 .width = 154,
1269 .width = 154,
1291 .width = 261,
1322 .width = 154,
1348 .width = 95,
1354 /* S070PWS19HP-FC21 2017/04/22 */
1373 .width = 154,
1381 /* S070SWV29HG-DC44 2017/09/21 */
1400 .width = 154,
1426 .width = 154,
1449 .width = 217,
1479 .width = 94,
1504 .width = 220,
1529 .width = 223,
1554 .width = 95,
1581 .width = 217,
1604 .width = 152,
1629 .width = 154,
1659 .width = 216,
1690 .width = 70,
1715 .width = 70,
1746 .width = 100,
1771 .width = 95,
1797 .width = 115,
1823 .width = 152,
1836 .width = 152,
1863 .width = 155,
1888 .width = 115,
1915 .width = 157,
1943 .width = 108,
1967 .width = 108,
2005 .width = 77,
2030 .width = 94,
2052 .width = 95,
2076 .width = 60,
2089 * According to the data sheet, the minimum horizontal blanking interval
2106 .width = 151,
2131 .width = 203,
2156 .width = 217,
2180 .width = 195,
2207 .width = 95,
2231 .width = 154,
2255 .width = 152,
2287 .width = 152,
2318 .width = 152,
2344 .width = 217,
2373 .width = 261,
2402 .width = 246,
2432 .width = 344,
2463 .width = 344,
2488 .width = 154,
2511 .width = 115,
2534 .width = 217,
2566 .width = 292,
2591 .width = 246,
2614 .width = 70,
2638 .width = 151,
2665 .width = 154,
2695 .width = 217,
2721 .width = 154,
2753 .width = 154,
2786 .width = 105,
2819 .width = 152,
2853 .width = 154,
2883 .width = 162,
2912 .width = 217,
2941 .width = 261,
2970 .width = 95,
2993 .width = 154,
3017 .width = 95,
3043 .width = 344,
3070 .width = 156,
3095 .width = 154,
3123 .width = 95,
3149 * https://www.adafruit.com/images/product-files/2406/c3163.pdf
3156 .width = 154,
3180 .width = 56, /* 56.16mm */
3205 .width = 56,
3231 .width = 152,
3256 .width = 152,
3280 .width = 152,
3307 .width = 95,
3345 .width = 95,
3372 .width = 95,
3397 .width = 154,
3426 .width = 217,
3456 .width = 217,
3486 .width = 223,
3511 .width = 108,
3536 .width = 152, /* 152.4mm */
3561 .width = 54,
3585 .width = 217,
3624 .width = 42,
3649 .width = 152,
3672 .width = 152,
3700 .width = 152,
3735 .width = 105,
3759 .width = 155,
3784 .width = 151,
3797 .width = 150,
3823 .width = 154,
3850 .width = 65,
3878 .width = 71,
3902 .width = 194,
3926 .width = 152,
3948 .width = 223,
3957 .hback_porch = { 216 - 128, 216 - 128, 216 - 128 },
3961 .vback_porch = { 35 - 2, 35 - 2, 35 - 2 },
3972 .width = 152,
3984 .width = 152,
4007 .width = 200,
4033 .width = 120,
4058 .width = 70,
4082 .width = 154,
4107 .width = 108,
4135 .width = 400,
4143 .compatible = "ampire,am-1280800n3tzqw-t00h",
4144 .data = &ire_am_1280800n3tzqw_t00h,
4146 .compatible = "ampire,am-480272h3tmqw-t01h",
4147 .data = &ire_am_480272h3tmqw_t01h,
4149 .compatible = "ampire,am-800480l1tmqw-t00h",
4150 .data = &ire_am_800480l1tmqw_t00h,
4153 .data = &ire_am800480r3tmqwa1h,
4155 .compatible = "ampire,am800600p5tmqw-tb8h",
4156 .data = &ire_am800600p5tmqwtb8h,
4158 .compatible = "arm,rtsm-display",
4159 .data = &arm_rtsm,
4161 .compatible = "armadeus,st0700-adapt",
4162 .data = &armadeus_st0700_adapt,
4165 .data = &auo_b101aw03,
4168 .data = &auo_b101xtn01,
4171 .data = &auo_b116xw03,
4174 .data = &auo_g070vvn01,
4177 .data = &auo_g101evn010,
4180 .data = &auo_g104sn02,
4183 .data = &auo_g121ean01,
4186 .data = &auo_g133han01,
4189 .data = &auo_g156xtn01,
4192 .data = &auo_g185han01,
4195 .data = &auo_g190ean01,
4198 .data = &auo_p320hvn03,
4201 .data = &auo_t215hvn01,
4204 .data = &avic_tm070ddh03,
4206 .compatible = "bananapi,s070wv20-ct16",
4207 .data = &bananapi_s070wv20_ct16,
4209 .compatible = "boe,ev121wxm-n10-1850",
4210 .data = &boe_ev121wxm_n10_1850,
4212 .compatible = "boe,hv070wsa-100",
4213 .data = &boe_hv070wsa
4215 .compatible = "cdtech,s043wq26h-ct7",
4216 .data = &cdtech_s043wq26h_ct7,
4218 .compatible = "cdtech,s070pws19hp-fc21",
4219 .data = &cdtech_s070pws19hp_fc21,
4221 .compatible = "cdtech,s070swv29hg-dc44",
4222 .data = &cdtech_s070swv29hg_dc44,
4224 .compatible = "cdtech,s070wv95-ct16",
4225 .data = &cdtech_s070wv95_ct16,
4227 .compatible = "chefree,ch101olhlwh-002",
4228 .data = &chefree_ch101olhlwh_002,
4231 .data = &chunghwa_claa070wp03xg,
4234 .data = &chunghwa_claa101wa01a
4237 .data = &chunghwa_claa101wb01
4240 .data = &dataimage_fg040346dsswbg04,
4243 .data = &dataimage_fg1001l0dsswmg01,
4246 .data = &dataimage_scf0700c48ggu18,
4248 .compatible = "dlc,dlc0700yzg-1",
4249 .data = &dlc_dlc0700yzg_1,
4252 .data = &dlc_dlc1010gig,
4255 .data = &edt_et035012dm6,
4258 .data = &edt_etm0350g0dh6,
4261 .data = &edt_etm043080dh6gp,
4264 .data = &edt_etm0430g0dh6,
4267 .data = &edt_et057090dhu,
4270 .data = &edt_etm0700g0dh6,
4273 .data = &edt_etm0700g0dh6,
4276 .data = &edt_etm0700g0bdh6,
4279 .data = &edt_etm0700g0bdh6,
4282 .data = &edt_etml0700y5dha,
4285 .data = &edt_etmv570g2dhu,
4287 .compatible = "eink,vb3300-kca",
4288 .data = &eink_vb3300_kca,
4291 .data = &evervision_vgg804821,
4293 .compatible = "foxlink,fl500wvr00-a0t",
4294 .data = &foxlink_fl500wvr00_a0t,
4297 .data = &frida_frd350h54004,
4300 .data = &friendlyarm_hd702e,
4303 .data = &giantplus_gpg482739qs5
4306 .data = &giantplus_gpm940b0,
4309 .data = &hannstar_hsd070pww1,
4312 .data = &hannstar_hsd100pxn1,
4315 .data = &hannstar_hsd101pww2,
4318 .data = &hitachi_tx23d38vm0caa
4321 .data = &innolux_at043tn24,
4324 .data = &innolux_at070tn92,
4326 .compatible = "innolux,g070ace-l01",
4327 .data = &innolux_g070ace_l01,
4329 .compatible = "innolux,g070y2-l01",
4330 .data = &innolux_g070y2_l01,
4332 .compatible = "innolux,g070y2-t02",
4333 .data = &innolux_g070y2_t02,
4335 .compatible = "innolux,g101ice-l01",
4336 .data = &innolux_g101ice_l01
4338 .compatible = "innolux,g121i1-l01",
4339 .data = &innolux_g121i1_l01
4341 .compatible = "innolux,g121x1-l03",
4342 .data = &innolux_g121x1_l03,
4344 .compatible = "innolux,g156hce-l01",
4345 .data = &innolux_g156hce_l01,
4347 .compatible = "innolux,n156bge-l21",
4348 .data = &innolux_n156bge_l21,
4350 .compatible = "innolux,zj070na-01p",
4351 .data = &innolux_zj070na_01p,
4354 .data = &koe_tx14d24vm1bpa,
4357 .data = &koe_tx26d202vm0bwa,
4360 .data = &koe_tx31d200vm0baa,
4363 .data = &kyo_tcg121xglp,
4365 .compatible = "lemaker,bl035-rgb-002",
4366 .data = &lemaker_bl035_rgb_002,
4369 .data = &lg_lb070wv8,
4372 .data = &logicpd_type_28,
4374 .compatible = "logictechno,lt161010-2nhc",
4375 .data = &logictechno_lt161010_2nh,
4377 .compatible = "logictechno,lt161010-2nhr",
4378 .data = &logictechno_lt161010_2nh,
4380 .compatible = "logictechno,lt170410-2whc",
4381 .data = &logictechno_lt170410_2whc,
4383 .compatible = "logictechno,lttd800480070-l2rt",
4384 .data = &logictechno_lttd800480070_l2rt,
4386 .compatible = "logictechno,lttd800480070-l6wh-rt",
4387 .data = &logictechno_lttd800480070_l6wh_rt,
4389 .compatible = "mitsubishi,aa070mc01-ca1",
4390 .data = &mitsubishi_aa070mc01,
4392 .compatible = "multi-inno,mi0700s4t-6",
4393 .data = &multi_inno_mi0700s4t_6,
4395 .compatible = "multi-inno,mi0800ft-9",
4396 .data = &multi_inno_mi0800ft_9,
4398 .compatible = "multi-inno,mi1010ait-1cp",
4399 .data = &multi_inno_mi1010ait_1cp,
4401 .compatible = "nec,nl12880bc20-05",
4402 .data = &nec_nl12880bc20_05,
4404 .compatible = "nec,nl4827hc19-05b",
4405 .data = &nec_nl4827hc19_05b,
4407 .compatible = "netron-dy,e231732",
4408 .data = &netron_dy_e231732,
4410 .compatible = "newhaven,nhd-4.3-480272ef-atxl",
4411 .data = &newhaven_nhd_43_480272ef_atxl,
4413 .compatible = "nlt,nl192108ac18-02d",
4414 .data = &nlt_nl192108ac18_02d,
4417 .data = &nvd_9128,
4419 .compatible = "okaya,rs800480t-7x0gp",
4420 .data = &okaya_rs800480t_7x0gp,
4422 .compatible = "olimex,lcd-olinuxino-43-ts",
4423 .data = &olimex_lcd_olinuxino_43ts,
4426 .data = &ontat_yx700wv03,
4429 .data = &ortustech_com37h3m,
4432 .data = &ortustech_com37h3m,
4435 .data = &ortustech_com43h4m85ulc,
4437 .compatible = "osddisplays,osd070t1718-19ts",
4438 .data = &osddisplays_osd070t1718_19ts,
4440 .compatible = "pda,91-00156-a0",
4441 .data = &pda_91_00156_a0,
4443 .compatible = "powertip,ph800480t013-idf02",
4444 .data = &powertip_ph800480t013_idf02,
4446 .compatible = "qiaodian,qd43003c0-40",
4447 .data = &qd43003c0_40,
4449 .compatible = "qishenglong,gopher2b-lcd",
4450 .data = &qishenglong_gopher2b_lcd,
4453 .data = &rocktech_rk043fn48h,
4456 .data = &rocktech_rk070er9427,
4458 .compatible = "rocktech,rk101ii01d-ct",
4459 .data = &rocktech_rk101ii01d_ct,
4462 .data = &samsung_ltl101al01,
4465 .data = &samsung_ltn101nt05,
4468 .data = &satoz_sat050at40h12r2,
4471 .data = &sharp_lq035q7db03,
4474 .data = &sharp_lq070y3dg3b,
4477 .data = &sharp_lq101k1ly04,
4480 .data = &sharp_ls020b1dd01d,
4482 .compatible = "shelly,sca07010-bfn-lnn",
4483 .data = &shelly_sca07010_bfn_lnn,
4486 .data = &starry_kr070pe2t,
4489 .data = &startek_kd070wvfpa,
4491 .compatible = "team-source-display,tst043015cmhx",
4492 .data = &tsd_tst043015cmhx,
4494 .compatible = "tfc,s9700rtwv43tr-01b",
4495 .data = &tfc_s9700rtwv43tr_01b,
4498 .data = &tianma_tm070jdhg30,
4501 .data = &tianma_tm070jvhg33,
4504 .data = &tianma_tm070rvhg71,
4506 .compatible = "ti,nspire-cx-lcd-panel",
4507 .data = &ti_nspire_cx_lcd_panel,
4509 .compatible = "ti,nspire-classic-lcd-panel",
4510 .data = &ti_nspire_classic_lcd_panel,
4513 .data = &toshiba_lt089ac29000,
4515 .compatible = "tpk,f07a-0102",
4516 .data = &tpk_f07a_0102,
4518 .compatible = "tpk,f10a-0102",
4519 .data = &tpk_f10a_0102,
4521 .compatible = "urt,umsh-8596md-t",
4522 .data = &urt_umsh_8596md_parallel,
4524 .compatible = "urt,umsh-8596md-1t",
4525 .data = &urt_umsh_8596md_parallel,
4527 .compatible = "urt,umsh-8596md-7t",
4528 .data = &urt_umsh_8596md_parallel,
4530 .compatible = "urt,umsh-8596md-11t",
4531 .data = &urt_umsh_8596md_lvds,
4533 .compatible = "urt,umsh-8596md-19t",
4534 .data = &urt_umsh_8596md_lvds,
4536 .compatible = "urt,umsh-8596md-20t",
4537 .data = &urt_umsh_8596md_parallel,
4539 .compatible = "vivax,tpc9150-panel",
4540 .data = &vivax_tpc9150_panel,
4542 .compatible = "vxt,vl050-8048nt-c01",
4543 .data = &vl050_8048nt_c01,
4546 .data = &winstar_wf35ltiacd,
4548 .compatible = "yes-optoelectronics,ytc700tlag-05-201c",
4549 .data = &yes_optoelectronics_ytc700tlag_05_201c,
4552 .data = &mchp_ac69t88a,
4555 .compatible = "panel-dpi",
4556 .data = &panel_dpi,
4567 desc = of_device_get_match_data(&pdev->dev); in panel_simple_platform_probe()
4569 return -ENODEV; in panel_simple_platform_probe()
4571 return panel_simple_probe(&pdev->dev, desc); in panel_simple_platform_probe()
4576 panel_simple_remove(&pdev->dev); in panel_simple_platform_remove()
4581 panel_simple_shutdown(&pdev->dev); in panel_simple_platform_shutdown()
4592 .name = "panel-simple",
4627 .width = 108,
4655 .width = 107,
4685 .width = 94,
4713 .width = 62,
4741 .width = 217,
4770 .width = 62,
4799 .width = 217,
4814 .data = &auo_b080uan01
4816 .compatible = "boe,tv080wum-nl0",
4817 .data = &boe_tv080wum_nl0
4819 .compatible = "lg,ld070wx3-sl01",
4820 .data = &lg_ld070wx3_sl01
4822 .compatible = "lg,lh500wx1-sd03",
4823 .data = &lg_lh500wx1_sd03
4826 .data = &panasonic_vvx10f004b00
4828 .compatible = "lg,acx467akm-7",
4829 .data = &lg_acx467akm_7
4831 .compatible = "osddisplays,osd101t2045-53ts",
4832 .data = &osd101t2045_53ts
4844 desc = of_device_get_match_data(&dsi->dev); in panel_simple_dsi_probe()
4846 return -ENODEV; in panel_simple_dsi_probe()
4848 err = panel_simple_probe(&dsi->dev, &desc->desc); in panel_simple_dsi_probe()
4852 dsi->mode_flags = desc->flags; in panel_simple_dsi_probe()
4853 dsi->format = desc->format; in panel_simple_dsi_probe()
4854 dsi->lanes = desc->lanes; in panel_simple_dsi_probe()
4860 drm_panel_remove(&panel->base); in panel_simple_dsi_probe()
4872 dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", err); in panel_simple_dsi_remove()
4874 panel_simple_remove(&dsi->dev); in panel_simple_dsi_remove()
4879 panel_simple_shutdown(&dsi->dev); in panel_simple_dsi_shutdown()
4884 .name = "panel-simple-dsi",