[PATCH v15 0/5] Add RZ/{G2L, G2LC} and RZ/V2L Display Unit support

Biju Das biju.das.jz at bp.renesas.com
Mon Dec 11 12:10:36 UTC 2023


Hi All,

Gentle ping. 

Can it be applied to drm-misc-next, if you all are happy with this patch series?

Cheers,
Biju

> -----Original Message-----
> From: Biju Das <biju.das.jz at bp.renesas.com>
> Sent: Tuesday, November 28, 2023 10:51 AM
> Subject: [PATCH v15 0/5] Add RZ/{G2L,G2LC} and RZ/V2L Display Unit support
> 
> This path series aims to add support for RZ/G2L DU DRM driver.
> 
> RZ/G2L LCD controller composed of Frame compression Processor(FCPVD),
> Video signal processor (VSPD) and Display unit(DU). The output of LCDC is
> connected to Display parallel interface and MIPI link video interface.
> 
> The output from DSI is connected to ADV7535.
> 
> Ref:
https://lore.kernel.org/linux-renesas-soc/OS0PR01MB5922717E4CCFE07F3C25FBC986989@OS0PR01MB5922.jpnprd01.prod.outlook.com/#t

> 
> This patch series is tested with [2]
> [2]

https://patchwork.kernel.org/project/linux-renesas-soc/list/?series=742810

> 
> Test logs kmscube: [3]
> v14->v15:
>  * Added patch#4, The rcar-du has never been maintained in drm-misc. So
>    exclude only this driver from drm-misc. Also, add the tree entry for
>    sh_mobile.
>  * Added drm-misc tree entry.
>  * Sorted the entry(Placed before SHMOBILE)
> v13->v14:
>  * Replaced the label 'error'->'done' in rzg2l_du_vsps_init() as it
>    applies to non-error case as well.
>  * Update the error check condition for rcar_du_vsp_init() to avoid
>    breakage in future, if it returns positive value.
>  * Now SHMOBILE has maintainer entries. So dropped updating
>    DRM DRIVERS FOR RENESAS RCAR AND SHMOBILE.
>  * Updated comment header and description for maintainer entry patch.
> v12->v13:
>  * Dropped DU_MCR0_DPI_OE and unused macros.
>  * Dropped unneeded backward compatibility with old DTBs as it is new
> driver.
>  * Replaced "cells > 1"-> "cells != 1" in rzg2l_du_vsps_init().
>  * Fixed memory leak in rzg2l_du_vsps_init().
>  * Dropped drm_plane_create_{alpha,zpos,blend_mode}_property().
> v11->v12:
>  * Dropped quotes in ref handle for renesas,vsps property.
>  * Retained tags as it is trivial change.
>  * Replaced rzg2l_du_write()->writel().
> v10->v11:
>  * Replaced CONFIG_DRM_RCAR_VSP->CONFIG_VIDEO_RENESAS_VSP1 for building
>    rzg2l_du_vsp driver.
>  * Dropped "rzg2l_du_regs.h" instead the relevant definitions defined in
>    .c file.
>  * Dropped setting ditr5 based on latest HW manual 1.3.0/1.4.0
>  * Updated the comment for auto clear.
>  * Replaced writel()->rzg2l_du_write() in rzg2l_du_start_stop().
>  * Dropped CRC related functions as it does not have DISCOM.
>  * Replaced the variable possible_crtcs->possible_outputs in
>    struct rzg2l_du_output_routing.
>  * Updated DMA_BIT_MASK from 40->32.
>  * Dropped unneeded struct drm_bridge from rzg2l_du_drv.h.
>  * Dropped colour keying support as it doesn't have planes.
>  * Added only RGB formats in rzg2l_du_format_infos.
>  * Dropped chroma planes from rzg2l_du_fb_create().
>  * Updated the comment for max_pitch in rzg2l_du_fb_create().
>  * Dropped possible_crtcs check in rzg2l_du_encoders_init().
>  * Dropped additional empty line from struct rzg2l_du_device.
> v9->v10:
>  * patch#1 is mainlined, so dropped from this series.
>  * Added Rb tag from Laurent for the binding patch.
>  * Updated the commit description.
>  * Updated description of the port by dropping the text "specified in
>    Documentation/devicetree/bindings/graph.txt."
>  * Dropped empty endpoint from example.
>  * Dropped ARM64 dependency from Kconfig.
>  * Sorted the configs alphabetically in Kconfig.
>  * Dropped DRM_RCAR_VSP config option and make DRM_RZG2L_DU depend on
>    VIDEO_RENESAS_VSP1.
>  * On rzg2l_du_crtc_set_display_timing() replaced the setting of parent
>    clk rate with dclk rate.
>  * Added rzg2l_du_write() wrapper function.
>  * Updated the comment atomic_begin->atomic_flush.
>  * Dropped .atomic_check and .atomic_begin callback
>  * Renamed __rzg2l_du_crtc_plane_atomic_check->__rzg2l_du_vsp_plane_atomic
>    _check and moved it to rzg2l_du_vsp.c
>  * Added struct clk in rzg2l_du_crtc.h
>  * Dropped the variables mmio_offset,index,vblank_lock,vblank_wait,
>    vblank_count from struct rzg2l_du_crtc.
>  * Replaced the macro to_rzg2l_crtc with static inline functions.
>  * Dropped the unneeded header files clk.h, io.h, mm.h, pm.h, slab.h,
>    wait.h and drm_managed.h from rzg2l_du_drv.c.
>  * Replaced DRM_INFO->drm_info
>  * Dropped the callbacks prime_handle_to_fd, prime_fd_to_handle and
>    gem_prime_mmap.
>  * Replaced the callback remove->remove_new.
>  * Dropped header file wait.h and added forward declarations struct clk
> and
>    rzg2l_du_device from rzg2l_du_drv.h.
>  * Dropped the dsi and dpad0_source variables from struct rzg2l_du_device.
>  * Replaced the macro to_rzg2l_encoder with static inline functions.
>  * Dropped header files dma-buf.h and wait.h from rzg2l_du_kms.c.
>  * Dropped struct sg_table and added the scatterlist.h header file in
>    rzg2l_du_vsp.h
>  * Added container_of.h header file, forward declarations struct device
> and
>    struct rzg2l_du_device in rzg2l_du_vsp.h.
> v8->v9:
>  * Added Rb tag from Laurent and Acked-by tag from Kieran for patch#1.
>  * Added Rb tag from Laurent and Geert for patch#3.
>  * Dropped reset_control_assert() from error patch for rzg2l_du_crtc_get()
> as
>    suggested by Philipp Zabel.
>  * Added Rb tag from Laurent oatch#5.
>  * Updated MAINTAINERS entries for common parts(Makefile and Kconfig).
> v7->v8:
>  * Moved rcar-du and shmobile DRM drivers to renesas specific vendor
> directory.
>  * Fixed the typo vsp2->du in RZ/V2L DU bindings patch.
>  * Added Rb tag from Rob for RZ/V2L DU bindings patch.
>  * Dropped RCar du lib and created RZ/G2L DU DRM driver by creating rz_du
> folder.
>  * Updated MAINTAINERS entries.
> v6->v7:
>  * Split DU lib and  RZ/G2L du driver as separate patch series as
>    DU support added to more platforms based on RZ/G2L alike SoCs.
>  * Rebased to latest drm-tip.
>  * Added patch #2 for binding support for RZ/V2L DU
>  * Added patch #4 for driver support for RZ/V2L DU
>  * Added patch #5 for SoC DTSI support for RZ/G2L DU
>  * Added patch #6 for SoC DTSI support for RZ/V2L DU
>  * Added patch #7 for Enabling DU on SMARC EVK based on RZ/{G2L,V2L} SoCs.
>  * Added patch #8 for Enabling DU on SMARC EVK based on RZ/G2LC SoC.
> v5->v6:
>  * Merged DU lib and RZ/G2L du driver in same patch series
>  * Rebased to latest drm-misc.
>  * Merged patch#1 to RZ/G2L Driver patch.
>  * Updated KConfig dependency from ARCH_RENESAS->ARCH_RZG2L.
>  * Optimized rzg2l_du_output_name() by removing unsupported outputs.
> 
> v4->v5:
>  * Added Rb tag from Rob for binding patch.
>  * Started using RCar DU libs(kms, vsp and encoder)
>  * Started using rcar_du_device, rcar_du_write, rcar_du_crtc,
>    rcar_du_format_info and rcar_du_encoder.
> v3->v4:
>  * Changed compatible name from renesas,du-r9a07g044->renesas,r9a07g044-du
>  * started using same compatible for RZ/G2{L,LC}
>  * Removed rzg2l_du_group.h and struct rzg2l_du_group
>  * Renamed __rzg2l_du_group_start_stop->rzg2l_du_start_stop
>  * Removed rzg2l_du_group_restart
>  * Updated rzg2l_du_crtc_set_display_timing
>  * Removed mode_valid callback.
>  * Updated rzg2l_du_crtc_create() parameters
>  * Updated compatible
>  * Removed RZG2L_DU_MAX_GROUPS
> V2->v3:
>  * Added new bindings for RZ/G2L DU
>  * Removed indirection and created new DRM driver based on R-Car DU
> v1->v2:
>  * Based on [1], all references to 'rzg2l_lcdc' replaced with 'rzg2l_du'
>  * Updated commit description for bindings
>  * Removed LCDC references from bindings
>  * Changed clock name from du.0->aclk from bindings
>  * Changed reset name from du.0->du from bindings
>  * Replaced crtc_helper_funcs->rcar_crtc_helper_funcs
>  * Updated macro DRM_RZG2L_LCDC->DRM_RZG2L_DU
>  * Replaced rzg2l-lcdc-drm->rzg2l-du-drm
>  * Added forward declaration for struct reset_control
> 
> [1]
> https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatchwor
> k.kernel.org%2Fproject%2Flinux-renesas-soc%2Fpatch%2F20220312084205.31462-
> 2-
> biju.das.jz%40bp.renesas.com%2F&data=05%7C01%7Cbiju.das.jz%40bp.renesas.co
> m%7C1366ff80247547c90f5608dbefffff15%7C53d82571da1947e49cb4625a166a4a2a%7C
> 0%7C0%7C638367655000855154%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJ
> QIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=W29hWtb6
> aLweEsamSQBhNkav%2FNEtT77%2BMbwhvfjHZtc%3D&reserved=0
> 
> [3]
> root at smarc-rzv2l:/cip-test-scripts# kmscube Using display 0xaaaad2a6a160
> with EGL version 1.4 ===================================
> EGL information:
>   version: "1.4"
>   vendor: "Mesa Project"
>   client extensions: "EGL_EXT_client_extensions EGL_EXT_device_base
> EGL_EXT_device_enumeration EGL_EXT_device_query EGL_EXT_platform_base
> EGL_KHR_client_get_all_proc_addresses EGL_KHR_debug
> EGL_EXT_platform_device EGL_EXT_platform_wayland EGL_KHR_platform_wayland
> EGL_MESA_platform_gbm EGL_KHR_platform_gbm EGL_MESA_platform_surfaceless"
>   display extensions: "EGL_ANDROID_blob_cache EGL_EXT_buffer_age
> EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers
> EGL_KHR_cl_event2 EGL_KHR_config_attribs EGL_KHR_create_context
> EGL_KHR_create_context_no_error EGL_KHR_fence_sync
> EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace
> EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image
> EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image
> EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_no_config_context
> EGL_KHR_partial_update EGL_KHR_reusable_sync EGL_KHR_surfaceless_context
> EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context
> EGL_MESA_drm_image EGL_MESA_image_dma_buf_export EGL_MESA_query_driver
> EGL_WL_bind_wayland_display "
> ===================================
> OpenGL ES 2.x information:
>   version: "OpenGL ES 3.1 Mesa 21.3.7"
>   shading language version: "OpenGL ES GLSL ES 3.10"
>   vendor: "Panfrost"
>   renderer: "Mali-G31 (Panfrost)"
>   extensions: "GL_EXT_blend_minmax GL_EXT_multi_draw_arrays
> GL_EXT_texture_filter_anisotropic GL_EXT_texture_compression_rgtc
> GL_EXT_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture
> GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap
> GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives
> GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_float
> GL_OES_texture_float_linear GL_OES_texture_half_float
> GL_OES_texture_half_float_linear GL_OES_texture_npot
> GL_OES_vertex_half_float GL_EXT_draw_instanced GL_EXT_texture_sRGB_decode
> GL_OES_EGL_image GL_OES_depth_texture GL_OES_packed_depth_stencil
> GL_EXT_texture_type_2_10_10_10_REV GL_NV_conditional_render
> GL_OES_get_program_binary GL_APPLE_texture_max_level
> GL_EXT_discard_framebuffer GL_EXT_read_format_bgra GL_EXT_frag_depth
> GL_NV_fbo_color_attachments GL_OES_EGL_image_external GL_OES_EGL_sync
> GL_OES_vertex_array_object GL_ANGLE_pack_reverse_row_order
> GL_EXT_occlusion_query_boolean GL_EXT_texture_rg GL_EXT_unpack_subimage
> GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth
> GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers
> GL_EXT_map_buffer_range GL_KHR_debug GL_KHR_texture_compression_astc_ldr
> GL_NV_pixel_buffer_object GL_OES_depth_texture_cube_map
> GL_OES_required_internalformat GL_OES_surfaceless_context
> GL_EXT_color_buffer_float GL_EXT_sRGB_write_control
> GL_EXT_separate_shader_objects GL_EXT_shader_framebuffer_fetch
> GL_EXT_shader_implicit_conversions GL_EXT_shader_integer_mix
> GL_EXT_base_instance GL_EXT_compressed_ETC1_RGB8_sub_texture
> GL_EXT_draw_buffers_indexed GL_EXT_draw_elements_base_vertex
> GL_EXT_gpu_shader5 GL_EXT_primitive_bounding_box GL_EXT_shader_io_blocks
> GL_EXT_texture_border_clamp GL_EXT_texture_buffer GL_EXT_texture_view
> GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent
> GL_KHR_context_flush_control GL_NV_image_formats
> GL_OES_draw_buffers_indexed GL_OES_draw_elements_base_vertex
> GL_OES_gpu_shader5 GL_OES_primitive_bounding_box GL_OES_sample_shading
> GL_OES_sample_variables GL_OES_shader_io_blocks
> GL_OES_shader_multisample_interpolation GL_OES_texture_border_clamp
> GL_OES_texture_buffer GL_OES_texture_stencil8
> GL_OES_texture_storage_multisample_2d_array GL_OES_texture_view
> GL_EXT_blend_func_extended GL_EXT_float_blend GL_EXT_texture_sRGB_R8
> GL_EXT_texture_sRGB_RG8 GL_KHR_no_error
> GL_KHR_texture_compression_astc_sliced_3d GL_OES_EGL_image_external_essl3
> GL_OES_shader_image_atomic GL_EXT_multisampled_render_to_texture
> GL_EXT_multisampled_render_to_texture2 GL_MESA_shader_integer_functions
> GL_EXT_color_buffer_half_float GL_EXT_texture_mirror_clamp_to_edge
> GL_KHR_parallel_shader_compile GL_EXT_EGL_image_storage
> GL_EXT_shader_framebuffer_fetch_non_coherent GL_INTEL_blackhole_render
> GL_MESA_framebuffer_flip_y GL_EXT_depth_clamp GL_MESA_bgra "
> ===================================
> 
>  cat /sys/class/devfreq/11840000.gpu/trans_stat
>  [INFO]      From  :   To
>  [INFO]            :  50000000  62500000 100000000 125000000 200000000
> 250000000 400000000 500000000   time(ms)
>  [INFO]    50000000:         0         0         0         0         0
> 0         0         2       380
>  [INFO]    62500000:         0         0         0         0         0
> 0         0         0         0
>  [INFO]   100000000:         0         0         0         0         0
> 0         0         0         0
>  [INFO]   125000000:         0         0         0         0         0
> 0         0         0         0
>  [INFO] * 200000000:         1         0         0         0         0
> 0         0        79      4576
>  [INFO]   250000000:         0         0         0         0        69
> 0         0         0      5292
>  [INFO]   400000000:         0         0         0         0         5
> 0         0         2       440
>  [INFO]   500000000:         1         0         0         0         7
> 69         7         0      5340
>  [INFO] Total transition : 242
> 
> Biju Das (5):
>   dt-bindings: display: Document Renesas RZ/G2L DU bindings
>   dt-bindings: display: renesas,rzg2l-du: Document RZ/V2L DU bindings
>   drm: renesas: Add RZ/G2L DU Support
>   MAINTAINERS: Update entries for Renesas DRM drivers
>   MAINTAINERS: Create entry for Renesas RZ DRM drivers
> 
>  .../bindings/display/renesas,rzg2l-du.yaml    | 126 +++++
>  MAINTAINERS                                   |  12 +-
>  drivers/gpu/drm/renesas/Kconfig               |   1 +
>  drivers/gpu/drm/renesas/Makefile              |   1 +
>  drivers/gpu/drm/renesas/rz-du/Kconfig         |  12 +
>  drivers/gpu/drm/renesas/rz-du/Makefile        |   8 +
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c | 431 ++++++++++++++++
> drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.h |  89 ++++
> drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c  | 176 +++++++
> drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h  |  78
> +++  .../gpu/drm/renesas/rz-du/rzg2l_du_encoder.c  |  72
> +++  .../gpu/drm/renesas/rz-du/rzg2l_du_encoder.h  |  32 ++
> drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c  | 433 +++++++++++++++++
> drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.h  |  43 ++
> drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c  | 460 ++++++++++++++++++
> drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.h  |  97 ++++
>  16 files changed, 2070 insertions(+), 1 deletion(-)  create mode 100644
> Documentation/devicetree/bindings/display/renesas,rzg2l-du.yaml
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/Kconfig
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/Makefile
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.h
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.c
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.h
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.h
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.h
> 
> 
> base-commit: e17049148678725248a57ecbf9c21df0fde3b434
> --
> 2.25.1



More information about the dri-devel mailing list