Re: usbvision: problems adding support for ATI TV Wonder USB Edition

2016-07-05 Thread Christopher Chavez
Hi Hans,

On Fri, Jul 1, 2016 at 5:15 AM, Hans Verkuil  wrote:
> Hi Christopher,
>
> On 12/19/2015 07:12 AM, Christopher Chavez wrote:
>>
>> I'm still researching what other programs to test this with (VLC?
>> v4l-utils?)...
>
> I use qv4l2 from v4l-utils.

Thanks for the suggestion!

> Did you make any progress with this?
> 
> The problem is that the usbvision driver is very old and very badly written.
> And I doubt anyone will have time to upgrade this driver to modern standards.
>
> I don't mind taking this patch, but I should at least have confirmation that
> you got it to work :-)

I have not had any success yet. I haven't yet come across any documentation on
how to determine what values to use for the ATI device; I wanted to try reusing
values from another device first, but either some of those values are
completely off or there is a separate issue that needs to be addressed first
before I can test the ATI device. I don't own a "supported" device to help
determine which is the case.

I can try again as early as August; I'll resubmit if I make any progress.

> Regards,
>
> Hans (who is cleaning out old submitted patches)
>

Thanks for following up.

Christopher Chavez


--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


cron job: media_tree daily build: ERRORS

2016-07-05 Thread Hans Verkuil
This message is generated daily by a cron job that builds media_tree for
the kernels and architectures in the list below.

Results of the daily build of media_tree:

date:   Wed Jul  6 04:00:17 CEST 2016
git branch: test
git hash:   d81295d1bed850335f9f4ccb6b1aa4f6a123d4f0
gcc version:i686-linux-gcc (GCC) 5.3.0
sparse version: v0.5.0-56-g7647c77
smatch version: v0.5.0-3428-gdfe27cf
host hardware:  x86_64
host os:4.6.0-164

linux-git-arm-at91: OK
linux-git-arm-davinci: OK
linux-git-arm-exynos: OK
linux-git-arm-mtk: OK
linux-git-arm-mx: OK
linux-git-arm-omap: OK
linux-git-arm-pxa: OK
linux-git-blackfin-bf561: OK
linux-git-i686: OK
linux-git-m32r: OK
linux-git-mips: OK
linux-git-powerpc64: OK
linux-git-sh: OK
linux-git-x86_64: OK
linux-2.6.36.4-i686: OK
linux-2.6.37.6-i686: OK
linux-2.6.38.8-i686: OK
linux-2.6.39.4-i686: OK
linux-3.0.60-i686: OK
linux-3.1.10-i686: OK
linux-3.2.37-i686: OK
linux-3.3.8-i686: OK
linux-3.4.27-i686: OK
linux-3.5.7-i686: OK
linux-3.6.11-i686: ERRORS
linux-3.7.4-i686: ERRORS
linux-3.8-i686: ERRORS
linux-3.9.2-i686: ERRORS
linux-3.10.1-i686: ERRORS
linux-3.11.1-i686: ERRORS
linux-3.12.23-i686: ERRORS
linux-3.13.11-i686: ERRORS
linux-3.14.9-i686: ERRORS
linux-3.15.2-i686: ERRORS
linux-3.16.7-i686: ERRORS
linux-3.17.8-i686: ERRORS
linux-3.18.7-i686: ERRORS
linux-3.19-i686: ERRORS
linux-4.0-i686: ERRORS
linux-4.1.1-i686: ERRORS
linux-4.2-i686: ERRORS
linux-4.3-i686: ERRORS
linux-4.4-i686: OK
linux-4.5-i686: OK
linux-4.6-i686: OK
linux-4.7-rc1-i686: OK
linux-2.6.36.4-x86_64: OK
linux-2.6.37.6-x86_64: OK
linux-2.6.38.8-x86_64: OK
linux-2.6.39.4-x86_64: OK
linux-3.0.60-x86_64: OK
linux-3.1.10-x86_64: OK
linux-3.2.37-x86_64: OK
linux-3.3.8-x86_64: OK
linux-3.4.27-x86_64: OK
linux-3.5.7-x86_64: OK
linux-3.6.11-x86_64: ERRORS
linux-3.7.4-x86_64: ERRORS
linux-3.8-x86_64: ERRORS
linux-3.9.2-x86_64: ERRORS
linux-3.10.1-x86_64: ERRORS
linux-3.11.1-x86_64: ERRORS
linux-3.12.23-x86_64: ERRORS
linux-3.13.11-x86_64: ERRORS
linux-3.14.9-x86_64: ERRORS
linux-3.15.2-x86_64: ERRORS
linux-3.16.7-x86_64: ERRORS
linux-3.17.8-x86_64: ERRORS
linux-3.18.7-x86_64: ERRORS
linux-3.19-x86_64: ERRORS
linux-4.0-x86_64: ERRORS
linux-4.1.1-x86_64: ERRORS
linux-4.2-x86_64: ERRORS
linux-4.3-x86_64: ERRORS
linux-4.4-x86_64: OK
linux-4.5-x86_64: OK
linux-4.6-x86_64: OK
linux-4.7-rc1-x86_64: OK
apps: OK
spec-git: OK
sparse: WARNINGS
smatch: WARNINGS

Detailed results are available here:

http://www.xs4all.nl/~hverkuil/logs/Wednesday.log

Full logs are available here:

http://www.xs4all.nl/~hverkuil/logs/Wednesday.tar.bz2

The Media Infrastructure API from this daily build is here:

http://www.xs4all.nl/~hverkuil/spec/media.html
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC PATCH] media: s5p-mfc - remove vidioc_g_crop

2016-07-05 Thread Shuah Khan
On 07/03/2016 07:30 PM, Nicolas Dufresne wrote:
> Le dimanche 03 juillet 2016 à 11:43 +0200, Hans Verkuil a écrit :
>> Hi Nicolas,
>>
>> On 07/02/2016 10:29 PM, Nicolas Dufresne wrote:
>>>
>>> Le 30 juin 2016 5:35 PM, "Shuah Khan" >> > a écrit :

 Remove vidioc_g_crop() from s5p-mfc decoder. Without its s_crop
 counterpart
 g_crop is not useful. Delete it.
>>>
>>> G_CROP tell the userspace which portion of the output is to be
>>> displayed. Example,  1920x1080 inside a buffer of 1920x1088. It can
>>> be
>>> implemented using G_SELECTION too, which emulate G_CROP. removing
>>> this without implementing G_SEKECTION will break certain software
>>> like
>>> GStreamer v4l2 based decoder.
>>
>> Sorry, but this is not correct.
>>
>> G_CROP for VIDEO_OUTPUT returns the output *compose* rectangle, not
>> the output
>> crop rectangle.
>>
>> Don't blame me, this is how it was defined in V4L2. The problem is
>> that for video
>> output (esp. m2m devices) you usually want to set the crop rectangle,
>> and that's
>> why the selection API was added so you can unambiguously set the crop
>> and compose
>> rectangles for both capture and output.
>>
>> Unfortunately, the exynos drivers were written before the
>> G/S_SELECTION API was
>> created, and the crop ioctls in the video output drivers actually set
>> the output
>> crop rectangle instead of the compose rectangle :-(
>>
>> This is a known inconsistency.
>>
>> You are right though that we can't remove g_crop here, I had
>> forgotten about the
>> buffer padding.
>>
>> What should happen here is that g_selection support is added to s5p-
>> mfc, and
>> have that return the proper rectangles. The g_crop can be kept, and a
>> comment
>> should be added that it returns the wrong thing, but that that is
>> needed for
>> backwards compat.

Thank you both for the review and comments. I wasn't entirely sure
about removing g-crop, hence this RFC patch. I will add g_selection
and the comment to g_crop about returning incorrect info.

thanks,
-- Shuah

>>
>> The gstreamer code should use g/s_selection if available. It should
>> check how it
>> is using g/s_crop for video output devices today and remember that
>> for output
>> devices g/s_crop is really g/s_compose, except for the exynos
>> drivers.
> 
> This is already the case. There is other non-mainline driver that do
> like exynos (I have been told).
> 
> https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/sys?id=7
> 4f020fd2f1dc645efe35a7ba1f951f9c5ee7c4c
> 
>>
>> It's why I recommend the selection API since it doesn't have these
>> problems.
>>
>> I think I should do another push towards implementing the selection
>> API in all
>> drivers. There aren't many left.
>>
>> Regards,
>>
>>  Hans

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 07/12] doc-rst: customize RTD theme, table & full width

2016-07-05 Thread Mauro Carvalho Chehab
From: Markus Heiser 

The default table layout of the RTD theme does not fit for vast tables,
like the ones we have in the linux_tv project. This has been discussed
on the ML [1].

The RTD theme is a two column layout, with a navigation column on the
left and a content column on the right:

content column

 RTD theme's default is 800px as max width for the content, but we have
 tables with tons of columns, which need the full width of the
 view-port (BTW: *full width* is what DocBook's HTML is).

table

   - sequences of whitespace should collapse into a single whitespace.
   - make the overflow auto (scrollbar if needed)
   - align caption "left" ("center" is unsuitable on vast tables)

[1] http://article.gmane.org/gmane.linux.kernel/2216509

Signed-off-by: Markus Heiser 
Signed-off-by: Mauro Carvalho Chehab 
---
 Documentation/sphinx-static/theme_overrides.css | 21 -
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/Documentation/sphinx-static/theme_overrides.css 
b/Documentation/sphinx-static/theme_overrides.css
index 4d670dbf7ffa..ea06799214fd 100644
--- a/Documentation/sphinx-static/theme_overrides.css
+++ b/Documentation/sphinx-static/theme_overrides.css
@@ -1,9 +1,28 @@
 /* -*- coding: utf-8; mode: css -*-
  *
- * Sphinx HTML theme customization
+ * Sphinx HTML theme customization: read the doc
  *
  */
 
 @media screen {
 
+/* content column
+ *
+ * RTD theme's default is 800px as max width for the content, but we have
+ * tables with tons of columns, which need the full width of the view-port.
+ */
+
+.wy-nav-content{max-width: none; }
+
+/* table:
+ *
+ *   - Sequences of whitespace should collapse into a single whitespace.
+ *   - make the overflow auto (scrollbar if needed)
+ *   - align caption "left" ("center" is unsuitable on vast tables)
+ */
+
+.wy-table-responsive table td { white-space: normal; }
+.wy-table-responsive { overflow: auto; }
+.rst-content table.docutils caption { text-align: left; font-size: 100%; }
+
 }
-- 
2.7.4

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 05/12] doc-rst: boilerplate HTML theme customization

2016-07-05 Thread Mauro Carvalho Chehab
From: Markus Heiser 

Implements the minimal boilerplate for Sphinx HTML theme customization.

Signed-off-by: Markus Heiser 
Signed-off-by: Mauro Carvalho Chehab 
---
 Documentation/conf.py   | 9 -
 Documentation/sphinx-static/theme_overrides.css | 9 +
 2 files changed, 17 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/sphinx-static/theme_overrides.css

diff --git a/Documentation/conf.py b/Documentation/conf.py
index 792b6338ef19..f35748b4bc26 100644
--- a/Documentation/conf.py
+++ b/Documentation/conf.py
@@ -176,7 +176,14 @@ except ImportError:
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
 # so a file named "default.css" will overwrite the builtin "default.css".
-#html_static_path = ['_static']
+
+html_static_path = ['sphinx-static']
+
+html_context = {
+'css_files': [
+'_static/theme_overrides.css',
+],
+}
 
 # Add any extra paths that contain custom files (such as robots.txt or
 # .htaccess) here, relative to this directory. These files are copied
diff --git a/Documentation/sphinx-static/theme_overrides.css 
b/Documentation/sphinx-static/theme_overrides.css
new file mode 100644
index ..4d670dbf7ffa
--- /dev/null
+++ b/Documentation/sphinx-static/theme_overrides.css
@@ -0,0 +1,9 @@
+/* -*- coding: utf-8; mode: css -*-
+ *
+ * Sphinx HTML theme customization
+ *
+ */
+
+@media screen {
+
+}
-- 
2.7.4

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 04/12] doc-rst: linux_tv: dvb: put return value at the end

2016-07-05 Thread Mauro Carvalho Chehab
On some syscall descriptions, the tables are described after
the return value. Do that inside descriptions.

Signed-off-by: Mauro Carvalho Chehab 
---
 .../linux_tv/media/dvb/audio-set-attributes.rst   |  2 --
 Documentation/linux_tv/media/dvb/audio-set-ext-id.rst |  2 --
 .../linux_tv/media/dvb/audio-set-karaoke.rst  |  2 --
 .../linux_tv/media/dvb/fe-diseqc-recv-slave-reply.rst | 19 ++-
 .../linux_tv/media/dvb/fe-diseqc-send-burst.rst   | 17 +++--
 Documentation/linux_tv/media/dvb/fe-get-info.rst  | 19 ++-
 Documentation/linux_tv/media/dvb/fe-read-ber.rst  |  2 --
 Documentation/linux_tv/media/dvb/fe-read-status.rst   | 15 +++
 Documentation/linux_tv/media/dvb/fe-set-frontend.rst  |  2 --
 Documentation/linux_tv/media/dvb/fe-set-tone.rst  | 17 +++--
 Documentation/linux_tv/media/dvb/video-get-event.rst  |  2 --
 11 files changed, 41 insertions(+), 58 deletions(-)

diff --git a/Documentation/linux_tv/media/dvb/audio-set-attributes.rst 
b/Documentation/linux_tv/media/dvb/audio-set-attributes.rst
index ea08cea6aa78..820c8b2e2298 100644
--- a/Documentation/linux_tv/media/dvb/audio-set-attributes.rst
+++ b/Documentation/linux_tv/media/dvb/audio-set-attributes.rst
@@ -58,8 +58,6 @@ On success 0 is returned, on error -1 and the ``errno`` 
variable is set
 appropriately. The generic error codes are described at the
 :ref:`Generic Error Codes ` chapter.
 
-
-
 .. flat-table::
 :header-rows:  0
 :stub-columns: 0
diff --git a/Documentation/linux_tv/media/dvb/audio-set-ext-id.rst 
b/Documentation/linux_tv/media/dvb/audio-set-ext-id.rst
index 456b05267f29..38a255289e8c 100644
--- a/Documentation/linux_tv/media/dvb/audio-set-ext-id.rst
+++ b/Documentation/linux_tv/media/dvb/audio-set-ext-id.rst
@@ -58,8 +58,6 @@ On success 0 is returned, on error -1 and the ``errno`` 
variable is set
 appropriately. The generic error codes are described at the
 :ref:`Generic Error Codes ` chapter.
 
-
-
 .. flat-table::
 :header-rows:  0
 :stub-columns: 0
diff --git a/Documentation/linux_tv/media/dvb/audio-set-karaoke.rst 
b/Documentation/linux_tv/media/dvb/audio-set-karaoke.rst
index 07453ceae40f..28138222582a 100644
--- a/Documentation/linux_tv/media/dvb/audio-set-karaoke.rst
+++ b/Documentation/linux_tv/media/dvb/audio-set-karaoke.rst
@@ -57,8 +57,6 @@ On success 0 is returned, on error -1 and the ``errno`` 
variable is set
 appropriately. The generic error codes are described at the
 :ref:`Generic Error Codes ` chapter.
 
-
-
 .. flat-table::
 :header-rows:  0
 :stub-columns: 0
diff --git a/Documentation/linux_tv/media/dvb/fe-diseqc-recv-slave-reply.rst 
b/Documentation/linux_tv/media/dvb/fe-diseqc-recv-slave-reply.rst
index 60241c6e68a8..7ddbce6bcd7e 100644
--- a/Documentation/linux_tv/media/dvb/fe-diseqc-recv-slave-reply.rst
+++ b/Documentation/linux_tv/media/dvb/fe-diseqc-recv-slave-reply.rst
@@ -36,17 +36,11 @@ DESCRIPTION
 
 Receives reply from a DiSEqC 2.0 command.
 
-
-RETURN VALUE
-
-
-On success 0 is returned, on error -1 and the ``errno`` variable is set
-appropriately. The generic error codes are described at the
-:ref:`Generic Error Codes ` chapter.
-
-
 .. _dvb-diseqc-slave-reply:
 
+struct dvb_diseqc_slave_reply
+-
+
 .. flat-table:: struct dvb_diseqc_slave_reply
 :header-rows:  0
 :stub-columns: 0
@@ -78,3 +72,10 @@ appropriately. The generic error codes are described at the
 
-  Return from ioctl after timeout ms with errorcode when no message
  was received
+
+RETURN VALUE
+
+
+On success 0 is returned, on error -1 and the ``errno`` variable is set
+appropriately. The generic error codes are described at the
+:ref:`Generic Error Codes ` chapter.
diff --git a/Documentation/linux_tv/media/dvb/fe-diseqc-send-burst.rst 
b/Documentation/linux_tv/media/dvb/fe-diseqc-send-burst.rst
index dea9cdff0469..806ee5a9df68 100644
--- a/Documentation/linux_tv/media/dvb/fe-diseqc-send-burst.rst
+++ b/Documentation/linux_tv/media/dvb/fe-diseqc-send-burst.rst
@@ -40,21 +40,11 @@ read/write permissions.
 It provides support for what's specified at
 `Digital Satellite Equipment Control (DiSEqC) - Simple "ToneBurst" Detection 
Circuit specification. 
`__
 
-
-RETURN VALUE
-
-
-On success 0 is returned, on error -1 and the ``errno`` variable is set
-appropriately. The generic error codes are described at the
-:ref:`Generic Error Codes ` chapter.
-
-
 .. _fe-sec-mini-cmd-t:
 
 enum fe_sec_mini_cmd
 
 
-
 .. _fe-sec-mini-cmd:
 
 .. flat-table:: enum fe_sec_mini_cmd
@@ -83,3 +73,10 @@ enum fe_sec_mini_cmd
  ``SEC_MINI_B``
 
-  Sends a mini-DiSEqC 22kHz '1' Data Burst to select satellite-B
+
+RETURN VALUE
+
+
+On success 0 is returned, on error -1 and the 

[PATCH 03/12] doc-rst: linux_tv: dvb: use lowercase for filenames

2016-07-05 Thread Mauro Carvalho Chehab
There are some ioctls in upper case. This is not the standard.
Put them on lowercase, to match what's done with other ioctls.

Signed-off-by: Mauro Carvalho Chehab 
---
 ...LEGACY_CMD.rst => fe-dishnetwork-send-legacy-cmd.rst} |  0
 .../media/dvb/{FE_GET_EVENT.rst => fe-get-event.rst} |  0
 .../dvb/{FE_GET_FRONTEND.rst => fe-get-frontend.rst} |  0
 .../media/dvb/{FE_READ_BER.rst => fe-read-ber.rst}   |  0
 ...D_SIGNAL_STRENGTH.rst => fe-read-signal-strength.rst} |  0
 .../media/dvb/{FE_READ_SNR.rst => fe-read-snr.rst}   |  0
 ...RRECTED_BLOCKS.rst => fe-read-uncorrected-blocks.rst} |  0
 .../dvb/{FE_SET_FRONTEND.rst => fe-set-frontend.rst} |  0
 Documentation/linux_tv/media/dvb/frontend_legacy_api.rst | 16 
 9 files changed, 8 insertions(+), 8 deletions(-)
 rename Documentation/linux_tv/media/dvb/{FE_DISHNETWORK_SEND_LEGACY_CMD.rst => 
fe-dishnetwork-send-legacy-cmd.rst} (100%)
 rename Documentation/linux_tv/media/dvb/{FE_GET_EVENT.rst => fe-get-event.rst} 
(100%)
 rename Documentation/linux_tv/media/dvb/{FE_GET_FRONTEND.rst => 
fe-get-frontend.rst} (100%)
 rename Documentation/linux_tv/media/dvb/{FE_READ_BER.rst => fe-read-ber.rst} 
(100%)
 rename Documentation/linux_tv/media/dvb/{FE_READ_SIGNAL_STRENGTH.rst => 
fe-read-signal-strength.rst} (100%)
 rename Documentation/linux_tv/media/dvb/{FE_READ_SNR.rst => fe-read-snr.rst} 
(100%)
 rename Documentation/linux_tv/media/dvb/{FE_READ_UNCORRECTED_BLOCKS.rst => 
fe-read-uncorrected-blocks.rst} (100%)
 rename Documentation/linux_tv/media/dvb/{FE_SET_FRONTEND.rst => 
fe-set-frontend.rst} (100%)

diff --git 
a/Documentation/linux_tv/media/dvb/FE_DISHNETWORK_SEND_LEGACY_CMD.rst 
b/Documentation/linux_tv/media/dvb/fe-dishnetwork-send-legacy-cmd.rst
similarity index 100%
rename from Documentation/linux_tv/media/dvb/FE_DISHNETWORK_SEND_LEGACY_CMD.rst
rename to Documentation/linux_tv/media/dvb/fe-dishnetwork-send-legacy-cmd.rst
diff --git a/Documentation/linux_tv/media/dvb/FE_GET_EVENT.rst 
b/Documentation/linux_tv/media/dvb/fe-get-event.rst
similarity index 100%
rename from Documentation/linux_tv/media/dvb/FE_GET_EVENT.rst
rename to Documentation/linux_tv/media/dvb/fe-get-event.rst
diff --git a/Documentation/linux_tv/media/dvb/FE_GET_FRONTEND.rst 
b/Documentation/linux_tv/media/dvb/fe-get-frontend.rst
similarity index 100%
rename from Documentation/linux_tv/media/dvb/FE_GET_FRONTEND.rst
rename to Documentation/linux_tv/media/dvb/fe-get-frontend.rst
diff --git a/Documentation/linux_tv/media/dvb/FE_READ_BER.rst 
b/Documentation/linux_tv/media/dvb/fe-read-ber.rst
similarity index 100%
rename from Documentation/linux_tv/media/dvb/FE_READ_BER.rst
rename to Documentation/linux_tv/media/dvb/fe-read-ber.rst
diff --git a/Documentation/linux_tv/media/dvb/FE_READ_SIGNAL_STRENGTH.rst 
b/Documentation/linux_tv/media/dvb/fe-read-signal-strength.rst
similarity index 100%
rename from Documentation/linux_tv/media/dvb/FE_READ_SIGNAL_STRENGTH.rst
rename to Documentation/linux_tv/media/dvb/fe-read-signal-strength.rst
diff --git a/Documentation/linux_tv/media/dvb/FE_READ_SNR.rst 
b/Documentation/linux_tv/media/dvb/fe-read-snr.rst
similarity index 100%
rename from Documentation/linux_tv/media/dvb/FE_READ_SNR.rst
rename to Documentation/linux_tv/media/dvb/fe-read-snr.rst
diff --git a/Documentation/linux_tv/media/dvb/FE_READ_UNCORRECTED_BLOCKS.rst 
b/Documentation/linux_tv/media/dvb/fe-read-uncorrected-blocks.rst
similarity index 100%
rename from Documentation/linux_tv/media/dvb/FE_READ_UNCORRECTED_BLOCKS.rst
rename to Documentation/linux_tv/media/dvb/fe-read-uncorrected-blocks.rst
diff --git a/Documentation/linux_tv/media/dvb/FE_SET_FRONTEND.rst 
b/Documentation/linux_tv/media/dvb/fe-set-frontend.rst
similarity index 100%
rename from Documentation/linux_tv/media/dvb/FE_SET_FRONTEND.rst
rename to Documentation/linux_tv/media/dvb/fe-set-frontend.rst
diff --git a/Documentation/linux_tv/media/dvb/frontend_legacy_api.rst 
b/Documentation/linux_tv/media/dvb/frontend_legacy_api.rst
index fb17766d887e..759833d3eaa4 100644
--- a/Documentation/linux_tv/media/dvb/frontend_legacy_api.rst
+++ b/Documentation/linux_tv/media/dvb/frontend_legacy_api.rst
@@ -28,11 +28,11 @@ recommended
 .. toctree::
 :maxdepth: 1
 
-FE_READ_BER
-FE_READ_SNR
-FE_READ_SIGNAL_STRENGTH
-FE_READ_UNCORRECTED_BLOCKS
-FE_SET_FRONTEND
-FE_GET_FRONTEND
-FE_GET_EVENT
-FE_DISHNETWORK_SEND_LEGACY_CMD
+fe-read-ber
+fe-read-snr
+fe-read-signal-strength
+fe-read-uncorrected-blocks
+fe-set-frontend
+fe-get-frontend
+fe-get-event
+fe-dishnetwork-send-legacy-cmd
-- 
2.7.4

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 06/12] doc-rst: remove Documentation/linux_tv/conf.py file

2016-07-05 Thread Mauro Carvalho Chehab
This file is actually not used to build the media uAPI docbook.
So, remove it.

Signed-off-by: Mauro Carvalho Chehab 
---
 Documentation/linux_tv/conf.py | 221 -
 1 file changed, 221 deletions(-)
 delete mode 100644 Documentation/linux_tv/conf.py

diff --git a/Documentation/linux_tv/conf.py b/Documentation/linux_tv/conf.py
deleted file mode 100644
index ea5f6ef25d6b..
--- a/Documentation/linux_tv/conf.py
+++ /dev/null
@@ -1,221 +0,0 @@
-# -*- coding: utf-8; mode: python -*-
-#
-# This is the project specific sphinx-build configuration, which is loaded from
-# the base configuration file (``../conf.py``). About config values consult:
-#
-# * http://www.sphinx-doc.org/en/stable/config.html
-#
-# While setting values here, please take care to not overwrite common needed
-# configurations. This means, do not *overwrite* composite values (e.g. the
-# list- or dictionary-value of "latex_elements" resp. "extensions") by
-# thoughtless assignments. Manipulate composite values always by *update*
-# (dict-values) or extend (list-values). Nevertheless, if you know what you are
-# doing, you are free to *overwrite* values to your needs.
-#
-# useful preset names:
-#
-# * BASE_FOLDER: the folder where the top conf.py is located
-# * main_name:   the basename of this project-folder
-
-# Set parser's default kernel-doc mode ``reST|kernel-doc``.
-kernel_doc_mode = "kernel-doc"
-
-# 
--
-# General configuration
-# 
--
-
-project   = u'LINUX MEDIA INFRASTRUCTURE API'
-copyright = u'2009-2016 : LinuxTV Developers'
-author= u'The LinuxTV Developers'
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-#version   = 'v4.7'
-# The full version, including alpha/beta/rc tags.
-#release   = 'v4.7-rc2'
-
-# extlinks["man"] = ('http://manpages.ubuntu.com/cgi-bin/search.py?q=%s', ' ')
-
-# intersphinx_mapping['kernel-doc'] = 
('http://return42.github.io/sphkerneldoc/books/kernel-doc-HOWTO/', None)
-
-extensions.extend([
-# 'sphinx.ext.pngmath'
-#, 'sphinx.ext.mathjax'
-])
-
-# 
--
-# Options for HTML output
-# 
--
-
-# The name for this set of Sphinx documents.  If None, it defaults to
-# " v documentation".
-#html_title = None
-
-# A shorter title for the navigation bar.  Default is the same as html_title.
-#html_short_title = None
-
-# The name of an image file (relative to this directory) to place at the top
-# of the sidebar.
-#html_logo = pathjoin(BASE_FOLDER, "_tex", "logo.png")
-
-# The name of an image file (within the static path) to use as favicon of the
-# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
-# pixels large.
-#html_favicon = None
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path.extend([])
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = main_name
-
-# 
--
-# Options for rst2pdf output
-# 
--
-
-# Grouping the document tree into PDF files. List of tuples
-# (source start file, target name, title, author, options).
-#
-# The options element is a dictionary that lets you override
-# this config per-document.
-# For example,
-# ('index', u'MyProject', u'My Project', u'Author Name',
-#  dict(pdf_compressed = True))
-# would mean that specific document would be compressed
-# regardless of the global pdf_compressed setting.
-#
-# further:  http://rst2pdf.ralsina.me/handbook.html#sphinx
-
-# FIXME: at this time, the rst2pdf fails with a bug
-#pdf_documents = [
-#(master_doc, main_name, project, author)
-#, ]
-
-# If false, no index is generated.
-pdf_use_index = False
-
-# How many levels deep should the table of contents be?
-pdf_toc_depth = 3
-
-# Add section number to section references
-pdf_use_numbered_links = False
-
-# Background images fitting mode
-pdf_fit_background_mode = 'scale'
-
-
-# 
--
-# Options for manual page output
-# 
--
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-# man_pages = [
-# (master_doc, 'kernel-doc', u'Kernel-Doc',
-# 

[PATCH 08/12] doc-rst: customize RTD theme, captions & inline literal

2016-07-05 Thread Mauro Carvalho Chehab
From: Markus Heiser 

The layout of (table) captions in the RTD theme is a bit ugly and the
bordered, red colored of inline literals is a bit to gaudy. The
requirements has been discussed in the ML [1].

captions:

  - captions should have 100% (not 85%) font size
  - hide the permalink symbol as long as link is not hovered

inline literal:

  - drop the borderbox and red color

[1] 
http://article.gmane.org/gmane.linux.drivers.video-input-infrastructure/101099

Signed-off-by: Markus Heiser 
Signed-off-by: Mauro Carvalho Chehab 
---
 Documentation/sphinx-static/theme_overrides.css | 25 +
 1 file changed, 25 insertions(+)

diff --git a/Documentation/sphinx-static/theme_overrides.css 
b/Documentation/sphinx-static/theme_overrides.css
index ea06799214fd..c97d8428302d 100644
--- a/Documentation/sphinx-static/theme_overrides.css
+++ b/Documentation/sphinx-static/theme_overrides.css
@@ -25,4 +25,29 @@
 .wy-table-responsive { overflow: auto; }
 .rst-content table.docutils caption { text-align: left; font-size: 100%; }
 
+/* captions:
+ *
+ *   - captions should have 100% (not 85%) font size
+ *   - hide the permalink symbol as long as link is not hovered
+ */
+
+caption, .wy-table caption, .rst-content table.field-list caption {
+font-size: 100%;
+}
+caption a.headerlink { opacity: 0; }
+caption a.headerlink:hover { opacity: 1; }
+
+/* inline literal: drop the borderbox and red color */
+
+code, .rst-content tt, .rst-content code {
+color: inherit;
+border: none;
+background: inherit;
+font-size: 85%;
+}
+
+.rst-content tt.literal,.rst-content tt.literal,.rst-content code.literal {
+color: inherit;
+}
+
 }
-- 
2.7.4

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] media: rc: nuvoton: decrease size of raw event fifo

2016-07-05 Thread Heiner Kallweit
Am 05.07.2016 um 11:17 schrieb Sean Young:
> On Tue, Jul 05, 2016 at 08:05:16AM +0200, Heiner Kallweit wrote:
>> Am 04.07.2016 um 23:06 schrieb Sean Young:
>>> On Mon, Jul 04, 2016 at 10:51:50PM +0200, Heiner Kallweit wrote:
 Am 04.07.2016 um 22:13 schrieb Sean Young:
> On Wed, May 18, 2016 at 10:29:41PM +0200, Heiner Kallweit wrote:
>> This chip has a 32 byte HW FIFO only. Therefore the default fifo size
>> of 512 raw events is not needed and can be significantly decreased.
>>
>> Signed-off-by: Heiner Kallweit 
>
> The 32 byte hardware queue is read from an interrupt handler and added
> to the kfifo. The kfifo is read by the decoders in a seperate kthread
> (in ir_raw_event_thread). If we have a long IR (e.g. nec which has 
> 66 edges) and the kthread is not scheduled in time (e.g. high load), will
> we not end up with an overflow in the kfifo and unable to decode it?
>
 The interrupt handler is triggered latest when 24 bytes have been read.
 (at least that's how the chip gets configured at the moment)
 This gives the decoder thread at least 8 bytes time to process the
 kfifo. This should be sufficient even under high load.
>>>
>>> No, it gives the interrupt handler at least 8 bytes time to read the
>>> hardware fifo (and add it to the kfifo). There are no guarantees about
>>> when the decoder kthread runs (which reads the kfifo).
>>>
>>> To put it another way, in the nuvoton interrupt handler, you call 
>>> ir_raw_event_handle() which does a wake_up_process(). That puts the
>>> decoder process (it has a pid) in a runnable state and it will run at
>>> some future time.
>>>
>> You're right, that's the more precise description.
>> These 8 bytes time give the decoder process few msec's to start.
>> (Not sure wheter there's any protocol resulting in much shorter time.)
>> At least during my tests this was always sufficient.
> 
> So worst case scenario with NEC IR (I have not checked all ir protocols).
> 1. 32 bytes of IR read from hardware fifo.
> 2. IR in the middle of series of 1s (two edges, 1.125ms each)
> 3. After 13.5ms interrupt is triggered again as 12 new bits generated 24 edges
> 4. Decoder thread has not run and emptied the fifo.
> 5. kfifo overflow and IR cannot be decoded; key lost
> 
At least in the nuvoton driver the decoder thread is started whenever
something was read from the hw fifo and written to kfifo.
-> call to ir_raw_event_handle() at the end of nvt_process_rx_ir_data
It doesn't wait for the end of an IR packet.
Means in your example the decoder thread would be started after step 1
and whenever the hw fifo reaches the threshold to generate an irq.

>> However if you think 32 bytes might be too small as kfifo size I'd
>> also be fine with increasing it. The result should still be better
>> than the default size of 512.
> 
> So this depends on how many edges an remote could possible generate and
> how often the kthread will be scheduled to read it. For example I have
> a remote which repeats the entire nec code after 20ms if you hold a
> button down. That's about 800 edges per second, so with a kfifo of 512
> the kthread would have to be scheduled twice a second.
> 
> I think we should stick to the default of 512.
> 
> 
> Sean
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[bug report] [media] cec-funcs.h: static inlines to pack/unpack CEC messages

2016-07-05 Thread Dan Carpenter
Hello Hans Verkuil,

The patch 50f7d5a65e5a: "[media] cec-funcs.h: static inlines to
pack/unpack CEC messages" from Jun 17, 2016, leads to the following
static checker warning:

include/linux/cec-funcs.h:1154 cec_ops_set_osd_string()
warn: setting length 'msg->len - 3' to negative one

include/linux/cec-funcs.h
  1150  static inline void cec_ops_set_osd_string(const struct cec_msg *msg,
  1151__u8 *disp_ctl,
  1152char *osd)
  1153  {
  1154  unsigned int len = msg->len - 3;

The reason for this warning is that we know msg->len is at least 2 but
this code assumes it is at least 3.  There is a check in
cec_received_msg() which ensures that it is not <= 1.

  1155  
  1156  *disp_ctl = msg->msg[2];
  1157  if (len > 13)
  1158  len = 13;
  1159  memcpy(osd, msg->msg + 3, len);
  1160  osd[len] = '\0';
  1161  }

regards,
dan carpenter
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] [media] rc: ir-spi: add support for IR LEDs connected with SPI

2016-07-05 Thread Andi Shyti
Hi Rob,

> > The ir-spi is a simple device driver which supports the
> > connection between an IR LED and the MOSI line of an SPI device.
> 
> Please split the binding from the driver.

OK!

> > +Device tree bindings for IR LED connected through SPI bus which is used as
> > +remote controller.
> 
> Do said devices have part numbers? Seems kind of generic and I've never 
> seen such device.

No, it doesn't, this is a simple irled driven by the SPI MOSI
line that works as a remote controller.

It looked strange to me as well when I heard of it the first
time, but it will be present in the upcoming tm2/tm2e patchset 
(i.e. Samsung Note 4 and Note 4 edge).

> > +Optional properties:
> > +   - irled,switch: specifies the gpio switch which enables the irled
> 
> Just "switch-gpios"

OK!

> > +controller-data {
> 
> This is part of the controller binding? Omit that from the example.

OK!

Thanks,
Andi
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] [media] rc: ir-spi: add support for IR LEDs connected with SPI

2016-07-05 Thread Rob Herring
On Fri, Jul 01, 2016 at 05:33:42PM +0900, Andi Shyti wrote:
> The ir-spi is a simple device driver which supports the
> connection between an IR LED and the MOSI line of an SPI device.

Please split the binding from the driver.


> The driver, indeed, uses the SPI framework to stream the raw data
> provided by userspace through a character device. The chardev is
> handled by the LIRC framework and its functionality basically
> provides:
> 
>  - raw write: data to be sent to the SPI and then streamed to the
>MOSI line;
>  - set frequency: sets the frequency whith which the data should
>be sent;
>  - set length: sets the data length. This information is
>optional, if the length is set, then userspace should send raw
>data only with that length; while if the length is set to '0',
>then the driver will figure out himself the length of the data
>based on the length of the data written on the character
>device.
>The latter is not recommended, though, as the driver, at
>any write, allocates and deallocates a buffer where the data
>from userspace are stored.
> 
> The driver provides three feedback commands:
> 
>  - get length: reads the length set and (as mentioned), if the
>length is '0' it will be calculated at any write
>  - get frequency: the driver reports the frequency. If userpace
>doesn't set the frequency, the driver will use a default value
>of 38000Hz.
> 
> The character device is created under /dev/lircX name, where X is
> and ID assigned by the LIRC framework.
> 
> Example of usage:
> 
> int fd, ret;
> ssize_t n;
> uint32_t val = 0;
> 
> fd = open("/dev/lirc0", O_RDWR);
> if (fd < 0) {
> fprintf(stderr, "unable to open the device\n");
> return -1;
> }
> 
> /* ioctl set frequency and length parameters */
> val = 6430;
> ret = ioctl(fd, LIRC_SET_LENGTH, );
> if (ret < 0)
> fprintf(stderr, "LIRC_SET_LENGTH failed\n");
> val = 608000;
> ret = ioctl(fd, LIRC_SET_FREQUENCY, );
> if (ret < 0)
> fprintf(stderr, "LIRC_SET_FREQUENCY failed\n");
> 
> /* read back length and frequency parameters */
> ret = ioctl(fd, LIRC_GET_LENGTH, );
> if (ret < 0)
> fprintf(stderr, "LIRC_GET_LENGTH failed\n");
> else
> fprintf(stdout, "legnth = %u\n", val);
> 
> ret = ioctl(fd, LIRC_GET_FREQUENCY, );
> if (ret < 0)
> fprintf(stderr, "LIRC_GET_FREQUENCY failed\n");
> else
> fprintf(stdout, "frequency = %u\n", val);
> 
> /* write data to device */
> n = write(fd, b, 6430);
> if (n < 0) {
> fprintf(stderr, "unable to write to the device\n");
> ret = -1;
> } else if (n != 6430) {
> fprintf(stderr, "failed to write everything, wrote %ld 
> instead\n", n);
> ret = -1;
> } else {
> fprintf(stdout, "written all the %ld data\n", n);
> }
> 
> close(fd);
> 
> The driver supports multi task access, but all the processes
> which hold the driver should use the same length and frequency
> parameters.
> 
> Change-Id: I323d7dd4a56d6dcf48f2c695293822eb04bdb85f
> Signed-off-by: Andi Shyti 
> ---
>  Documentation/devicetree/bindings/media/spi-ir.txt |  24 ++
>  drivers/media/rc/Kconfig   |   9 +
>  drivers/media/rc/Makefile  |   1 +
>  drivers/media/rc/ir-spi.c  | 301 
> +
>  4 files changed, 335 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/media/spi-ir.txt
>  create mode 100644 drivers/media/rc/ir-spi.c
> 
> diff --git a/Documentation/devicetree/bindings/media/spi-ir.txt 
> b/Documentation/devicetree/bindings/media/spi-ir.txt
> new file mode 100644
> index 000..2232d92
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/spi-ir.txt
> @@ -0,0 +1,24 @@
> +Device tree bindings for IR LED connected through SPI bus which is used as
> +remote controller.

Do said devices have part numbers? Seems kind of generic and I've never 
seen such device.

> +The IR LED switch is connected to the MOSI line of the SPI device and the 
> data
> +are delivered thourgh that.
> +
> +Required properties:
> + - compatible: should be "ir-spi"
> +
> +Optional properties:
> + - irled,switch: specifies the gpio switch which enables the irled

Just "switch-gpios"

> +
> +Example:
> +
> +irled@0 {
> +compatible = "ir-spi";
> +reg = <0x0>;
> +spi-max-frequency = <500>;
> +irled,switch = < 3 0>;
> +
> +controller-data {

This is part of the controller binding? Omit that from the example.

> +samsung,spi-feedback-delay = <0>;
> +

Re: pull request: lunux-firmware: Add Mediatek MT8173 VPU firmware

2016-07-05 Thread Kyle McMartin
On Mon, Jul 04, 2016 at 06:48:34PM +0800, Andrew-CT Chen wrote:
> Hi linux-firmware maintainers,
> 
> The following changes since commit 3ef7857d511ce6a91c5ce609da76c4702651cfa5:
> 
>   amdgpu: update polaris ucode (2016-06-28 14:31:11 -0400)
> 
> are available in the git repository at:
> 
>   https://github.com/andrewct-chen/vpu-linux-firmware.git vpu_encode
> 
> for you to fetch changes up to 40876d7b3c911161ab71bc84a6e90f257a13cdc4:
> 
>   mediatek: Add mt8173 VPU firmware (2016-07-04 16:26:54 +0800)

Pulled, thanks.

regards, --Kyle

> 
> 
> Andrew-CT Chen (1):
>   mediatek: Add mt8173 VPU firmware
> 
>  WHENCE|   19 +++
>  vpu_d.bin |  Bin 0 -> 4084848 bytes
>  vpu_p.bin |  Bin 0 -> 131036 bytes
>  3 files changed, 19 insertions(+)
>  create mode 100644 vpu_d.bin
>  create mode 100644 vpu_p.bin
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] adv7511: the h/vsync polarities were always positive

2016-07-05 Thread Hans Verkuil
Correctly set the h/vsync polarities instead of keeping to the
default (positive).

Signed-off-by: Hans Verkuil 
---
 drivers/media/i2c/adv7511.c | 5 +
 1 file changed, 5 insertions(+)

diff --git a/drivers/media/i2c/adv7511.c b/drivers/media/i2c/adv7511.c
index 161cbdb..f062694 100644
--- a/drivers/media/i2c/adv7511.c
+++ b/drivers/media/i2c/adv7511.c
@@ -763,6 +763,11 @@ static int adv7511_s_dv_timings(struct v4l2_subdev *sd,
/* save timings */
state->dv_timings = *timings;

+   /* set h/vsync polarities */
+   adv7511_wr_and_or(sd, 0x17, 0x9f,
+   ((timings->bt.polarities & V4L2_DV_VSYNC_POS_POL) ? 0 : 0x40) |
+   ((timings->bt.polarities & V4L2_DV_HSYNC_POS_POL) ? 0 : 0x20));
+
/* update quantization range based on new dv_timings */
adv7511_set_rgb_quantization_mode(sd, 
state->rgb_quantization_range_ctrl);

-- 
2.8.1


--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[GIT PULL FOR v4.8] Various dvb/rc fixes/improvements

2016-07-05 Thread Hans Verkuil
Mauro,

As requested, I'm helping out with reducing the backlog.

This is the third version of this pull request. The only difference with the
older pull requests is that these two patches are dropped:

https://patchwork.linuxtv.org/patch/34338/
https://patchwork.linuxtv.org/patch/34339/

I think you should take a look at those.

Regards,

Hans

The following changes since commit ab46f6d24bf57ddac0f5abe2f546a78af57b476c:

  [media] videodev2.h: Fix V4L2_PIX_FMT_YUV411P description (2016-06-28 
11:54:52 -0300)

are available in the git repository at:

  git://linuxtv.org/hverkuil/media_tree.git for-v4.8f

for you to fetch changes up to 32f2d0799571b9c2b9c07f9047111fd47329c911:

  media: rc: nuvoton: remove two unused elements in struct nvt_dev (2016-07-05 
12:13:36 +0200)


Antti Palosaari (14):
  si2168: add support for newer firmwares
  si2168: do not allow driver unbind
  si2157: do not allow driver unbind
  m88ds3103: remove useless most significant bit clear
  m88ds3103: calculate DiSEqC message sending time
  m88ds3103: improve ts clock setting
  m88ds3103: use Hz instead of kHz on calculations
  m88ds3103: refactor firmware download
  af9033: move statistics to read_status()
  af9033: do not allow driver unbind
  it913x: do not allow driver unbind
  rtl2830: do not allow driver unbind
  rtl2830: move statistics to read_status()
  rtl2832: do not allow driver unbind

Heiner Kallweit (10):
  media: rc: nuvoton: fix rx fifo overrun handling
  media: rc: nuvoton: remove interrupt handling for wakeup
  media: rc: nuvoton: clean up initialization of wakeup registers
  media: rc: nuvoton: remove wake states
  media: rc: nuvoton: simplify a few functions
  media: rc: nuvoton: remove unneeded code in nvt_process_rx_ir_data
  media: rc: nuvoton: remove study states
  media: rc: nuvoton: simplify interrupt handling code
  media: rc: nuvoton: remove unneeded check in nvt_get_rx_ir_data
  media: rc: nuvoton: remove two unused elements in struct nvt_dev

 drivers/media/dvb-frontends/af9033.c | 327 
++--
 drivers/media/dvb-frontends/m88ds3103.c  | 144 
++-
 drivers/media/dvb-frontends/m88ds3103_priv.h |   3 +-
 drivers/media/dvb-frontends/rtl2830.c| 203 
---
 drivers/media/dvb-frontends/rtl2830_priv.h   |   2 +-
 drivers/media/dvb-frontends/rtl2832.c|   1 +
 drivers/media/dvb-frontends/si2168.c | 127 
--
 drivers/media/dvb-frontends/si2168_priv.h|   8 ++-
 drivers/media/rc/nuvoton-cir.c   | 137 
-
 drivers/media/rc/nuvoton-cir.h   |  25 ---
 drivers/media/tuners/it913x.c|   1 +
 drivers/media/tuners/si2157.c|   3 +-
 12 files changed, 411 insertions(+), 570 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Good day, my name is Othman Bin Faisal, i sent a letter to you but without any response, i need your assistance to transfer 4.5 million Euros through an offshore account, can you assist me? Send me yo

2016-07-05 Thread OTHMAN BINFAISAL

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GIT PULL FOR v4.8] Various dvb/rc fixes/improvements

2016-07-05 Thread Sean Young
On Tue, Jul 05, 2016 at 12:25:17AM +0200, Hans Verkuil wrote:
> On 07/04/2016 10:19 PM, Sean Young wrote:
> > On Mon, Jul 04, 2016 at 01:54:56PM +0200, Hans Verkuil wrote:
> >> Mauro,
> >>
> >> As requested, I'm helping out with reducing the backlog.
> >>
> >> Regards,
> >>
> >>Hans
> >>
> >> The following changes since commit 
> >> ab46f6d24bf57ddac0f5abe2f546a78af57b476c:
> >>
> >>   [media] videodev2.h: Fix V4L2_PIX_FMT_YUV411P description (2016-06-28 
> >> 11:54:52 -0300)
> >>
> >> are available in the git repository at:
> >>
> >>   git://linuxtv.org/hverkuil/media_tree.git for-v4.8f
> >>
> >> for you to fetch changes up to 920be8ec8843d42ef3181f9a9fb988c49481b165:
> >>
> >>   media: rc: nuvoton: remove two unused elements in struct nvt_dev 
> >> (2016-07-04 13:26:37 +0200)
> >>
> >> 
> >> Antti Palosaari (14):
> >>   si2168: add support for newer firmwares
> >>   si2168: do not allow driver unbind
> >>   si2157: do not allow driver unbind
> >>   m88ds3103: remove useless most significant bit clear
> >>   m88ds3103: calculate DiSEqC message sending time
> >>   m88ds3103: improve ts clock setting
> >>   m88ds3103: use Hz instead of kHz on calculations
> >>   m88ds3103: refactor firmware download
> >>   af9033: move statistics to read_status()
> >>   af9033: do not allow driver unbind
> >>   it913x: do not allow driver unbind
> >>   rtl2830: do not allow driver unbind
> >>   rtl2830: move statistics to read_status()
> >>   rtl2832: do not allow driver unbind
> >>
> >> Heiner Kallweit (12):
> >>   media: rc: make fifo size for raw events configurable via rc_dev
> 
> I kept this one,
> 
> >>   media: rc: nuvoton: decrease size of raw event fifo
> 
> but dropped this one from the pull request until this is resolved.

Both should be dropped as the idea itself is broken.


Sean
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] media: rc: nuvoton: decrease size of raw event fifo

2016-07-05 Thread Sean Young
On Tue, Jul 05, 2016 at 08:05:16AM +0200, Heiner Kallweit wrote:
> Am 04.07.2016 um 23:06 schrieb Sean Young:
> > On Mon, Jul 04, 2016 at 10:51:50PM +0200, Heiner Kallweit wrote:
> >> Am 04.07.2016 um 22:13 schrieb Sean Young:
> >>> On Wed, May 18, 2016 at 10:29:41PM +0200, Heiner Kallweit wrote:
>  This chip has a 32 byte HW FIFO only. Therefore the default fifo size
>  of 512 raw events is not needed and can be significantly decreased.
> 
>  Signed-off-by: Heiner Kallweit 
> >>>
> >>> The 32 byte hardware queue is read from an interrupt handler and added
> >>> to the kfifo. The kfifo is read by the decoders in a seperate kthread
> >>> (in ir_raw_event_thread). If we have a long IR (e.g. nec which has 
> >>> 66 edges) and the kthread is not scheduled in time (e.g. high load), will
> >>> we not end up with an overflow in the kfifo and unable to decode it?
> >>>
> >> The interrupt handler is triggered latest when 24 bytes have been read.
> >> (at least that's how the chip gets configured at the moment)
> >> This gives the decoder thread at least 8 bytes time to process the
> >> kfifo. This should be sufficient even under high load.
> > 
> > No, it gives the interrupt handler at least 8 bytes time to read the
> > hardware fifo (and add it to the kfifo). There are no guarantees about
> > when the decoder kthread runs (which reads the kfifo).
> > 
> > To put it another way, in the nuvoton interrupt handler, you call 
> > ir_raw_event_handle() which does a wake_up_process(). That puts the
> > decoder process (it has a pid) in a runnable state and it will run at
> > some future time.
> > 
> You're right, that's the more precise description.
> These 8 bytes time give the decoder process few msec's to start.
> (Not sure wheter there's any protocol resulting in much shorter time.)
> At least during my tests this was always sufficient.

So worst case scenario with NEC IR (I have not checked all ir protocols).
1. 32 bytes of IR read from hardware fifo.
2. IR in the middle of series of 1s (two edges, 1.125ms each)
3. After 13.5ms interrupt is triggered again as 12 new bits generated 24 edges
4. Decoder thread has not run and emptied the fifo.
5. kfifo overflow and IR cannot be decoded; key lost

> However if you think 32 bytes might be too small as kfifo size I'd
> also be fine with increasing it. The result should still be better
> than the default size of 512.

So this depends on how many edges an remote could possible generate and
how often the kthread will be scheduled to read it. For example I have
a remote which repeats the entire nec code after 20ms if you hold a
button down. That's about 800 edges per second, so with a kfifo of 512
the kthread would have to be scheduled twice a second.

I think we should stick to the default of 512.


Sean
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 1/3] sur40: properly report a single frame rate of 60 FPS

2016-07-05 Thread Hans Verkuil
On 07/05/2016 08:56 AM, Florian Echtler wrote:
> Hello Hans,
> 
> On 05.07.2016 08:41, Hans Verkuil wrote:
>> On 05/31/2016 10:15 PM, Florian Echtler wrote:
>>> The device hardware is always running at 60 FPS, so report this both via
>>> PARM_IOCTL and ENUM_FRAMEINTERVALS.
>>>
>>> Signed-off-by: Martin Kaltenbrunner 
>>> Signed-off-by: Florian Echtler 
>>> ---
>>>  drivers/input/touchscreen/sur40.c | 20 ++--
>>>  1 file changed, 18 insertions(+), 2 deletions(-)
>>>
>>> @@ -880,6 +893,9 @@ static const struct v4l2_ioctl_ops 
>>> sur40_video_ioctl_ops = {
>>> .vidioc_enum_framesizes = sur40_vidioc_enum_framesizes,
>>> .vidioc_enum_frameintervals = sur40_vidioc_enum_frameintervals,
>>>  
>>> +   .vidioc_g_parm = sur40_ioctl_parm,
>>> +   .vidioc_s_parm = sur40_ioctl_parm,
>>
>> Why is s_parm added when you can't change the framerate?
> 
> Oh, I thought it's mandatory to always have s_parm if you have g_parm
> (even if it always returns the same values).
> 
>> Same questions for the
>> enum_frameintervals function: it doesn't hurt to have it, but if there is 
>> only
>> one unchangeable framerate, then it doesn't make much sense.
> 
> If you don't have enum_frameintervals, how would you find out about the
> framerate otherwise? Is g_parm itself enough already for all userspace
> tools?

It should be. The enum_frameintervals function is much newer than g_parm.

Frankly, I have the same problem with enum_framesizes: it reports only one
size. These two enum ioctls are normally only implemented if there are at
least two choices. If there is no choice, then G_FMT will return the size
and G_PARM the framerate and there is no need to enumerate anything.

The problem is that the spec is ambiguous as to the requirements if there
is only one choice for size and interval. Are the enum ioctls allowed in
that case? Personally I think there is nothing against that. But should
S_PARM also be allowed even though it can't actually change the frameperiod?

Don't bother making changes yet, let me think about this for a bit.

Regards,

Hans

> 
>> Sorry, missed this when I reviewed this the first time around.
> 
> No problem.
> 
> Best, Florian
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 1/3] sur40: properly report a single frame rate of 60 FPS

2016-07-05 Thread Florian Echtler
Hello Hans,

On 05.07.2016 08:41, Hans Verkuil wrote:
> On 05/31/2016 10:15 PM, Florian Echtler wrote:
>> The device hardware is always running at 60 FPS, so report this both via
>> PARM_IOCTL and ENUM_FRAMEINTERVALS.
>>
>> Signed-off-by: Martin Kaltenbrunner 
>> Signed-off-by: Florian Echtler 
>> ---
>>  drivers/input/touchscreen/sur40.c | 20 ++--
>>  1 file changed, 18 insertions(+), 2 deletions(-)
>>
>> @@ -880,6 +893,9 @@ static const struct v4l2_ioctl_ops sur40_video_ioctl_ops 
>> = {
>>  .vidioc_enum_framesizes = sur40_vidioc_enum_framesizes,
>>  .vidioc_enum_frameintervals = sur40_vidioc_enum_frameintervals,
>>  
>> +.vidioc_g_parm = sur40_ioctl_parm,
>> +.vidioc_s_parm = sur40_ioctl_parm,
> 
> Why is s_parm added when you can't change the framerate?

Oh, I thought it's mandatory to always have s_parm if you have g_parm
(even if it always returns the same values).

> Same questions for the
> enum_frameintervals function: it doesn't hurt to have it, but if there is only
> one unchangeable framerate, then it doesn't make much sense.

If you don't have enum_frameintervals, how would you find out about the
framerate otherwise? Is g_parm itself enough already for all userspace
tools?

> Sorry, missed this when I reviewed this the first time around.

No problem.

Best, Florian
-- 
SENT FROM MY DEC VT50 TERMINAL



signature.asc
Description: OpenPGP digital signature


Re: [GIT PULL FOR v4.8] Various fixes/improvements

2016-07-05 Thread Hans Verkuil
On 07/05/2016 07:29 AM, Florian Echtler wrote:
> Hello Hans,
> 
> On 01.07.2016 16:45, Hans Verkuil wrote:
>> Florian Echtler (3):
>>   sur40: properly report a single frame rate of 60 FPS
>>   sur40: lower poll interval to fix occasional FPS drops to ~56 FPS
>>   sur40: fix occasional oopses on device close
> 
> Thanks for merging this, AFAICS these fixes will now be part of 4.8. We
> were hoping they might also be picked for the 4.4 LTS kernel, will this
> be decided by Greg KH or will it happen automatically?

I've added a Cc to the stable list for patches 2 and 3: those patches will
go to kernels 4.2 and up. Please mention such things next time.

I took another look at patch 1 and found that I had a question about it.
Patch 1 is also not something for older kernels since it isn't a bug fix.

Regards,

Hans
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[GIT PULL FOR v4.8] Various fixes/improvements

2016-07-05 Thread Hans Verkuil
Hi Mauro,

This supersedes https://patchwork.linuxtv.org/patch/34974. I dropped one patch 
from Florian
that I had some more questions about and added a Cc to stable for the two other 
patches from
Florian so that they are added to kernels 4.2 and up.

Regards,

Hans

The following changes since commit ab46f6d24bf57ddac0f5abe2f546a78af57b476c:

  [media] videodev2.h: Fix V4L2_PIX_FMT_YUV411P description (2016-06-28 
11:54:52 -0300)

are available in the git repository at:

  git://linuxtv.org/hverkuil/media_tree.git for-v4.8d

for you to fetch changes up to f50a0f81426e898e3868005ccfbfc05f8e80dba3:

  tw686x: make const structs static (2016-07-05 08:37:09 +0200)


Alexander Shiyan (1):
  media: coda: Fix probe() if reset controller is missing

Alexey Khoroshilov (1):
  bt8xx: remove needless module refcounting

Amitoj Kaur Chawla (2):
  saa7164: Replace if and BUG with BUG_ON
  ddbridge: Replace vmalloc with vzalloc

Arnd Bergmann (1):
  dvb: use ktime_t for internal timeout

Dragos Bogdan (1):
  adv7604: Add support for hardware reset

Florian Echtler (2):
  sur40: lower poll interval to fix occasional FPS drops to ~56 FPS
  sur40: fix occasional oopses on device close

Guennadi Liakhovetski (1):
  V4L: fix the Z16 format definition

Hans Verkuil (4):
  v4l2-tpg: ignore V4L2_DV_RGB_RANGE setting for YUV formats
  rc-main: fix kernel oops after unloading keymap module
  sur40: drop unnecessary format description
  tw686x: make const structs static

Javier Martinez Canillas (2):
  DocBook: add dmabuf as streaming I/O in VIDIOC_REQBUFS description
  DocBook: mention the memory type to be set for all streaming I/O

Lubomir Rintel (2):
  usbtv: clarify the licensing
  usbtv: improve a comment

Ricardo Ribalda Delgado (4):
  vb2: V4L2_BUF_FLAG_DONE is set after DQBUF
  vb2: Merge vb2_internal_dqbuf and vb2_dqbuf
  vb2: Merge vb2_internal_qbuf and vb2_qbuf
  vb2: Fix comment

 Documentation/DocBook/media/v4l/io.xml |  4 ++--
 Documentation/DocBook/media/v4l/pixfmt-z16.xml |  2 +-
 Documentation/DocBook/media/v4l/vidioc-reqbufs.xml |  2 +-
 drivers/input/touchscreen/sur40.c  |  6 ++---
 drivers/media/common/v4l2-tpg/v4l2-tpg-core.c  |  4 ++--
 drivers/media/dvb-core/demux.h |  2 +-
 drivers/media/dvb-core/dmxdev.c|  2 +-
 drivers/media/dvb-core/dvb_demux.c | 17 +--
 drivers/media/dvb-core/dvb_demux.h |  4 ++--
 drivers/media/dvb-core/dvb_net.c   |  2 +-
 drivers/media/i2c/adv7604.c| 20 +
 drivers/media/pci/bt8xx/dst_ca.c   |  2 --
 drivers/media/pci/ddbridge/ddbridge-core.c |  3 +--
 drivers/media/pci/saa7164/saa7164-encoder.c|  6 ++---
 drivers/media/pci/tw686x/tw686x-video.c|  6 ++---
 drivers/media/platform/coda/coda-common.c  |  2 +-
 drivers/media/rc/rc-main.c | 10 +++--
 drivers/media/usb/usbtv/usbtv-audio.c  | 28 
++--
 drivers/media/usb/usbtv/usbtv-core.c   | 40 
+++---
 drivers/media/usb/usbtv/usbtv-video.c  | 59 
+-
 drivers/media/usb/usbtv/usbtv.h| 22 +++
 drivers/media/v4l2-core/videobuf2-core.c   |  2 +-
 drivers/media/v4l2-core/videobuf2-v4l2.c   | 47 
+++-
 23 files changed, 188 insertions(+), 104 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 1/3] sur40: properly report a single frame rate of 60 FPS

2016-07-05 Thread Hans Verkuil
On 05/31/2016 10:15 PM, Florian Echtler wrote:
> The device hardware is always running at 60 FPS, so report this both via
> PARM_IOCTL and ENUM_FRAMEINTERVALS.
> 
> Signed-off-by: Martin Kaltenbrunner 
> Signed-off-by: Florian Echtler 
> ---
>  drivers/input/touchscreen/sur40.c | 20 ++--
>  1 file changed, 18 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/input/touchscreen/sur40.c 
> b/drivers/input/touchscreen/sur40.c
> index 880c40b..4b1f703 100644
> --- a/drivers/input/touchscreen/sur40.c
> +++ b/drivers/input/touchscreen/sur40.c
> @@ -788,6 +788,19 @@ static int sur40_vidioc_fmt(struct file *file, void 
> *priv,
>   return 0;
>  }
>  
> +static int sur40_ioctl_parm(struct file *file, void *priv,
> + struct v4l2_streamparm *p)
> +{
> + if (p->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
> + return -EINVAL;
> +
> + p->parm.capture.capability = V4L2_CAP_TIMEPERFRAME;
> + p->parm.capture.timeperframe.numerator = 1;
> + p->parm.capture.timeperframe.denominator = 60;
> + p->parm.capture.readbuffers = 3;
> + return 0;
> +}
> +
>  static int sur40_vidioc_enum_fmt(struct file *file, void *priv,
>struct v4l2_fmtdesc *f)
>  {
> @@ -814,13 +827,13 @@ static int sur40_vidioc_enum_framesizes(struct file 
> *file, void *priv,
>  static int sur40_vidioc_enum_frameintervals(struct file *file, void *priv,
>   struct v4l2_frmivalenum *f)
>  {
> - if ((f->index > 1) || (f->pixel_format != V4L2_PIX_FMT_GREY)
> + if ((f->index > 0) || (f->pixel_format != V4L2_PIX_FMT_GREY)
>   || (f->width  != sur40_video_format.width)
>   || (f->height != sur40_video_format.height))
>   return -EINVAL;
>  
>   f->type = V4L2_FRMIVAL_TYPE_DISCRETE;
> - f->discrete.denominator  = 60/(f->index+1);
> + f->discrete.denominator  = 60;
>   f->discrete.numerator = 1;
>   return 0;
>  }
> @@ -880,6 +893,9 @@ static const struct v4l2_ioctl_ops sur40_video_ioctl_ops 
> = {
>   .vidioc_enum_framesizes = sur40_vidioc_enum_framesizes,
>   .vidioc_enum_frameintervals = sur40_vidioc_enum_frameintervals,
>  
> + .vidioc_g_parm = sur40_ioctl_parm,
> + .vidioc_s_parm = sur40_ioctl_parm,

Why is s_parm added when you can't change the framerate? Same questions for the
enum_frameintervals function: it doesn't hurt to have it, but if there is only
one unchangeable framerate, then it doesn't make much sense.

Sorry, missed this when I reviewed this the first time around.

Regards,

Hans

> +
>   .vidioc_enum_input  = sur40_vidioc_enum_input,
>   .vidioc_g_input = sur40_vidioc_g_input,
>   .vidioc_s_input = sur40_vidioc_s_input,
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] media: rc: nuvoton: decrease size of raw event fifo

2016-07-05 Thread Heiner Kallweit
Am 04.07.2016 um 23:06 schrieb Sean Young:
> On Mon, Jul 04, 2016 at 10:51:50PM +0200, Heiner Kallweit wrote:
>> Am 04.07.2016 um 22:13 schrieb Sean Young:
>>> On Wed, May 18, 2016 at 10:29:41PM +0200, Heiner Kallweit wrote:
 This chip has a 32 byte HW FIFO only. Therefore the default fifo size
 of 512 raw events is not needed and can be significantly decreased.

 Signed-off-by: Heiner Kallweit 
>>>
>>> The 32 byte hardware queue is read from an interrupt handler and added
>>> to the kfifo. The kfifo is read by the decoders in a seperate kthread
>>> (in ir_raw_event_thread). If we have a long IR (e.g. nec which has 
>>> 66 edges) and the kthread is not scheduled in time (e.g. high load), will
>>> we not end up with an overflow in the kfifo and unable to decode it?
>>>
>> The interrupt handler is triggered latest when 24 bytes have been read.
>> (at least that's how the chip gets configured at the moment)
>> This gives the decoder thread at least 8 bytes time to process the
>> kfifo. This should be sufficient even under high load.
> 
> No, it gives the interrupt handler at least 8 bytes time to read the
> hardware fifo (and add it to the kfifo). There are no guarantees about
> when the decoder kthread runs (which reads the kfifo).
> 
> To put it another way, in the nuvoton interrupt handler, you call 
> ir_raw_event_handle() which does a wake_up_process(). That puts the
> decoder process (it has a pid) in a runnable state and it will run at
> some future time.
> 
You're right, that's the more precise description.
These 8 bytes time give the decoder process few msec's to start.
(Not sure wheter there's any protocol resulting in much shorter time.)
At least during my tests this was always sufficient.

However if you think 32 bytes might be too small as kfifo size I'd
also be fine with increasing it. The result should still be better
than the default size of 512.

Heiner

> 
> Sean
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: IR remote stopped working in kernels 4.5 and 4.6

2016-07-05 Thread Heiner Kallweit
Am 04.07.2016 um 23:18 schrieb James Bottomley:
> On Mon, 2016-07-04 at 23:08 +0200, Heiner Kallweit wrote:
>> Am 04.07.2016 um 22:36 schrieb James Bottomley:
>>> This looks to be a problem with the rc subsystem.  The IR 
>>> controller in question is part of a cx8800 atsc card. In the 4.4 
>>> kernel, where it works, this is what ir-keytable says:
>>>
>>> Found /sys/class/rc/rc0/ (/dev/input/event12) with:
>>> Driver cx88xx, table rc-hauppauge
>>> Supported protocols: other lirc rc-5 jvc sony nec sanyo mce-kbd
>>> rc-6 sharp xmp 
>>> Enabled protocols: lirc nec 
>>> Name: cx88 IR (pcHDTV HD3000 HDTV)
>>> bus: 1, vendor/product: 7063:3000, version: 0x0001
>>> Repeat delay = 500 ms, repeat period = 125 ms
>>>
>>> And in 4.6, where it doesn't work:
>>>
>>> Found /sys/class/rc/rc0/ (/dev/input/event12) with:
>>> Driver cx88xx, table rc-hauppauge
>>> Supported protocols: lirc 
After having had a look at the cx88 driver the issue seems to be there.
For the HD3000 allowed_protocols is initialized to RC_BIT_OTHER only.
This prevents autoloading of the NEC module.

If the device is not restricted to a particular protocol (some devices
supported by cx88 seem to be restricted to the NEC protocol) then
allowed_protocols should be set to RC_BIT_ALL.

Can you test with this change?

If HD3000 is restricted to NEC then the initialization should be
similar to e.g. PROLINK PLAYTVPVR

>>> Enabled protocols: lirc 
>>> Name: cx88 IR (pcHDTV HD3000 HDTV)
>>> bus: 1, vendor/product: 7063:3000, version: 0x0001
>>> Repeat delay = 500 ms, repeat period = 125 ms
>>>
>>> The particular remote in question seems to require the nec protocol 
>>> to work and the failure in 4.5 and 4.6 is having any supported
>>> protocols at all.  I can get the remote to start working again by 
>>> adding the nec protocol:
>>>
>>> echo nec > /sys/class/rc/rc0/protocols
>>>
>>> But it would be nice to have this happen by default rather than 
>>> having to add yet another work around init script.
>>>
>> Meanwhile decoder modules are loaded on demand only. This can be done
>> automatically w/o the need for additional init scripts.
>>
>> If /etc/rc_maps.cfg includes a keymap with type NEC then the nec 
>> decoder module is loaded automatically.
>>
>> My rc_maps.cfg looks like this (and causes the SONY decoder module to 
>> be loaded automatically):
>>
>> #driver tablefile
>> *   *sony-rm-sx800
>>
>> And the keymap:
>>
>> # table sony-rm-sx800, type SONY
>> 0x110030KEY_PREVIOUS
>> 0x110031KEY_NEXT
>> 0x110033KEY_BACK
>> ..
>> ..
> 
> 
> Well, to work in the 4.4 kernel, the rc_maps.cfg names a table with the
> nec controller, so it seems that whatever is supposed to trigger
> autoloading isn't.
> 
> Is ir-keytable supposed to do this?  The current debian testing one is
> 
> Package: ir-keytable
> Source: v4l-utils
> Version: 1.10.1-1
> 
> Which seems to be the most current one.
> 
> James
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html