From patchwork Tue Apr 6 08:51:51 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hirokazu Honda X-Patchwork-Id: 11839 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 3D0B8C0DA3 for ; Tue, 6 Apr 2021 08:52:07 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 4B0BF6879E; Tue, 6 Apr 2021 10:52:06 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="keBQaNcj"; dkim-atps=neutral Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com [IPv6:2607:f8b0:4864:20::631]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id D187960517 for ; Tue, 6 Apr 2021 10:52:00 +0200 (CEST) Received: by mail-pl1-x631.google.com with SMTP id ay2so7108326plb.3 for ; Tue, 06 Apr 2021 01:52:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=SD/IpReo5Jelp1TctsxrvJbbDWuWDDTjZnwjluhJfPs=; b=keBQaNcjynu3r4B4hDEy80fVg0eEpKhShWhbNFuKC2jlO/TSwvEn92HJRscc5MRZw6 jW4Ck7utVz1IxXUgdBHwnpzuu+gA9A3ZZ+iBqSxxwFAJ/ar3kkoQoGr1zlVrRaDHPvdY twlrt43Y0xABiAm9PwPAe6SBUI+NDVBI6e2Ys= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=SD/IpReo5Jelp1TctsxrvJbbDWuWDDTjZnwjluhJfPs=; b=J1i6/QKMSvEL9m+5u6EeqVnNLQM93gWisMwdvbRzNKDytsfPLiC1D0T8vcnbBZ6Hvj M1/D8GJvoZu8ZtYcAede1MXOg7sKsYL/HPqoe9+g9J1uiOhK4gEp43i052VX1Nm+L7T/ qiXvjc418Nsfu080pHR+tjcukv/u0+it7TUEmCl7mykMlCc0PLwvCyAV2E2wrWqaxWCk hrEv1vceuCBgSbEmKzx2eEjSepeaWvRpHUCOWZH/JlwPWOpxtiwgYEe3HLtO1kyTywlF M9SQQuoxww+M/UmcW85Q2qyX/eEpGq2oEklnSbpSjvWc/Q+r0PtQajpopmhxQWsBThCb DPaA== X-Gm-Message-State: AOAM530Fc0RbLNZKPL39TIVBRQbD4s0qEuRDsvwbKoVE8rlzEns2qbi3 AYNYt74wgp23YR94gT02Y4ofr0kk6A9Ppg== X-Google-Smtp-Source: ABdhPJzl1mYS5QCmJB+7S7GR6EfNO+UhK8Z6EHkLwoPmvYEDSXIfpATaJg4mRbuKJilErlFfBvUWLw== X-Received: by 2002:a17:902:c204:b029:e7:32fd:bc8f with SMTP id 4-20020a170902c204b02900e732fdbc8fmr27087043pll.43.1617699118964; Tue, 06 Apr 2021 01:51:58 -0700 (PDT) Received: from hiroh2.tok.corp.google.com ([2401:fa00:8f:2:4180:40db:6f79:a143]) by smtp.gmail.com with ESMTPSA id y7sm18070135pfq.70.2021.04.06.01.51.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Apr 2021 01:51:58 -0700 (PDT) From: Hirokazu Honda To: libcamera-devel@lists.libcamera.org Date: Tue, 6 Apr 2021 17:51:51 +0900 Message-Id: <20210406085153.3818580-1-hiroh@chromium.org> X-Mailer: git-send-email 2.31.0.208.g409f899ff0-goog MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 0/2] ipu3: Enable to handle a number of concurrent requests X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" PipelineHandler originally discards a request with ENOBUFS or ENOMEM when a buffer is not available. The request will be successful if enough buffers are available. This patch series enables to process requests even if no buffer is available then by storing the requests and retry queuing later. Change in v2: - Move a queue of pending requests to IPU3CameraData - Pass queuePendingRequests() as signal to CIO2Device and IPU3Frame and invoke it from them. Hirokazu Honda (2): pipeline: ipu3: Store requests in the case a buffer shortage libcamera: ipu3: Try queuing pending requests if a buffer is available src/libcamera/pipeline/ipu3/cio2.cpp | 4 +- src/libcamera/pipeline/ipu3/cio2.h | 3 ++ src/libcamera/pipeline/ipu3/frames.cpp | 6 ++- src/libcamera/pipeline/ipu3/frames.h | 5 +++ src/libcamera/pipeline/ipu3/ipu3.cpp | 62 +++++++++++++++++--------- 5 files changed, 56 insertions(+), 24 deletions(-) --- 2.31.0.208.g409f899ff0-goog