259a41d9ae
There are several problems with regards to the return of FE_SET_PROPERTY. The original idea were to return per-property return codes via tvp->result field, and to return an updated set of values. However, that never worked. What's actually implemented is: - the FE_SET_PROPERTY implementation doesn't call .get_frontend callback in order to get the actual parameters after return; - the tvp->result field is only filled if there's no error. So, it is always filled with zero; - FE_SET_PROPERTY doesn't call memdup_user() nor any other copy_to_user() function. So, any changes to the properties will be lost; - FE_SET_PROPERTY is declared as a write-only ioctl (IOW). While we could fix the above, it could cause regressions. So, let's just assume what the code really does, updating the documentation accordingly and removing the logic that would update the discarded tvp->result. Reviewed-by: Shuah Khan <shuahkh@osg.samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
77 lines
1.8 KiB
ReStructuredText
77 lines
1.8 KiB
ReStructuredText
.. -*- coding: utf-8; mode: rst -*-
|
|
|
|
.. _FE_GET_PROPERTY:
|
|
|
|
**************************************
|
|
ioctl FE_SET_PROPERTY, FE_GET_PROPERTY
|
|
**************************************
|
|
|
|
Name
|
|
====
|
|
|
|
FE_SET_PROPERTY - FE_GET_PROPERTY - FE_SET_PROPERTY sets one or more frontend properties. - FE_GET_PROPERTY returns one or more frontend properties.
|
|
|
|
|
|
Synopsis
|
|
========
|
|
|
|
.. c:function:: int ioctl( int fd, FE_GET_PROPERTY, struct dtv_properties *argp )
|
|
:name: FE_GET_PROPERTY
|
|
|
|
.. c:function:: int ioctl( int fd, FE_SET_PROPERTY, struct dtv_properties *argp )
|
|
:name: FE_SET_PROPERTY
|
|
|
|
|
|
Arguments
|
|
=========
|
|
|
|
``fd``
|
|
File descriptor returned by :ref:`open() <frontend_f_open>`.
|
|
|
|
``argp``
|
|
Pointer to struct :c:type:`dtv_properties`.
|
|
|
|
|
|
Description
|
|
===========
|
|
|
|
All Digital TV frontend devices support the ``FE_SET_PROPERTY`` and
|
|
``FE_GET_PROPERTY`` ioctls. The supported properties and statistics
|
|
depends on the delivery system and on the device:
|
|
|
|
- ``FE_SET_PROPERTY:``
|
|
|
|
- This ioctl is used to set one or more frontend properties.
|
|
|
|
- This is the basic command to request the frontend to tune into
|
|
some frequency and to start decoding the digital TV signal.
|
|
|
|
- This call requires read/write access to the device.
|
|
|
|
.. note::
|
|
|
|
At return, the values aren't updated to reflect the actual
|
|
parameters used. If the actual parameters are needed, an explicit
|
|
call to ``FE_GET_PROPERTY`` is needed.
|
|
|
|
- ``FE_GET_PROPERTY:``
|
|
|
|
- This ioctl is used to get properties and statistics from the
|
|
frontend.
|
|
|
|
- No properties are changed, and statistics aren't reset.
|
|
|
|
- This call only requires read-only access to the device.
|
|
|
|
|
|
Return Value
|
|
============
|
|
|
|
On success 0 is returned.
|
|
|
|
On error -1 is returned, and the ``errno`` variable is set
|
|
appropriately.
|
|
|
|
Generic error codes are described at the
|
|
:ref:`Generic Error Codes <gen-errors>` chapter.
|