Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp4165081imm; Tue, 25 Sep 2018 12:27:59 -0700 (PDT) X-Google-Smtp-Source: ACcGV60DwqgK33xdhwMqYyaVT+U+5KyqBRXYJf+WyPetlxx9vK1ttE3NcVr7YJdV0NGAZyW3sszO X-Received: by 2002:a62:68c3:: with SMTP id d186-v6mr2589125pfc.70.1537903679894; Tue, 25 Sep 2018 12:27:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1537903679; cv=none; d=google.com; s=arc-20160816; b=VvkYvc5+UgNfN83+n4FTKkOIfgdy6Dw2achyOUVAFQVvOOjMGau5u0I3JUUearpV/M 0/ibkWYba4fC/Q1WyoYN84uwcpz2XFWiQHmYVb1W2N6WWqooiX5t2qODeGUbzt5P51ps CU6sxAWmC93b4rF44f6rDOQO8Sjjf5wreZhiNknsC83kwtpcMDh9MruBejEMwBoBEi1F 2mMZQK4ApkvNjtRQOjh+iZvxRAlk7Sx4CzLYt6TjECXi9LCSEBjt+Mkw/4c6bNRiSRdn vZRrL1X7S0oBuvcO67BVYPzj4U/v6esfKwL8ZuQDcF+O+Jz8B0mhWkPJKHHEKbFGFofv MdiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=HDuqxnCH4/XL87l53hVNo6dmwhZmjRHkJn9CAAALAHQ=; b=ZAjpERorDqbURwDPwkeeRwvUeGgsHpwFta5jQRnAwpV0KDhFjSOP8CyGkh5Wa+zBI1 AcCikD2z7rsHVS+O8HasQaqWjBuXhIIePgsSKZf2P6txXIWWkDqoYIMybY2jyFkpu6vG U93u2a+5KsrRBE+TaMUQyS/MbxxqTq8KOhXEykYptIrymZQSj35zmXlRcTHzEegTmjCK RAWs3NVZAhIcB85t4CifYLQ5yxrXJQbDxwlhVfYBGS5j85NBpyyA4UPyQ2hmhqS+SHQV /3D+qqAoinmNZCTEd7vq/FiDqxCHCwlc/ZYf+XHj3/vWiqXz/MlpAJ0Wg7olgjZdCMad V0ww== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id bf1-v6si1222984plb.279.2018.09.25.12.27.44; Tue, 25 Sep 2018 12:27:59 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728117AbeIZBgW (ORCPT + 99 others); Tue, 25 Sep 2018 21:36:22 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:60224 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727445AbeIZBgV (ORCPT ); Tue, 25 Sep 2018 21:36:21 -0400 Received: from pps.filterd (m0098396.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w8PJIpDa096381 for ; Tue, 25 Sep 2018 15:27:17 -0400 Received: from e32.co.us.ibm.com (e32.co.us.ibm.com [32.97.110.150]) by mx0a-001b2d01.pphosted.com with ESMTP id 2mqr4e0b4f-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 25 Sep 2018 15:27:17 -0400 Received: from localhost by e32.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 25 Sep 2018 13:27:16 -0600 Received: from b03cxnp08027.gho.boulder.ibm.com (9.17.130.19) by e32.co.us.ibm.com (192.168.1.132) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Tue, 25 Sep 2018 13:27:12 -0600 Received: from b03ledav003.gho.boulder.ibm.com (b03ledav003.gho.boulder.ibm.com [9.17.130.234]) by b03cxnp08027.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w8PJRC2T50200830 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 25 Sep 2018 12:27:12 -0700 Received: from b03ledav003.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id F167A6A054; Tue, 25 Sep 2018 13:27:11 -0600 (MDT) Received: from b03ledav003.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 339806A04D; Tue, 25 Sep 2018 13:27:11 -0600 (MDT) Received: from talon7.ibm.com (unknown [9.41.179.222]) by b03ledav003.gho.boulder.ibm.com (Postfix) with ESMTP; Tue, 25 Sep 2018 13:27:11 -0600 (MDT) From: Eddie James To: linux-kernel@vger.kernel.org Cc: mark.rutland@arm.com, devicetree@vger.kernel.org, linux-aspeed@lists.ozlabs.org, andrew@aj.id.au, openbmc@lists.ozlabs.org, robh+dt@kernel.org, linux-media@vger.kernel.org, mchehab@kernel.org, joel@jms.id.au, hverkuil@xs4all.nl, Eddie James Subject: [PATCH v3 0/2] media: platform: Add Aspeed Video Engine Driver Date: Tue, 25 Sep 2018 14:27:07 -0500 X-Mailer: git-send-email 1.8.3.1 X-TM-AS-GCONF: 00 x-cbid: 18092519-0004-0000-0000-00001491A4C2 X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00009770; HX=3.00000242; KW=3.00000007; PH=3.00000004; SC=3.00000267; SDB=6.01093565; UDB=6.00565220; IPR=6.00873603; MB=3.00023499; MTD=3.00000008; XFM=3.00000015; UTC=2018-09-25 19:27:16 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18092519-0005-0000-0000-000088EFED2F Message-Id: <1537903629-14003-1-git-send-email-eajames@linux.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-09-25_10:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1807170000 definitions=main-1809250190 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The Video Engine (VE) embedded in the Aspeed AST2400 and AST2500 SOCs can capture and compress video data from digital or analog sources. With the Aspeed chip acting as a service processor, the Video Engine can capture the host processor graphics output. This series adds a V4L2 driver for the VE, providing the usual V4L2 streaming interface by way of videobuf2. Each frame, the driver triggers the hardware to capture the host graphics output and compress it to JPEG format. I was unable to cross compile v4l2-compliance for ARM with our OpenBMC toolchain. Although bootstrap, configure, and make were successful, no binaries were generated... I was able to build v4l-utils 1.12.3 from the OpenEmbedded project, with the output below: v4l2-compliance SHA : not available Driver Info: Driver name : aspeed-video Card type : Aspeed Video Engine Bus info : platform:aspeed-video Driver version: 4.18.8 Capabilities : 0x85200001 Video Capture Read/Write Streaming Extended Pix Format Device Capabilities Device Caps : 0x05200001 Video Capture Read/Write Streaming Extended Pix Format Compliance test for device /dev/video0 (not using libv4l2): Required ioctls: test VIDIOC_QUERYCAP: OK Allow for multiple opens: test second video 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 test VIDIOC_G/S_AUDIO: OK (Not Supported) Inputs: 1 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 test VIDIOC_DV_TIMINGS_CAP: OK test VIDIOC_G/S_EDID: OK Test input 0: 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 warn: ../../../v4l-utils-1.12.3/utils/v4l2-compliance/v4l2-test-controls.cpp(811): V4L2_CID_DV_RX_POWER_PRESENT not found for input 0 test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK test VIDIOC_G/S_JPEGCOMP: OK (Not Supported) Standard Controls: 3 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 (Not Supported) test Composing: OK (Not Supported) test Scaling: OK (Not Supported) Codec ioctls: test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported) 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 VIDIOC_EXPBUF: OK (Not Supported) Test input 0: Streaming ioctls: test read/write: OK test MMAP: OK test USERPTR: OK (Not Supported) test DMABUF: OK (Not Supported) Total: 47, Succeeded: 47, Failed: 0, Warnings: 1 Changes since v2: - Switch to streaming interface. This involved a lot of changes. - Rework memory allocation due to using videobuf2 buffers, but also only allocate the necessary size of source buffer rather than the max size Changes since v1: - Removed le32_to_cpu calls for JPEG header data - Reworked v4l2 ioctls to be compliant. - Added JPEG controls - Updated devicetree docs according to Rob's suggestions. - Added myself to MAINTAINERS Eddie James (2): dt-bindings: media: Add Aspeed Video Engine binding documentation media: platform: Add Aspeed Video Engine driver .../devicetree/bindings/media/aspeed-video.txt | 26 + MAINTAINERS | 8 + drivers/media/platform/Kconfig | 8 + drivers/media/platform/Makefile | 1 + drivers/media/platform/aspeed-video.c | 1645 ++++++++++++++++++++ 5 files changed, 1688 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/aspeed-video.txt create mode 100644 drivers/media/platform/aspeed-video.c -- 1.8.3.1