| /kernel/linux/linux-6.6/drivers/gpu/drm/imx/dcss/ |
| D | dcss-dev.c | 16 #include "dcss-dev.h" 17 #include "dcss-kms.h" 19 static void dcss_clocks_enable(struct dcss_dev *dcss) in dcss_clocks_enable() argument 21 clk_prepare_enable(dcss->axi_clk); in dcss_clocks_enable() 22 clk_prepare_enable(dcss->apb_clk); in dcss_clocks_enable() 23 clk_prepare_enable(dcss->rtrm_clk); in dcss_clocks_enable() 24 clk_prepare_enable(dcss->dtrc_clk); in dcss_clocks_enable() 25 clk_prepare_enable(dcss->pix_clk); in dcss_clocks_enable() 28 static void dcss_clocks_disable(struct dcss_dev *dcss) in dcss_clocks_disable() argument 30 clk_disable_unprepare(dcss->pix_clk); in dcss_clocks_disable() [all …]
|
| D | dcss-crtc.c | 12 #include "dcss-dev.h" 13 #include "dcss-kms.h" 19 struct dcss_dev *dcss = crtc->dev->dev_private; in dcss_enable_vblank() local 21 dcss_dtg_vblank_irq_enable(dcss->dtg, true); in dcss_enable_vblank() 23 dcss_dtg_ctxld_kick_irq_enable(dcss->dtg, true); in dcss_enable_vblank() 34 struct dcss_dev *dcss = dcss_crtc->base.dev->dev_private; in dcss_disable_vblank() local 38 dcss_dtg_vblank_irq_enable(dcss->dtg, false); in dcss_disable_vblank() 41 dcss_dtg_ctxld_kick_irq_enable(dcss->dtg, false); in dcss_disable_vblank() 66 struct dcss_dev *dcss = dcss_crtc->base.dev->dev_private; in dcss_crtc_atomic_flush() local 76 if (dcss_dtg_is_enabled(dcss->dtg)) in dcss_crtc_atomic_flush() [all …]
|
| D | Makefile | 1 imx-dcss-objs := dcss-drv.o dcss-dev.o dcss-blkctl.o dcss-ctxld.o dcss-dtg.o \ 2 dcss-ss.o dcss-dpr.o dcss-scaler.o dcss-kms.o dcss-crtc.o \ 3 dcss-plane.o 5 obj-$(CONFIG_DRM_IMX_DCSS) += imx-dcss.o
|
| D | dcss-drv.c | 13 #include "dcss-dev.h" 14 #include "dcss-kms.h" 17 struct dcss_dev *dcss; member 25 return mdrv ? mdrv->dcss : NULL; in dcss_drv_dev_to_dcss() 58 mdrv->dcss = dcss_dev_create(dev, hdmi_output); in dcss_drv_platform_probe() 59 if (IS_ERR(mdrv->dcss)) { in dcss_drv_platform_probe() 60 err = PTR_ERR(mdrv->dcss); in dcss_drv_platform_probe() 66 mdrv->kms = dcss_kms_attach(mdrv->dcss); in dcss_drv_platform_probe() 76 dcss_dev_destroy(mdrv->dcss); in dcss_drv_platform_probe() 88 dcss_dev_destroy(mdrv->dcss); in dcss_drv_platform_remove() [all …]
|
| D | dcss-plane.c | 14 #include "dcss-dev.h" 15 #include "dcss-kms.h" 147 struct dcss_dev *dcss = plane->dev->dev_private; in dcss_plane_atomic_check() local 175 dcss_scaler_get_min_max_ratios(dcss->scaler, dcss_plane->ch_num, in dcss_plane_atomic_check() 218 struct dcss_dev *dcss = plane->dev->dev_private; in dcss_plane_atomic_set_base() local 244 dcss_dpr_addr_set(dcss->dpr, dcss_plane->ch_num, p1_ba, p2_ba, in dcss_plane_atomic_set_base() 276 struct dcss_dev *dcss = plane->dev->dev_private; in dcss_plane_atomic_update() local 312 dcss_dpr_format_set(dcss->dpr, dcss_plane->ch_num, in dcss_plane_atomic_update() 316 dcss_dpr_set_res(dcss->dpr, dcss_plane->ch_num, src_w, src_h); in dcss_plane_atomic_update() 317 dcss_dpr_set_rotation(dcss->dpr, dcss_plane->ch_num, in dcss_plane_atomic_update() [all …]
|
| D | dcss-blkctl.c | 10 #include "dcss-dev.h" 25 struct dcss_dev *dcss; member 31 if (blkctl->dcss->hdmi_output) in dcss_blkctl_cfg() 41 int dcss_blkctl_init(struct dcss_dev *dcss, unsigned long blkctl_base) in dcss_blkctl_init() argument 51 dev_err(dcss->dev, "unable to remap BLK CTRL base\n"); in dcss_blkctl_init() 56 dcss->blkctl = blkctl; in dcss_blkctl_init() 57 blkctl->dcss = dcss; in dcss_blkctl_init()
|
| D | dcss-ctxld.c | 12 #include "dcss-dev.h" 91 struct dcss_dev *dcss = dcss_drv_dev_to_dcss(ctxld->dev); in dcss_ctxld_irq_handler() local 100 if (dcss && dcss->disable_callback) in dcss_ctxld_irq_handler() 101 dcss->disable_callback(dcss); in dcss_ctxld_irq_handler() 200 int dcss_ctxld_init(struct dcss_dev *dcss, unsigned long ctxld_base) in dcss_ctxld_init() argument 209 dcss->ctxld = ctxld; in dcss_ctxld_init() 210 ctxld->dev = dcss->dev; in dcss_ctxld_init() 216 dev_err(dcss->dev, "ctxld: cannot allocate context memory.\n"); in dcss_ctxld_init() 222 dev_err(dcss->dev, "ctxld: unable to remap ctxld base\n"); in dcss_ctxld_init() 227 ret = dcss_ctxld_irq_config(ctxld, to_platform_device(dcss->dev)); in dcss_ctxld_init() [all …]
|
| D | dcss-dev.h | 98 void dcss_dev_destroy(struct dcss_dev *dcss); 99 void dcss_enable_dtg_and_ss(struct dcss_dev *dcss); 100 void dcss_disable_dtg_and_ss(struct dcss_dev *dcss); 105 int dcss_blkctl_init(struct dcss_dev *dcss, unsigned long blkctl_base); 110 int dcss_ctxld_init(struct dcss_dev *dcss, unsigned long ctxld_base); 126 int dcss_dpr_init(struct dcss_dev *dcss, unsigned long dpr_base); 138 int dcss_dtg_init(struct dcss_dev *dcss, unsigned long dtg_base); 157 int dcss_ss_init(struct dcss_dev *dcss, unsigned long subsam_base); 166 int dcss_scaler_init(struct dcss_dev *dcss, unsigned long scaler_base);
|
| D | dcss-dtg.c | 13 #include "dcss-dev.h" 150 int dcss_dtg_init(struct dcss_dev *dcss, unsigned long dtg_base) in dcss_dtg_init() argument 159 dcss->dtg = dtg; in dcss_dtg_init() 160 dtg->dev = dcss->dev; in dcss_dtg_init() 161 dtg->ctxld = dcss->ctxld; in dcss_dtg_init() 165 dev_err(dcss->dev, "dtg: unable to remap dtg base\n"); in dcss_dtg_init() 178 ret = dcss_dtg_irq_config(dtg, to_platform_device(dcss->dev)); in dcss_dtg_init() 205 struct dcss_dev *dcss = dcss_drv_dev_to_dcss(dtg->dev); in dcss_dtg_sync_set() local 223 clk_disable_unprepare(dcss->pix_clk); in dcss_dtg_sync_set() 224 clk_set_rate(dcss->pix_clk, vm->pixelclock); in dcss_dtg_sync_set() [all …]
|
| D | dcss-kms.c | 17 #include "dcss-dev.h" 18 #include "dcss-kms.h" 32 .name = "imx-dcss", 109 struct dcss_kms_dev *dcss_kms_attach(struct dcss_dev *dcss) in dcss_kms_attach() argument 116 kms = devm_drm_dev_alloc(dcss->dev, &dcss_kms_driver, in dcss_kms_attach() 124 drm->dev_private = dcss; in dcss_kms_attach()
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/imx/dcss/ |
| D | dcss-dev.c | 15 #include "dcss-dev.h" 16 #include "dcss-kms.h" 18 static void dcss_clocks_enable(struct dcss_dev *dcss) in dcss_clocks_enable() argument 20 clk_prepare_enable(dcss->axi_clk); in dcss_clocks_enable() 21 clk_prepare_enable(dcss->apb_clk); in dcss_clocks_enable() 22 clk_prepare_enable(dcss->rtrm_clk); in dcss_clocks_enable() 23 clk_prepare_enable(dcss->dtrc_clk); in dcss_clocks_enable() 24 clk_prepare_enable(dcss->pix_clk); in dcss_clocks_enable() 27 static void dcss_clocks_disable(struct dcss_dev *dcss) in dcss_clocks_disable() argument 29 clk_disable_unprepare(dcss->pix_clk); in dcss_clocks_disable() [all …]
|
| D | dcss-crtc.c | 11 #include "dcss-dev.h" 12 #include "dcss-kms.h" 18 struct dcss_dev *dcss = crtc->dev->dev_private; in dcss_enable_vblank() local 20 dcss_dtg_vblank_irq_enable(dcss->dtg, true); in dcss_enable_vblank() 22 dcss_dtg_ctxld_kick_irq_enable(dcss->dtg, true); in dcss_enable_vblank() 33 struct dcss_dev *dcss = dcss_crtc->base.dev->dev_private; in dcss_disable_vblank() local 37 dcss_dtg_vblank_irq_enable(dcss->dtg, false); in dcss_disable_vblank() 40 dcss_dtg_ctxld_kick_irq_enable(dcss->dtg, false); in dcss_disable_vblank() 65 struct dcss_dev *dcss = dcss_crtc->base.dev->dev_private; in dcss_crtc_atomic_flush() local 75 if (dcss_dtg_is_enabled(dcss->dtg)) in dcss_crtc_atomic_flush() [all …]
|
| D | Makefile | 1 imx-dcss-objs := dcss-drv.o dcss-dev.o dcss-blkctl.o dcss-ctxld.o dcss-dtg.o \ 2 dcss-ss.o dcss-dpr.o dcss-scaler.o dcss-kms.o dcss-crtc.o \ 3 dcss-plane.o 5 obj-$(CONFIG_DRM_IMX_DCSS) += imx-dcss.o
|
| D | dcss-drv.c | 11 #include "dcss-dev.h" 12 #include "dcss-kms.h" 15 struct dcss_dev *dcss; member 23 return mdrv ? mdrv->dcss : NULL; in dcss_drv_dev_to_dcss() 56 mdrv->dcss = dcss_dev_create(dev, hdmi_output); in dcss_drv_platform_probe() 57 if (IS_ERR(mdrv->dcss)) { in dcss_drv_platform_probe() 58 err = PTR_ERR(mdrv->dcss); in dcss_drv_platform_probe() 64 mdrv->kms = dcss_kms_attach(mdrv->dcss); in dcss_drv_platform_probe() 73 dcss_dev_destroy(mdrv->dcss); in dcss_drv_platform_probe() 90 dcss_dev_destroy(mdrv->dcss); in dcss_drv_platform_remove() [all …]
|
| D | dcss-plane.c | 12 #include "dcss-dev.h" 13 #include "dcss-kms.h" 144 struct dcss_dev *dcss = plane->dev->dev_private; in dcss_plane_atomic_check() local 172 dcss_scaler_get_min_max_ratios(dcss->scaler, dcss_plane->ch_num, in dcss_plane_atomic_check() 215 struct dcss_dev *dcss = plane->dev->dev_private; in dcss_plane_atomic_set_base() local 241 dcss_dpr_addr_set(dcss->dpr, dcss_plane->ch_num, p1_ba, p2_ba, in dcss_plane_atomic_set_base() 269 struct dcss_dev *dcss = plane->dev->dev_private; in dcss_plane_atomic_update() local 305 dcss_dpr_format_set(dcss->dpr, dcss_plane->ch_num, state->fb->format, in dcss_plane_atomic_update() 308 dcss_dpr_set_res(dcss->dpr, dcss_plane->ch_num, src_w, src_h); in dcss_plane_atomic_update() 309 dcss_dpr_set_rotation(dcss->dpr, dcss_plane->ch_num, in dcss_plane_atomic_update() [all …]
|
| D | dcss-blkctl.c | 10 #include "dcss-dev.h" 25 struct dcss_dev *dcss; member 31 if (blkctl->dcss->hdmi_output) in dcss_blkctl_cfg() 41 int dcss_blkctl_init(struct dcss_dev *dcss, unsigned long blkctl_base) in dcss_blkctl_init() argument 51 dev_err(dcss->dev, "unable to remap BLK CTRL base\n"); in dcss_blkctl_init() 56 dcss->blkctl = blkctl; in dcss_blkctl_init() 57 blkctl->dcss = dcss; in dcss_blkctl_init()
|
| D | dcss-ctxld.c | 12 #include "dcss-dev.h" 91 struct dcss_dev *dcss = dcss_drv_dev_to_dcss(ctxld->dev); in dcss_ctxld_irq_handler() local 100 if (dcss && dcss->disable_callback) in dcss_ctxld_irq_handler() 101 dcss->disable_callback(dcss); in dcss_ctxld_irq_handler() 200 int dcss_ctxld_init(struct dcss_dev *dcss, unsigned long ctxld_base) in dcss_ctxld_init() argument 209 dcss->ctxld = ctxld; in dcss_ctxld_init() 210 ctxld->dev = dcss->dev; in dcss_ctxld_init() 216 dev_err(dcss->dev, "ctxld: cannot allocate context memory.\n"); in dcss_ctxld_init() 222 dev_err(dcss->dev, "ctxld: unable to remap ctxld base\n"); in dcss_ctxld_init() 227 ret = dcss_ctxld_irq_config(ctxld, to_platform_device(dcss->dev)); in dcss_ctxld_init() [all …]
|
| D | dcss-dev.h | 96 void dcss_dev_destroy(struct dcss_dev *dcss); 101 void dcss_enable_dtg_and_ss(struct dcss_dev *dcss); 102 void dcss_disable_dtg_and_ss(struct dcss_dev *dcss); 105 int dcss_blkctl_init(struct dcss_dev *dcss, unsigned long blkctl_base); 110 int dcss_ctxld_init(struct dcss_dev *dcss, unsigned long ctxld_base); 126 int dcss_dpr_init(struct dcss_dev *dcss, unsigned long dpr_base); 138 int dcss_dtg_init(struct dcss_dev *dcss, unsigned long dtg_base); 157 int dcss_ss_init(struct dcss_dev *dcss, unsigned long subsam_base); 166 int dcss_scaler_init(struct dcss_dev *dcss, unsigned long scaler_base);
|
| D | dcss-dtg.c | 13 #include "dcss-dev.h" 150 int dcss_dtg_init(struct dcss_dev *dcss, unsigned long dtg_base) in dcss_dtg_init() argument 159 dcss->dtg = dtg; in dcss_dtg_init() 160 dtg->dev = dcss->dev; in dcss_dtg_init() 161 dtg->ctxld = dcss->ctxld; in dcss_dtg_init() 165 dev_err(dcss->dev, "dtg: unable to remap dtg base\n"); in dcss_dtg_init() 178 ret = dcss_dtg_irq_config(dtg, to_platform_device(dcss->dev)); in dcss_dtg_init() 205 struct dcss_dev *dcss = dcss_drv_dev_to_dcss(dtg->dev); in dcss_dtg_sync_set() local 223 clk_disable_unprepare(dcss->pix_clk); in dcss_dtg_sync_set() 224 clk_set_rate(dcss->pix_clk, vm->pixelclock); in dcss_dtg_sync_set() [all …]
|
| /kernel/linux/linux-5.10/Documentation/s390/ |
| D | monreader.rst | 23 IUCV `*MONITOR` statement in its user entry. If the monitor DCSS to be used is 24 restricted (likely), you also need the NAMESAVE <DCSS NAME> statement. 28 There are two options for being able to load the monitor DCSS (examples assume 29 that the monitor DCSS begins at 144 MB and ends at 152 MB). You can query the 30 location of the monitor DCSS with the Class E privileged CP command Q NSS MAP 40 guest virtual storage around the address range of the DCSS. 51 Your guest virtual storage has to end below the starting address of the DCSS 53 value greater than the ending address of the DCSS. 68 to specify the name of the monitor DCSS. If the module is compiled into the 69 kernel, the kernel parameter "monreader.mondcss=<DCSS NAME>" can be specified [all …]
|
| /kernel/linux/linux-6.6/Documentation/arch/s390/ |
| D | monreader.rst | 23 IUCV `*MONITOR` statement in its user entry. If the monitor DCSS to be used is 24 restricted (likely), you also need the NAMESAVE <DCSS NAME> statement. 28 There are two options for being able to load the monitor DCSS (examples assume 29 that the monitor DCSS begins at 144 MB and ends at 152 MB). You can query the 30 location of the monitor DCSS with the Class E privileged CP command Q NSS MAP 40 guest virtual storage around the address range of the DCSS. 51 Your guest virtual storage has to end below the starting address of the DCSS 53 value greater than the ending address of the DCSS. 68 to specify the name of the monitor DCSS. If the module is compiled into the 69 kernel, the kernel parameter "monreader.mondcss=<DCSS NAME>" can be specified [all …]
|
| /kernel/linux/linux-5.10/arch/s390/mm/ |
| D | extmem.c | 130 * Perform a function on a dcss segment. 192 pr_warn("Querying a DCSS type failed with rc=%ld\n", vmrc); in query_segment_type() 329 strlcat(seg->res_name, " (DCSS)", sizeof(seg->res_name)); in __segment_load() 359 pr_warn("Loading DCSS %s failed with rc=%ld\n", name, end_addr); in __segment_load() 373 pr_info("DCSS %s of range %px to %px and type %s loaded as " in __segment_load() 377 pr_info("DCSS %s of range %px to %px and type %s loaded in " in __segment_load() 395 * this function loads a DCSS segment 396 * name : name of the DCSS 397 * do_nonshared : 0 indicates that the dcss should be shared with other linux images 398 * 1 indicates that the dcss should be exclusive for this linux image [all …]
|
| /kernel/linux/linux-6.6/arch/s390/mm/ |
| D | extmem.c | 130 * Perform a function on a dcss segment. 192 pr_warn("Querying a DCSS type failed with rc=%ld\n", vmrc); in query_segment_type() 329 strlcat(seg->res_name, " (DCSS)", sizeof(seg->res_name)); in __segment_load() 359 pr_warn("Loading DCSS %s failed with rc=%ld\n", name, end_addr); in __segment_load() 373 pr_info("DCSS %s of range %px to %px and type %s loaded as " in __segment_load() 377 pr_info("DCSS %s of range %px to %px and type %s loaded in " in __segment_load() 395 * this function loads a DCSS segment 396 * name : name of the DCSS 397 * do_nonshared : 0 indicates that the dcss should be shared with other linux images 398 * 1 indicates that the dcss should be exclusive for this linux image [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/display/imx/ |
| D | nxp,imx8mq-dcss.yaml | 5 $id: "http://devicetree.org/schemas/display/imx/nxp,imx8mq-dcss.yaml#" 8 title: iMX8MQ Display Controller Subsystem (DCSS) 15 The DCSS (display controller sub system) is used to source up to three 17 2.2) or MIPI-DSI. The DCSS is intended to support up to 4kp60 displays. HDR10 23 const: nxp,imx8mq-dcss 27 - description: DCSS base address and size, up to IRQ steer start 28 - description: DCSS BLKCTL base address and size 86 dcss: display-controller@32e00000 { 87 compatible = "nxp,imx8mq-dcss";
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/display/imx/ |
| D | nxp,imx8mq-dcss.yaml | 5 $id: http://devicetree.org/schemas/display/imx/nxp,imx8mq-dcss.yaml# 8 title: iMX8MQ Display Controller Subsystem (DCSS) 15 The DCSS (display controller sub system) is used to source up to three 17 2.2) or MIPI-DSI. The DCSS is intended to support up to 4kp60 displays. HDR10 23 const: nxp,imx8mq-dcss 27 - description: DCSS base address and size, up to IRQ steer start 28 - description: DCSS BLKCTL base address and size 86 dcss: display-controller@32e00000 { 87 compatible = "nxp,imx8mq-dcss";
|