Tags

Tags give the ability to mark specific points in history as being important
  • sent/20260609-topic-sm8650-ayaneo-pocket-s2-wsa2-fix-eb90567f6ca5-v1

    sound: qcom: audioreach: support WSA speakers only on WSA2
    
    The Qualcom SM8650 based Ayaneo Pocket S2 gaming device has a set
    of 2 WSA speakers connected on the WSA2 lines.
    
    But the Audioreach DSP only handles WSA2 in pair with the WSA
    interface by using the upper bits of the active_channels_mask
    for WSA2 and the lower bits for WSA:
    
     __________________________________________________
    | Bits  |     3    |     2    |   1     |     0   |
    ---------------------------------------------------
    | Line  | WSA2 Ch2 | WSA2 Ch1 | WSA Ch2 | WSA Ch1 |
    ---------------------------------------------------
    
    Setting only the WSA2 upper bits is perfectly valid and
    functional but the current Audioreach code builds the bitmask
    from the channels count with:
    	active_channels_mask = (1 << num_channels) - 1;
    
    In order to enable the WSA2 bits the channel count should be 4,
    but the lower WSA bits are then also enabled and the DSP errors
    out when trying to play on the disabled WSA interface.
    
    A solution would've been to add a fake WSA2 topology element which
    would be translated into the top bits only, but it's not clean and
    add some special exceptions in the generic Audioreach code.
    
    The solution suggested by Srinivas is to use the channel mapping to
    set this bitmask.
    
    This works but makes all the other calls using the channel mapping fail
    because the DSP requires the channel_mapping table to start from index 0
    and using num_channel length in order to apply the mapping on the
    active_channels_mask bits in order.
    
    So if you have an active_channels_mask like:
     _______________________
    | Bits  | 3 | 2 | 1 | 0 |
    -------------------------
    | Mask  | 1 | 1 | 0 | 0 |
    ------------------------
    
    And the channel mapping:
     _________________________________
    | Channel |  3 |  2 |   1  |   0  |
    -----------------------------------
    | Mapping | FR | FL | NULL | NULL |
    -----------------------------------
    
    Will need to be converted to:
     ____________________
    | Channel |  1 |  0 |
    ---------------------
    | Mapping | FR | FL |
    ---------------------
    
    And the DSP will map FR on WSA2 Ch2 and FL on WSA2 Ch1 as:
     _________________________________
    | Line    |  WSA2 Ch2 | WSA2 Ch1 |
    ----------------------------------
    | Mapping |     FR    |     FL   |
    ----------------------------------
    
    So we need to skip the empty channel mapping entries in all other
    users of the channel_map to build valid channel_mapping tables.
    
    This should not break any other usecases since the default channel
    mapping always start from index 0, and will add flexibilty to allow
    some special non linear mapping for other interfaces as well.
    
    Finally we add a special prepare callback for the Ayaneo PS2 sound card
    which sets the custom channel mapping for the WSA interface to make audio
    work properly on the gaming device.
    
    To: Srinivas Kandagatla <srini@kernel.org>
    To: Liam Girdwood <lgirdwood@gmail.com>
    To: Mark Brown <broonie@kernel.org>
    To: Jaroslav Kysela <perex@perex.cz>
    To: Takashi Iwai <tiwai@suse.com>
    To: Bjorn Andersson <andersson@kernel.org>
    To: Konrad Dybcio <konradybcio@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    Cc: kancy2333@outlook.com
    Cc: linux-sound@vger.kernel.org
    Cc: linux-arm-msm@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Neil Armstrong (4):
          ASoC: qcom: audioreach: compute active channel maps from channel_map
          ASoC: qcom: sc8280xp: add Ayaneo Pocket S2 card with special WSA channel mapping
          arm64: dts: qcom: sm8650-ayaneo-pocket-s2: switch sound card to ayaneo,pocket-s2-sndcard
          ASoC: dt-bindings: qcom,sm8250: Add Ayaneo Pocket S2 sound card
    
     .../devicetree/bindings/sound/qcom,sm8250.yaml     |  1 +
     .../boot/dts/qcom/sm8650-ayaneo-pocket-s2.dts      |  2 +-
     sound/soc/qcom/qdsp6/audioreach.c                  | 47 ++++++++++++++----
     sound/soc/qcom/sc8280xp.c                          | 56 ++++++++++++++++++++++
     4 files changed, 95 insertions(+), 11 deletions(-)
    ---
    base-commit: 1ed783a6906ab62a54d631ff3e8c5cba0f4f4b54
    change-id: 20260609-topic-sm8650-ayaneo-pocket-s2-wsa2-fix-eb90567f6ca5
    
    Best regards,
    --
    Neil Armstrong <neil.armstrong@linaro.org>
  • sent/20260428-topic-sm8650-ayaneo-pocket-s2-r63419-e72467e2db0f-v7

    drm: panel: support the R63419 based dual-DSI video mode Display Panels
    
    Add support for the Renesas 63419 based dual-DSI video mode
    Display Panels found in the Ayaneo gaming handled devices.
    
    To: Jessica Zhang <jesszhan0024@gmail.com>
    To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    To: Maxime Ripard <mripard@kernel.org>
    To: Thomas Zimmermann <tzimmermann@suse.de>
    To: David Airlie <airlied@gmail.com>
    To: Simona Vetter <simona@ffwll.ch>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    To: Geert Uytterhoeven <geert+renesas@glider.be>
    To: Magnus Damm <magnus.damm@gmail.com>
    Cc: dri-devel@lists.freedesktop.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-renesas-soc@vger.kernel.org
    Cc: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v7:
    - Reverse "on" command order
    - Rebase on drm-misc-next
    - Link to v6: https://patch.msgid.link/20260522-topic-sm8650-ayaneo-pocket-s2-r63419-v6-0-16edddda9951@linaro.org
    
    Changes in v6:
    - Get new dt bindings review from Conor
    - Properly init dsi_ctx
    - Link to v5: https://patch.msgid.link/20260521-topic-sm8650-ayaneo-pocket-s2-r63419-v5-0-dd5700299390@linaro.org
    
    Changes in v5:
    - Import panel-common-dual.yaml in bindings
    - Set reg as required
    - fix bindings example typo
    - Add helper to switch link in order to use single dsi_ctx to properly handle errors
    - Disable vdd supplies if vcc supplied fail to enable
    - Precise the power off sequence is recommended by the vendor spec
    - Drop passing of node to second dsi to avoid re-probing the driver twice
    - Link to v4: https://patch.msgid.link/20260519-topic-sm8650-ayaneo-pocket-s2-r63419-v4-0-b8929af5e951@linaro.org
    
    Changes in v4:
    - Moved height/width in the drm_mode, duplicated modes to use drm_connector_helper_get_modes_fixed
    - Create dsi_info on the stack with proper OF node and name passed
    - Switched to devm_drm_panel_add/devm_mipi_dsi_attach & dropped remove
    - Link to v3: https://patch.msgid.link/20260504-topic-sm8650-ayaneo-pocket-s2-r63419-v3-0-9f61cf24aebf@linaro.org
    
    Changes in v3:
    - Added DDIC compatible as fallback
    - Added rotation in bindings example
    - Fixed bindings subject
    - Added second MODULE_AUTHOR entry and re-ordered signed-off-by order
    - Link to v2: https://patch.msgid.link/20260430-topic-sm8650-ayaneo-pocket-s2-r63419-v2-0-91ac10453d0c@linaro.org
    
    Changes in v2:
    - Add missing rotation property into bindings
    - Fix commit message & subject typos
    - Link to v1: https://patch.msgid.link/20260428-topic-sm8650-ayaneo-pocket-s2-r63419-v1-0-981eb5ab5a51@linaro.org
    
    ---
    KancyJoe (1):
          drm: panel: add support for the Renesas R63419 based dual-DSI video mode Display Panels
    
    Neil Armstrong (1):
          dt-bindings: display: panel: document the Renesas R63419 based dual-DSI video mode Display Panels
    
     .../bindings/display/panel/renesas,r63419.yaml     |  98 ++++++
     drivers/gpu/drm/panel/Kconfig                      |  12 +
     drivers/gpu/drm/panel/Makefile                     |   1 +
     drivers/gpu/drm/panel/panel-renesas-r63419.c       | 366 +++++++++++++++++++++
     4 files changed, 477 insertions(+)
    ---
    base-commit: 640c57d6ca1346a1c2363a3f473b405af979e046
    change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-r63419-e72467e2db0f
    
    Best regards,
    --
    Neil Armstrong <neil.armstrong@linaro.org>
  • sent/20260604-topic-sm8x50-vtdr6130-dsc-16c7697a65ac-v1

    drm/panel: couple of visionox vtdr6140 driver enhancements
    
    Enable DSC and switch to devm_calls in probe.
    
    To: Jessica Zhang <jesszhan0024@gmail.com>
    To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    To: Maxime Ripard <mripard@kernel.org>
    To: Thomas Zimmermann <tzimmermann@suse.de>
    To: David Airlie <airlied@gmail.com>
    To: Simona Vetter <simona@ffwll.ch>
    Cc: dri-devel@lists.freedesktop.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Jun Nie (1):
          drm/panel: Enable DSC for Visionox VTDR6130 panel
    
    Neil Armstrong (1):
          drm/panel: visionox-vtdr6130: switch to devm panel calls and drop remove
    
     drivers/gpu/drm/panel/panel-visionox-vtdr6130.c | 42 ++++++++++++-------------
     1 file changed, 21 insertions(+), 21 deletions(-)
    ---
    base-commit: b7bee4ca5688e30ca50fbc87b1b8f7eed7006c17
    change-id: 20260604-topic-sm8x50-vtdr6130-dsc-16c7697a65ac
    
    Best regards,
    --
    Neil Armstrong <neil.armstrong@linaro.org>
  • sent/20260408-topic-sm8x50-iris-10bit-decoding-074c3ac7975c-v5

    media: qcom: iris: add support for decoding 10bit formats
    
    This adds the plumbing to support decoding HEVC, VP9 and AV1
    streams into 10bit pixel formats, linear and compressed.
    
    This has only been tested on SM8550 & SM8650 with HEVC, and was
    inspired by Venus, DRM MSM and the downstream vidc driver for the
    buffer calculations and HFI messages.
    
    Gstreamer support for QC08 and QC10 need the MR at [1] to be applied,
    but NV12 and P010 works out of the box with mainline Gstreamer.
    
    Fluster HEVC results on SM8650 using Gstreamer:
    
    ./fluster.py run -ts JCT-VC-HEVC_V1 -d GStreamer-H.265-V4L2-Gst1.0 - 141/147
    The failing test case:
    - Pixel Format mismatch
     - TSUNEQBD_A_MAIN10_Technicolor_2 - Gstreamer waits NV12 but decoder returns P010
    - Unsupported resolution
     - PICSIZE_A_Bossen_1 - resolution is higher than max supported
     - PICSIZE_B_Bossen_1 - resolution is higher than max supported
     - WPP_D_ericsson_MAIN_2 - resolution is lower than min supported
     - WPP_D_ericsson_MAIN10_2 - resolution is lower than min supported
    - CRC mismatch
     - RAP_A_docomo_6
    
    v4l2-compliance results on SM8550 & SM8650:
    
    $ v4l2-compliance -d /dev/video1 -s
    v4l2-compliance 1.33.0-5456, 64 bits, 64-bit time_t
    v4l2-compliance SHA: 8aa593bda182 2026-04-11 10:54:25
    
    Compliance test for iris_driver device /dev/video1:
    
    Driver Info:
    	Driver name      : iris_driver
    	Card type        : Iris Encoder
    	Bus info         : platform:aa00000.video-codec
    	Driver version   : 7.0.0
    	Capabilities     : 0x84204000
    		Video Memory-to-Memory Multiplanar
    		Streaming
    		Extended Pix Format
    		Device Capabilities
    	Device Caps      : 0x04204000
    		Video Memory-to-Memory Multiplanar
    		Streaming
    		Extended Pix Format
    	Detected Stateful Encoder
    
    Required ioctls:
    	test VIDIOC_QUERYCAP: OK
    	test invalid ioctls: OK
    
    Allow for multiple opens:
    	test second /dev/video1 open: OK
    	test VIDIOC_QUERYCAP: OK
    	test VIDIOC_G/S_PRIORITY: OK
    	test for unlimited opens: OK
    
    Debug ioctls:
    	test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
    	test VIDIOC_LOG_STATUS: OK (Not Supported)
    
    Input ioctls:
    	test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
    	test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
    	test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
    	test VIDIOC_ENUMAUDIO: OK (Not Supported)
    	test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
    	test VIDIOC_G/S_AUDIO: OK (Not Supported)
    	Inputs: 0 Audio Inputs: 0 Tuners: 0
    
    Output ioctls:
    	test VIDIOC_G/S_MODULATOR: OK (Not Supported)
    	test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
    	test VIDIOC_ENUMAUDOUT: OK (Not Supported)
    	test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
    	test VIDIOC_G/S_AUDOUT: OK (Not Supported)
    	Outputs: 0 Audio Outputs: 0 Modulators: 0
    
    Input/Output configuration ioctls:
    	test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
    	test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
    	test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
    	test VIDIOC_G/S_EDID: OK (Not Supported)
    
    Control ioctls:
    	test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
    	test VIDIOC_QUERYCTRL: OK
    	test VIDIOC_G/S_CTRL: OK
    	test VIDIOC_G/S/TRY_EXT_CTRLS: OK
    	test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
    	test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
    	Standard Controls: 43 Private Controls: 0
    
    Format ioctls:
    	test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
    	test VIDIOC_G/S_PARM: OK
    	test VIDIOC_G_FBUF: OK (Not Supported)
    	test VIDIOC_G_FMT: OK
    	test VIDIOC_TRY_FMT: OK
    	test VIDIOC_S_FMT: OK
    	test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
    	test Cropping: OK
    	test Composing: OK (Not Supported)
    	test Scaling: OK (Not Supported)
    
    Codec ioctls:
    	test VIDIOC_(TRY_)ENCODER_CMD: OK
    	test VIDIOC_G_ENC_INDEX: OK (Not Supported)
    	test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
    
    Buffer ioctls:
    	test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
    	test CREATE_BUFS maximum buffers: OK
    	test VIDIOC_REMOVE_BUFS: OK
    	test VIDIOC_EXPBUF: OK
    	test Requests: OK (Not Supported)
    	test blocking wait: OK
    
    Test input 0:
    
    Streaming ioctls:
    	test read/write: OK (Not Supported)
    	Video Capture Multiplanar: Captured 61 buffers
    	test MMAP (select, REQBUFS): OK
    	Video Capture Multiplanar: Captured 61 buffers
    	test MMAP (epoll, REQBUFS): OK
    	Video Capture Multiplanar: Captured 61 buffers
    	test MMAP (select, CREATE_BUFS): OK
    	Video Capture Multiplanar: Captured 61 buffers
    	test MMAP (epoll, CREATE_BUFS): OK
    	test USERPTR (select): OK (Not Supported)
    	test DMABUF: Cannot test, specify --expbuf-device
    
    Total for iris_driver device /dev/video1: 54, Succeeded: 54, Failed: 0, Warnings: 0
    
    $ v4l2-compliance -d /dev/video0 -s5 --stream-from=test_video_10s.h264
    v4l2-compliance 1.33.0-5456, 64 bits, 64-bit time_t
    v4l2-compliance SHA: 8aa593bda182 2026-04-11 10:54:25
    
    Compliance test for iris_driver device /dev/video0:
    
    Driver Info:
    	Driver name      : iris_driver
    	Card type        : Iris Decoder
    	Bus info         : platform:aa00000.video-codec
    	Driver version   : 7.0.0
    	Capabilities     : 0x84204000
    		Video Memory-to-Memory Multiplanar
    		Streaming
    		Extended Pix Format
    		Device Capabilities
    	Device Caps      : 0x04204000
    		Video Memory-to-Memory Multiplanar
    		Streaming
    		Extended Pix Format
    	Detected Stateful Decoder
    
    Required ioctls:
    	test VIDIOC_QUERYCAP: OK
    	test invalid ioctls: OK
    
    Allow for multiple opens:
    	test second /dev/video0 open: OK
    	test VIDIOC_QUERYCAP: OK
    	test VIDIOC_G/S_PRIORITY: OK
    	test for unlimited opens: OK
    
    Debug ioctls:
    	test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
    	test VIDIOC_LOG_STATUS: OK (Not Supported)
    
    Input ioctls:
    	test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
    	test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
    	test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
    	test VIDIOC_ENUMAUDIO: OK (Not Supported)
    	test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
    	test VIDIOC_G/S_AUDIO: OK (Not Supported)
    	Inputs: 0 Audio Inputs: 0 Tuners: 0
    
    Output ioctls:
    	test VIDIOC_G/S_MODULATOR: OK (Not Supported)
    	test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
    	test VIDIOC_ENUMAUDOUT: OK (Not Supported)
    	test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
    	test VIDIOC_G/S_AUDOUT: OK (Not Supported)
    	Outputs: 0 Audio Outputs: 0 Modulators: 0
    
    Input/Output configuration ioctls:
    	test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
    	test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
    	test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
    	test VIDIOC_G/S_EDID: OK (Not Supported)
    
    Control ioctls:
    	test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
    	test VIDIOC_QUERYCTRL: OK
    	test VIDIOC_G/S_CTRL: OK
    	test VIDIOC_G/S/TRY_EXT_CTRLS: OK
    	test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
    	test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
    	Standard Controls: 12 Private Controls: 0
    
    Format ioctls:
    	test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
    	test VIDIOC_G/S_PARM: OK (Not Supported)
    	test VIDIOC_G_FBUF: OK (Not Supported)
    	test VIDIOC_G_FMT: OK
    	test VIDIOC_TRY_FMT: OK
    	test VIDIOC_S_FMT: OK
    	test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
    	test Cropping: OK
    	test Composing: OK
    	test Scaling: OK (Not Supported)
    
    Codec ioctls:
    	test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
    	test VIDIOC_G_ENC_INDEX: OK (Not Supported)
    	test VIDIOC_(TRY_)DECODER_CMD: OK
    
    Buffer ioctls:
    	test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
    	test CREATE_BUFS maximum buffers: OK
    	test VIDIOC_REMOVE_BUFS: OK
    	test VIDIOC_EXPBUF: OK
    	test Requests: OK (Not Supported)
    	test blocking wait: OK
    
    Test input 0:
    
    Streaming ioctls:
    	test read/write: OK (Not Supported)
    the input file is smaller than 7077888 bytes
    	Video Capture Multiplanar: Captured 601 buffers
    	test MMAP (select, REQBUFS): OK
    the input file is smaller than 7077888 bytes
    	Video Capture Multiplanar: Captured 601 buffers
    	test MMAP (epoll, REQBUFS): OK
    the input file is smaller than 7077888 bytes
    	Video Capture Multiplanar: Captured 601 buffers
    	test MMAP (select, CREATE_BUFS): OK
    the input file is smaller than 7077888 bytes
    	Video Capture Multiplanar: Captured 601 buffers
    	test MMAP (epoll, CREATE_BUFS): OK
    	test USERPTR (select): OK (Not Supported)
    	test DMABUF: Cannot test, specify --expbuf-device
    
    Total for iris_driver device /dev/video0: 54, Succeeded: 54, Failed: 0, Warnings: 0
    
    [1] https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8195
    
    To: Vikash Garodia <vikash.garodia@oss.qualcomm.com>
    To: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
    To: Abhinav Kumar <abhinav.kumar@linux.dev>
    To: Bryan O'Donoghue <bod@kernel.org>
    To: Mauro Carvalho Chehab <mchehab@kernel.org>
    Cc: linux-media@vger.kernel.org
    Cc: linux-arm-msm@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v5:
    - Collected all review and test tags
    - Rebased on https://gitlab.freedesktop.org/linux-media/users/bodonoghue/-/tree/next-smoketest
    - Fixed rebase conflicts on patch 5 & 6 and tested for no regression
    - Link to v4: https://patch.msgid.link/20260521-topic-sm8x50-iris-10bit-decoding-v4-0-8ff8fce3f904@linaro.org
    
    Changes in v4:
    - Picked review tags
    - Use u32 instead of __u32
    - Explicit DPB
    - Drop NULL and use >>1 in q10c buffer calc
    - Drop selicolon after switch statementr
    - Correctly align HFI_PROP_UBWC_STRIDE_SCANLINE entry
    - Rebase on media next tree after the file split
    - Link to v3: https://patch.msgid.link/20260511-topic-sm8x50-iris-10bit-decoding-v3-0-7fc049b93042@linaro.org
    
    Changes in v3:
    - Added review tag on patch 1
    - Limited stride command to AV1 decoding only
    - Link to v2: https://patch.msgid.link/20260417-topic-sm8x50-iris-10bit-decoding-v2-0-c987b65a31d5@linaro.org
    
    Changes in v2:
    - Fixed bug breaking 8bit decoding
    - Dropped filtering on G_FMT while waiting for soure change
    - Dropped format filtering on ENUMFMT
    - Switched ALIGN(x, 192) to roundup(x, 192) because ALIGN works only with Power Of Two numbers
    - Cleaned and refactors the width/height/stride calculations
    - Cleaned and redesigned the buffer calculations functions with proper comments and var names
    - Passed fluster and v4l2-compliance to check for non regression
    - Tested on SM8550
    - Added missing V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10 with made gstreamer fail decoding
    - Link to v1: https://patch.msgid.link/20260408-topic-sm8x50-iris-10bit-decoding-v1-0-428c1ec2e3f3@linaro.org
    
    ---
    Neil Armstrong (6):
          media: qcom: iris: add helpers for 8bit and 10bit formats
          media: qcom: iris: add QC10C & P010 buffer size calculations
          media: qcom: iris: gen2: add support for 10bit decoding
          media: qcom: iris: vdec: update size and stride calculations for 10bit formats
          media: qcom: iris: vdec: update find_format to handle 8bit and 10bit formats
          media: qcom: iris: vdec: allow GEN2 decoding into 10bit format
    
     drivers/media/platform/qcom/iris/iris_buffer.c     | 195 ++++++++++++++++++++-
     drivers/media/platform/qcom/iris/iris_hfi_gen2.c   |   8 +-
     .../platform/qcom/iris/iris_hfi_gen2_command.c     |  75 +++++++-
     .../platform/qcom/iris/iris_hfi_gen2_defines.h     |   1 +
     .../platform/qcom/iris/iris_hfi_gen2_response.c    |  37 +++-
     drivers/media/platform/qcom/iris/iris_instance.h   |   2 +
     .../platform/qcom/iris/iris_platform_common.h      |   1 +
     drivers/media/platform/qcom/iris/iris_utils.c      |  16 +-
     drivers/media/platform/qcom/iris/iris_utils.h      |   2 +
     drivers/media/platform/qcom/iris/iris_vdec.c       |  43 ++++-
     10 files changed, 363 insertions(+), 17 deletions(-)
    ---
    base-commit: a8498730d17490930991076d00eed85827d2beb1
    change-id: 20260408-topic-sm8x50-iris-10bit-decoding-074c3ac7975c
    
    Best regards,
    --
    Neil Armstrong <neil.armstrong@linaro.org>
    
  • sent/20260428-topic-sm8650-ayaneo-pocket-s2-sy7758-3081ee7f1e25-v5

    backlight: Add SY7758 6-channel High Efficiency LED Driver support
    
    Implement support for the Silergy SY7758 6-channel High Efficiency LED Driver
    used for backlight brightness control in the Ayaneo Pocket S2 dual-DSI panel.
    
    To: Lee Jones <lee@kernel.org>
    To: Daniel Thompson <danielt@kernel.org>
    To: Jingoo Han <jingoohan1@gmail.com>
    To: Pavel Machek <pavel@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    To: Helge Deller <deller@gmx.de>
    Cc: dri-devel@lists.freedesktop.org
    Cc: linux-leds@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-fbdev@vger.kernel.org
    Cc: KancyJoe <kancy2333@outlook.com>
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v5:
    - Rename vddio to vdd and make it optional in bindings
    - Kept the bindings review since the change is trivial
    - Link to v4: https://patch.msgid.link/20260521-topic-sm8650-ayaneo-pocket-s2-sy7758-v4-0-73c732615e4a@linaro.org
    
    Changes in v4:
    - Fixed Kconfig typo
    - Remove again unused macros
    - Added delay.h include
    - Link to v3: https://patch.msgid.link/20260519-topic-sm8650-ayaneo-pocket-s2-sy7758-v3-0-ec8194bbc885@linaro.org
    
    Changes in v3:
    - Dropped unused macros
    - Added second autho entry to match header and commit message
    - Move my signof at the end
    - Switched to flseep()
    - Link to v2: https://patch.msgid.link/20260430-topic-sm8650-ayaneo-pocket-s2-sy7758-v2-0-308140640de9@linaro.org
    
    Changes in v2:
    - Fixed bindings subject and removed "|"
    - Added review tag
    - Added higher delay before reading ID from HW (100us was too short)
    - Removed probe defer if i2c read fails
    - Link to v1: https://patch.msgid.link/20260428-topic-sm8650-ayaneo-pocket-s2-sy7758-v1-0-0caade5fdb32@linaro.org
    
    ---
    KancyJoe (1):
          backlight: Add SY7758 6-channel High Efficiency LED Driver support
    
    Neil Armstrong (1):
          dt-bindings: leds: backlight: document the SY7758 6-channel High Efficiency LED Driver
    
     .../bindings/leds/backlight/silergy,sy7758.yaml    |  52 +++++
     drivers/video/backlight/Kconfig                    |   8 +
     drivers/video/backlight/Makefile                   |   1 +
     drivers/video/backlight/sy7758.c                   | 259 +++++++++++++++++++++
     4 files changed, 320 insertions(+)
    ---
    base-commit: 39704f00f747aba3144289870b5fd8ac230a9aaf
    change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-sy7758-3081ee7f1e25
    
    Best regards,
    --
    Neil Armstrong <neil.armstrong@linaro.org>
  • sent/20260428-topic-sm8650-ayaneo-pocket-s2-display-dt-539bb79eb709-v2

    (no cover subject)
    
    Depends on follwing bindings, all reviewed:
    - https://lore.kernel.org/all/20260522-topic-sm8650-ayaneo-pocket-s2-r63419-v6-1-16edddda9951@linaro.org/
    - https://lore.kernel.org/all/20260521-topic-sm8650-ayaneo-pocket-s2-sy7758-v4-1-73c732615e4a@linaro.org/
    - https://lore.kernel.org/all/20260522-topic-sm8650-ayaneo-pocket-s2-sgm3804-v5-1-bd6b1c300ecc@linaro.org/
    
    To: Bjorn Andersson <andersson@kernel.org>
    To: Konrad Dybcio <konradybcio@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    To: Geert Uytterhoeven <geert+renesas@glider.be>
    To: Magnus Damm <magnus.damm@gmail.com>
    Cc: linux-arm-msm@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-renesas-soc@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v2:
    - Update for bindings changes
    - Remove empty line
    - Link to v1: https://patch.msgid.link/20260428-topic-sm8650-ayaneo-pocket-s2-display-dt-v1-1-ff132c00d076@linaro.org
    
    ---
    KancyJoe (1):
          arm64: dts: qcom: sm8650-ayaneo-pocket-s2: add display nodes
    
     .../boot/dts/qcom/sm8650-ayaneo-pocket-s2.dts      | 241 +++++++++++++++++++++
     1 file changed, 241 insertions(+)
    ---
    base-commit: 5e9b7d093f3f77cb0af4409559e3d139babfb443
    change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-display-dt-539bb79eb709
    prerequisite-change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-sgm3804-8764fbb72eb7:v5
    prerequisite-patch-id: 901a0948e1afbb03ff78a063d4f66c17665588ef
    prerequisite-patch-id: 5ca959a92d05c86ae7a77400d5c4c9bb8bb214f4
    prerequisite-change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-sy7758-3081ee7f1e25:v4
    prerequisite-patch-id: eba24fd4013ddf353136a6b77cba84678e60edce
    prerequisite-patch-id: 63b9ea68bb624685fae324bd8db9545f73658e23
    prerequisite-change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-r63419-e72467e2db0f:v6
    prerequisite-patch-id: 53130195c1df5886a953f3eb1ffea6e5b32257ec
    prerequisite-patch-id: 268452dda581581e0126cfd331cf99537544fe65
    
    Best regards,
    --
    Neil Armstrong <neil.armstrong@linaro.org>
  • sent/20260428-topic-sm8650-ayaneo-pocket-s2-sgm3804-8764fbb72eb7-v5

    regulator: add support for SGM3804 Dual Output driver
    
    Add support for the SG Micro SGM3804 Single Inductor Dual Output
    Buck/Boost Converter used to power LCD panels a provide positive
    and negative power rails with configurable voltage and active
    discharge function for each output.
    
    The SGM3804 is powered by the enable GPIO pins inputs and only
    supports I2C write messages.
    In order to add flexibility and simplify the driver, the
    regmap cache is enabled and populated with default values
    since we can't write registers when the 2 GPIOs are down.
    
    This regulator is used to provide vsn and vsn power to the
    Ayaneo Pocket S2 dual-DSI LCD panel.
    
    To: Liam Girdwood <lgirdwood@gmail.com>
    To: Mark Brown <broonie@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    Cc: linux-kernel@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: KancyJoe <kancy2333@outlook.com>
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v5:
    - Add dependencies on GPIOLIB
    - Mark as cache only if sync fails
    - Use proper selector number for n_voltages
    - Link to v4: https://patch.msgid.link/20260506-topic-sm8650-ayaneo-pocket-s2-sgm3804-v4-0-7495e7905693@linaro.org
    
    Changes in v4:
    - Moved the enable-gpios to subnodes due to enable-gpio bindings constraint
    - Added code to get enable gpios from subnodes using fwnode to avoid the of->fwnode dance
    - Switch last gpio call to cansleep
    - Moved the Kconfig/Makefile entry in the right place
    - Link to v3: https://patch.msgid.link/20260504-topic-sm8650-ayaneo-pocket-s2-sgm3804-v3-0-c4783443890b@linaro.org
    
    Changes in v3:
    - Change header in c++ comment block
    - Switch to regcache dirty/only instead of custom handling
    - Use GPIO_ASIS to avoid turning off regulator on boot
    - Use gpio cansleep
    - Add my MODULE_AUTHOR and reorder the signoff
    - Link to v2: https://patch.msgid.link/20260430-topic-sm8650-ayaneo-pocket-s2-sgm3804-v2-0-76108c65a560@linaro.org
    
    Changes in v2:
    - Fixed bindings subject and gpios minItems
    - Fixed regulator signed-off order
    - Added second MODULE_AUTHOR entry
    - Added more comments on how regmap cache is configured to work
    - Link to v1: https://patch.msgid.link/20260428-topic-sm8650-ayaneo-pocket-s2-sgm3804-v1-0-1d8dc7620256@linaro.org
    
    ---
    KancyJoe (1):
          regulator: add SGM3804 Dual Output driver
    
    Neil Armstrong (1):
          regulator: dt-bindings: document the SGM3804 Dual Output regulator
    
     .../bindings/regulator/sgmicro,sgm3804.yaml        |  77 +++++
     drivers/regulator/Kconfig                          |   8 +
     drivers/regulator/Makefile                         |   1 +
     drivers/regulator/sgm3804-regulator.c              | 314 +++++++++++++++++++++
     4 files changed, 400 insertions(+)
    ---
    base-commit: 39704f00f747aba3144289870b5fd8ac230a9aaf
    change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-sgm3804-8764fbb72eb7
    
    Best regards,
    --
    Neil Armstrong <neil.armstrong@linaro.org>
  • sent/20260428-topic-sm8650-ayaneo-pocket-s2-r63419-e72467e2db0f-v6

    drm: panel: support the R63419 based dual-DSI video mode Display Panels
    
    Add support for the Renesas 63419 based dual-DSI video mode
    Display Panels found in the Ayaneo gaming handled devices.
    
    To: Jessica Zhang <jesszhan0024@gmail.com>
    To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    To: Maxime Ripard <mripard@kernel.org>
    To: Thomas Zimmermann <tzimmermann@suse.de>
    To: David Airlie <airlied@gmail.com>
    To: Simona Vetter <simona@ffwll.ch>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    To: Geert Uytterhoeven <geert+renesas@glider.be>
    To: Magnus Damm <magnus.damm@gmail.com>
    Cc: dri-devel@lists.freedesktop.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-renesas-soc@vger.kernel.org
    Cc: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v6:
    - Get new dt bindings review from Conor
    - Properly init dsi_ctx
    - Link to v5: https://patch.msgid.link/20260521-topic-sm8650-ayaneo-pocket-s2-r63419-v5-0-dd5700299390@linaro.org
    
    Changes in v5:
    - Import panel-common-dual.yaml in bindings
    - Set reg as required
    - fix bindings example typo
    - Add helper to switch link in order to use single dsi_ctx to properly handle errors
    - Disable vdd supplies if vcc supplied fail to enable
    - Precise the power off sequence is recommended by the vendor spec
    - Drop passing of node to second dsi to avoid re-probing the driver twice
    - Link to v4: https://patch.msgid.link/20260519-topic-sm8650-ayaneo-pocket-s2-r63419-v4-0-b8929af5e951@linaro.org
    
    Changes in v4:
    - Moved height/width in the drm_mode, duplicated modes to use drm_connector_helper_get_modes_fixed
    - Create dsi_info on the stack with proper OF node and name passed
    - Switched to devm_drm_panel_add/devm_mipi_dsi_attach & dropped remove
    - Link to v3: https://patch.msgid.link/20260504-topic-sm8650-ayaneo-pocket-s2-r63419-v3-0-9f61cf24aebf@linaro.org
    
    Changes in v3:
    - Added DDIC compatible as fallback
    - Added rotation in bindings example
    - Fixed bindings subject
    - Added second MODULE_AUTHOR entry and re-ordered signed-off-by order
    - Link to v2: https://patch.msgid.link/20260430-topic-sm8650-ayaneo-pocket-s2-r63419-v2-0-91ac10453d0c@linaro.org
    
    Changes in v2:
    - Add missing rotation property into bindings
    - Fix commit message & subject typos
    - Link to v1: https://patch.msgid.link/20260428-topic-sm8650-ayaneo-pocket-s2-r63419-v1-0-981eb5ab5a51@linaro.org
    
    ---
    KancyJoe (1):
          drm: panel: add support for the Renesas R63419 based dual-DSI video mode Display Panels
    
    Neil Armstrong (1):
          dt-bindings: display: panel: document the Renesas R63419 based dual-DSI video mode Display Panels
    
     .../bindings/display/panel/renesas,r63419.yaml     |  98 ++++++
     drivers/gpu/drm/panel/Kconfig                      |  12 +
     drivers/gpu/drm/panel/Makefile                     |   1 +
     drivers/gpu/drm/panel/panel-renesas-r63419.c       | 364 +++++++++++++++++++++
     4 files changed, 475 insertions(+)
    ---
    base-commit: e98d21c170b01ddef366f023bbfcf6b31509fa83
    change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-r63419-e72467e2db0f
    
    Best regards,
    --
    Neil Armstrong <neil.armstrong@linaro.org>
  • sent/20260408-topic-sm8x50-iris-10bit-decoding-074c3ac7975c-v4

    media: qcom: iris: add support for decoding 10bit formats
    
    This adds the plumbing to support decoding HEVC, VP9 and AV1
    streams into 10bit pixel formats, linear and compressed.
    
    This has only been tested on SM8550 & SM8650 with HEVC, and was
    inspired by Venus, DRM MSM and the downstream vidc driver for the
    buffer calculations and HFI messages.
    
    Gstreamer support for QC08 and QC10 need the MR at [1] to be applied,
    but NV12 and P010 works out of the box with mainline Gstreamer.
    
    Fluster HEVC results on SM8650 using Gstreamer:
    
    ./fluster.py run -ts JCT-VC-HEVC_V1 -d GStreamer-H.265-V4L2-Gst1.0 - 141/147
    The failing test case:
    - Pixel Format mismatch
     - TSUNEQBD_A_MAIN10_Technicolor_2 - Gstreamer waits NV12 but decoder returns P010
    - Unsupported resolution
     - PICSIZE_A_Bossen_1 - resolution is higher than max supported
     - PICSIZE_B_Bossen_1 - resolution is higher than max supported
     - WPP_D_ericsson_MAIN_2 - resolution is lower than min supported
     - WPP_D_ericsson_MAIN10_2 - resolution is lower than min supported
    - CRC mismatch
     - RAP_A_docomo_6
    
    v4l2-compliance results on SM8550 & SM8650:
    
    $ v4l2-compliance -d /dev/video1 -s
    v4l2-compliance 1.33.0-5456, 64 bits, 64-bit time_t
    v4l2-compliance SHA: 8aa593bda182 2026-04-11 10:54:25
    
    Compliance test for iris_driver device /dev/video1:
    
    Driver Info:
    	Driver name      : iris_driver
    	Card type        : Iris Encoder
    	Bus info         : platform:aa00000.video-codec
    	Driver version   : 7.0.0
    	Capabilities     : 0x84204000
    		Video Memory-to-Memory Multiplanar
    		Streaming
    		Extended Pix Format
    		Device Capabilities
    	Device Caps      : 0x04204000
    		Video Memory-to-Memory Multiplanar
    		Streaming
    		Extended Pix Format
    	Detected Stateful Encoder
    
    Required ioctls:
    	test VIDIOC_QUERYCAP: OK
    	test invalid ioctls: OK
    
    Allow for multiple opens:
    	test second /dev/video1 open: OK
    	test VIDIOC_QUERYCAP: OK
    	test VIDIOC_G/S_PRIORITY: OK
    	test for unlimited opens: OK
    
    Debug ioctls:
    	test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
    	test VIDIOC_LOG_STATUS: OK (Not Supported)
    
    Input ioctls:
    	test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
    	test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
    	test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
    	test VIDIOC_ENUMAUDIO: OK (Not Supported)
    	test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
    	test VIDIOC_G/S_AUDIO: OK (Not Supported)
    	Inputs: 0 Audio Inputs: 0 Tuners: 0
    
    Output ioctls:
    	test VIDIOC_G/S_MODULATOR: OK (Not Supported)
    	test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
    	test VIDIOC_ENUMAUDOUT: OK (Not Supported)
    	test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
    	test VIDIOC_G/S_AUDOUT: OK (Not Supported)
    	Outputs: 0 Audio Outputs: 0 Modulators: 0
    
    Input/Output configuration ioctls:
    	test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
    	test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
    	test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
    	test VIDIOC_G/S_EDID: OK (Not Supported)
    
    Control ioctls:
    	test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
    	test VIDIOC_QUERYCTRL: OK
    	test VIDIOC_G/S_CTRL: OK
    	test VIDIOC_G/S/TRY_EXT_CTRLS: OK
    	test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
    	test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
    	Standard Controls: 43 Private Controls: 0
    
    Format ioctls:
    	test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
    	test VIDIOC_G/S_PARM: OK
    	test VIDIOC_G_FBUF: OK (Not Supported)
    	test VIDIOC_G_FMT: OK
    	test VIDIOC_TRY_FMT: OK
    	test VIDIOC_S_FMT: OK
    	test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
    	test Cropping: OK
    	test Composing: OK (Not Supported)
    	test Scaling: OK (Not Supported)
    
    Codec ioctls:
    	test VIDIOC_(TRY_)ENCODER_CMD: OK
    	test VIDIOC_G_ENC_INDEX: OK (Not Supported)
    	test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
    
    Buffer ioctls:
    	test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
    	test CREATE_BUFS maximum buffers: OK
    	test VIDIOC_REMOVE_BUFS: OK
    	test VIDIOC_EXPBUF: OK
    	test Requests: OK (Not Supported)
    	test blocking wait: OK
    
    Test input 0:
    
    Streaming ioctls:
    	test read/write: OK (Not Supported)
    	Video Capture Multiplanar: Captured 61 buffers
    	test MMAP (select, REQBUFS): OK
    	Video Capture Multiplanar: Captured 61 buffers
    	test MMAP (epoll, REQBUFS): OK
    	Video Capture Multiplanar: Captured 61 buffers
    	test MMAP (select, CREATE_BUFS): OK
    	Video Capture Multiplanar: Captured 61 buffers
    	test MMAP (epoll, CREATE_BUFS): OK
    	test USERPTR (select): OK (Not Supported)
    	test DMABUF: Cannot test, specify --expbuf-device
    
    Total for iris_driver device /dev/video1: 54, Succeeded: 54, Failed: 0, Warnings: 0
    
    $ v4l2-compliance -d /dev/video0 -s5 --stream-from=test_video_10s.h264
    v4l2-compliance 1.33.0-5456, 64 bits, 64-bit time_t
    v4l2-compliance SHA: 8aa593bda182 2026-04-11 10:54:25
    
    Compliance test for iris_driver device /dev/video0:
    
    Driver Info:
    	Driver name      : iris_driver
    	Card type        : Iris Decoder
    	Bus info         : platform:aa00000.video-codec
    	Driver version   : 7.0.0
    	Capabilities     : 0x84204000
    		Video Memory-to-Memory Multiplanar
    		Streaming
    		Extended Pix Format
    		Device Capabilities
    	Device Caps      : 0x04204000
    		Video Memory-to-Memory Multiplanar
    		Streaming
    		Extended Pix Format
    	Detected Stateful Decoder
    
    Required ioctls:
    	test VIDIOC_QUERYCAP: OK
    	test invalid ioctls: OK
    
    Allow for multiple opens:
    	test second /dev/video0 open: OK
    	test VIDIOC_QUERYCAP: OK
    	test VIDIOC_G/S_PRIORITY: OK
    	test for unlimited opens: OK
    
    Debug ioctls:
    	test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
    	test VIDIOC_LOG_STATUS: OK (Not Supported)
    
    Input ioctls:
    	test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
    	test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
    	test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
    	test VIDIOC_ENUMAUDIO: OK (Not Supported)
    	test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
    	test VIDIOC_G/S_AUDIO: OK (Not Supported)
    	Inputs: 0 Audio Inputs: 0 Tuners: 0
    
    Output ioctls:
    	test VIDIOC_G/S_MODULATOR: OK (Not Supported)
    	test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
    	test VIDIOC_ENUMAUDOUT: OK (Not Supported)
    	test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
    	test VIDIOC_G/S_AUDOUT: OK (Not Supported)
    	Outputs: 0 Audio Outputs: 0 Modulators: 0
    
    Input/Output configuration ioctls:
    	test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
    	test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
    	test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
    	test VIDIOC_G/S_EDID: OK (Not Supported)
    
    Control ioctls:
    	test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
    	test VIDIOC_QUERYCTRL: OK
    	test VIDIOC_G/S_CTRL: OK
    	test VIDIOC_G/S/TRY_EXT_CTRLS: OK
    	test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
    	test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
    	Standard Controls: 12 Private Controls: 0
    
    Format ioctls:
    	test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
    	test VIDIOC_G/S_PARM: OK (Not Supported)
    	test VIDIOC_G_FBUF: OK (Not Supported)
    	test VIDIOC_G_FMT: OK
    	test VIDIOC_TRY_FMT: OK
    	test VIDIOC_S_FMT: OK
    	test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
    	test Cropping: OK
    	test Composing: OK
    	test Scaling: OK (Not Supported)
    
    Codec ioctls:
    	test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
    	test VIDIOC_G_ENC_INDEX: OK (Not Supported)
    	test VIDIOC_(TRY_)DECODER_CMD: OK
    
    Buffer ioctls:
    	test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
    	test CREATE_BUFS maximum buffers: OK
    	test VIDIOC_REMOVE_BUFS: OK
    	test VIDIOC_EXPBUF: OK
    	test Requests: OK (Not Supported)
    	test blocking wait: OK
    
    Test input 0:
    
    Streaming ioctls:
    	test read/write: OK (Not Supported)
    the input file is smaller than 7077888 bytes
    	Video Capture Multiplanar: Captured 601 buffers
    	test MMAP (select, REQBUFS): OK
    the input file is smaller than 7077888 bytes
    	Video Capture Multiplanar: Captured 601 buffers
    	test MMAP (epoll, REQBUFS): OK
    the input file is smaller than 7077888 bytes
    	Video Capture Multiplanar: Captured 601 buffers
    	test MMAP (select, CREATE_BUFS): OK
    the input file is smaller than 7077888 bytes
    	Video Capture Multiplanar: Captured 601 buffers
    	test MMAP (epoll, CREATE_BUFS): OK
    	test USERPTR (select): OK (Not Supported)
    	test DMABUF: Cannot test, specify --expbuf-device
    
    Total for iris_driver device /dev/video0: 54, Succeeded: 54, Failed: 0, Warnings: 0
    
    [1] https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8195
    
    To: Vikash Garodia <vikash.garodia@oss.qualcomm.com>
    To: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
    To: Abhinav Kumar <abhinav.kumar@linux.dev>
    To: Bryan O'Donoghue <bod@kernel.org>
    To: Mauro Carvalho Chehab <mchehab@kernel.org>
    Cc: linux-media@vger.kernel.org
    Cc: linux-arm-msm@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v4:
    - Picked review tags
    - Use u32 instead of __u32
    - Explicit DPB
    - Drop NULL and use >>1 in q10c buffer calc
    - Drop selicolon after switch statementr
    - Correctly align HFI_PROP_UBWC_STRIDE_SCANLINE entry
    - Rebase on media next tree after the file split
    - Link to v3: https://patch.msgid.link/20260511-topic-sm8x50-iris-10bit-decoding-v3-0-7fc049b93042@linaro.org
    
    Changes in v3:
    - Added review tag on patch 1
    - Limited stride command to AV1 decoding only
    - Link to v2: https://patch.msgid.link/20260417-topic-sm8x50-iris-10bit-decoding-v2-0-c987b65a31d5@linaro.org
    
    Changes in v2:
    - Fixed bug breaking 8bit decoding
    - Dropped filtering on G_FMT while waiting for soure change
    - Dropped format filtering on ENUMFMT
    - Switched ALIGN(x, 192) to roundup(x, 192) because ALIGN works only with Power Of Two numbers
    - Cleaned and refactors the width/height/stride calculations
    - Cleaned and redesigned the buffer calculations functions with proper comments and var names
    - Passed fluster and v4l2-compliance to check for non regression
    - Tested on SM8550
    - Added missing V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10 with made gstreamer fail decoding
    - Link to v1: https://patch.msgid.link/20260408-topic-sm8x50-iris-10bit-decoding-v1-0-428c1ec2e3f3@linaro.org
    
    ---
    Neil Armstrong (6):
          media: qcom: iris: add helpers for 8bit and 10bit formats
          media: qcom: iris: add QC10C & P010 buffer size calculations
          media: qcom: iris: gen2: add support for 10bit decoding
          media: qcom: iris: vdec: update size and stride calculations for 10bit formats
          media: qcom: iris: vdec: update find_format to handle 8bit and 10bit formats
          media: qcom: iris: vdec: allow GEN2 decoding into 10bit format
    
     drivers/media/platform/qcom/iris/iris_buffer.c     | 195 ++++++++++++++++++++-
     drivers/media/platform/qcom/iris/iris_hfi_gen2.c   |   8 +-
     .../platform/qcom/iris/iris_hfi_gen2_command.c     |  75 +++++++-
     .../platform/qcom/iris/iris_hfi_gen2_defines.h     |   1 +
     .../platform/qcom/iris/iris_hfi_gen2_response.c    |  37 +++-
     drivers/media/platform/qcom/iris/iris_instance.h   |   2 +
     .../platform/qcom/iris/iris_platform_common.h      |   1 +
     drivers/media/platform/qcom/iris/iris_utils.c      |  16 +-
     drivers/media/platform/qcom/iris/iris_utils.h      |   2 +
     drivers/media/platform/qcom/iris/iris_vdec.c       |  42 ++++-
     10 files changed, 364 insertions(+), 15 deletions(-)
    ---
    base-commit: 86693e86019a7466be961fd4f45d407cc0b0ba0a
    change-id: 20260408-topic-sm8x50-iris-10bit-decoding-074c3ac7975c
    
    Best regards,
    --
    Neil Armstrong <neil.armstrong@linaro.org>
    
  • sent/20260428-topic-sm8650-ayaneo-pocket-s2-r63419-e72467e2db0f-v5

    drm: panel: support the R63419 based dual-DSI video mode Display Panels
    
    Add support for the Renesas 63419 based dual-DSI video mode
    Display Panels found in the Ayaneo gaming handled devices.
    
    To: Jessica Zhang <jesszhan0024@gmail.com>
    To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    To: Maxime Ripard <mripard@kernel.org>
    To: Thomas Zimmermann <tzimmermann@suse.de>
    To: David Airlie <airlied@gmail.com>
    To: Simona Vetter <simona@ffwll.ch>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    To: Geert Uytterhoeven <geert+renesas@glider.be>
    To: Magnus Damm <magnus.damm@gmail.com>
    Cc: dri-devel@lists.freedesktop.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-renesas-soc@vger.kernel.org
    Cc: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v5:
    - Import panel-common-dual.yaml in bindings
    - Set reg as required
    - fix bindings example typo
    - Add helper to switch link in order to use single dsi_ctx to properly handle errors
    - Disable vdd supplies if vcc supplied fail to enable
    - Precise the power off sequence is recommended by the vendor spec
    - Drop passing of node to second dsi to avoid re-probing the driver twice
    - Link to v4: https://patch.msgid.link/20260519-topic-sm8650-ayaneo-pocket-s2-r63419-v4-0-b8929af5e951@linaro.org
    
    Changes in v4:
    - Moved height/width in the drm_mode, duplicated modes to use drm_connector_helper_get_modes_fixed
    - Create dsi_info on the stack with proper OF node and name passed
    - Switched to devm_drm_panel_add/devm_mipi_dsi_attach & dropped remove
    - Link to v3: https://patch.msgid.link/20260504-topic-sm8650-ayaneo-pocket-s2-r63419-v3-0-9f61cf24aebf@linaro.org
    
    Changes in v3:
    - Added DDIC compatible as fallback
    - Added rotation in bindings example
    - Fixed bindings subject
    - Added second MODULE_AUTHOR entry and re-ordered signed-off-by order
    - Link to v2: https://patch.msgid.link/20260430-topic-sm8650-ayaneo-pocket-s2-r63419-v2-0-91ac10453d0c@linaro.org
    
    Changes in v2:
    - Add missing rotation property into bindings
    - Fix commit message & subject typos
    - Link to v1: https://patch.msgid.link/20260428-topic-sm8650-ayaneo-pocket-s2-r63419-v1-0-981eb5ab5a51@linaro.org
    
    ---
    KancyJoe (1):
          drm: panel: add support for the Renesas R63419 based dual-DSI video mode Display Panels
    
    Neil Armstrong (1):
          dt-bindings: display: panel: document the Renesas R63419 based dual-DSI video mode Display Panels
    
     .../bindings/display/panel/renesas,r63419.yaml     |  98 ++++++
     drivers/gpu/drm/panel/Kconfig                      |  12 +
     drivers/gpu/drm/panel/Makefile                     |   1 +
     drivers/gpu/drm/panel/panel-renesas-r63419.c       | 364 +++++++++++++++++++++
     4 files changed, 475 insertions(+)
    ---
    base-commit: e98d21c170b01ddef366f023bbfcf6b31509fa83
    change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-r63419-e72467e2db0f
    
    Best regards,
    --
    Neil Armstrong <neil.armstrong@linaro.org>
  • sent/20260428-topic-sm8650-ayaneo-pocket-s2-sy7758-3081ee7f1e25-v4

    backlight: Add SY7758 6-channel High Efficiency LED Driver support
    
    Implement support for the Silergy SY7758 6-channel High Efficiency LED Driver
    used for backlight brightness control in the Ayaneo Pocket S2 dual-DSI panel.
    
    To: Lee Jones <lee@kernel.org>
    To: Daniel Thompson <danielt@kernel.org>
    To: Jingoo Han <jingoohan1@gmail.com>
    To: Pavel Machek <pavel@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    To: Helge Deller <deller@gmx.de>
    Cc: dri-devel@lists.freedesktop.org
    Cc: linux-leds@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-fbdev@vger.kernel.org
    Cc: KancyJoe <kancy2333@outlook.com>
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v4:
    - Fixed Kconfig typo
    - Remove again unused macros
    - Added delay.h include
    - Link to v3: https://patch.msgid.link/20260519-topic-sm8650-ayaneo-pocket-s2-sy7758-v3-0-ec8194bbc885@linaro.org
    
    Changes in v3:
    - Dropped unused macros
    - Added second autho entry to match header and commit message
    - Move my signof at the end
    - Switched to flseep()
    - Link to v2: https://patch.msgid.link/20260430-topic-sm8650-ayaneo-pocket-s2-sy7758-v2-0-308140640de9@linaro.org
    
    Changes in v2:
    - Fixed bindings subject and removed "|"
    - Added review tag
    - Added higher delay before reading ID from HW (100us was too short)
    - Removed probe defer if i2c read fails
    - Link to v1: https://patch.msgid.link/20260428-topic-sm8650-ayaneo-pocket-s2-sy7758-v1-0-0caade5fdb32@linaro.org
    
    ---
    KancyJoe (1):
          backlight: Add SY7758 6-channel High Efficiency LED Driver support
    
    Neil Armstrong (1):
          dt-bindings: leds: backlight: document the SY7758 6-channel High Efficiency LED Driver
    
     .../bindings/leds/backlight/silergy,sy7758.yaml    |  53 +++++
     drivers/video/backlight/Kconfig                    |   8 +
     drivers/video/backlight/Makefile                   |   1 +
     drivers/video/backlight/sy7758.c                   | 259 +++++++++++++++++++++
     4 files changed, 321 insertions(+)
    ---
    base-commit: 39704f00f747aba3144289870b5fd8ac230a9aaf
    change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-sy7758-3081ee7f1e25
    
    Best regards,
    --
    Neil Armstrong <neil.armstrong@linaro.org>
  • sent/20260428-topic-sm8650-ayaneo-pocket-s2-sy7758-3081ee7f1e25-v3

    backlight: Add SY7758 6-channel High Efficiency LED Driver support
    
    Implement support for the Silergy SY7758 6-channel High Efficiency LED Driver
    used for backlight brightness control in the Ayaneo Pocket S2 dual-DSI panel.
    
    To: Lee Jones <lee@kernel.org>
    To: Daniel Thompson <danielt@kernel.org>
    To: Jingoo Han <jingoohan1@gmail.com>
    To: Pavel Machek <pavel@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    To: Helge Deller <deller@gmx.de>
    Cc: dri-devel@lists.freedesktop.org
    Cc: linux-leds@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-fbdev@vger.kernel.org
    Cc: KancyJoe <kancy2333@outlook.com>
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v3:
    - Dropped unused macros
    - Added second autho entry to match header and commit message
    - Move my signof at the end
    - Switched to flseep()
    - Link to v2: https://patch.msgid.link/20260430-topic-sm8650-ayaneo-pocket-s2-sy7758-v2-0-308140640de9@linaro.org
    
    Changes in v2:
    - Fixed bindings subject and removed "|"
    - Added review tag
    - Added higher delay before reading ID from HW (100us was too short)
    - Removed probe defer if i2c read fails
    - Link to v1: https://patch.msgid.link/20260428-topic-sm8650-ayaneo-pocket-s2-sy7758-v1-0-0caade5fdb32@linaro.org
    
    ---
    KancyJoe (1):
          backlight: Add SY7758 6-channel High Efficiency LED Driver support
    
    Neil Armstrong (1):
          dt-bindings: leds: backlight: document the SY7758 6-channel High Efficiency LED Driver
    
     .../bindings/leds/backlight/silergy,sy7758.yaml    |  53 +++++
     drivers/video/backlight/Kconfig                    |   8 +
     drivers/video/backlight/Makefile                   |   1 +
     drivers/video/backlight/sy7758.c                   | 259 +++++++++++++++++++++
     4 files changed, 321 insertions(+)
    ---
    base-commit: 39704f00f747aba3144289870b5fd8ac230a9aaf
    change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-sy7758-3081ee7f1e25
    
    Best regards,
    --
    Neil Armstrong <neil.armstrong@linaro.org>
  • sent/20260428-topic-sm8650-ayaneo-pocket-s2-r63419-e72467e2db0f-v4

    drm: panel: support the R63419 based dual-DSI video mode Display Panels
    
    Add support for the Renesas 63419 based dual-DSI video mode
    Display Panels found in the Ayaneo gaming handled devices.
    
    To: Jessica Zhang <jesszhan0024@gmail.com>
    To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    To: Maxime Ripard <mripard@kernel.org>
    To: Thomas Zimmermann <tzimmermann@suse.de>
    To: David Airlie <airlied@gmail.com>
    To: Simona Vetter <simona@ffwll.ch>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    To: Geert Uytterhoeven <geert+renesas@glider.be>
    To: Magnus Damm <magnus.damm@gmail.com>
    Cc: dri-devel@lists.freedesktop.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-renesas-soc@vger.kernel.org
    Cc: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v4:
    - Moved height/width in the drm_mode, duplicated modes to use drm_connector_helper_get_modes_fixed
    - Create dsi_info on the stack with proper OF node and name passed
    - Switched to devm_drm_panel_add/devm_mipi_dsi_attach & dropped remove
    - Link to v3: https://patch.msgid.link/20260504-topic-sm8650-ayaneo-pocket-s2-r63419-v3-0-9f61cf24aebf@linaro.org
    
    Changes in v3:
    - Added DDIC compatible as fallback
    - Added rotation in bindings example
    - Fixed bindings subject
    - Added second MODULE_AUTHOR entry and re-ordered signed-off-by order
    - Link to v2: https://patch.msgid.link/20260430-topic-sm8650-ayaneo-pocket-s2-r63419-v2-0-91ac10453d0c@linaro.org
    
    Changes in v2:
    - Add missing rotation property into bindings
    - Fix commit message & subject typos
    - Link to v1: https://patch.msgid.link/20260428-topic-sm8650-ayaneo-pocket-s2-r63419-v1-0-981eb5ab5a51@linaro.org
    
    ---
    KancyJoe (1):
          drm: panel: add support for the Renesas R63419 based dual-DSI video mode Display Panels
    
    Neil Armstrong (1):
          dt-bindings: display: panel: document the Renesas R63419 based dual-DSI video mode Display Panels
    
     .../bindings/display/panel/renesas,r63419.yaml     |  97 ++++++
     drivers/gpu/drm/panel/Kconfig                      |  12 +
     drivers/gpu/drm/panel/Makefile                     |   1 +
     drivers/gpu/drm/panel/panel-renesas-r63419.c       | 341 +++++++++++++++++++++
     4 files changed, 451 insertions(+)
    ---
    base-commit: e98d21c170b01ddef366f023bbfcf6b31509fa83
    change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-r63419-e72467e2db0f
    
    Best regards,
    --
    Neil Armstrong <neil.armstrong@linaro.org>
  • sent/20260428-topic-sm8650-ayaneo-pocket-s2-sgm3804-8764fbb72eb7-v4

    regulator: add support for SGM3804 Dual Output driver
    
    Add support for the SG Micro SGM3804 Single Inductor Dual Output
    Buck/Boost Converter used to power LCD panels a provide positive
    and negative power rails with configurable voltage and active
    discharge function for each output.
    
    The SGM3804 is powered by the enable GPIO pins inputs and only
    supports I2C write messages.
    In order to add flexibility and simplify the driver, the
    regmap cache is enabled and populated with default values
    since we can't write registers when the 2 GPIOs are down.
    
    This regulator is used to provide vsn and vsn power to the
    Ayaneo Pocket S2 dual-DSI LCD panel.
    
    To: Liam Girdwood <lgirdwood@gmail.com>
    To: Mark Brown <broonie@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    Cc: linux-kernel@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: KancyJoe <kancy2333@outlook.com>
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v4:
    - Moved the enable-gpios to subnodes due to enable-gpio bindings constraint
    - Added code to get enable gpios from subnodes using fwnode to avoid the of->fwnode dance
    - Switch last gpio call to cansleep
    - Moved the Kconfig/Makefile entry in the right place
    - Link to v3: https://patch.msgid.link/20260504-topic-sm8650-ayaneo-pocket-s2-sgm3804-v3-0-c4783443890b@linaro.org
    
    Changes in v3:
    - Change header in c++ comment block
    - Switch to regcache dirty/only instead of custom handling
    - Use GPIO_ASIS to avoid turning off regulator on boot
    - Use gpio cansleep
    - Add my MODULE_AUTHOR and reorder the signoff
    - Link to v2: https://patch.msgid.link/20260430-topic-sm8650-ayaneo-pocket-s2-sgm3804-v2-0-76108c65a560@linaro.org
    
    Changes in v2:
    - Fixed bindings subject and gpios minItems
    - Fixed regulator signed-off order
    - Added second MODULE_AUTHOR entry
    - Added more comments on how regmap cache is configured to work
    - Link to v1: https://patch.msgid.link/20260428-topic-sm8650-ayaneo-pocket-s2-sgm3804-v1-0-1d8dc7620256@linaro.org
    
    ---
    KancyJoe (1):
          regulator: add SGM3804 Dual Output driver
    
    Neil Armstrong (1):
          regulator: dt-bindings: document the SGM3804 Dual Output regulator
    
     .../bindings/regulator/sgmicro,sgm3804.yaml        |  77 ++++++
     drivers/regulator/Kconfig                          |   7 +
     drivers/regulator/Makefile                         |   1 +
     drivers/regulator/sgm3804-regulator.c              | 308 +++++++++++++++++++++
     4 files changed, 393 insertions(+)
    ---
    base-commit: 39704f00f747aba3144289870b5fd8ac230a9aaf
    change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-sgm3804-8764fbb72eb7
    
    Best regards,
    --
    Neil Armstrong <neil.armstrong@linaro.org>
  • sent/20260427-topic-sm8x50-adc5-gen3-edf94fbd335b-v2

    [RFC] arm64: dts: qcom: sm8[56]50: add PMIC5 Gen3 ADC channels
    
    Now the bindings and driver was merged for the SPMI PMIC5 Gen3 ADC
    found on the PMK8550 which allow reading ADC data on the PMK8550
    and other PMICs on the system.
    
    First, add the PMIC5 Gen3 macros to calculate the channel numbers which
    is a combination of SPMI bus number and a constant for the sensor
    type and configuration.
    
    The macros definitions were taken out of [1] where it was initially
    in the dt-bindings include directory but since those are not hardware
    bindings but logical numbers, they can be moved to local includes
    instead to make the DT source more readable.
    
    [1] https://lore.kernel.org/all/20250826083657.4005727-4-jishnu.prakash@oss.qualcomm.com/
    
    Finally add the SPMI ADC channels on the PMK8550 SPMI5 ADC3 for the
    other PMICS on the system.
    
    To: Bjorn Andersson <andersson@kernel.org>
    To: Konrad Dybcio <konradybcio@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    Cc: linux-arm-msm@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v2:
    - Removed stray line from patch 2, added review tag
    - Added missing header file
    - Link to v1: https://patch.msgid.link/20260427-topic-sm8x50-adc5-gen3-v1-0-8a70f7b90a75@linaro.org
    
    ---
    Neil Armstrong (6):
          arm64: dts: qcom: add PMIC5 Gen3 macros for channel numbers
          arm64: dts: qcom: pmk8550: add VADC node
          arm64: dts: qcom: sm8550-qrd: add SPMI ADC channels and thermal nodes
          arm64: dts: qcom: sm8550-hdk: add SPMI ADC channels and thermal nodes
          arm64: dts: qcom: sm8650-qrd: add SPMI ADC channels and thermal nodes
          arm64: dts: qcom: sm8650-hdk: add SPMI ADC channels and thermal nodes
    
     arch/arm64/boot/dts/qcom/pmk8550.dtsi              |  30 +++
     arch/arm64/boot/dts/qcom/qcom,adc5-gen3-channels.h |  88 +++++++
     arch/arm64/boot/dts/qcom/qcom,pm8550-adc5-gen3.h   |  46 ++++
     arch/arm64/boot/dts/qcom/qcom,pm8550b-adc5-gen3.h  |  85 +++++++
     arch/arm64/boot/dts/qcom/qcom,pm8550vx-adc5-gen3.h |  22 ++
     arch/arm64/boot/dts/qcom/qcom,pmk8550-adc5-gen3.h  |  52 ++++
     arch/arm64/boot/dts/qcom/sm8550-hdk.dts            | 279 +++++++++++++++++++++
     arch/arm64/boot/dts/qcom/sm8550-qrd.dts            | 279 +++++++++++++++++++++
     arch/arm64/boot/dts/qcom/sm8650-hdk.dts            | 279 +++++++++++++++++++++
     arch/arm64/boot/dts/qcom/sm8650-qrd.dts            | 279 +++++++++++++++++++++
     10 files changed, 1439 insertions(+)
    ---
    base-commit: b9303e6bff706758c167af686b5315ad00233bf8
    change-id: 20260427-topic-sm8x50-adc5-gen3-edf94fbd335b
    
    Best regards,
    --
    Neil Armstrong <neil.armstrong@linaro.org>
  • sent/20260428-topic-sm8650-ayaneo-pocket-s2-sgm3804-8764fbb72eb7-v3

    regulator: add support for SGM3804 Dual Output driver
    
    Add support for the SG Micro SGM3804 Single Inductor Dual Output
    Buck/Boost Converter used to power LCD panels a provide positive
    and negative power rails with configurable voltage and active
    discharge function for each output.
    
    The SGM3804 is powered by the enable GPIO pins inputs and only
    supports I2C write messages.
    In order to add flexibility and simplify the driver, the
    regmap cache is enabled and populated with default values
    since we can't write registers when the 2 GPIOs are down.
    
    This regulator is used to provide vsn and vsn power to the
    Ayaneo Pocket S2 dual-DSI LCD panel.
    
    To: Liam Girdwood <lgirdwood@gmail.com>
    To: Mark Brown <broonie@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    Cc: linux-kernel@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: KancyJoe <kancy2333@outlook.com>
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v3:
    - Change header in c++ comment block
    - Switch to regcache dirty/only instead of custom handling
    - Use GPIO_ASIS to avoid turning off regulator on boot
    - Use gpio cansleep
    - Add my MODULE_AUTHOR and reorder the signoff
    - Link to v2: https://patch.msgid.link/20260430-topic-sm8650-ayaneo-pocket-s2-sgm3804-v2-0-76108c65a560@linaro.org
    
    Changes in v2:
    - Fixed bindings subject and gpios minItems
    - Fixed regulator signed-off order
    - Added second MODULE_AUTHOR entry
    - Added more comments on how regmap cache is configured to work
    - Link to v1: https://patch.msgid.link/20260428-topic-sm8650-ayaneo-pocket-s2-sgm3804-v1-0-1d8dc7620256@linaro.org
    
    ---
    KancyJoe (1):
          regulator: add SGM3804 Dual Output driver
    
    Neil Armstrong (1):
          regulator: dt-bindings: document the SGM3804 Dual Output regulator
    
     .../bindings/regulator/sgmicro,sgm3804.yaml        |  77 ++++++
     drivers/regulator/Kconfig                          |   7 +
     drivers/regulator/Makefile                         |   1 +
     drivers/regulator/sgm3804-regulator.c              | 297 +++++++++++++++++++++
     4 files changed, 382 insertions(+)
    ---
    base-commit: 39704f00f747aba3144289870b5fd8ac230a9aaf
    change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-sgm3804-8764fbb72eb7
    
    Best regards,
    --
    Neil Armstrong <neil.armstrong@linaro.org>
  • sent/20260428-topic-sm8650-ayaneo-pocket-s2-r63419-e72467e2db0f-v3

    drm: panel: support the R63419 based dual-DSI video mode Display Panels
    
    Add support for the Renesas 63419 based dual-DSI video mode
    Display Panels found in the Ayaneo gaming handled devices.
    
    To: Jessica Zhang <jesszhan0024@gmail.com>
    To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    To: Maxime Ripard <mripard@kernel.org>
    To: Thomas Zimmermann <tzimmermann@suse.de>
    To: David Airlie <airlied@gmail.com>
    To: Simona Vetter <simona@ffwll.ch>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    To: Geert Uytterhoeven <geert+renesas@glider.be>
    To: Magnus Damm <magnus.damm@gmail.com>
    Cc: dri-devel@lists.freedesktop.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-renesas-soc@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v3:
    - Added DDIC compatible as fallback
    - Added rotation in bindings example
    - Fixed bindings subject
    - Added second MODULE_AUTHOR entry and re-ordered signed-off-by order
    - Link to v2: https://patch.msgid.link/20260430-topic-sm8650-ayaneo-pocket-s2-r63419-v2-0-91ac10453d0c@linaro.org
    
    Changes in v2:
    - Add missing rotation property into bindings
    - Fix commit message & subject typos
    - Link to v1: https://patch.msgid.link/20260428-topic-sm8650-ayaneo-pocket-s2-r63419-v1-0-981eb5ab5a51@linaro.org
    
    ---
    KancyJoe (1):
          drm: panel: add support for the Renesas R63419 based dual-DSI video mode Display Panels
    
    Neil Armstrong (1):
          dt-bindings: display: panel: document the Renesas R63419 based dual-DSI video mode Display Panels
    
     .../bindings/display/panel/renesas,r63419.yaml     |  97 ++++++
     drivers/gpu/drm/panel/Kconfig                      |  12 +
     drivers/gpu/drm/panel/Makefile                     |   1 +
     drivers/gpu/drm/panel/panel-renesas-r63419.c       | 357 +++++++++++++++++++++
     4 files changed, 467 insertions(+)
    ---
    base-commit: 39704f00f747aba3144289870b5fd8ac230a9aaf
    change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-r63419-e72467e2db0f
    
    Best regards,
    --
    Neil Armstrong <neil.armstrong@linaro.org>
  • sent/20260428-topic-sm8650-ayaneo-pocket-s2-r63419-e72467e2db0f-v2

    drm: panel: support the R63419 based dual-DSI video mode Display Panels
    
    Add support for the Renesas 63419 based dual-DSI video mode
    Display Panels found in the Ayaneo gaming handled devices.
    
    To: Jessica Zhang <jesszhan0024@gmail.com>
    To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    To: Maxime Ripard <mripard@kernel.org>
    To: Thomas Zimmermann <tzimmermann@suse.de>
    To: David Airlie <airlied@gmail.com>
    To: Simona Vetter <simona@ffwll.ch>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    To: Geert Uytterhoeven <geert+renesas@glider.be>
    To: Magnus Damm <magnus.damm@gmail.com>
    Cc: dri-devel@lists.freedesktop.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-renesas-soc@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v2:
    - Add missing rotation property into bindings
    - Fix commit message & subject typos
    - Link to v1: https://patch.msgid.link/20260428-topic-sm8650-ayaneo-pocket-s2-r63419-v1-0-981eb5ab5a51@linaro.org
    
    ---
    KancyJoe (1):
          drm: panel: add support for the Renesas R63419 based dual-DSI video mode Display Panels
    
    Neil Armstrong (1):
          dt-bindings: regulator: document the Renesas R63419 based dual-DSI video mode Display Panels
    
     .../bindings/display/panel/renesas,r63419.yaml     |  93 ++++++
     drivers/gpu/drm/panel/Kconfig                      |  12 +
     drivers/gpu/drm/panel/Makefile                     |   1 +
     drivers/gpu/drm/panel/panel-renesas-r63419.c       | 356 +++++++++++++++++++++
     4 files changed, 462 insertions(+)
    ---
    base-commit: 39704f00f747aba3144289870b5fd8ac230a9aaf
    change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-r63419-e72467e2db0f
    
    Best regards,
    --
    Neil Armstrong <neil.armstrong@linaro.org>
  • sent/20260428-topic-sm8650-ayaneo-pocket-s2-sy7758-3081ee7f1e25-v2

    backlight: Add SY7758 6-channel High Efficiency LED Driver support
    
    Implement support for the Silergy SY7758 6-channel High Efficiency LED Driver
    used for backlight brightness control in the Ayaneo Pocket S2 dual-DSI panel.
    
    To: Lee Jones <lee@kernel.org>
    To: Daniel Thompson <danielt@kernel.org>
    To: Jingoo Han <jingoohan1@gmail.com>
    To: Pavel Machek <pavel@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    To: Helge Deller <deller@gmx.de>
    Cc: dri-devel@lists.freedesktop.org
    Cc: linux-leds@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-fbdev@vger.kernel.org
    Cc: KancyJoe <kancy2333@outlook.com>
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v2:
    - Fixed bindings subject and removed "|"
    - Added review tag
    - Added higher delay before reading ID from HW (100us was too short)
    - Removed probe defer if i2c read fails
    - Link to v1: https://patch.msgid.link/20260428-topic-sm8650-ayaneo-pocket-s2-sy7758-v1-0-0caade5fdb32@linaro.org
    
    ---
    KancyJoe (1):
          backlight: Add SY7758 6-channel High Efficiency LED Driver support
    
    Neil Armstrong (1):
          dt-bindings: leds: backlight: document the SY7758 6-channel High Efficiency LED Driver
    
     .../bindings/leds/backlight/silergy,sy7758.yaml    |  53 ++++
     drivers/video/backlight/Kconfig                    |   8 +
     drivers/video/backlight/Makefile                   |   1 +
     drivers/video/backlight/sy7758.c                   | 311 +++++++++++++++++++++
     4 files changed, 373 insertions(+)
    ---
    base-commit: 39704f00f747aba3144289870b5fd8ac230a9aaf
    change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-sy7758-3081ee7f1e25
    
    Best regards,
    --
    Neil Armstrong <neil.armstrong@linaro.org>
  • sent/20260428-topic-sm8650-ayaneo-pocket-s2-sgm3804-8764fbb72eb7-v2

    regulator: add support for SGM3804 Dual Output driver
    
    Add support for the SG Micro SGM3804 Single Inductor Dual Output
    Buck/Boost Converter used to power LCD panels a provide positive
    and negative power rails with configurable voltage and active
    discharge function for each output.
    
    The SGM3804 is powered by the enable GPIO pins inputs and only
    supports I2C write messages. Thus we can't use the regmap
    helpers directly and we need to cache the selector and
    rail discharge state then setup the rails once the gpio
    is enabled.
    In order to add flexibility and simplify the driver, the
    regmap cache is enabled and populated with default values.
    
    This regulator is used to provide vsn and vsn power to the
    Ayaneo Pocket S2 dual-DSI LCD panel.
    
    To: Liam Girdwood <lgirdwood@gmail.com>
    To: Mark Brown <broonie@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    Cc: linux-kernel@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: KancyJoe <kancy2333@outlook.com>
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v2:
    - Fixed bindings subject and gpios minItems
    - Fixed regulator signed-off order
    - Added second MODULE_AUTHOR entry
    - Added more comments on how regmap cache is configured to work
    - Link to v1: https://patch.msgid.link/20260428-topic-sm8650-ayaneo-pocket-s2-sgm3804-v1-0-1d8dc7620256@linaro.org
    
    ---
    KancyJoe (1):
          regulator: add SGM3804 Dual Output driver
    
    Neil Armstrong (1):
          regulator: dt-bindings: document the SGM3804 Dual Output regulator
    
     .../bindings/regulator/sgmicro,sgm3804.yaml        |  77 ++++++
     drivers/regulator/Kconfig                          |   6 +
     drivers/regulator/Makefile                         |   1 +
     drivers/regulator/sgm3804-regulator.c              | 290 +++++++++++++++++++++
     4 files changed, 374 insertions(+)
    ---
    base-commit: 39704f00f747aba3144289870b5fd8ac230a9aaf
    change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-sgm3804-8764fbb72eb7
    
    Best regards,
    --
    Neil Armstrong <neil.armstrong@linaro.org>