Re: [linux-sunxi] Cedrus driver

From: Thomas van Kleef
Date: Tue Nov 28 2017 - 09:51:33 EST


On 28-11-17 13:26, Maxime Ripard wrote:
> On Tue, Nov 28, 2017 at 12:20:59PM +0100, Thomas van Kleef wrote:
>>> So, I have been rebasing to 4.14.0 and have the cedrus driver working.
>> I have pulled linux-mainline 4.14.0. Then pulled the requests2 branch from Hans
>> Verkuil's media_tree. I have a patch available of the merge between these 2
>> branches.
>> After this I pulled the sunxi-cedrus repository from Florent Revests github. I
>> believe this one is the same as the ones you are cloning right now.
>> I have merged this and have a patch available for this as well.
>>
>> So to summarize:
>> o pulled linux 4.14 from:
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>> o pulled requests2 from:
>> https://git.linuxtv.org/hverkuil/media_tree.git?h=requests2
>> will be replaced with the work, when it is done, in:
>> https://git.linuxtv.org/hverkuil/media_tree.git?h=ctrl-req-v2
>> o pulled linux-sunxi-cedrus from:
>> https://github.com/FlorentRevest/linux-sunxi-cedrus
>>
>> o merged and made patch between linux4.14 and requests2
>> o merged and made patch with linux-sunxi-cedrus
>> o Verified that the video-engine is decofing mpeg-2 on the Allwinner A20.
>>
>> So maybe if someone is interested in this, I could place the patches somewhere?
>> Just let me know.
>
> Please create a pull request on the github repo. The point we set it
> up was to share code. Forking repos and so on is kind of pointless.
>
So, I started with linux-mainline 4.14 and created a pull request with that commit.
Never made one before so if I did something wrong tell me.

The following changes since commit e1d1ea549b57790a3d8cf6300e6ef86118d692a3:

Merge tag 'fbdev-v4.15' of git://github.com/bzolnier/linux (2017-11-20 21:50:24 -1000)

are available in the git repository at:

https://github.com/thomas-vitsch/linux-a20-cedrus.git

for you to fetch changes up to 508ad12eb737fde07f4a25446ed941a01480d6dc:

Merge branch 'master' of https://github.com/thomas-vitsch/linux-a20-cedrus into linux-sunxi-cedrus-a20 (2017-11-28 15:28:18 +0100)

----------------------------------------------------------------
Bob Ham (1):
sunxi-cedrus: Fix compilation errors from bad types under GCC 6.2

Florent Revest (8):
cherry-pick sunxi_cedrus
cherry-pick sunxi_cedrus
v4l: Add MPEG4 low-level decoder API control
media: platform: Add Sunxi Cedrus decoder driver
sunxi-cedrus: Add a MPEG 2 codec
sunxi-cedrus: Add a MPEG 4 codec
sunxi-cedrus: Add device tree binding document
cherry-pick sunxi_cedrus

Hans Verkuil (15):
videodev2.h: add max_reqs to struct v4l2_query_ext_ctrl
videodev2.h: add request to v4l2_ext_controls
videodev2.h: add request field to v4l2_buffer.
vb2: add allow_requests flag
v4l2-ctrls: add request support
v4l2-ctrls: add function to apply a request.
v4l2-ctrls: implement delete request(s)
v4l2-ctrls: add VIDIOC_REQUEST_CMD
v4l2: add initial V4L2_REQ_CMD_QUEUE support
vb2: add helper function to queue request-specific buffer.
v4l2-device: keep track of registered video_devices
v4l2-device: add v4l2_device_req_queue
vivid: add request support for video capture.
v4l2-ctrls: add REQ_KEEP flag
Documentation: add v4l2-requests.txt

Icenowy Zheng (2):
sunxi-cedrus: add syscon support
cherry-pick sunxi_cedrus

Thomas van Kleef (11):
Appears that the requests2 API is currently based on linux 3.9 :(. Made some changes that needed to be merged manually, let's hope I did not make to many errors
Fixed last missing calls for a buildable kernel with the requests2 API. Tested with a mock mem2mem device which selects the VIDEOBUF2_CORE.
Kconfig option used to enable the VIDEOBUF2_CORE
Fix sun5i-a13 merge errors. Mainline has moved some device nodes which resulted in nodes existing multiple times in device trees.
o Added reserved memory region for the video-engine. o Added device node for the video engine.
style commit
Apply patch which adds requests2 branch from media-tree: https://git.linuxtv.org/hverkuil/media_tree.git?h=requests2
Apply patch which adds linux-sunxi-cedrus from: https://github.com/FlorentRevest/sunxi-cedrus-drv-video
Add reserved region and video-engine node to sun7i.dtsi
Merge branch 'master' of https://github.com/thomas-vitsch/linux-a20-cedrus into linux-a20-cedrus
Merge branch 'master' of https://github.com/thomas-vitsch/linux-a20-cedrus into linux-sunxi-cedrus-a20

Vitsch Electronics (1):
Update README

.../devicetree/bindings/media/sunxi-cedrus.txt | 44 +
Documentation/video4linux/v4l2-requests.txt | 233 ++
README | 18 +-
arch/arm/boot/dts/sun5i-a13-difrnce-dit4350.dts | 50 -
arch/arm/boot/dts/sun5i-a13.dtsi | 30 +
arch/arm/boot/dts/sun7i-a20.dtsi | 44 +
arch/arm/boot/dts/sun8i-a33.dtsi | 45 +-
arch/arm/configs/xpo_player_v1_defconfig | 3507 ++++++++++++++++++++
drivers/media/platform/Kconfig | 13 +
drivers/media/platform/Makefile | 1 +
drivers/media/platform/sunxi-cedrus/Makefile | 4 +
drivers/media/platform/sunxi-cedrus/sunxi_cedrus.c | 285 ++
.../platform/sunxi-cedrus/sunxi_cedrus_common.h | 104 +
.../media/platform/sunxi-cedrus/sunxi_cedrus_dec.c | 588 ++++
.../media/platform/sunxi-cedrus/sunxi_cedrus_dec.h | 33 +
.../media/platform/sunxi-cedrus/sunxi_cedrus_hw.c | 180 +
.../media/platform/sunxi-cedrus/sunxi_cedrus_hw.h | 39 +
.../platform/sunxi-cedrus/sunxi_cedrus_mpeg2.c | 152 +
.../platform/sunxi-cedrus/sunxi_cedrus_mpeg4.c | 140 +
.../platform/sunxi-cedrus/sunxi_cedrus_regs.h | 170 +
drivers/media/platform/vivid/vivid-core.c | 2 +
drivers/media/platform/vivid/vivid-ctrls.c | 4 +
drivers/media/platform/vivid/vivid-kthread-cap.c | 2 +
drivers/media/usb/cpia2/cpia2_v4l.c | 1 +
drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 4 +-
drivers/media/v4l2-core/v4l2-ctrls.c | 460 ++-
drivers/media/v4l2-core/v4l2-dev.c | 9 +
drivers/media/v4l2-core/v4l2-device.c | 26 +
drivers/media/v4l2-core/v4l2-ioctl.c | 121 +-
drivers/media/v4l2-core/v4l2-subdev.c | 78 +-
drivers/media/v4l2-core/videobuf2-v4l2.c | 28 +
include/media/v4l2-ctrls.h | 35 +-
include/media/v4l2-dev.h | 3 +
include/media/v4l2-device.h | 6 +
include/media/v4l2-fh.h | 4 +
include/media/videobuf2-core.h | 3 +
include/media/videobuf2-v4l2.h | 4 +
include/uapi/linux/v4l2-controls.h | 68 +
include/uapi/linux/videodev2.h | 43 +-
39 files changed, 6438 insertions(+), 143 deletions(-)
create mode 100644 Documentation/devicetree/bindings/media/sunxi-cedrus.txt
create mode 100644 Documentation/video4linux/v4l2-requests.txt
delete mode 100644 arch/arm/boot/dts/sun5i-a13-difrnce-dit4350.dts
create mode 100644 arch/arm/configs/xpo_player_v1_defconfig
create mode 100644 drivers/media/platform/sunxi-cedrus/Makefile
create mode 100644 drivers/media/platform/sunxi-cedrus/sunxi_cedrus.c
create mode 100644 drivers/media/platform/sunxi-cedrus/sunxi_cedrus_common.h
create mode 100644 drivers/media/platform/sunxi-cedrus/sunxi_cedrus_dec.c
create mode 100644 drivers/media/platform/sunxi-cedrus/sunxi_cedrus_dec.h
create mode 100644 drivers/media/platform/sunxi-cedrus/sunxi_cedrus_hw.c
create mode 100644 drivers/media/platform/sunxi-cedrus/sunxi_cedrus_hw.h
create mode 100644 drivers/media/platform/sunxi-cedrus/sunxi_cedrus_mpeg2.c
create mode 100644 drivers/media/platform/sunxi-cedrus/sunxi_cedrus_mpeg4.c
create mode 100644 drivers/media/platform/sunxi-cedrus/sunxi_cedrus_regs.h


>> It would be nice to be able to play a file, so I would have to prepare our
>> custom player and make a patch between the current sunxi-cedrus-drv-video and
>> the one on https://github.com/FlorentRevest/sunxi-cedrus-drv-video.
>> So I will start with this if there is any interest.
>>
>> Should I be working in sunxi-next I wonder?
>
> I'd rather stick on 4.14. sunxi-next wouldn't bring any benefit, and
> we want to provide something that works first, and always merging next
> will always distract us from the actual code.
>
> Maxime
>

Thomas van Kleef
Vitsch Electronics
http://Vitsch.nl/
http://VitschVPN.nl/
tel: +31-(0)40-7113051
KvK nr: 17174380
BTW nr: NL142748201B01
--
Machines en netwerken op afstand beheren? Vitsch VPN oplossing!
Kijk voor meer informatie op: http://www.VitschVPN.nl/