From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jae Hyun Yoo Date: Mon, 6 Jan 2020 17:15:03 -0800 Subject: [PATCH 3/3] media: aspeed: add AST2600 support In-Reply-To: <20200107011503.17435-1-jae.hyun.yoo@linux.intel.com> References: <20200107011503.17435-1-jae.hyun.yoo@linux.intel.com> Message-ID: <20200107011503.17435-4-jae.hyun.yoo@linux.intel.com> List-Id: To: linux-aspeed@lists.ozlabs.org MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Video engine in AST2600 has the exactly same register set with AST2500 except VR084 register which provides more precise JPEG size read back. This commit adds support for the difference and adds 'aspeed,ast2600-video-engine' compatible OF string. Signed-off-by: Jae Hyun Yoo --- drivers/media/platform/aspeed-video.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/aspeed-video.c b/drivers/media/platform/aspeed-video.c index d8593cb2ae84..0dbe72672338 100644 --- a/drivers/media/platform/aspeed-video.c +++ b/drivers/media/platform/aspeed-video.c @@ -72,10 +72,10 @@ #define VE_SEQ_CTRL_CAP_BUSY BIT(16) #define VE_SEQ_CTRL_COMP_BUSY BIT(18) -#ifdef CONFIG_MACH_ASPEED_G5 -#define VE_SEQ_CTRL_JPEG_MODE BIT(13) /* AST2500 */ -#else +#ifdef CONFIG_MACH_ASPEED_G4 #define VE_SEQ_CTRL_JPEG_MODE BIT(8) /* AST2400 */ +#else +#define VE_SEQ_CTRL_JPEG_MODE BIT(13) /* AST2500/2600 */ #endif /* CONFIG_MACH_ASPEED_G5 */ #define VE_CTRL 0x008 @@ -135,6 +135,12 @@ #define VE_OFFSET_COMP_STREAM 0x078 +#ifdef CONFIG_MACH_ASPEED_G6 +#define VE_JPEG_COMP_SIZE_READ_BACK 0x084 /* AST2600 */ +#else +#define VE_JPEG_COMP_SIZE_READ_BACK VE_OFFSET_COMP_STREAM +#endif + #define VE_SRC_LR_EDGE_DET 0x090 #define VE_SRC_LR_EDGE_DET_LEFT GENMASK(11, 0) #define VE_SRC_LR_EDGE_DET_NO_V BIT(12) @@ -572,7 +578,7 @@ static irqreturn_t aspeed_video_irq(int irq, void *arg) if (sts & VE_INTERRUPT_COMP_COMPLETE) { struct aspeed_video_buffer *buf; u32 frame_size = aspeed_video_read(video, - VE_OFFSET_COMP_STREAM); + VE_JPEG_COMP_SIZE_READ_BACK); spin_lock(&video->lock); clear_bit(VIDEO_FRAME_INPRG, &video->flags); @@ -1719,6 +1725,7 @@ static int aspeed_video_remove(struct platform_device *pdev) static const struct of_device_id aspeed_video_of_match[] = { { .compatible = "aspeed,ast2400-video-engine" }, { .compatible = "aspeed,ast2500-video-engine" }, + { .compatible = "aspeed,ast2600-video-engine" }, {} }; MODULE_DEVICE_TABLE(of, aspeed_video_of_match); -- 2.17.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Authentication-Results: lists.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=linux.intel.com (client-ip=134.134.136.31; helo=mga06.intel.com; envelope-from=jae.hyun.yoo@linux.intel.com; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=linux.intel.com Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 47sDtY4dwZzDqSm; Tue, 7 Jan 2020 12:14:29 +1100 (AEDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Jan 2020 17:14:23 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,404,1571727600"; d="scan'208";a="216992332" Received: from maru.jf.intel.com ([10.54.51.77]) by fmsmga007.fm.intel.com with ESMTP; 06 Jan 2020 17:14:22 -0800 From: Jae Hyun Yoo To: Eddie James , Mauro Carvalho Chehab , Rob Herring , Mark Rutland , Joel Stanley , Andrew Jeffery Cc: linux-aspeed@lists.ozlabs.org, linux-media@vger.kernel.org, devicetree@vger.kernel.org, openbmc@lists.ozlabs.org, Jae Hyun Yoo Subject: [PATCH 3/3] media: aspeed: add AST2600 support Date: Mon, 6 Jan 2020 17:15:03 -0800 Message-Id: <20200107011503.17435-4-jae.hyun.yoo@linux.intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200107011503.17435-1-jae.hyun.yoo@linux.intel.com> References: <20200107011503.17435-1-jae.hyun.yoo@linux.intel.com> X-BeenThere: openbmc@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development list for OpenBMC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 01:14:30 -0000 Video engine in AST2600 has the exactly same register set with AST2500 except VR084 register which provides more precise JPEG size read back. This commit adds support for the difference and adds 'aspeed,ast2600-video-engine' compatible OF string. Signed-off-by: Jae Hyun Yoo --- drivers/media/platform/aspeed-video.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/aspeed-video.c b/drivers/media/platform/aspeed-video.c index d8593cb2ae84..0dbe72672338 100644 --- a/drivers/media/platform/aspeed-video.c +++ b/drivers/media/platform/aspeed-video.c @@ -72,10 +72,10 @@ #define VE_SEQ_CTRL_CAP_BUSY BIT(16) #define VE_SEQ_CTRL_COMP_BUSY BIT(18) -#ifdef CONFIG_MACH_ASPEED_G5 -#define VE_SEQ_CTRL_JPEG_MODE BIT(13) /* AST2500 */ -#else +#ifdef CONFIG_MACH_ASPEED_G4 #define VE_SEQ_CTRL_JPEG_MODE BIT(8) /* AST2400 */ +#else +#define VE_SEQ_CTRL_JPEG_MODE BIT(13) /* AST2500/2600 */ #endif /* CONFIG_MACH_ASPEED_G5 */ #define VE_CTRL 0x008 @@ -135,6 +135,12 @@ #define VE_OFFSET_COMP_STREAM 0x078 +#ifdef CONFIG_MACH_ASPEED_G6 +#define VE_JPEG_COMP_SIZE_READ_BACK 0x084 /* AST2600 */ +#else +#define VE_JPEG_COMP_SIZE_READ_BACK VE_OFFSET_COMP_STREAM +#endif + #define VE_SRC_LR_EDGE_DET 0x090 #define VE_SRC_LR_EDGE_DET_LEFT GENMASK(11, 0) #define VE_SRC_LR_EDGE_DET_NO_V BIT(12) @@ -572,7 +578,7 @@ static irqreturn_t aspeed_video_irq(int irq, void *arg) if (sts & VE_INTERRUPT_COMP_COMPLETE) { struct aspeed_video_buffer *buf; u32 frame_size = aspeed_video_read(video, - VE_OFFSET_COMP_STREAM); + VE_JPEG_COMP_SIZE_READ_BACK); spin_lock(&video->lock); clear_bit(VIDEO_FRAME_INPRG, &video->flags); @@ -1719,6 +1725,7 @@ static int aspeed_video_remove(struct platform_device *pdev) static const struct of_device_id aspeed_video_of_match[] = { { .compatible = "aspeed,ast2400-video-engine" }, { .compatible = "aspeed,ast2500-video-engine" }, + { .compatible = "aspeed,ast2600-video-engine" }, {} }; MODULE_DEVICE_TABLE(of, aspeed_video_of_match); -- 2.17.1