Re: [linux-sunxi] Cedrus driver

2017-11-29 Thread Thomas van Kleef
Hi Maxime,
> 
> So there's a couple of issues with those patches (the pull request
> itself is fine though :))
> 
> I'll try to break them down as much as possible.
> 
> A) If you want to have proper commit logs, you will usually do two
>things: first create a commit title, which is what appears in the
>above summary. That commit title should not be longer than 72
>characters, and it should explain roughly what you're trying to
>do. The actual description should be in the commit log itself, and
>you should document what is the issue you're trying to fix /
>improve, how you're doing it and why you've done it that way.
Ah, so the pull-request commits are not proper, I will try do that from
now on. these last ones are quite bad.
> 
>The final line of that commit log shoud be your Signed-off-by,
>which is your agreement to the Developer Certificate of Origin
>(DCO), that you'll find documented here:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst#n429
> 
> B) Please base your work on a known release (4.14) and not the middle
>of Linus' branch.
Should be fixed now.
> 
> C) I'm not sure what you tried to do with the application of the
>request API patches (such as e1ca861c168f) but we want to have the
>whole commits in there, and not a patch adding all of them. This
>will make the work so much easier to rebase to a later version when
>some patches wouldn't have been merged and some would have.
> 
> D) Rebase :)
Thank you. Giulio asked before if I could add a repo and commit the 
patches so that is what I did. I will push a different code where the
full history is present in commits.

So, I got it setup. As I did test it before on the slightly newer branch,
I did not verify, again, if the video-decoder worked on this specific 
state of the linux kernel, 4.14. But it should x:
If you rather wait for me to tell if it work let me know, but we could do
a pull request then again anyway.

So here is the new pull-request
The following changes since commit bebc6082da0a9f5d47a1ea2edc099bf671058bd4:

  Linux 4.14 (2017-11-12 10:46:13 -0800)

are available in the git repository at:

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

for you to fetch changes up to 26701eca67a07ab002c7fd18038fa299b9589939:

  Fix the sun5i and sun8i dts files (2017-11-29 15:18:05 +0100)


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

Florent Revest (8):
  Both mainline and cedrus had added their own formats with both are added.
  v4l: Add MPEG2 low-level decoder API control
  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
  ARM: dts: sun5i: Use video-engine node

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
  ARM: dts: sun8i: add video engine support for A33

Thomas van Kleef (4):
  Merged requests2 into linux 4.14
  Fix merge error
  Remove reject file from merge
  Fix the sun5i and sun8i dts files

 .../devicetree/bindings/media/sunxi-cedrus.txt |  44 ++
 Documentation/video4linux/v4l2-requests.txt| 233 
 arch/arm/boot/dts/sun5i-a13-difrnce-dit4350.dts|  50 --
 arch/arm/boot/dts/sun5i-a13.dtsi   |  30 ++
 arch/arm/boot/dts/sun8i-a33.dtsi   |  39 ++
 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/platfor

Re: [linux-sunxi] Cedrus driver

2017-11-28 Thread Thomas van Kleef
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 

Re: [linux-sunxi] Cedrus driver

2017-11-28 Thread Thomas van Kleef
Hi Giulio

On 28-11-17 12:54, Giulio Benetti wrote:
> Hi Thomas,
> 
> Il 28/11/2017 12:29, Thomas van Kleef ha scritto:
>> Hi,
>>
>> On 28-11-17 12:26, Giulio Benetti wrote:
>>> Hi Thomas,
>>>
>>> Il 28/11/2017 12:20, Thomas van Kleef ha scritto:
>>>> On 28-11-17 10:50, Giulio Benetti wrote:
>>>>> Hi Maxime,
>>>>>
>>>>> Il 28/11/2017 09:35, Maxime Ripard ha scritto:
>>>>>> On Tue, Nov 28, 2017 at 01:03:59AM +0100, Giulio Benetti wrote:
>>>>>>> Hi Maxime,
>>>>>>>
>>>>>>> Il 16/11/2017 14:42, Giulio Benetti ha scritto:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> Il 16/11/2017 14:39, Maxime Ripard ha scritto:
>>>>>>>>> On Thu, Nov 16, 2017 at 02:17:08PM +0100, Giulio Benetti wrote:
>>>>>>>>>> Hi Hans,
>>>>>>>>>>
>>>>>>>>>> Il 16/11/2017 14:12, Hans Verkuil ha scritto:
>>>>>>>>>>> On 16/11/17 13:57, Giulio Benetti wrote:
>>>>>>>>>>>> Il 16/11/2017 13:53, Maxime Ripard ha scritto:
>>>>>>>>>>>>> On Thu, Nov 16, 2017 at 01:30:52PM +0100, Giulio Benetti wrote:
>>>>>>>>>>>>>>> On Thu, Nov 16, 2017 at 11:37:30AM +0100, Giulio Benetti wrote:
>>>>>>>>>>>>>>>> Il 16/11/2017 11:31, Andreas Baierl ha scritto:
>>>>>>>>>>>>>>>>> Am 16.11.2017 um 11:13 schrieb Giulio Benetti:
>>>>>>>>>>>>>>>>>> Hello,
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Hello,
>>>>>>>>>>>>>>>>>> I'm wondering why cedrus
>>>>>>>>>>>>>>>>>> https://github.com/FlorentRevest/linux-sunxi-cedrus
>>>>>>>>>>>>>>>>>> has never been
>>>>>>>>>>>>>>>>>> merged with linux-sunxi sunxi-next.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Because it is not ready to be
>>>>>>>>>>>>>>>>> merged. It depends on the v4l2
>>>>>>>>>>>>>>>>> request
>>>>>>>>>>>>>>>>> API, which was not merged and which is re-worked atm.
>>>>>>>>>>>>>>>>> Also, sunxi-cedrus itself is not in
>>>>>>>>>>>>>>>>> a finished state and is not as
>>>>>>>>>>>>>>>>> feature-complete to be merged. Anyway it might be something 
>>>>>>>>>>>>>>>>> for
>>>>>>>>>>>>>>>>> staging... Has there been a [RFC] on the mailing list at all?
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Where can I find a list of TODOs to get it ready to be merged?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Assuming that the request API is in, we'd need to:
>>>>>>>>>>>>>>>  - Finish the MPEG4 support
>>>>>>>>>>>>>>>  - Work on more useful codecs (H264 comes to my mind)
>>>>>>>>>>>>>>>  - Implement the DRM planes support for
>>>>>>>>>>>>>>> the custom frame format
>>>>>>>>>>>>>>>  - Implement the DRM planes support for scaling
>>>>>>>>>>>>>>>  - Test it on more SoCs
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Or something along those lines.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Lot of work to do
>>>>>>>>>>>>>
>>>>>>>>>>>>> Well... If it was fast and easy it would have been done already :)
>>>>>>>>>>>>
>>>>>>>>&g

Re: [linux-sunxi] Cedrus driver

2017-11-28 Thread Thomas van Kleef
Hi,

On 28-11-17 12:26, Giulio Benetti wrote:
> Hi Thomas,
> 
> Il 28/11/2017 12:20, Thomas van Kleef ha scritto:
>> On 28-11-17 10:50, Giulio Benetti wrote:
>>> Hi Maxime,
>>>
>>> Il 28/11/2017 09:35, Maxime Ripard ha scritto:
>>>> On Tue, Nov 28, 2017 at 01:03:59AM +0100, Giulio Benetti wrote:
>>>>> Hi Maxime,
>>>>>
>>>>> Il 16/11/2017 14:42, Giulio Benetti ha scritto:
>>>>>> Hi,
>>>>>>
>>>>>> Il 16/11/2017 14:39, Maxime Ripard ha scritto:
>>>>>>> On Thu, Nov 16, 2017 at 02:17:08PM +0100, Giulio Benetti wrote:
>>>>>>>> Hi Hans,
>>>>>>>>
>>>>>>>> Il 16/11/2017 14:12, Hans Verkuil ha scritto:
>>>>>>>>> On 16/11/17 13:57, Giulio Benetti wrote:
>>>>>>>>>> Il 16/11/2017 13:53, Maxime Ripard ha scritto:
>>>>>>>>>>> On Thu, Nov 16, 2017 at 01:30:52PM +0100, Giulio Benetti wrote:
>>>>>>>>>>>>> On Thu, Nov 16, 2017 at 11:37:30AM +0100, Giulio Benetti wrote:
>>>>>>>>>>>>>> Il 16/11/2017 11:31, Andreas Baierl ha scritto:
>>>>>>>>>>>>>>> Am 16.11.2017 um 11:13 schrieb Giulio Benetti:
>>>>>>>>>>>>>>>> Hello,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Hello,
>>>>>>>>>>>>>>>> I'm wondering why cedrus
>>>>>>>>>>>>>>>> https://github.com/FlorentRevest/linux-sunxi-cedrus
>>>>>>>>>>>>>>>> has never been
>>>>>>>>>>>>>>>> merged with linux-sunxi sunxi-next.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Because it is not ready to be
>>>>>>>>>>>>>>> merged. It depends on the v4l2
>>>>>>>>>>>>>>> request
>>>>>>>>>>>>>>> API, which was not merged and which is re-worked atm.
>>>>>>>>>>>>>>> Also, sunxi-cedrus itself is not in
>>>>>>>>>>>>>>> a finished state and is not as
>>>>>>>>>>>>>>> feature-complete to be merged. Anyway it might be something for
>>>>>>>>>>>>>>> staging... Has there been a [RFC] on the mailing list at all?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Where can I find a list of TODOs to get it ready to be merged?
>>>>>>>>>>>>>
>>>>>>>>>>>>> Assuming that the request API is in, we'd need to:
>>>>>>>>>>>>>     - Finish the MPEG4 support
>>>>>>>>>>>>>     - Work on more useful codecs (H264 comes to my mind)
>>>>>>>>>>>>>     - Implement the DRM planes support for
>>>>>>>>>>>>> the custom frame format
>>>>>>>>>>>>>     - Implement the DRM planes support for scaling
>>>>>>>>>>>>>     - Test it on more SoCs
>>>>>>>>>>>>>
>>>>>>>>>>>>> Or something along those lines.
>>>>>>>>>>>>
>>>>>>>>>>>> Lot of work to do
>>>>>>>>>>>
>>>>>>>>>>> Well... If it was fast and easy it would have been done already :)
>>>>>>>>>>
>>>>>>>>>> :))
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>>>>>> I see it seems to be dead, no commit in 1 year.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Yes, because the author did this
>>>>>>>>>>>>>>> during an internship, which ended
>>>>>>>>>>>>>>> ...
>>>>>>>>>>>>>>> Afaik nobody picked up his work yet.
>>>>>>>>>>>>>
>>>&g

Re: [linux-sunxi] Cedrus driver

2017-11-28 Thread Thomas van Kleef
On 28-11-17 10:50, Giulio Benetti wrote:
> Hi Maxime,
> 
> Il 28/11/2017 09:35, Maxime Ripard ha scritto:
>> On Tue, Nov 28, 2017 at 01:03:59AM +0100, Giulio Benetti wrote:
>>> Hi Maxime,
>>>
>>> Il 16/11/2017 14:42, Giulio Benetti ha scritto:
 Hi,

 Il 16/11/2017 14:39, Maxime Ripard ha scritto:
> On Thu, Nov 16, 2017 at 02:17:08PM +0100, Giulio Benetti wrote:
>> Hi Hans,
>>
>> Il 16/11/2017 14:12, Hans Verkuil ha scritto:
>>> On 16/11/17 13:57, Giulio Benetti wrote:
 Il 16/11/2017 13:53, Maxime Ripard ha scritto:
> On Thu, Nov 16, 2017 at 01:30:52PM +0100, Giulio Benetti wrote:
>>> On Thu, Nov 16, 2017 at 11:37:30AM +0100, Giulio Benetti wrote:
 Il 16/11/2017 11:31, Andreas Baierl ha scritto:
> Am 16.11.2017 um 11:13 schrieb Giulio Benetti:
>> Hello,
>>
> Hello,
>> I'm wondering why cedrus
>> https://github.com/FlorentRevest/linux-sunxi-cedrus
>> has never been
>> merged with linux-sunxi sunxi-next.
>>
> Because it is not ready to be
> merged. It depends on the v4l2
> request
> API, which was not merged and which is re-worked atm.
> Also, sunxi-cedrus itself is not in
> a finished state and is not as
> feature-complete to be merged. Anyway it might be something for
> staging... Has there been a [RFC] on the mailing list at all?

 Where can I find a list of TODOs to get it ready to be merged?
>>>
>>> Assuming that the request API is in, we'd need to:
>>>    - Finish the MPEG4 support
>>>    - Work on more useful codecs (H264 comes to my mind)
>>>    - Implement the DRM planes support for
>>> the custom frame format
>>>    - Implement the DRM planes support for scaling
>>>    - Test it on more SoCs
>>>
>>> Or something along those lines.
>>
>> Lot of work to do
>
> Well... If it was fast and easy it would have been done already :)

 :))

>
>> I see it seems to be dead, no commit in 1 year.
>
> Yes, because the author did this
> during an internship, which ended
> ...
> Afaik nobody picked up his work yet.
>>>
>>> That's not entirely true. Some work has been
>>> done by Thomas (in CC),
>>> especially on the display engine side, but last time we talked his
>>> work was not really upstreamable.
>>>
>>> We will also resume that effort starting next march.
>>
>> Is it possible a preview on a separate
>> Reporitory to start working on now?
>> Expecially to start porting everything done by
>> FlorentRevest to mainline,
>> admitted you've not already done.
>
> I'm not sure what you're asking for. Florent's work
> *was* on mainline.

 and then they took it off because it was unmantained?
 You've spoken about Thomas(in CC) not ready,
 maybe I could help on that if it's public to accelerate.
 If I'm able to of course, this is my primary concern.

 Otherwise, in which way can I help improving it to make
 it accept to linux-sunxi?
 Starting from Florent's work and porting it to sunxi-next to begin?
 And after that adding all features you've listed?
 Tell me what I can do(I repeat, if I'm able to).
>>>
>>> The bottleneck is that the Request API is not mainlined. We
>>> restarted work
>>> on it after a meeting a few weeks back where we all agreed
>>> on the roadmap
>>> so hopefully it will go into mainline Q1 or Q2 next year.
>>>
>>> That said, you can use Florent's patch series for further development.
>>> It should be relatively easy to convert it to the final version of the
>>> Request API. Just note that the public API of the final
>>> Request API will
>>> be somewhat different from the old version Florent's patch
>>> series is using.
>>
>> So I'm going to try soon to :
>> 1) adapt that patchset to sunxi-next
>> 2) add A20 support
>> 3) add A33 support
>> 4) after mainlined APIs, merge
>
> That sounds good. Thomas already has the support for the A20, and as I
> was saying, there is someone that is going to work full time on this
> in a couple monthes on our side.
>
> I'll set up a git repo on github so that we can collaborate until the
> request API is ready.
>>>
>>> Any news about git repo?
>>> When do you plan to do it more or less?
>>
>> I started to do it yesterday.
>>
>> https://github.com/free-electrons/linux-cedrus
>> https://github.com/free-electrons/libva-cedrus
> 
>