Home
last modified time | relevance | path

Searched refs:dssdev (Results 1 – 25 of 35) sorted by relevance

12

/linux/drivers/video/fbdev/omap2/omapfb/dss/
H A Ddisplay-sysfs.c21 static ssize_t display_name_show(struct omap_dss_device *dssdev, char *buf) in display_name_show() argument
24 dssdev->name ? in display_name_show()
25 dssdev->name : ""); in display_name_show()
28 static ssize_t display_enabled_show(struct omap_dss_device *dssdev, char *buf) in display_enabled_show() argument
31 omapdss_device_is_enabled(dssdev)); in display_enabled_show()
34 static ssize_t display_enabled_store(struct omap_dss_device *dssdev, in display_enabled_store() argument
44 if (enable == omapdss_device_is_enabled(dssdev)) in display_enabled_store()
47 if (omapdss_device_is_connected(dssdev) == false) in display_enabled_store()
51 r = dssdev->driver->enable(dssdev); in display_enabled_store()
55 dssdev->driver->disable(dssdev); in display_enabled_store()
[all …]
H A Ddisplay.c24 void omapdss_default_get_resolution(struct omap_dss_device *dssdev, in omapdss_default_get_resolution() argument
27 *xres = dssdev->panel.timings.x_res; in omapdss_default_get_resolution()
28 *yres = dssdev->panel.timings.y_res; in omapdss_default_get_resolution()
32 int omapdss_default_get_recommended_bpp(struct omap_dss_device *dssdev) in omapdss_default_get_recommended_bpp() argument
34 switch (dssdev->type) { in omapdss_default_get_recommended_bpp()
36 if (dssdev->phy.dpi.data_lines == 24) in omapdss_default_get_recommended_bpp()
42 if (dssdev->ctrl.pixel_size == 24) in omapdss_default_get_recommended_bpp()
47 if (dsi_get_pixel_size(dssdev->panel.dsi_pix_fmt) > 16) in omapdss_default_get_recommended_bpp()
63 void omapdss_default_get_timings(struct omap_dss_device *dssdev, in omapdss_default_get_timings() argument
66 *timings = dssdev->panel.timings; in omapdss_default_get_timings()
[all …]
H A Dhdmi4.c110 static int hdmi_power_on_core(struct omap_dss_device *dssdev) in hdmi_power_on_core() argument
135 static void hdmi_power_off_core(struct omap_dss_device *dssdev) in hdmi_power_off_core() argument
143 static int hdmi_power_on_full(struct omap_dss_device *dssdev) in hdmi_power_on_full() argument
151 r = hdmi_power_on_core(dssdev); in hdmi_power_on_full()
218 hdmi_power_off_core(dssdev); in hdmi_power_on_full()
222 static void hdmi_power_off_full(struct omap_dss_device *dssdev) in hdmi_power_off_full() argument
236 hdmi_power_off_core(dssdev); in hdmi_power_off_full()
239 static int hdmi_display_check_timing(struct omap_dss_device *dssdev, in hdmi_display_check_timing() argument
250 static void hdmi_display_set_timing(struct omap_dss_device *dssdev, in hdmi_display_set_timing() argument
262 static void hdmi_display_get_timings(struct omap_dss_device *dssdev, in hdmi_display_get_timings() argument
[all …]
H A Dhdmi5.c127 static int hdmi_power_on_core(struct omap_dss_device *dssdev) in hdmi_power_on_core() argument
152 static void hdmi_power_off_core(struct omap_dss_device *dssdev) in hdmi_power_off_core() argument
160 static int hdmi_power_on_full(struct omap_dss_device *dssdev) in hdmi_power_on_full() argument
167 r = hdmi_power_on_core(dssdev); in hdmi_power_on_full()
235 hdmi_power_off_core(dssdev); in hdmi_power_on_full()
239 static void hdmi_power_off_full(struct omap_dss_device *dssdev) in hdmi_power_off_full() argument
253 hdmi_power_off_core(dssdev); in hdmi_power_off_full()
256 static int hdmi_display_check_timing(struct omap_dss_device *dssdev, in hdmi_display_check_timing() argument
271 static void hdmi_display_set_timing(struct omap_dss_device *dssdev, in hdmi_display_set_timing() argument
283 static void hdmi_display_get_timings(struct omap_dss_device *dssdev, in hdmi_display_get_timings() argument
[all …]
H A Dsdi.c104 static void sdi_config_lcd_manager(struct omap_dss_device *dssdev) in sdi_config_lcd_manager() argument
119 static int sdi_display_enable(struct omap_dss_device *dssdev) in sdi_display_enable() argument
167 sdi_config_lcd_manager(dssdev); in sdi_display_enable()
206 static void sdi_display_disable(struct omap_dss_device *dssdev) in sdi_display_disable() argument
219 static void sdi_set_timings(struct omap_dss_device *dssdev, in sdi_set_timings() argument
225 static void sdi_get_timings(struct omap_dss_device *dssdev, in sdi_get_timings() argument
231 static int sdi_check_timings(struct omap_dss_device *dssdev, in sdi_check_timings() argument
245 static void sdi_set_datapairs(struct omap_dss_device *dssdev, int datapairs) in sdi_set_datapairs() argument
269 static int sdi_connect(struct omap_dss_device *dssdev, in sdi_connect() argument
279 mgr = omap_dss_get_overlay_manager(dssdev->dispc_channel); in sdi_connect()
[all …]
H A Ddpi.c50 static struct dpi_data *dpi_get_data_from_dssdev(struct omap_dss_device *dssdev) in dpi_get_data_from_dssdev() argument
52 return container_of(dssdev, struct dpi_data, output); in dpi_get_data_from_dssdev()
373 static int dpi_display_enable(struct omap_dss_device *dssdev) in dpi_display_enable() argument
375 struct dpi_data *dpi = dpi_get_data_from_dssdev(dssdev); in dpi_display_enable()
446 static void dpi_display_disable(struct omap_dss_device *dssdev) in dpi_display_disable() argument
448 struct dpi_data *dpi = dpi_get_data_from_dssdev(dssdev); in dpi_display_disable()
468 static void dpi_set_timings(struct omap_dss_device *dssdev, in dpi_set_timings() argument
471 struct dpi_data *dpi = dpi_get_data_from_dssdev(dssdev); in dpi_set_timings()
482 static void dpi_get_timings(struct omap_dss_device *dssdev, in dpi_get_timings() argument
485 struct dpi_data *dpi = dpi_get_data_from_dssdev(dssdev); in dpi_get_timings()
[all …]
H A Doutput.c21 struct omap_dss_device *dssdev) in omapdss_output_set_device() argument
34 if (out->output_type != dssdev->type) { in omapdss_output_set_device()
40 out->dst = dssdev; in omapdss_output_set_device()
41 dssdev->src = out; in omapdss_output_set_device()
149 struct omap_dss_device *omapdss_find_output_from_display(struct omap_dss_device *dssdev) in omapdss_find_output_from_display() argument
151 while (dssdev->src) in omapdss_find_output_from_display()
152 dssdev = dssdev->src; in omapdss_find_output_from_display()
154 if (dssdev->id != 0) in omapdss_find_output_from_display()
155 return omap_dss_get_device(dssdev); in omapdss_find_output_from_display()
161 struct omap_overlay_manager *omapdss_find_mgr_from_display(struct omap_dss_device *dssdev) in omapdss_find_mgr_from_display() argument
[all …]
H A Dmanager-sysfs.c31 struct omap_dss_device *dssdev = mgr->get_device(mgr); in manager_display_show() local
33 return sysfs_emit(buf, "%s\n", dssdev ? in manager_display_show()
34 dssdev->name : "<none>"); in manager_display_show()
37 static int manager_display_match(struct omap_dss_device *dssdev, void *data) in manager_display_match() argument
41 return sysfs_streq(dssdev->name, str); in manager_display_match()
49 struct omap_dss_device *dssdev = NULL; in manager_display_store() local
56 dssdev = omap_dss_find_device((void *)buf, in manager_display_store()
59 if (len > 0 && dssdev == NULL) in manager_display_store()
62 if (dssdev) { in manager_display_store()
63 DSSDBG("display %s found\n", dssdev->name); in manager_display_store()
[all …]
/linux/drivers/video/fbdev/omap2/omapfb/displays/
H A Dencoder-opa362.c23 struct omap_dss_device dssdev; member
31 #define to_panel_data(x) container_of(x, struct panel_drv_data, dssdev)
33 static int opa362_connect(struct omap_dss_device *dssdev, in opa362_connect() argument
36 struct panel_drv_data *ddata = to_panel_data(dssdev); in opa362_connect()
40 dev_dbg(dssdev->dev, "connect\n"); in opa362_connect()
42 if (omapdss_device_is_connected(dssdev)) in opa362_connect()
45 r = in->ops.atv->connect(in, dssdev); in opa362_connect()
49 dst->src = dssdev; in opa362_connect()
50 dssdev->dst = dst; in opa362_connect()
55 static void opa362_disconnect(struct omap_dss_device *dssdev, in opa362_disconnect() argument
[all …]
H A Dencoder-tfp410.c19 struct omap_dss_device dssdev; member
29 #define to_panel_data(x) container_of(x, struct panel_drv_data, dssdev)
31 static int tfp410_connect(struct omap_dss_device *dssdev, in tfp410_connect() argument
34 struct panel_drv_data *ddata = to_panel_data(dssdev); in tfp410_connect()
38 if (omapdss_device_is_connected(dssdev)) in tfp410_connect()
41 r = in->ops.dpi->connect(in, dssdev); in tfp410_connect()
45 dst->src = dssdev; in tfp410_connect()
46 dssdev->dst = dst; in tfp410_connect()
51 static void tfp410_disconnect(struct omap_dss_device *dssdev, in tfp410_disconnect() argument
54 struct panel_drv_data *ddata = to_panel_data(dssdev); in tfp410_disconnect()
[all …]
H A Dencoder-tpd12s015.c20 struct omap_dss_device dssdev; member
30 #define to_panel_data(x) container_of(x, struct panel_drv_data, dssdev)
32 static int tpd_connect(struct omap_dss_device *dssdev, in tpd_connect() argument
35 struct panel_drv_data *ddata = to_panel_data(dssdev); in tpd_connect()
39 r = in->ops.hdmi->connect(in, dssdev); in tpd_connect()
43 dst->src = dssdev; in tpd_connect()
44 dssdev->dst = dst; in tpd_connect()
55 static void tpd_disconnect(struct omap_dss_device *dssdev, in tpd_disconnect() argument
58 struct panel_drv_data *ddata = to_panel_data(dssdev); in tpd_disconnect()
61 WARN_ON(dst != dssdev->dst); in tpd_disconnect()
[all …]
H A Dconnector-analog-tv.c17 struct omap_dss_device dssdev; member
43 #define to_panel_data(x) container_of(x, struct panel_drv_data, dssdev)
45 static int tvc_connect(struct omap_dss_device *dssdev) in tvc_connect() argument
47 struct panel_drv_data *ddata = to_panel_data(dssdev); in tvc_connect()
52 if (omapdss_device_is_connected(dssdev)) in tvc_connect()
55 return in->ops.atv->connect(in, dssdev); in tvc_connect()
58 static void tvc_disconnect(struct omap_dss_device *dssdev) in tvc_disconnect() argument
60 struct panel_drv_data *ddata = to_panel_data(dssdev); in tvc_disconnect()
65 if (!omapdss_device_is_connected(dssdev)) in tvc_disconnect()
68 in->ops.atv->disconnect(in, dssdev); in tvc_disconnect()
[all …]
H A Dconnector-hdmi.c38 struct omap_dss_device dssdev; member
48 #define to_panel_data(x) container_of(x, struct panel_drv_data, dssdev)
50 static int hdmic_connect(struct omap_dss_device *dssdev) in hdmic_connect() argument
52 struct panel_drv_data *ddata = to_panel_data(dssdev); in hdmic_connect()
57 if (omapdss_device_is_connected(dssdev)) in hdmic_connect()
60 return in->ops.hdmi->connect(in, dssdev); in hdmic_connect()
63 static void hdmic_disconnect(struct omap_dss_device *dssdev) in hdmic_disconnect() argument
65 struct panel_drv_data *ddata = to_panel_data(dssdev); in hdmic_disconnect()
70 if (!omapdss_device_is_connected(dssdev)) in hdmic_disconnect()
73 in->ops.hdmi->disconnect(in, dssdev); in hdmic_disconnect()
[all …]
H A Dpanel-dpi.c19 struct omap_dss_device dssdev; member
29 #define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
31 static int panel_dpi_connect(struct omap_dss_device *dssdev) in panel_dpi_connect() argument
33 struct panel_drv_data *ddata = to_panel_data(dssdev); in panel_dpi_connect()
36 if (omapdss_device_is_connected(dssdev)) in panel_dpi_connect()
39 return in->ops.dpi->connect(in, dssdev); in panel_dpi_connect()
42 static void panel_dpi_disconnect(struct omap_dss_device *dssdev) in panel_dpi_disconnect() argument
44 struct panel_drv_data *ddata = to_panel_data(dssdev); in panel_dpi_disconnect()
47 if (!omapdss_device_is_connected(dssdev)) in panel_dpi_disconnect()
50 in->ops.dpi->disconnect(in, dssdev); in panel_dpi_disconnect()
[all …]
H A Dconnector-dvi.c40 struct omap_dss_device dssdev; member
48 #define to_panel_data(x) container_of(x, struct panel_drv_data, dssdev)
50 static int dvic_connect(struct omap_dss_device *dssdev) in dvic_connect() argument
52 struct panel_drv_data *ddata = to_panel_data(dssdev); in dvic_connect()
55 if (omapdss_device_is_connected(dssdev)) in dvic_connect()
58 return in->ops.dvi->connect(in, dssdev); in dvic_connect()
61 static void dvic_disconnect(struct omap_dss_device *dssdev) in dvic_disconnect() argument
63 struct panel_drv_data *ddata = to_panel_data(dssdev); in dvic_disconnect()
66 if (!omapdss_device_is_connected(dssdev)) in dvic_disconnect()
69 in->ops.dvi->disconnect(in, dssdev); in dvic_disconnect()
[all …]
H A Dpanel-lgphilips-lb035q02.c40 struct omap_dss_device dssdev; member
52 #define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
114 static int lb035q02_connect(struct omap_dss_device *dssdev) in lb035q02_connect() argument
116 struct panel_drv_data *ddata = to_panel_data(dssdev); in lb035q02_connect()
120 if (omapdss_device_is_connected(dssdev)) in lb035q02_connect()
123 r = in->ops.dpi->connect(in, dssdev); in lb035q02_connect()
132 static void lb035q02_disconnect(struct omap_dss_device *dssdev) in lb035q02_disconnect() argument
134 struct panel_drv_data *ddata = to_panel_data(dssdev); in lb035q02_disconnect()
137 if (!omapdss_device_is_connected(dssdev)) in lb035q02_disconnect()
140 in->ops.dpi->disconnect(in, dssdev); in lb035q02_disconnect()
[all …]
H A Dpanel-sharp-ls037v7dw01.c19 struct omap_dss_device dssdev; member
55 #define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
57 static int sharp_ls_connect(struct omap_dss_device *dssdev) in sharp_ls_connect() argument
59 struct panel_drv_data *ddata = to_panel_data(dssdev); in sharp_ls_connect()
62 if (omapdss_device_is_connected(dssdev)) in sharp_ls_connect()
65 return in->ops.dpi->connect(in, dssdev); in sharp_ls_connect()
68 static void sharp_ls_disconnect(struct omap_dss_device *dssdev) in sharp_ls_disconnect() argument
70 struct panel_drv_data *ddata = to_panel_data(dssdev); in sharp_ls_disconnect()
73 if (!omapdss_device_is_connected(dssdev)) in sharp_ls_disconnect()
76 in->ops.dpi->disconnect(in, dssdev); in sharp_ls_disconnect()
[all …]
H A Dpanel-nec-nl8048hl11.c20 struct omap_dss_device dssdev; member
82 #define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
115 static int nec_8048_connect(struct omap_dss_device *dssdev) in nec_8048_connect() argument
117 struct panel_drv_data *ddata = to_panel_data(dssdev); in nec_8048_connect()
120 if (omapdss_device_is_connected(dssdev)) in nec_8048_connect()
123 return in->ops.dpi->connect(in, dssdev); in nec_8048_connect()
126 static void nec_8048_disconnect(struct omap_dss_device *dssdev) in nec_8048_disconnect() argument
128 struct panel_drv_data *ddata = to_panel_data(dssdev); in nec_8048_disconnect()
131 if (!omapdss_device_is_connected(dssdev)) in nec_8048_disconnect()
134 in->ops.dpi->disconnect(in, dssdev); in nec_8048_disconnect()
[all …]
H A Dpanel-tpo-td028ttec1.c22 struct omap_dss_device dssdev; member
155 #define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
157 static int td028ttec1_panel_connect(struct omap_dss_device *dssdev) in td028ttec1_panel_connect() argument
159 struct panel_drv_data *ddata = to_panel_data(dssdev); in td028ttec1_panel_connect()
163 if (omapdss_device_is_connected(dssdev)) in td028ttec1_panel_connect()
166 r = in->ops.dpi->connect(in, dssdev); in td028ttec1_panel_connect()
173 static void td028ttec1_panel_disconnect(struct omap_dss_device *dssdev) in td028ttec1_panel_disconnect() argument
175 struct panel_drv_data *ddata = to_panel_data(dssdev); in td028ttec1_panel_disconnect()
178 if (!omapdss_device_is_connected(dssdev)) in td028ttec1_panel_disconnect()
181 in->ops.dpi->disconnect(in, dssdev); in td028ttec1_panel_disconnect()
[all …]
H A Dpanel-tpo-td043mtea1.c51 struct omap_dss_device dssdev; member
91 #define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
150 static int tpo_td043_set_hmirror(struct omap_dss_device *dssdev, bool enable) in tpo_td043_set_hmirror() argument
152 struct panel_drv_data *ddata = dev_get_drvdata(dssdev->dev); in tpo_td043_set_hmirror()
159 static bool tpo_td043_get_hmirror(struct omap_dss_device *dssdev) in tpo_td043_get_hmirror() argument
161 struct panel_drv_data *ddata = dev_get_drvdata(dssdev->dev); in tpo_td043_get_hmirror()
328 static int tpo_td043_connect(struct omap_dss_device *dssdev) in tpo_td043_connect() argument
330 struct panel_drv_data *ddata = to_panel_data(dssdev); in tpo_td043_connect()
333 if (omapdss_device_is_connected(dssdev)) in tpo_td043_connect()
336 return in->ops.dpi->connect(in, dssdev); in tpo_td043_connect()
[all …]
H A Dpanel-dsi-cm.c39 struct omap_dss_device dssdev; member
80 #define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
367 static void dsicm_get_resolution(struct omap_dss_device *dssdev,
370 *xres = dssdev->panel.timings.x_res;
371 *yres = dssdev->panel.timings.y_res; in dsicm_get_resolution() argument
692 static int dsicm_connect(struct omap_dss_device *dssdev) in dsicm_panel_reset()
694 struct panel_drv_data *ddata = to_panel_data(dssdev); in dsicm_panel_reset()
699 if (omapdss_device_is_connected(dssdev)) in dsicm_connect()
702 r = in->ops.dsi->connect(in, dssdev); in dsicm_connect()
725 in->ops.dsi->disconnect(in, dssdev); in dsicm_connect()
696 dsicm_connect(struct omap_dss_device * dssdev) dsicm_connect() argument
733 dsicm_disconnect(struct omap_dss_device * dssdev) dsicm_disconnect() argument
745 dsicm_enable(struct omap_dss_device * dssdev) dsicm_enable() argument
785 dsicm_disable(struct omap_dss_device * dssdev) dsicm_disable() argument
858 dsicm_update(struct omap_dss_device * dssdev,u16 x,u16 y,u16 w,u16 h) dsicm_update() argument
906 dsicm_sync(struct omap_dss_device * dssdev) dsicm_sync() argument
942 dsicm_enable_te(struct omap_dss_device * dssdev,bool enable) dsicm_enable_te() argument
979 dsicm_get_te(struct omap_dss_device * dssdev) dsicm_get_te() argument
991 dsicm_memory_read(struct omap_dss_device * dssdev,void * buf,size_t size,u16 x,u16 y,u16 w,u16 h) dsicm_memory_read() argument
1078 struct omap_dss_device *dssdev = &ddata->dssdev; dsicm_ulps_work() local
1121 struct omap_dss_device *dssdev; dsicm_probe() local
1247 struct omap_dss_device *dssdev = &ddata->dssdev; dsicm_remove() local
[all...]
/linux/include/video/
H A Domapfb_dss.h438 int (*connect)(struct omap_dss_device *dssdev,
440 void (*disconnect)(struct omap_dss_device *dssdev,
443 int (*enable)(struct omap_dss_device *dssdev);
444 void (*disable)(struct omap_dss_device *dssdev);
446 int (*check_timings)(struct omap_dss_device *dssdev,
448 void (*set_timings)(struct omap_dss_device *dssdev,
450 void (*get_timings)(struct omap_dss_device *dssdev,
453 void (*set_data_lines)(struct omap_dss_device *dssdev, int data_lines);
457 int (*connect)(struct omap_dss_device *dssdev,
459 void (*disconnect)(struct omap_dss_device *dssdev,
[all …]
/linux/drivers/gpu/drm/omapdrm/dss/
H A Dbase.c31 void omapdss_device_register(struct omap_dss_device *dssdev) in omapdss_device_register() argument
34 list_add_tail(&dssdev->list, &omapdss_devices_list); in omapdss_device_register()
38 void omapdss_device_unregister(struct omap_dss_device *dssdev) in omapdss_device_unregister() argument
41 list_del(&dssdev->list); in omapdss_device_unregister()
47 struct omap_dss_device *dssdev; in omapdss_device_is_registered() local
52 list_for_each_entry(dssdev, &omapdss_devices_list, list) { in omapdss_device_is_registered()
53 if (dssdev->dev->of_node == node) { in omapdss_device_is_registered()
63 struct omap_dss_device *omapdss_device_get(struct omap_dss_device *dssdev) in omapdss_device_get() argument
65 if (get_device(dssdev->dev) == NULL) in omapdss_device_get()
68 return dssdev; in omapdss_device_get()
71 omapdss_device_put(struct omap_dss_device * dssdev) omapdss_device_put() argument
78 struct omap_dss_device *dssdev; omapdss_find_device_by_node() local
94 struct omap_dss_device *dssdev; omapdss_device_next_output() local
136 omapdss_device_is_connected(struct omap_dss_device * dssdev) omapdss_device_is_connected() argument
[all...]
H A Doutput.c84 void dss_mgr_set_timings(struct omap_dss_device *dssdev, in dss_mgr_set_timings() argument
87 omap_crtc_dss_set_timings(dssdev->dss->mgr_ops_priv, in dss_mgr_set_timings()
88 dssdev->dispc_channel, vm); in dss_mgr_set_timings()
91 void dss_mgr_set_lcd_config(struct omap_dss_device *dssdev, in dss_mgr_set_lcd_config() argument
94 omap_crtc_dss_set_lcd_config(dssdev->dss->mgr_ops_priv, in dss_mgr_set_lcd_config()
95 dssdev->dispc_channel, config); in dss_mgr_set_lcd_config()
98 int dss_mgr_enable(struct omap_dss_device *dssdev) in dss_mgr_enable() argument
100 return omap_crtc_dss_enable(dssdev->dss->mgr_ops_priv, in dss_mgr_enable()
101 dssdev->dispc_channel); in dss_mgr_enable()
104 void dss_mgr_disable(struct omap_dss_device *dssdev) in dss_mgr_disable() argument
[all …]
H A Domapdss.h197 int (*update)(struct omap_dss_device *dssdev);
198 bool (*is_video_mode)(struct omap_dss_device *dssdev);
239 void omapdss_device_register(struct omap_dss_device *dssdev);
240 void omapdss_device_unregister(struct omap_dss_device *dssdev);
241 struct omap_dss_device *omapdss_device_get(struct omap_dss_device *dssdev);
242 void omapdss_device_put(struct omap_dss_device *dssdev);
297 void dss_mgr_set_timings(struct omap_dss_device *dssdev,
299 void dss_mgr_set_lcd_config(struct omap_dss_device *dssdev,
301 int dss_mgr_enable(struct omap_dss_device *dssdev);
302 void dss_mgr_disable(struct omap_dss_device *dssdev);
[all …]

12