Skip to content

Commit

Permalink
media: aspeed: add AST2600 support
Browse files Browse the repository at this point in the history
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 <jae.hyun.yoo@linux.intel.com>
Reviewed-by: Joel Stanley <joel@jms.id.au>
Reviewed-by: Eddie James <eajames@linux.ibm.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  • Loading branch information
Jae Hyun Yoo authored and Mauro Carvalho Chehab committed Mar 2, 2020
1 parent 5f028c5 commit d737e7f
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions drivers/media/platform/aspeed-video.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-or-later
// Copyright 2020 IBM Corp.
// Copyright (c) 2019 Intel Corporation
// Copyright (c) 2019-2020 Intel Corporation

#include <linux/atomic.h>
#include <linux/bitfield.h>
Expand Down Expand Up @@ -132,7 +132,8 @@
#define VE_COMP_CTRL_HQ_DCT_CHR GENMASK(26, 22)
#define VE_COMP_CTRL_HQ_DCT_LUM GENMASK(31, 27)

#define VE_OFFSET_COMP_STREAM 0x078
#define AST2400_VE_COMP_SIZE_READ_BACK 0x078
#define AST2600_VE_COMP_SIZE_READ_BACK 0x084

#define VE_SRC_LR_EDGE_DET 0x090
#define VE_SRC_LR_EDGE_DET_LEFT GENMASK(11, 0)
Expand Down Expand Up @@ -252,12 +253,17 @@ struct aspeed_video_config {

static const struct aspeed_video_config ast2400_config = {
.jpeg_mode = AST2400_VE_SEQ_CTRL_JPEG_MODE,
.comp_size_read = VE_OFFSET_COMP_STREAM,
.comp_size_read = AST2400_VE_COMP_SIZE_READ_BACK,
};

static const struct aspeed_video_config ast2500_config = {
.jpeg_mode = AST2500_VE_SEQ_CTRL_JPEG_MODE,
.comp_size_read = VE_OFFSET_COMP_STREAM,
.comp_size_read = AST2400_VE_COMP_SIZE_READ_BACK,
};

static const struct aspeed_video_config ast2600_config = {
.jpeg_mode = AST2500_VE_SEQ_CTRL_JPEG_MODE,
.comp_size_read = AST2600_VE_COMP_SIZE_READ_BACK,
};

static const u32 aspeed_video_jpeg_header[ASPEED_VIDEO_JPEG_HEADER_SIZE] = {
Expand Down Expand Up @@ -1673,6 +1679,7 @@ static int aspeed_video_init(struct aspeed_video *video)
static const struct of_device_id aspeed_video_of_match[] = {
{ .compatible = "aspeed,ast2400-video-engine", .data = &ast2400_config },
{ .compatible = "aspeed,ast2500-video-engine", .data = &ast2500_config },
{ .compatible = "aspeed,ast2600-video-engine", .data = &ast2600_config },
{}
};
MODULE_DEVICE_TABLE(of, aspeed_video_of_match);
Expand Down

0 comments on commit d737e7f

Please sign in to comment.