From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DD9BA2EFD91 for ; Fri, 9 Jan 2026 07:42:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767944570; cv=none; b=Dm6fSGd6nOi0uM3j0DQ36EA6ELyicMFrPXrc/cN/aprTLm56WFkrkhpbNqC4zZ6jGd6KUD0b9ORC3jZx7PCN2g5f5RiHYxY+NM6VW1M/5y/6whlLHrVSQZeGUpsYYhDwnOxBvzcrSCZrriKe8xdVqTmhMB04BUuBuEjSUkNq13I= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767944570; c=relaxed/simple; bh=O8lCY4J4Qn/t6lnO3lfyoChGJ/2c8F8rN/dW52lU1kY=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=hNkmxDpUcFewpwOKANsAKgP+fpbJjpic/TQ9GS7dZOnXx33gs6hl4QYpfbo0OJUOXo3GUeD3nDrnioc2goQZUnVugeF8Y+zqxwX2K4KK9mWGLJSvKHc8VEiZcv0iWWAn7OUa0hJS4OIBR+nsViMJ1pXD6OMiIJ9DNy9uIH09cVw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=NSmTUkkj; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=LcrSUf1b; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="NSmTUkkj"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="LcrSUf1b" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6095nB9o3019533 for ; Fri, 9 Jan 2026 07:42:48 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=qcppdkim1; bh=C5G9p8oxaG+UD59xZGT3OJ UiU8ftSENvUmaNVbruLoQ=; b=NSmTUkkjLN1m0XJvocyDlN2iiuWSknGlaQQxw4 brtLWSvHcyNHJUwCvklPc2j0s4ZrwfXuC4OIH+wejL3ARzQLaO9rHp90rE0i3f0s eSaKg8liePyi2KH8a1VujFa05Ec1D7Hhn2oO62VpiWEIHMVilAJoDkMugwqgFuda BA6PgeE7N0ALYNUvvg6WzqTcmds7z8DHUZTYG4CYKas99KWxtT6/0WufbBkLnOgO yF1OkgVlt4g8EAt0EE0DBYrUKFBymo8vPwALU6Jx2+kKK1YcvbmgI+dB5NWuCGA8 OVZFnmYck/5Tu3YLKqdDcj5DDNUli7shrXTM4FEtXDkUf8Xg== Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bjjk3hsj8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 09 Jan 2026 07:42:48 +0000 (GMT) Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-c52d37d346fso1161039a12.0 for ; Thu, 08 Jan 2026 23:42:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767944567; x=1768549367; darn=vger.kernel.org; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:from:to:cc:subject:date:message-id:reply-to; bh=C5G9p8oxaG+UD59xZGT3OJUiU8ftSENvUmaNVbruLoQ=; b=LcrSUf1bsLoJxny7CrKdz3jgfnjz7NNevyuhm7xanBJDJ84OMGZ2RWvUssyU39MEXA hi/mHrcpv1kKGrvDkl3F+zmQ0TT90mSoKLa8gSiGeT55putMeUQAbuSO2NAw+W8pk9Cd JL80hU6+g8Q16FTSAZGGe/OAjwX7n5Pc3OPfLd6W3E6Y2perR2SbLt3WkwswGsVUFw1L /rJZMSUd4a5u6bPLOZfo2B9iOY9k5MXTX1uH7uAQqtN9+IH0Wk9ajHZZ+uIRMX/Bdinv c+9M2WCD4UXZutRetDdve+TqyzH84t7/gaI153wdRIa7lQDnKpCAkMjfPTgwEzoAiGkw tc8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767944567; x=1768549367; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=C5G9p8oxaG+UD59xZGT3OJUiU8ftSENvUmaNVbruLoQ=; b=uQT1UzSmE1rqAgk7BFBlXQuxxKu/+48JxUK1ODuZ6HtACxR6e9haHUF9hiCvwm/KMH ovm7lOz/ZAuhLEC7Q817Vw0A/A/3cdMbi9BDqfR/kegSSv7T6AKpGIKAr69vfqBZSQgY zGRLqEnqYUrFhbZERxzHT70BpH9TBMKY1SYAf99SzCLW+bOd1Hy4Tk5jV/sXUCnqYOcx lgP6M584LrLUzFD6rcYcpCLmwiWZTHOql9A1WX7m6lhTon+tzKlo6gO5rZ6pW6MeqTDU w4C9LIZkQOOeSFizjE7n9xPuDtJ3vuYVOd6EI4O/SrwwQLzOoScI6KNQy6ihzLXlk74j ZgLg== X-Forwarded-Encrypted: i=1; AJvYcCV5XOrmi1x2HXYk0PkSxbmjRoqYmHYEZnS1Z+oWgz4jYRLVF7oN8958WNFX6t+f1WJrODXAPJIOjO76YKbi@vger.kernel.org X-Gm-Message-State: AOJu0YyPUC9vrLsX6VPLYNB4pfDI+5wNrix8DrtYir2Vo6Bzj0MkAYKn ZgAGkmhU2MPyGH8ydsRTRJK0hxigpI9Q2lqjqLRQragnKv2rYwl4Bkt02Abv2jFlfdWNcnX8YNh SgUlvJeT2iHpGVxebzMKtyxfaFsSco3hM+KY7WwYBnEhmnfqB09poagAA1/PhODFwadOz X-Gm-Gg: AY/fxX6zeONsQ1hq6p2LSTs/nQFJYzg4D0QV5TVhclArPbTQzd6FNpkOR9Q+3gK0rJo 9TZXrcTy4Wo9Kw12Cqb+8UBepPU7Y8NYrHbKMwZHs7ucyCCCjExZiQBXzqHredk43b8tG8ST7Qc 8bQiGsO+iXDJuGSYWjX/vIQfwheM+m56Sw77VYRSv3gflfCoBCdQZ1pi4mpuP7AC7Y5SJfLxpmS HN8hwJb3mrbfLffJBfqtBS4YzIrVMXNU1LFN9lDsUkCkdouZX7M6PX5ZCvvdZEdJwHXzdrh5rf0 An1m6WK/jWewOvjbpIMwDh+dY0l77KVtyGWPnnkMUbHXPss7m6BNovDl7EF6v6OsrIcM3raMZuS /OaCGYS9/n0Xdc8Y4vRSMijIpleOuTObk6a7IG9AOPN4FpUJ2XOp5XHpra2cd6EBCPIeErvM8Tr Rhk1HnkhPW X-Received: by 2002:a05:6a20:3ca2:b0:366:14b0:4b17 with SMTP id adf61e73a8af0-3898eb0aa96mr8600731637.34.1767944567232; Thu, 08 Jan 2026 23:42:47 -0800 (PST) X-Google-Smtp-Source: AGHT+IGNhe0RQxyBPRTKiUY2Rq9qmXxvPLmUILSYLq/3zNf0ACSUBfa7wRO0SHaW48dirCaPpHm1ow== X-Received: by 2002:a05:6a20:3ca2:b0:366:14b0:4b17 with SMTP id adf61e73a8af0-3898eb0aa96mr8600709637.34.1767944566677; Thu, 08 Jan 2026 23:42:46 -0800 (PST) Received: from WANGAOW-LAB01.ap.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a3e3cd46a9sm98638195ad.93.2026.01.08.23.42.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Jan 2026 23:42:46 -0800 (PST) From: Wangao Wang Subject: [PATCH v3 0/6] media: qcom: iris: encoder feature enhancements batch2 Date: Fri, 09 Jan 2026 15:42:29 +0800 Message-Id: <20260109-batch2_iris_encoder_enhancements-v3-0-196855ef32ba@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-arm-msm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAGaxYGkC/42Qy2rDMBBFf8VoXQVr9PBj1f8oJYykcSOo7UZyT Evwv1e2C100BW8k7iDOuaM7SxQDJdYWdxZpDimMQw7yqWDugsMb8eBzZlCCFgI0tzi5C5xDDOl Mgxs9xXznp456GqbEJWmnwDYSQbOM+YjUhc9N8fK650jXWzZN+5D1lBJuprbYPULx/wWz4SX3x kuNDRip/fOY0ul6w3c39v0pH6vWYiK+DsLUFs5JRCWtUtZbJX1n0ZWds1o4bXSjUAgpa6zZWvA S0jTGr+1LZrE1PL79LHI5BKGrzoAzdfOw3A+vOsjThFVN4AmQ/vLWzjP89gTRHOBC5spKdFVHo OpSPOAuy/INm/FUwiACAAA= X-Change-ID: 20251125-batch2_iris_encoder_enhancements-3e5c42b93a25 To: Vikash Garodia , Dikshita Agarwal , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab Cc: quic_qiweil@quicinc.com, Renjiang Han , Wangao Wang , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1767944563; l=15646; i=wangao.wang@oss.qualcomm.com; s=20251021; h=from:subject:message-id; bh=O8lCY4J4Qn/t6lnO3lfyoChGJ/2c8F8rN/dW52lU1kY=; b=GHlWH8lj9HQyf7RcDCg5q3n3kNlSwP02HPIs7KBArg/2iX3SEc9f8AXRgUXk6ERA3derG/ivE rj3/D9nJg5vBFUY1eWSLcO3/ADQnLRVmR7IB9I7lS5zuuBWsXhf/o9H X-Developer-Key: i=wangao.wang@oss.qualcomm.com; a=ed25519; pk=bUPgYblBUAsoPyGfssbNR7ZXUSGF8v1VF4FJzSO6/aA= X-Proofpoint-ORIG-GUID: oXQC863S7AWBHEpto_Ps6vG7-Iw_4taX X-Authority-Analysis: v=2.4 cv=EazFgfmC c=1 sm=1 tr=0 ts=6960b178 cx=c_pps a=Qgeoaf8Lrialg5Z894R3/Q==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=WuJEzDSAgx0VTykqa9AA:9 a=QEXdDO2ut3YA:10 a=x9snwWr2DeNwDh03kgHS:22 X-Proofpoint-GUID: oXQC863S7AWBHEpto_Ps6vG7-Iw_4taX X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA5MDA1MyBTYWx0ZWRfX9lNHhYn1eh9s tQ2vD41MyTukkfucZalPcVIWh/W2hY5BRwKecfMo0ErvwjIRWe4kwp3g6VDAwCC70KlAxM1D/Bf eD8PiOtjvfZmflIG0LTs58abutqviUBsOJRQZeS21GmQJbO60CczYqbHLONoXeoo67LxO+/4J5N L0oZZIiUl+V3GRp80sILzkG/Gh0r8iQ10wz/4hvQh492QJuHZ3Tnly1FGfj/zMC7exvg8Jlu2XN bVLepoexAW0d6tJCh1NlrzCRQcYSuRziiDCdPuyFxmzOhHZOmV9jerm04dJpd0Ezf33nnNnhSgW 4bLK6bckntYX/LkEUr3A8gLICsAFQgMCtzq3HPTiwX5mOZNHliMQZZ528Q8kn6gNntpmVoYIaeC nZXiSHUAurkINAqYUNm78uEl4172rHIsSzJtpRfOzjfCjtSoITWi5u96WqUJcP5uvyfFfgKF/uV HIa+n1cLShLLcqN5KRw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-09_02,2026-01-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 adultscore=0 impostorscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601090053 Hi All, This patch series introduces several enhancements to the Qualcomm Iris encoder driver, improving support for V4L2 controls and enabling more video encoding features. All patches have been tested with v4l2-compliance and v4l2-ctl on gen1:SM8250, QCS6490, gen2:QCS8300, QCS8550, QCS9100, X1E-80100. Commands used for V4l2-ctl validation: Intra Refresh: ./v4l2-ctl --verbose -d /dev/video1 \ --set-fmt-video-out=width=1920,height=1080,pixelformat=NV12 \ --set-selection-output target=crop,width=1920,height=1080 \ --set-fmt-video=pixelformat=H264 --stream-mmap --stream-out-mmap \ --stream-from=input_nv12_1080p.yuv \ --stream-to=output/ir_random.h264 \ --set-ctrl intra_refresh_period_type=0,intra_refresh_period=30 ./v4l2-ctl --verbose -d /dev/video1 \ --set-fmt-video-out=width=1920,height=1080,pixelformat=NV12 \ --set-selection-output target=crop,width=1920,height=1080 \ --set-fmt-video=pixelformat=H264 --stream-mmap --stream-out-mmap \ --stream-from=input_nv12_1080p.yuv \ --stream-to=output/ir_cyclic.h264 \ --set-ctrl intra_refresh_period_type=1,intra_refresh_period=30 ./v4l2-ctl --verbose -d /dev/video1 \ --set-fmt-video-out=width=1920,height=1080,pixelformat=NV12 \ --set-selection-output target=crop,width=1920,height=1080 \ --set-fmt-video=pixelformat=HEVC --stream-mmap --stream-out-mmap \ --stream-from=input_nv12_1080p.yuv \ --stream-to=output/ir_random.h265 \ --set-ctrl intra_refresh_period_type=0,intra_refresh_period=30 ./v4l2-ctl --verbose -d /dev/video1 \ --set-fmt-video-out=width=1920,height=1080,pixelformat=NV12 \ --set-selection-output target=crop,width=1920,height=1080 \ --set-fmt-video=pixelformat=HEVC --stream-mmap --stream-out-mmap \ --stream-from=input_nv12_1080p.yuv \ --stream-to=output/ir_cyclic.h265 \ --set-ctrl intra_refresh_period_type=1,intra_refresh_period=30 B frames: ./v4l2-ctl --verbose -d /dev/video1 \ --set-fmt-video-out=width=1920,height=1080,pixelformat=NV12 \ --set-selection-output target=crop,width=1920,height=1080 \ --set-fmt-video=pixelformat=H264 --stream-mmap --stream-out-mmap \ --stream-from=input_nv12_1080p.yuv \ --stream-to=output/b_frames.h264 \ --set-ctrl video_b_frames=1 ./v4l2-ctl --verbose -d /dev/video1 \ --set-fmt-video-out=width=1920,height=1080,pixelformat=NV12 \ --set-selection-output target=crop,width=1920,height=1080 \ --set-fmt-video=pixelformat=HEVC --stream-mmap --stream-out-mmap \ --stream-from=input_nv12_1080p.yuv \ --stream-to=output/b_frames.h265 \ --set-ctrl video_b_frames=1 LTR: ./v4l2-ctl --verbose -d /dev/video1 \ --set-fmt-video-out=width=1920,height=1080,pixelformat=NV12 \ --set-selection-output target=crop,width=1920,height=1080 \ --set-fmt-video=pixelformat=H264 --stream-mmap --stream-out-mmap \ --stream-from=input_nv12_1080p.yuv \ --stream-to=output/ltr.h264 \ --set-ctrl ltr_count=2,frame_ltr_index=1 ./v4l2-ctl --verbose -d /dev/video1 \ --set-fmt-video-out=width=1920,height=1080,pixelformat=NV12 \ --set-selection-output target=crop,width=1920,height=1080 \ --set-fmt-video=pixelformat=HEVC --stream-mmap --stream-out-mmap \ --stream-from=input_nv12_1080p.yuv \ --stream-to=output/ltr.h265 \ --set-ctrl ltr_count=2,frame_ltr_index=1 Hierarchical Coding: ./v4l2-ctl --verbose -d /dev/video1 \ --set-fmt-video-out=width=1920,height=1080,pixelformat=NV12 \ --set-selection-output target=crop,width=1920,height=1080 \ --set-fmt-video=pixelformat=H264 --stream-mmap --stream-out-mmap \ --stream-from=input_nv12_1080p.yuv \ --stream-to=output/hier_coding_layer1_3M.h264 \ --set-ctrl video_bitrate_mode=1,enable_h264_hierarchical_coding=1,h264_hierarchical_coding_type=1,h264_number_of_hc_layers=2,h264_hierarchical_lay_1_bitrate=3000000 ./v4l2-ctl --verbose -d /dev/video1 \ --set-fmt-video-out=width=1920,height=1080,pixelformat=NV12 \ --set-selection-output target=crop,width=1920,height=1080 \ --set-fmt-video=pixelformat=H264 --stream-mmap --stream-out-mmap \ --stream-from=input_nv12_1080p.yuv \ --stream-to=output/hier_coding_layer0_6M.h264 \ --set-ctrl video_bitrate_mode=1,enable_h264_hierarchical_coding=1,h264_hierarchical_coding_type=1,h264_number_of_hc_layers=2,h264_hierarchical_lay_0_bitrate=6000000 ./v4l2-ctl --verbose -d /dev/video1 \ --set-fmt-video-out=width=1920,height=1080,pixelformat=NV12 \ --set-selection-output target=crop,width=1920,height=1080 \ --set-fmt-video=pixelformat=HEVC --stream-mmap --stream-out-mmap \ --stream-from=input_nv12_1080p.yuv \ --stream-to=output/hier_coding.h265 \ --set-ctrl hevc_hierarchical_coding_type=1,hevc_hierarchical_coding_layer=5 The result of v4l2-compliance on QCS8300: v4l2-compliance 1.31.0-5379, 64 bits, 64-bit time_t v4l2-compliance SHA: 14c988631ad4 2025-11-11 11:19:35 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 : 6.18.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: 52 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 The result of v4l2-compliance on QCS6490: v4l2-compliance 1.31.0-5379, 64 bits, 64-bit time_t v4l2-compliance SHA: 14c988631ad4 2025-11-11 11:19:35 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 : 6.18.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: 33 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 Dependencies: https://lore.kernel.org/all/20251114-iris_encoder_enhancements-v6-0-d6d35a92635d@oss.qualcomm.com/ Signed-off-by: Wangao Wang --- Changes in v3: - Correct the maximum value of IR_PERIOD.(Dikshita) - Use 'codec' instead of 'standard' in the calculation of COMV size. (Dikshita) - Verified these patches on SM8250.(Dikshita) - Link to v2: https://lore.kernel.org/r/20251219-batch2_iris_encoder_enhancements-v2-0-371f7fe24801@oss.qualcomm.com Changes in v2: - Add comment for ir_period calculation.(bod,Dikshita) - Correct the maximum value of IR_PERIOD.(Dikshita) - Add a patch to optimize the calculation of hdr size.(bod) - Correct the num_recon calculation.(Dikshita) - Add a patch to simplify the calculation of COMV size.(Dikshita) - Catch the result code of session_set_property.(bod) - Add comment for shift operation in hfi_buffer_get_recon_count.(bod) - Add support for layer bitrate setting.(Dikshita) - Link to v1: https://lore.kernel.org/r/20251127-batch2_iris_encoder_enhancements-v1-0-5ea78e2de2ae@oss.qualcomm.com --- Wangao Wang (6): media: qcom: iris: Add intra refresh support for gen1 encoder media: qcom: iris: Add Long-Term Reference support for encoder media: qcom: iris: Add B frames support for encoder media: qcom: iris: Add hierarchical coding support for encoder media: qcom: iris: Optimize iris_hfi_gen1_packet_session_set_property media: qcom: iris: Simplify COMV size calculation drivers/media/platform/qcom/iris/iris_ctrls.c | 476 ++++++++++++++++++++- drivers/media/platform/qcom/iris/iris_ctrls.h | 16 +- .../platform/qcom/iris/iris_hfi_gen1_command.c | 98 ++++- .../platform/qcom/iris/iris_hfi_gen1_defines.h | 49 +++ .../platform/qcom/iris/iris_hfi_gen2_defines.h | 18 + drivers/media/platform/qcom/iris/iris_instance.h | 4 + .../platform/qcom/iris/iris_platform_common.h | 31 ++ .../media/platform/qcom/iris/iris_platform_gen1.c | 161 ++++++- .../media/platform/qcom/iris/iris_platform_gen2.c | 224 +++++++++- drivers/media/platform/qcom/iris/iris_vpu_buffer.c | 65 ++- 10 files changed, 1101 insertions(+), 41 deletions(-) --- base-commit: cc3aa43b44bdb43dfbac0fcb51c56594a11338a8 change-id: 20251125-batch2_iris_encoder_enhancements-3e5c42b93a25 prerequisite-message-id: 20251114-iris_encoder_enhancements-v6-0-d6d35a92635d@oss.qualcomm.com prerequisite-patch-id: 2b77a7b9bfb436751da0bf69488dbff567a38479 prerequisite-patch-id: 190f29ef211b046f0d031e3a4b52f2c3bccd0cd9 prerequisite-patch-id: 92ff1a1958eeacd53d70e155bb8214f9987ddf85 prerequisite-patch-id: 0dae6aaa8db7df0729436cf9268d29ea363f0eed prerequisite-patch-id: 6382693f5a5a7438660f2e592b30163551d92791 prerequisite-patch-id: 9aa16211c36540a61d219eb25f09b7625b9bdbde Best regards, -- Wangao Wang