forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 30
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
media: platform: Add Cedrus VPU decoder driver
This introduces the Cedrus VPU driver that supports the VPU found in Allwinner SoCs, also known as Video Engine. It is implemented through a V4L2 M2M decoder device and a media device (used for media requests). So far, it only supports MPEG-2 decoding. Since this VPU is stateless, synchronization with media requests is required in order to ensure consistency between frame headers that contain metadata about the frame to process and the raw slice data that is used to generate the frame. This driver was made possible thanks to the long-standing effort carried out by the linux-sunxi community in the interest of reverse engineering, documenting and implementing support for the Allwinner VPU. Signed-off-by: Paul Kocialkowski <[email protected]> Acked-by: Maxime Ripard <[email protected]> Signed-off-by: Hans Verkuil <[email protected]> [[email protected]: dropped obsolete MEDIA_REQUEST_API from Kconfig] Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
- Loading branch information
1 parent
a20625f
commit 50e7615
Showing
18 changed files
with
2,155 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -663,6 +663,13 @@ L: [email protected] | |
S: Maintained | ||
F: drivers/crypto/sunxi-ss/ | ||
|
||
ALLWINNER VPU DRIVER | ||
M: Maxime Ripard <[email protected]> | ||
M: Paul Kocialkowski <[email protected]> | ||
L: [email protected] | ||
S: Maintained | ||
F: drivers/staging/media/sunxi/cedrus/ | ||
|
||
ALPHA PORT | ||
M: Richard Henderson <[email protected]> | ||
M: Ivan Kokshaysky <[email protected]> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
config VIDEO_SUNXI | ||
bool "Allwinner sunXi family Video Devices" | ||
depends on ARCH_SUNXI || COMPILE_TEST | ||
help | ||
If you have an Allwinner SoC based on the sunXi family, say Y. | ||
|
||
Note that this option doesn't include new drivers in the | ||
kernel: saying N will just cause Kconfig to skip all the | ||
questions about Allwinner media devices. | ||
|
||
if VIDEO_SUNXI | ||
|
||
source "drivers/staging/media/sunxi/cedrus/Kconfig" | ||
|
||
endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
obj-$(CONFIG_VIDEO_SUNXI_CEDRUS) += cedrus/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
config VIDEO_SUNXI_CEDRUS | ||
tristate "Allwinner Cedrus VPU driver" | ||
depends on VIDEO_DEV && VIDEO_V4L2 && MEDIA_CONTROLLER | ||
depends on HAS_DMA | ||
depends on OF | ||
select SUNXI_SRAM | ||
select VIDEOBUF2_DMA_CONTIG | ||
select V4L2_MEM2MEM_DEV | ||
help | ||
Support for the VPU found in Allwinner SoCs, also known as the Cedar | ||
video engine. | ||
|
||
To compile this driver as a module, choose M here: the module | ||
will be called sunxi-cedrus. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
obj-$(CONFIG_VIDEO_SUNXI_CEDRUS) += sunxi-cedrus.o | ||
|
||
sunxi-cedrus-y = cedrus.o cedrus_video.o cedrus_hw.o cedrus_dec.o cedrus_mpeg2.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
Before this stateless decoder driver can leave the staging area: | ||
* The Request API needs to be stabilized; | ||
* The codec-specific controls need to be thoroughly reviewed to ensure they | ||
cover all intended uses cases; | ||
* Userspace support for the Request API needs to be reviewed; | ||
* Another stateless decoder driver should be submitted; | ||
* At least one stateless encoder driver should be submitted. |
Oops, something went wrong.