From patchwork Wed Apr 30 11:53:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislaw Gruszka X-Patchwork-Id: 886220 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.11]) (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 17597253F32 for ; Wed, 30 Apr 2025 11:54:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.11 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746014047; cv=none; b=ggPzcv6kMSya2P38O3TKleLnWWtVYC7ThpY3ZICj/O6kU43P9uOC4/ul+DgsbmvaN+VGlI1CeY3JKQg0fZzBPi9Dti7gLlnU2QJbovBr0fmrC5IqjMKgxpPO1Q9hMvvkjm6JGOJDAA6xnHvVVWiRT7ZnPBKCgwrsRb5JDMMdeAk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746014047; c=relaxed/simple; bh=H8ECYKskylgxEYcdWQEFj2niyiSEn3nWH+xmEdIf+Vg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=tOyuXHYrPP9u2hzpmf0gT47CDv/0ywJg/BLorvELUFd7Z9s1E3DuxdZ1OEDTlWvElEiseYp3RBF8W0D6VYqfmUGCfqVKG+5Vx98pe54YXXRCGGIZnFD9G1mMI74TK6uhZhoLw7EIMv3cFnQB/0ICu8TnudMxTXV1FEQVllk6v0c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=abRfBZsg; arc=none smtp.client-ip=192.198.163.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="abRfBZsg" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1746014045; x=1777550045; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=H8ECYKskylgxEYcdWQEFj2niyiSEn3nWH+xmEdIf+Vg=; b=abRfBZsgjVXCAkJLDV68xBXrPMbLnT7nQrCc/fgeC3ckSl7857Hr7Ldj v7oPoeNHoCokdcVMbLWYp6aT2ui4qhXGviml0Ixv37BkunySTr+X078Kv ggqL2VNOGy2ry4kjtrH6jy625Qf2mp/F0QvchPY18u/N4ADQ7HxsPHxiQ /yeDVYXLdKSwK+H0OR8IRy5x+9TfZYdxypIy5UwAWiL7Cuszwg24SgfBZ XPPIU5XCHUlY6MYQp9A8YPGBvd4HZ2X6+p2TiL1yBI2KgKxO9EpNTvUHG MYS7xURay781XLMzrXsnQ9bdusRYzbs6eriMum4EfPeuyCG7GxtcZV/GG A==; X-CSE-ConnectionGUID: rbc3jUK6QyG3N6iQkCcsVQ== X-CSE-MsgGUID: 7oJJq03KTaWJO+/aZzcX+g== X-IronPort-AV: E=McAfee;i="6700,10204,11418"; a="58302629" X-IronPort-AV: E=Sophos;i="6.15,251,1739865600"; d="scan'208";a="58302629" Received: from fmviesa001.fm.intel.com ([10.60.135.141]) by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Apr 2025 04:54:04 -0700 X-CSE-ConnectionGUID: BOPYmeYqQ36Ay9/tSFjqVw== X-CSE-MsgGUID: 8+CMVTiIQNyjXDp4AA1hDg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,251,1739865600"; d="scan'208";a="165193774" Received: from sgruszka-mobl.ger.corp.intel.com (HELO localhost) ([10.245.84.5]) by smtpauth.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Apr 2025 04:54:03 -0700 From: Stanislaw Gruszka To: linux-media@vger.kernel.org Cc: Sakari Ailus , Bingbu Cao Subject: [PATCH v2 2/5] media: intel/ipu6: Remove line_align Date: Wed, 30 Apr 2025 13:53:47 +0200 Message-Id: <20250430115350.506460-3-stanislaw.gruszka@linux.intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250430115350.506460-1-stanislaw.gruszka@linux.intel.com> References: <20250430115350.506460-1-stanislaw.gruszka@linux.intel.com> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 isys->line_align value is only used in one place and we can just use the proper value directly there. Signed-off-by: Stanislaw Gruszka --- drivers/media/pci/intel/ipu6/ipu6-isys-video.c | 2 +- drivers/media/pci/intel/ipu6/ipu6-isys.c | 1 - drivers/media/pci/intel/ipu6/ipu6-isys.h | 4 ---- 3 files changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c index 46b76cdae408..44b88b546f68 100644 --- a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c +++ b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c @@ -241,7 +241,7 @@ static void ipu6_isys_try_fmt_cap(struct ipu6_isys_video *av, u32 type, else *bytesperline = DIV_ROUND_UP(*width * pfmt->bpp, BITS_PER_BYTE); - *bytesperline = ALIGN(*bytesperline, av->isys->line_align); + *bytesperline = ALIGN(*bytesperline, 64); /* * (height + 1) * bytesperline due to a hardware issue: the DMA unit diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys.c b/drivers/media/pci/intel/ipu6/ipu6-isys.c index 4d2ca6aae328..8286dea681fb 100644 --- a/drivers/media/pci/intel/ipu6/ipu6-isys.c +++ b/drivers/media/pci/intel/ipu6/ipu6-isys.c @@ -1089,7 +1089,6 @@ static int isys_probe(struct auxiliary_device *auxdev, INIT_LIST_HEAD(&isys->framebuflist); INIT_LIST_HEAD(&isys->framebuflist_fw); - isys->line_align = IPU6_ISYS_2600_MEM_LINE_ALIGN; isys->icache_prefetch = 0; dev_set_drvdata(&auxdev->dev, isys); diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys.h b/drivers/media/pci/intel/ipu6/ipu6-isys.h index 610b60e69152..f488e782c26e 100644 --- a/drivers/media/pci/intel/ipu6/ipu6-isys.h +++ b/drivers/media/pci/intel/ipu6/ipu6-isys.h @@ -29,8 +29,6 @@ struct ipu6_bus_device; IPU6_ISYS_UNISPART_IRQ_CSI0 | \ IPU6_ISYS_UNISPART_IRQ_CSI1) -#define IPU6_ISYS_2600_MEM_LINE_ALIGN 64 - /* * Current message queue configuration. These must be big enough * so that they never gets full. Queues are located in system memory @@ -118,7 +116,6 @@ struct sensor_async_sd { * @streams: streams per firmware stream ID * @fwcom: fw communication layer private pointer * or optional external library private pointer - * @line_align: line alignment in memory * @phy_termcal_val: the termination calibration value, only used for DWC PHY * @need_reset: Isys requires d0i0->i3 transition * @ref_count: total number of callers fw open @@ -140,7 +137,6 @@ struct ipu6_isys { struct ipu6_isys_stream streams[IPU6_ISYS_MAX_STREAMS]; int streams_ref_count[IPU6_ISYS_MAX_STREAMS]; void *fwcom; - unsigned int line_align; u32 phy_termcal_val; bool need_reset; bool icache_prefetch; From patchwork Wed Apr 30 11:53:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislaw Gruszka X-Patchwork-Id: 886219 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13]) (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 8117C1E47B4 for ; Wed, 30 Apr 2025 11:54:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.13 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746014056; cv=none; b=m01JN3UD1PaC+kWi6Z9pEaGVFwXW5qw7hXpvv3RpbGCptZI6ZOEtSIpIDwJYcIR59gOC48uOQm8ZeDKsVXSBNQ166OZEGD/wwKSh53Ec3WlaLeDuGAHb9QYztCIgq4e1eCuynkyRyz8q93POCSxHXbUyeKb/3NBG25TQgscQBWY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746014056; c=relaxed/simple; bh=ozSufCjQGseVDyk/JwFkINZq01UvjsiHJsSiFdI2XK8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=tov0rq16LTNMU5BQkP8P6TYAFSFKoJBLOlQiJMOsuODoejWNAv2skrDciZaftbF9oG2qboNvUneYKPkMU9bAm68VKhzDs8KyaJIxCrvXgM7MyscnTXY3XPwEFDjguG54HiHUTBcBTEJPUY5tvR8BE9ALHpR6IwiwwTEjFMqeU0s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=hRYJOFt7; arc=none smtp.client-ip=192.198.163.13 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="hRYJOFt7" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1746014055; x=1777550055; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ozSufCjQGseVDyk/JwFkINZq01UvjsiHJsSiFdI2XK8=; b=hRYJOFt7/hBKBOOFT5g6kKRhsCC4V18h6zyJPi9s9VzeVzKaEzJ/TEGf N63YtpP7TzoH5zHo+ILGxKS7vtKqlJxVupWhHw4fJvRstfKoP5rK+MtOC IG/mgFVdqUdth7PE91NTUwd8U3vg1XdOHYHtcevzOnazwTTjYUH1Ie86n od+F7w4goAPxot/IqDtJOVZLyq7De0FEnqQp3W93XbigLwatg8yS7lc2R PFsBzwkzCmuURELoreeceXbr+hQArXnBuUn1t3luV3PmGyH7cc30z4dMf alD6b9N5WFwfoqMIc0QDLplRcQAgp95TLqNYQVp9CsreyTqj0LXGgtH4W g==; X-CSE-ConnectionGUID: XvLXuDA3QBShMKU9hZZJPg== X-CSE-MsgGUID: Jrp66hcmTqiLrbAKr7Sjqg== X-IronPort-AV: E=McAfee;i="6700,10204,11418"; a="50326400" X-IronPort-AV: E=Sophos;i="6.15,251,1739865600"; d="scan'208";a="50326400" Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Apr 2025 04:54:14 -0700 X-CSE-ConnectionGUID: gfMSSlwnQlqhwE1PJmob9g== X-CSE-MsgGUID: bVfoILS+R8y2H102ltAIow== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,251,1739865600"; d="scan'208";a="134612846" Received: from sgruszka-mobl.ger.corp.intel.com (HELO localhost) ([10.245.84.5]) by orviesa007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Apr 2025 04:54:11 -0700 From: Stanislaw Gruszka To: linux-media@vger.kernel.org Cc: Sakari Ailus , Bingbu Cao Subject: [PATCH v2 4/5] media: intel/ipu6: Move common structures definitions to ipu-isys.h Date: Wed, 30 Apr 2025 13:53:49 +0200 Message-Id: <20250430115350.506460-5-stanislaw.gruszka@linux.intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250430115350.506460-1-stanislaw.gruszka@linux.intel.com> References: <20250430115350.506460-1-stanislaw.gruszka@linux.intel.com> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Move some structures that will be reused in ipu7 to ipu-isys.h file. Use one header file instead of multiple, since we frequently include most of ipu6-*.h headers in c files anyways. Signed-off-by: Stanislaw Gruszka --- drivers/media/pci/intel/ipu6/ipu-isys.h | 92 +++++++++++++++++++ .../media/pci/intel/ipu6/ipu6-isys-queue.c | 2 +- .../media/pci/intel/ipu6/ipu6-isys-queue.h | 53 +---------- .../media/pci/intel/ipu6/ipu6-isys-video.h | 54 +---------- drivers/media/pci/intel/ipu6/ipu6-isys.c | 1 + 5 files changed, 96 insertions(+), 106 deletions(-) diff --git a/drivers/media/pci/intel/ipu6/ipu-isys.h b/drivers/media/pci/intel/ipu6/ipu-isys.h index d39dbb11a4a7..e3f9f5fb10e8 100644 --- a/drivers/media/pci/intel/ipu6/ipu-isys.h +++ b/drivers/media/pci/intel/ipu6/ipu-isys.h @@ -4,10 +4,14 @@ #ifndef IPU_ISYS_H #define IPU_ISYS_H +#include #include +#include +#include #include #include +#include struct ipu_isys_subdev { struct v4l2_subdev sd; @@ -20,6 +24,94 @@ struct ipu_isys_subdev { #define to_ipu_isys_subdev(__sd) container_of(__sd, struct ipu_isys_subdev, sd) +struct ipu6_isys_queue { + struct vb2_queue vbq; + struct list_head node; + spinlock_t lock; + struct list_head active; + struct list_head incoming; + unsigned int fw_output; +}; + +struct ipu6_isys_buffer { + struct list_head head; + atomic_t str2mmio_flag; +}; + +struct ipu6_isys_video_buffer { + struct vb2_v4l2_buffer vb_v4l2; + struct ipu6_isys_buffer ib; + dma_addr_t dma_addr; +}; + +struct ipu6_isys_buffer_list { + struct list_head head; + unsigned int nbufs; +}; + +#define vb2_queue_to_isys_queue(__vb2) \ + container_of(__vb2, struct ipu6_isys_queue, vbq) + +#define ipu6_isys_to_isys_video_buffer(__ib) \ + container_of(__ib, struct ipu6_isys_video_buffer, ib) + +#define vb2_buffer_to_ipu6_isys_video_buffer(__vvb) \ + container_of(__vvb, struct ipu6_isys_video_buffer, vb_v4l2) + +#define ipu6_isys_buffer_to_vb2_buffer(__ib) \ + (&ipu6_isys_to_isys_video_buffer(__ib)->vb_v4l2.vb2_buf) + +#define IPU6_ISYS_BUFFER_LIST_FL_INCOMING BIT(0) +#define IPU6_ISYS_BUFFER_LIST_FL_ACTIVE BIT(1) +#define IPU6_ISYS_BUFFER_LIST_FL_SET_STATE BIT(2) + +#define IPU6_ISYS_OUTPUT_PINS 11 +#define IPU6_ISYS_MAX_PARALLEL_SOF 2 + +struct ipu6_isys_pixelformat { + u32 pixelformat; + u32 bpp; + u32 bpp_packed; + u32 code; + u32 css_pixelformat; + bool is_meta; +}; + +struct ipu_isys_sequence_info { + unsigned int sequence; + u64 timestamp; +}; + +/* + * Align with firmware stream. Each stream represents a CSI virtual channel. + * May map to multiple video devices + */ +struct ipu6_isys_stream { + struct mutex mutex; + struct media_entity *source_entity; + atomic_t sequence; + unsigned int seq_index; + struct ipu_isys_sequence_info seq[IPU6_ISYS_MAX_PARALLEL_SOF]; + int stream_source; + int stream_handle; + unsigned int nr_output_pins; + struct ipu_isys_subdev *asd; + + int nr_queues; /* Number of capture queues */ + int nr_streaming; + int streaming; /* Has streaming been really started? */ + struct list_head queues; + struct completion stream_open_completion; + struct completion stream_close_completion; + struct completion stream_start_completion; + struct completion stream_stop_completion; + struct ipu6_isys *isys; + + struct ipu6_isys_queue *output_pins_queue[IPU6_ISYS_OUTPUT_PINS]; + int error; + u8 vc; +}; + int ipu_isys_get_stream_pad_fmt(struct v4l2_subdev *sd, u32 pad, u32 stream, struct v4l2_mbus_framefmt *format); int ipu_isys_get_stream_pad_crop(struct v4l2_subdev *sd, u32 pad, u32 stream, diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c b/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c index 3998b0087da3..ad813323e62b 100644 --- a/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c +++ b/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c @@ -20,7 +20,7 @@ #include "ipu6-dma.h" #include "ipu6-fw-isys.h" #include "ipu6-isys.h" -#include "ipu6-isys-video.h" +#include "ipu6-isys-queue.h" static int ipu6_isys_buf_init(struct vb2_buffer *vb) { diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-queue.h b/drivers/media/pci/intel/ipu6/ipu6-isys-queue.h index 6b8dec55f200..b4b14e0ef044 100644 --- a/drivers/media/pci/intel/ipu6/ipu6-isys-queue.h +++ b/drivers/media/pci/intel/ipu6/ipu6-isys-queue.h @@ -4,59 +4,8 @@ #ifndef IPU6_ISYS_QUEUE_H #define IPU6_ISYS_QUEUE_H -#include -#include -#include -#include -#include - -#include - +#include "ipu-isys.h" #include "ipu6-fw-isys.h" -#include "ipu6-isys-video.h" - -struct ipu6_isys_stream; - -struct ipu6_isys_queue { - struct vb2_queue vbq; - struct list_head node; - spinlock_t lock; - struct list_head active; - struct list_head incoming; - unsigned int fw_output; -}; - -struct ipu6_isys_buffer { - struct list_head head; - atomic_t str2mmio_flag; -}; - -struct ipu6_isys_video_buffer { - struct vb2_v4l2_buffer vb_v4l2; - struct ipu6_isys_buffer ib; - dma_addr_t dma_addr; -}; - -#define IPU6_ISYS_BUFFER_LIST_FL_INCOMING BIT(0) -#define IPU6_ISYS_BUFFER_LIST_FL_ACTIVE BIT(1) -#define IPU6_ISYS_BUFFER_LIST_FL_SET_STATE BIT(2) - -struct ipu6_isys_buffer_list { - struct list_head head; - unsigned int nbufs; -}; - -#define vb2_queue_to_isys_queue(__vb2) \ - container_of(__vb2, struct ipu6_isys_queue, vbq) - -#define ipu6_isys_to_isys_video_buffer(__ib) \ - container_of(__ib, struct ipu6_isys_video_buffer, ib) - -#define vb2_buffer_to_ipu6_isys_video_buffer(__vvb) \ - container_of(__vvb, struct ipu6_isys_video_buffer, vb_v4l2) - -#define ipu6_isys_buffer_to_vb2_buffer(__ib) \ - (&ipu6_isys_to_isys_video_buffer(__ib)->vb_v4l2.vb2_buf) void ipu6_isys_buffer_list_queue(struct ipu6_isys_buffer_list *bl, unsigned long op_flags, diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-video.h b/drivers/media/pci/intel/ipu6/ipu6-isys-video.h index 7b347c99d907..0b80d73173ff 100644 --- a/drivers/media/pci/intel/ipu6/ipu6-isys-video.h +++ b/drivers/media/pci/intel/ipu6/ipu6-isys-video.h @@ -13,59 +13,7 @@ #include #include -#include "ipu6-isys-queue.h" - -#define IPU6_ISYS_OUTPUT_PINS 11 -#define IPU6_ISYS_MAX_PARALLEL_SOF 2 - -struct file; -struct ipu6_isys; -struct ipu6_isys_csi2; -struct ipu_isys_subdev; - -struct ipu6_isys_pixelformat { - u32 pixelformat; - u32 bpp; - u32 bpp_packed; - u32 code; - u32 css_pixelformat; - bool is_meta; -}; - -struct sequence_info { - unsigned int sequence; - u64 timestamp; -}; - -/* - * Align with firmware stream. Each stream represents a CSI virtual channel. - * May map to multiple video devices - */ -struct ipu6_isys_stream { - struct mutex mutex; - struct media_entity *source_entity; - atomic_t sequence; - unsigned int seq_index; - struct sequence_info seq[IPU6_ISYS_MAX_PARALLEL_SOF]; - int stream_source; - int stream_handle; - unsigned int nr_output_pins; - struct ipu_isys_subdev *asd; - - int nr_queues; /* Number of capture queues */ - int nr_streaming; - int streaming; /* Has streaming been really started? */ - struct list_head queues; - struct completion stream_open_completion; - struct completion stream_close_completion; - struct completion stream_start_completion; - struct completion stream_stop_completion; - struct ipu6_isys *isys; - - struct ipu6_isys_queue *output_pins_queue[IPU6_ISYS_OUTPUT_PINS]; - int error; - u8 vc; -}; +#include "ipu-isys.h" struct video_stream_watermark { u32 width; diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys.c b/drivers/media/pci/intel/ipu6/ipu6-isys.c index 8286dea681fb..7fc529b5a9f5 100644 --- a/drivers/media/pci/intel/ipu6/ipu6-isys.c +++ b/drivers/media/pci/intel/ipu6/ipu6-isys.c @@ -37,6 +37,7 @@ #include "ipu6-dma.h" #include "ipu6-isys.h" #include "ipu6-isys-csi2.h" +#include "ipu6-isys-queue.h" #include "ipu6-mmu.h" #include "ipu6-platform-buttress-regs.h" #include "ipu6-platform-isys-csi2-reg.h"