[PATCH 0/3] [media] DVB-frontends: Deletion of a few unnecessary checks

2014-11-20 Thread SF Markus Elfring
From: Markus Elfring elfr...@users.sourceforge.net
Date: Wed, 19 Nov 2014 23:30:37 +0100

Another update suggestion was taken into account after a patch was applied
from static source code analysis.

Markus Elfring (3):
  DVB-frontends: Deletion of unnecessary checks before the function
call release_firmware
  m88ds3103: One function call less in m88ds3103_init() after error detection
  si2168: One function call less in si2168_init() after error detection

 drivers/media/dvb-frontends/drx39xyj/drxj.c |  3 +--
 drivers/media/dvb-frontends/drxk_hard.c |  3 +--
 drivers/media/dvb-frontends/m88ds3103.c | 12 ++--
 drivers/media/dvb-frontends/si2168.c| 10 +-
 4 files changed, 13 insertions(+), 15 deletions(-)

-- 
2.1.3

--
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 2/3] [media] m88ds3103: One function call less in m88ds3103_init() after error detection

2014-11-20 Thread SF Markus Elfring
From: Markus Elfring elfr...@users.sourceforge.net
Date: Wed, 19 Nov 2014 23:20:51 +0100

The release_firmware() function was called in some cases by the
m88ds3103_init() function during error handling even if the passed variable
contained still a null pointer. This implementation detail could be improved
by the introduction of another jump label.

Signed-off-by: Markus Elfring elfr...@users.sourceforge.net
---
 drivers/media/dvb-frontends/m88ds3103.c | 11 ++-
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/media/dvb-frontends/m88ds3103.c 
b/drivers/media/dvb-frontends/m88ds3103.c
index e88f0f6..82da715 100644
--- a/drivers/media/dvb-frontends/m88ds3103.c
+++ b/drivers/media/dvb-frontends/m88ds3103.c
@@ -590,7 +590,7 @@ static int m88ds3103_init(struct dvb_frontend *fe)
 
ret = m88ds3103_wr_reg(priv, 0xb2, 0x01);
if (ret)
-   goto err;
+   goto error_fw_release;
 
for (remaining = fw-size; remaining  0;
remaining -= (priv-cfg-i2c_wr_max - 1)) {
@@ -604,13 +604,13 @@ static int m88ds3103_init(struct dvb_frontend *fe)
dev_err(priv-i2c-dev,
%s: firmware download failed=%d\n,
KBUILD_MODNAME, ret);
-   goto err;
+   goto error_fw_release;
}
}
 
ret = m88ds3103_wr_reg(priv, 0xb2, 0x00);
if (ret)
-   goto err;
+   goto error_fw_release;
 
release_firmware(fw);
fw = NULL;
@@ -636,9 +636,10 @@ skip_fw_download:
priv-warm = true;
 
return 0;
-err:
-   release_firmware(fw);
 
+error_fw_release:
+   release_firmware(fw);
+err:
dev_dbg(priv-i2c-dev, %s: failed=%d\n, __func__, ret);
return ret;
 }
-- 
2.1.3

--
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 1/3] [media] DVB-frontends: Deletion of unnecessary checks before the function call release_firmware

2014-11-20 Thread SF Markus Elfring
From: Markus Elfring elfr...@users.sourceforge.net
Date: Wed, 19 Nov 2014 22:27:24 +0100

The release_firmware() function tests whether its argument is NULL
and then returns immediately. Thus the test around the call is not needed.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring elfr...@users.sourceforge.net
---
 drivers/media/dvb-frontends/drx39xyj/drxj.c | 3 +--
 drivers/media/dvb-frontends/drxk_hard.c | 3 +--
 drivers/media/dvb-frontends/m88ds3103.c | 3 +--
 drivers/media/dvb-frontends/si2168.c| 3 +--
 4 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/media/dvb-frontends/drx39xyj/drxj.c 
b/drivers/media/dvb-frontends/drx39xyj/drxj.c
index 7ca7a21..08e6ca5 100644
--- a/drivers/media/dvb-frontends/drx39xyj/drxj.c
+++ b/drivers/media/dvb-frontends/drx39xyj/drxj.c
@@ -12255,8 +12255,7 @@ static void drx39xxj_release(struct dvb_frontend *fe)
kfree(demod-my_ext_attr);
kfree(demod-my_common_attr);
kfree(demod-my_i2c_dev_addr);
-   if (demod-firmware)
-   release_firmware(demod-firmware);
+   release_firmware(demod-firmware);
kfree(demod);
kfree(state);
 }
diff --git a/drivers/media/dvb-frontends/drxk_hard.c 
b/drivers/media/dvb-frontends/drxk_hard.c
index cce94a7..f871478 100644
--- a/drivers/media/dvb-frontends/drxk_hard.c
+++ b/drivers/media/dvb-frontends/drxk_hard.c
@@ -6309,8 +6309,7 @@ static void drxk_release(struct dvb_frontend *fe)
struct drxk_state *state = fe-demodulator_priv;
 
dprintk(1, \n);
-   if (state-fw)
-   release_firmware(state-fw);
+   release_firmware(state-fw);
 
kfree(state);
 }
diff --git a/drivers/media/dvb-frontends/m88ds3103.c 
b/drivers/media/dvb-frontends/m88ds3103.c
index dfe0c2f..e88f0f6 100644
--- a/drivers/media/dvb-frontends/m88ds3103.c
+++ b/drivers/media/dvb-frontends/m88ds3103.c
@@ -637,8 +637,7 @@ skip_fw_download:
 
return 0;
 err:
-   if (fw)
-   release_firmware(fw);
+   release_firmware(fw);
 
dev_dbg(priv-i2c-dev, %s: failed=%d\n, __func__, ret);
return ret;
diff --git a/drivers/media/dvb-frontends/si2168.c 
b/drivers/media/dvb-frontends/si2168.c
index 8f81d97..6a455f9 100644
--- a/drivers/media/dvb-frontends/si2168.c
+++ b/drivers/media/dvb-frontends/si2168.c
@@ -469,8 +469,7 @@ static int si2168_init(struct dvb_frontend *fe)
 
return 0;
 err:
-   if (fw)
-   release_firmware(fw);
+   release_firmware(fw);
 
dev_dbg(s-client-dev, %s: failed=%d\n, __func__, ret);
return ret;
-- 
2.1.3

--
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 3/3] [media] si2168: One function call less in si2168_init() after error detection

2014-11-20 Thread SF Markus Elfring
From: Markus Elfring elfr...@users.sourceforge.net
Date: Wed, 19 Nov 2014 23:23:15 +0100

The release_firmware() function was called in some cases by the
si2168_init() function during error handling even if the passed variable
contained still a null pointer. This implementation detail could be improved
by the introduction of another jump label.

Signed-off-by: Markus Elfring elfr...@users.sourceforge.net
---
 drivers/media/dvb-frontends/si2168.c | 9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/media/dvb-frontends/si2168.c 
b/drivers/media/dvb-frontends/si2168.c
index 6a455f9..b8c6372 100644
--- a/drivers/media/dvb-frontends/si2168.c
+++ b/drivers/media/dvb-frontends/si2168.c
@@ -428,7 +428,7 @@ static int si2168_init(struct dvb_frontend *fe)
dev_err(s-client-dev,
%s: firmware file '%s' not found\n,
KBUILD_MODNAME, fw_file);
-   goto err;
+   goto error_fw_release;
}
}
 
@@ -448,7 +448,7 @@ static int si2168_init(struct dvb_frontend *fe)
dev_err(s-client-dev,
%s: firmware download failed=%d\n,
KBUILD_MODNAME, ret);
-   goto err;
+   goto error_fw_release;
}
}
 
@@ -468,9 +468,10 @@ static int si2168_init(struct dvb_frontend *fe)
s-active = true;
 
return 0;
-err:
-   release_firmware(fw);
 
+error_fw_release:
+   release_firmware(fw);
+err:
dev_dbg(s-client-dev, %s: failed=%d\n, __func__, ret);
return ret;
 }
-- 
2.1.3

--
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] adp1653: Add device tree bindings for LED controller

2014-11-20 Thread Jacek Anaszewski

Hi Pavel, Sakari,

On 11/19/2014 06:53 PM, Sakari Ailus wrote:

Hi Jacek and Pavel,

Jacek Anaszewski wrote:

Hi Pavel, Sakari,

On 11/18/2014 05:51 PM, Pavel Machek wrote:

Hi!


If the hardware LED changes with one that needs different current, the
block for the adp1653 stays the same, but white LED block should be
updated with different value.


I think that you are talking about sub nodes. Indeed I am leaning
towards this type of design.


I think I am :-).


I agree that flash-timeout should be per led - an array, similarly
as in case of iout's.


Agreed about per-led, disagreed about the array. As all the fields
would need arrays, and as LED system currently does not use arrays for
label and linux,default-trigger, I believe we should follow existing
design and model it as three devices. (It _is_ physically three
devices.)


Right, I missed that the leds/common.txt describes child node.

I propose following modifications to the binding:

Optional properties for child nodes:
- iout-mode-led : maximum intensity in microamperes of the LED
   (torch LED for flash devices)
- iout-mode-flash : initial intensity in microamperes of the
 flash LED; it is required to enable support
 for the flash led
- iout-mode-indicator : initial intensity in microamperes of the
 indicator LED; it is required to enable support
 for the indicator led
- max-iout-mode-led : maximum intensity in microamperes of the LED
   (torch LED for flash devices)
- max-iout-mode-flash : maximum intensity in microamperes of the
 flash LED
- max-iout-mode-indicator : maximum intensity in microamperes of the
 indicator LED
- flash-timeout :timeout in microseconds after which flash
 led is turned off


Ok, I took a look, and iout is notation I understand, but people may
have trouble with and I don't see it used anywhere else.

Also... do we need both current and max-current properties?

But regulators already have regulator-max-microamp property. So what
about:

max-microamp : maximum intensity in microamperes of the LED
 (torch LED for flash devices)
max-flash-microamp : initial intensity in microamperes of the
   flash LED; it is required to enable support
   for the flash led
flash-timeout-microseconds : timeout in microseconds after which flash
   led is turned off

If you had indicator on the same led, I guess

indicator-microamp : recommended intensity in microamperes of the LED
  for indication


The value for the indicator is maximum as well, not just a recommendation.



...would do?



Ongoing discussion allowed me for taking a look at the indicator issue
from different perspective. This is also vital for the issue of
whether a v4l2-flash sub-device should be created per device or
per sub-led [1].

Currently each sub-led is represented as a separate device tree
sub node and the led drivers create separate LED class device for the
sub nodes. What this implies is that indicator led also must be
represented by the separate LED class device.

This is contrary to the way how V4L2 Flash API approaches this issue,
as it considers a flash device as a regulator chip driven through
a bus. The API allows to set the led in torch or flash mode and
implicitly assumes that there can be additional indicator led
supported, which can't be turned on separately, but the drivers apply
the indicator current to the indicator led when the torch or flash led
is activated.


The indicator is independent of the flash LED in V4L2 flash API. At
least that's how it should be, and in adp1653 the two are independent,
but the as3645a can't use indicator with the flash AFAIR.


Right.


I propose to create separate v4l2-flash device for the indicator led,
and treat it as a regular sub-led similarly like it is done in the
LED subsystem. LED Flash class driver would only add a flag
LED_DEV_CAP_INDICATOR and basing on it the v4l2-flash sub-device
would create only V4L2_CID_FLASH_INDICATOR_INTENSITY control for it.
There could ba also additional control added:
V4L2_CID_FLASH_INDICATOR_PATTERN to support the feature
supported by some LED class drivers.


Interesting idea.

The flash controller is still a single I2C device with common set of
faults, for instance. Some devices refuse to work again in case of
faults until they are cleared (= read).


The V4L2_CID_FLASH_FAULT control should be also supported by the
indicator v4l2-flash sub-device then.


Could the indicator pattern control be present in the same sub-device?


Yes, this was my intention. To conclude - the indicator v4l2-flash 
sub-device should support up to three controls:

- V4L2_CID_FLASH_TORCH_INTENSITY
- V4L2_CID_FLASH_FAULT
- V4L2_CID_FLASH_INDICATOR_PATTERN (if supported by the LED Flash
class driver)

V4L2_CID_FLASH_INDICATOR_PATTERN would be a menu control with
custom 

Re: [PATCH/RFC v6 1/2] media: Add registration helpers for V4L2 flash

2014-11-20 Thread Sakari Ailus
Hi Jacek,

Thank you for your thoughtful writing on the subject.

Jacek Anaszewski wrote:
 Hi Sakari,
 
 On 09/22/2014 05:21 PM, Jacek Anaszewski wrote:
 This patch adds helper functions for registering/unregistering
 LED class flash devices as V4L2 subdevs. The functions should
 be called from the LED subsystem device driver. In case the
 support for V4L2 Flash sub-devices is disabled in the kernel
 config the functions' empty versions will be used.

 Signed-off-by: Jacek Anaszewski j.anaszew...@samsung.com
 Acked-by: Kyungmin Park kyungmin.p...@samsung.com
 Cc: Sakari Ailus sakari.ai...@iki.fi
 Cc: Hans Verkuil hans.verk...@cisco.com
 Cc: Bryan Wu coolo...@gmail.com
 Cc: Richard Purdie rpur...@rpsys.net
 ---
   drivers/media/v4l2-core/Kconfig  |   11 +
   drivers/media/v4l2-core/Makefile |2 +
   drivers/media/v4l2-core/v4l2-flash.c |  502
 ++
   include/media/v4l2-flash.h   |  135 +
   4 files changed, 650 insertions(+)
   create mode 100644 drivers/media/v4l2-core/v4l2-flash.c
   create mode 100644 include/media/v4l2-flash.h
 
 [...]
 
 After discussing on IRC the way of using compound controls for
 v4l2-flash sub-device I started to re-implement the patch but
 encountered subsequent issues, which make my inclination for
 abiding by the current version of the patch (separate v4l2-flash
 device for each sub-led) even stronger.
 
 Let's list arguments for both options:
 
 1. Single v4l2-flash sub-device for a flash device that can control
several sub-leds:
 
 a) a flash device driver has one related i2c device
 b) there exist hardware designs where some registers are
shared between sub-leds (e.g. flash timeout, flash status)
 
 2. Separate v4l2-flash sub-device for each sub-led of a flash device
 
 a) LED Flash class drivers create separate LED Flash device for
   sub-leds (enforced by led-triggers design). This way there is
   a simple one-to-one LED Flash device - v4l2-flash sub-device
   relation.
 b) if a single v4l2-flash sub-device was to control several
   LED Flash devices then array controls would have to be
   used for accessing the settings of every LED Flash device.
   This poses following issues:
 - the type of each V4L2 Flash control would have to be
   set to the compound one (e.g. V4L2_CTRL_TYPE_U32), which in
   turn would make the menu controls unavailable for querying
   and displaying e.g. in qv4l2. Also the types as bitmask, button
   would have to be avoided.

Good point. Currently the button control type is used for the strobe
control. For two leds we'd need an array of two button controls.

 - All elements of an array control have to have the same
   constraints and it would make impossible setting different min,
   max values (e.g. current, timeout, external strobe) for each
   sub-led. All the advantageous v4l2-ctrl mechanism related
   to validating and caching controls would have to be avoided
   and the user space would only get feedback in the form of
   failing ioctl when the value to be set is not properly aligned

True. This is quite unpleasant to the user indeed.

 - it is not possible to set only one element of the control
   array and thus the settings of each sub-led would have to be
   cached to avoid superfluous device register access
   (functionality already secured by non-array v4l2-controls)

Agreed. But this is still a relatively minor nuisance in the implementation.

 - the flash devices supporting single led could be provided
   with standard non-array controls, but it would produce
   cumbersome v4l2-flash code and inconsistent user space interface

 From the above it looks like the option 2. has much more advantages.
 The argument 1.a doesn't seem to be so vital in view of the fact
 that LED subsystem already breaks it. The argument 1.b can be obviated
 by caching the relevant values in the driver as it is for max77693-led.
 
 I think that choosing option 2. would allow for avoiding much work
 that is already done in v4l2-ctrls.c. Moreover it would keep the
 V4L2 Flash controls maintainable with qv4l2.

Fair enough.

My remaining concerns in using two sub-devices to expose the LEDs to user
space are thus:

- Software strobe synchronisation. This one is important. There's no way to
  push a button control from two sub-devices at the same time. AFAIR your
  device lets the user to strobe the LEDs separately, but they are still
  controlled through a single register. Either we could implement the strobe
  only for the first LED, and it'd also affect the other. Alternatively we
  could add one more boolean control to the second LED (while both
  sub-devices would have the strobe button) to tell the strobe is
  synchronous with the other sub-device.

- Faults. There's usually just a single set of faults. Do we expose them for
  both sub-devices, even if they are the same? I think I'd do just that.
  Reading the faults on 

[PATCH 1/1] [media] firewire: Deletion of an unnecessary check before the function call dvb_unregister_device

2014-11-20 Thread SF Markus Elfring
From: Markus Elfring elfr...@users.sourceforge.net
Date: Thu, 20 Nov 2014 10:49:07 +0100

The dvb_unregister_device() function tests whether its argument is NULL
and then returns immediately. Thus the test around the call is not needed.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring elfr...@users.sourceforge.net
---
 drivers/media/firewire/firedtv-ci.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/media/firewire/firedtv-ci.c 
b/drivers/media/firewire/firedtv-ci.c
index e5ebdbf..e63f582 100644
--- a/drivers/media/firewire/firedtv-ci.c
+++ b/drivers/media/firewire/firedtv-ci.c
@@ -253,6 +253,5 @@ int fdtv_ca_register(struct firedtv *fdtv)
 
 void fdtv_ca_release(struct firedtv *fdtv)
 {
-   if (fdtv-cadev)
-   dvb_unregister_device(fdtv-cadev);
+   dvb_unregister_device(fdtv-cadev);
 }
-- 
2.1.3

--
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 1/1] [media] i2c: Deletion of an unnecessary check before the function call rc_unregister_device

2014-11-20 Thread SF Markus Elfring
From: Markus Elfring elfr...@users.sourceforge.net
Date: Thu, 20 Nov 2014 11:13:16 +0100

The rc_unregister_device() function tests whether its argument is NULL
and then returns immediately. Thus the test around the call is not needed.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring elfr...@users.sourceforge.net
---
 drivers/media/i2c/ir-kbd-i2c.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/media/i2c/ir-kbd-i2c.c b/drivers/media/i2c/ir-kbd-i2c.c
index 8311f1a..175a761 100644
--- a/drivers/media/i2c/ir-kbd-i2c.c
+++ b/drivers/media/i2c/ir-kbd-i2c.c
@@ -464,8 +464,7 @@ static int ir_remove(struct i2c_client *client)
cancel_delayed_work_sync(ir-work);
 
/* unregister device */
-   if (ir-rc)
-   rc_unregister_device(ir-rc);
+   rc_unregister_device(ir-rc);
 
/* free memory */
return 0;
-- 
2.1.3

--
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/RFC v6 1/2] media: Add registration helpers for V4L2 flash

2014-11-20 Thread Jacek Anaszewski

Hi Sakari,

On 11/20/2014 10:36 AM, Sakari Ailus wrote:

Hi Jacek,

Thank you for your thoughtful writing on the subject.


I am just doing my best to bring it to a successful end :)


Jacek Anaszewski wrote:

Hi Sakari,

On 09/22/2014 05:21 PM, Jacek Anaszewski wrote:

This patch adds helper functions for registering/unregistering
LED class flash devices as V4L2 subdevs. The functions should
be called from the LED subsystem device driver. In case the
support for V4L2 Flash sub-devices is disabled in the kernel
config the functions' empty versions will be used.

Signed-off-by: Jacek Anaszewski j.anaszew...@samsung.com
Acked-by: Kyungmin Park kyungmin.p...@samsung.com
Cc: Sakari Ailus sakari.ai...@iki.fi
Cc: Hans Verkuil hans.verk...@cisco.com
Cc: Bryan Wu coolo...@gmail.com
Cc: Richard Purdie rpur...@rpsys.net
---
   drivers/media/v4l2-core/Kconfig  |   11 +
   drivers/media/v4l2-core/Makefile |2 +
   drivers/media/v4l2-core/v4l2-flash.c |  502
++
   include/media/v4l2-flash.h   |  135 +
   4 files changed, 650 insertions(+)
   create mode 100644 drivers/media/v4l2-core/v4l2-flash.c
   create mode 100644 include/media/v4l2-flash.h


[...]

After discussing on IRC the way of using compound controls for
v4l2-flash sub-device I started to re-implement the patch but
encountered subsequent issues, which make my inclination for
abiding by the current version of the patch (separate v4l2-flash
device for each sub-led) even stronger.

Let's list arguments for both options:

1. Single v4l2-flash sub-device for a flash device that can control
several sub-leds:

a) a flash device driver has one related i2c device
b) there exist hardware designs where some registers are
shared between sub-leds (e.g. flash timeout, flash status)

2. Separate v4l2-flash sub-device for each sub-led of a flash device

a) LED Flash class drivers create separate LED Flash device for
   sub-leds (enforced by led-triggers design). This way there is
   a simple one-to-one LED Flash device - v4l2-flash sub-device
   relation.
b) if a single v4l2-flash sub-device was to control several
   LED Flash devices then array controls would have to be
   used for accessing the settings of every LED Flash device.
   This poses following issues:
 - the type of each V4L2 Flash control would have to be
   set to the compound one (e.g. V4L2_CTRL_TYPE_U32), which in
   turn would make the menu controls unavailable for querying
   and displaying e.g. in qv4l2. Also the types as bitmask, button
   would have to be avoided.


Good point. Currently the button control type is used for the strobe
control. For two leds we'd need an array of two button controls.


 - All elements of an array control have to have the same
   constraints and it would make impossible setting different min,
   max values (e.g. current, timeout, external strobe) for each
   sub-led. All the advantageous v4l2-ctrl mechanism related
   to validating and caching controls would have to be avoided
   and the user space would only get feedback in the form of
   failing ioctl when the value to be set is not properly aligned


True. This is quite unpleasant to the user indeed.


 - it is not possible to set only one element of the control
   array and thus the settings of each sub-led would have to be
   cached to avoid superfluous device register access
   (functionality already secured by non-array v4l2-controls)


Agreed. But this is still a relatively minor nuisance in the implementation.


 - the flash devices supporting single led could be provided
   with standard non-array controls, but it would produce
   cumbersome v4l2-flash code and inconsistent user space interface



 From the above it looks like the option 2. has much more advantages.
The argument 1.a doesn't seem to be so vital in view of the fact
that LED subsystem already breaks it. The argument 1.b can be obviated
by caching the relevant values in the driver as it is for max77693-led.

I think that choosing option 2. would allow for avoiding much work
that is already done in v4l2-ctrls.c. Moreover it would keep the
V4L2 Flash controls maintainable with qv4l2.


Fair enough.

My remaining concerns in using two sub-devices to expose the LEDs to user
space are thus:

- Software strobe synchronisation. This one is important. There's no way to
   push a button control from two sub-devices at the same time. AFAIR your
   device lets the user to strobe the LEDs separately, but they are still
   controlled through a single register. Either we could implement the strobe
   only for the first LED, and it'd also affect the other. Alternatively we
   could add one more boolean control to the second LED (while both
   sub-devices would have the strobe button) to tell the strobe is
   synchronous with the other sub-device.


In the proposed max77693-led DT bindings it is possible to define
whether 

[PATCH 1/1] [media] platform: Deletion of unnecessary checks before two function calls

2014-11-20 Thread SF Markus Elfring
From: Markus Elfring elfr...@users.sourceforge.net
Date: Thu, 20 Nov 2014 11:44:20 +0100

The functions i2c_put_adapter() and release_firmware() test whether their
argument is NULL and then return immediately. Thus the test around the call
is not needed.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring elfr...@users.sourceforge.net
---
 drivers/media/platform/exynos4-is/fimc-is.c   | 6 ++
 drivers/media/platform/s3c-camif/camif-core.c | 3 +--
 2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/media/platform/exynos4-is/fimc-is.c 
b/drivers/media/platform/exynos4-is/fimc-is.c
index 5476dce..a1db27b 100644
--- a/drivers/media/platform/exynos4-is/fimc-is.c
+++ b/drivers/media/platform/exynos4-is/fimc-is.c
@@ -428,8 +428,7 @@ static void fimc_is_load_firmware(const struct firmware 
*fw, void *context)
 * needed around for copying to the IS working memory every
 * time before the Cortex-A5 is restarted.
 */
-   if (is-fw.f_w)
-   release_firmware(is-fw.f_w);
+   release_firmware(is-fw.f_w);
is-fw.f_w = fw;
 done:
mutex_unlock(is-lock);
@@ -937,8 +936,7 @@ static int fimc_is_remove(struct platform_device *pdev)
vb2_dma_contig_cleanup_ctx(is-alloc_ctx);
fimc_is_put_clocks(is);
fimc_is_debugfs_remove(is);
-   if (is-fw.f_w)
-   release_firmware(is-fw.f_w);
+   release_firmware(is-fw.f_w);
fimc_is_free_cpu_memory(is);
 
return 0;
diff --git a/drivers/media/platform/s3c-camif/camif-core.c 
b/drivers/media/platform/s3c-camif/camif-core.c
index b385747..3b09b5b 100644
--- a/drivers/media/platform/s3c-camif/camif-core.c
+++ b/drivers/media/platform/s3c-camif/camif-core.c
@@ -256,8 +256,7 @@ static void camif_unregister_sensor(struct camif_dev *camif)
v4l2_device_unregister_subdev(sd);
camif-sensor.sd = NULL;
i2c_unregister_device(client);
-   if (adapter)
-   i2c_put_adapter(adapter);
+   i2c_put_adapter(adapter);
 }
 
 static int camif_create_media_links(struct camif_dev *camif)
-- 
2.1.3

--
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 1/1] [media] rc: Deletion of unnecessary checks before two function calls

2014-11-20 Thread SF Markus Elfring
From: Markus Elfring elfr...@users.sourceforge.net
Date: Thu, 20 Nov 2014 13:01:32 +0100

The functions input_free_device() and rc_close() test whether their argument
is NULL and then return immediately. Thus the test around the call
is not needed.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring elfr...@users.sourceforge.net
---
 drivers/media/rc/lirc_dev.c | 3 +--
 drivers/media/rc/rc-main.c  | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/media/rc/lirc_dev.c b/drivers/media/rc/lirc_dev.c
index dc5cbff..5c232e6 100644
--- a/drivers/media/rc/lirc_dev.c
+++ b/drivers/media/rc/lirc_dev.c
@@ -518,8 +518,7 @@ int lirc_dev_fop_close(struct inode *inode, struct file 
*file)
 
WARN_ON(mutex_lock_killable(lirc_dev_lock));
 
-   if (ir-d.rdev)
-   rc_close(ir-d.rdev);
+   rc_close(ir-d.rdev);
 
ir-open--;
if (ir-attached) {
diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c
index 8d3b74c..66df9fb 100644
--- a/drivers/media/rc/rc-main.c
+++ b/drivers/media/rc/rc-main.c
@@ -1298,8 +1298,7 @@ void rc_free_device(struct rc_dev *dev)
if (!dev)
return;
 
-   if (dev-input_dev)
-   input_free_device(dev-input_dev);
+   input_free_device(dev-input_dev);
 
put_device(dev-dev);
 
-- 
2.1.3

--
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] adp1653: Add device tree bindings for LED controller

2014-11-20 Thread Pavel Machek
Hi!

 I would also swap the segments of a property name to follow the convention
 as in case of regulator-max-microamp.
 
 Updated version:
 
 ==
 
 Optional properties for child nodes:
 - max-microamp : maximum intensity in microamperes of the LED
(torch LED for flash devices)
 - flash-max-microamp : maximum intensity in microamperes of the
  flash LED; it is mandatory if the led should
  support the flash mode
 - flash-timeout-microsec : timeout in microseconds after which the flash
  led is turned off

Works for me. Do you want to submit a patch or should I do it?

 - indicator-pattern : identifier of the blinking pattern for the
 indicator led
 

This would need a bit more documentation, no?

Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.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] adp1653: Add device tree bindings for LED controller

2014-11-20 Thread Pavel Machek
Hi!

  But regulators already have regulator-max-microamp property. So what
  about:
 
  max-microamp : maximum intensity in microamperes of the LED
  (torch LED for flash devices)
  max-flash-microamp : initial intensity in microamperes of the
flash LED; it is required to enable support
for the flash led
  flash-timeout-microseconds : timeout in microseconds after which flash
led is turned off
 
  If you had indicator on the same led, I guess
 
  indicator-microamp : recommended intensity in microamperes of the LED
   for indication
 
 The value for the indicator is maximum as well, not just a
 recommendation.

Actually, no.

This is all for one LED, if you want to use it as a flash, torch and
indicator. You already know the maximum value with max-microamp.

Best regards,
Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.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


[PATCH 1/1] [media] USB: Deletion of unnecessary checks before three function calls

2014-11-20 Thread SF Markus Elfring
From: Markus Elfring elfr...@users.sourceforge.net
Date: Thu, 20 Nov 2014 13:26:36 +0100

The functions pvr2_hdw_destroy(), rc_unregister_device() and vfree() perform
also input parameter validation. Thus the test around the call is not needed.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring elfr...@users.sourceforge.net
---
 drivers/media/usb/au0828/au0828-input.c | 3 +--
 drivers/media/usb/em28xx/em28xx-input.c | 3 +--
 drivers/media/usb/pvrusb2/pvrusb2-context.c | 2 +-
 drivers/media/usb/s2255/s2255drv.c  | 3 +--
 4 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/drivers/media/usb/au0828/au0828-input.c 
b/drivers/media/usb/au0828/au0828-input.c
index fd0d3a90..3357141 100644
--- a/drivers/media/usb/au0828/au0828-input.c
+++ b/drivers/media/usb/au0828/au0828-input.c
@@ -353,8 +353,7 @@ void au0828_rc_unregister(struct au0828_dev *dev)
if (!ir)
return;
 
-   if (ir-rc)
-   rc_unregister_device(ir-rc);
+   rc_unregister_device(ir-rc);
 
/* done */
kfree(ir);
diff --git a/drivers/media/usb/em28xx/em28xx-input.c 
b/drivers/media/usb/em28xx/em28xx-input.c
index ed843bd..67a22f4 100644
--- a/drivers/media/usb/em28xx/em28xx-input.c
+++ b/drivers/media/usb/em28xx/em28xx-input.c
@@ -838,8 +838,7 @@ static int em28xx_ir_fini(struct em28xx *dev)
if (!ir)
goto ref_put;
 
-   if (ir-rc)
-   rc_unregister_device(ir-rc);
+   rc_unregister_device(ir-rc);
 
/* done */
kfree(ir);
diff --git a/drivers/media/usb/pvrusb2/pvrusb2-context.c 
b/drivers/media/usb/pvrusb2/pvrusb2-context.c
index 7c19ff7..c8761c7 100644
--- a/drivers/media/usb/pvrusb2/pvrusb2-context.c
+++ b/drivers/media/usb/pvrusb2/pvrusb2-context.c
@@ -80,7 +80,7 @@ static void pvr2_context_set_notify(struct pvr2_context *mp, 
int fl)
 static void pvr2_context_destroy(struct pvr2_context *mp)
 {
pvr2_trace(PVR2_TRACE_CTXT,pvr2_context %p (destroy),mp);
-   if (mp-hdw) pvr2_hdw_destroy(mp-hdw);
+   pvr2_hdw_destroy(mp-hdw);
pvr2_context_set_notify(mp, 0);
mutex_lock(pvr2_context_mutex);
if (mp-exist_next) {
diff --git a/drivers/media/usb/s2255/s2255drv.c 
b/drivers/media/usb/s2255/s2255drv.c
index 2c90186..3cab886 100644
--- a/drivers/media/usb/s2255/s2255drv.c
+++ b/drivers/media/usb/s2255/s2255drv.c
@@ -1976,8 +1976,7 @@ static int s2255_release_sys_buffers(struct s2255_vc *vc)
 {
unsigned long i;
for (i = 0; i  SYS_FRAMES; i++) {
-   if (vc-buffer.frame[i].lpvbits)
-   vfree(vc-buffer.frame[i].lpvbits);
+   vfree(vc-buffer.frame[i].lpvbits);
vc-buffer.frame[i].lpvbits = NULL;
}
return 0;
-- 
2.1.3

--
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] adp1653: Add device tree bindings for LED controller

2014-11-20 Thread Jacek Anaszewski

On 11/19/2014 10:45 AM, Jacek Anaszewski wrote:

Hi Pavel, Sakari,

On 11/18/2014 05:51 PM, Pavel Machek wrote:

Hi!


If the hardware LED changes with one that needs different current, the
block for the adp1653 stays the same, but white LED block should be
updated with different value.


I think that you are talking about sub nodes. Indeed I am leaning
towards this type of design.


I think I am :-).


I agree that flash-timeout should be per led - an array, similarly
as in case of iout's.


Agreed about per-led, disagreed about the array. As all the fields
would need arrays, and as LED system currently does not use arrays for
label and linux,default-trigger, I believe we should follow existing
design and model it as three devices. (It _is_ physically three
devices.)


Right, I missed that the leds/common.txt describes child node.

I propose following modifications to the binding:

Optional properties for child nodes:
- iout-mode-led : maximum intensity in microamperes of the LED
  (torch LED for flash devices)
- iout-mode-flash : initial intensity in microamperes of the
flash LED; it is required to enable support
for the flash led
- iout-mode-indicator : initial intensity in microamperes of the
indicator LED; it is required to enable support
for the indicator led
- max-iout-mode-led : maximum intensity in microamperes of the LED
  (torch LED for flash devices)
- max-iout-mode-flash : maximum intensity in microamperes of the
flash LED
- max-iout-mode-indicator : maximum intensity in microamperes of the
indicator LED
- flash-timeout :timeout in microseconds after which flash
led is turned off


Ok, I took a look, and iout is notation I understand, but people may
have trouble with and I don't see it used anywhere else.

Also... do we need both current and max-current properties?

But regulators already have regulator-max-microamp property. So what
about:

max-microamp : maximum intensity in microamperes of the LED
(torch LED for flash devices)
max-flash-microamp : initial intensity in microamperes of the
  flash LED; it is required to enable support
  for the flash led
flash-timeout-microseconds : timeout in microseconds after which flash
  led is turned off

If you had indicator on the same led, I guess

indicator-microamp : recommended intensity in microamperes of the LED
 for indication

...would do?



Ongoing discussion allowed me for taking a look at the indicator issue
from different perspective. This is also vital for the issue of
whether a v4l2-flash sub-device should be created per device or
per sub-led [1].

Currently each sub-led is represented as a separate device tree
sub node and the led drivers create separate LED class device for the
sub nodes. What this implies is that indicator led also must be
represented by the separate LED class device.

This is contrary to the way how V4L2 Flash API approaches this issue,
as it considers a flash device as a regulator chip driven through
a bus. The API allows to set the led in torch or flash mode and
implicitly assumes that there can be additional indicator led
supported, which can't be turned on separately, but the drivers apply
the indicator current to the indicator led when the torch or flash led
is activated.

I propose to create separate v4l2-flash device for the indicator led,
and treat it as a regular sub-led similarly like it is done in the
LED subsystem. LED Flash class driver would only add a flag
LED_DEV_CAP_INDICATOR and basing on it the v4l2-flash sub-device
would create only V4L2_CID_FLASH_INDICATOR_INTENSITY control for it.
There could ba also additional control added:
V4L2_CID_FLASH_INDICATOR_PATTERN to support the feature
supported by some LED class drivers.

 From the media device perspective such an approach would
be harmful, as the indicator led could be turned on right


I intended here wouldn't be harmful.


before strobing the flash or turning the torch on, by
separate calls to different v4l2-flash sub-devices.

The design described above would allow for avoiding issues I touched
in the message [1].

Regarding DT documentation:

I would also swap the segments of a property name to follow the
convention as in case of regulator-max-microamp.

Updated version:

==

Optional properties for child nodes:
- max-microamp : maximum intensity in microamperes of the LED
  (torch LED for flash devices)
- flash-max-microamp : maximum intensity in microamperes of the
flash LED; it is mandatory if the led should
support the flash mode
- flash-timeout-microsec : timeout in microseconds after which the flash
led is turned off
- indicator-pattern : identifier of the blinking pattern for the
   indicator led


Re: staging: media: lirc: lirc_zilog.c: replace custom print macros with dev_* and pr_*

2014-11-20 Thread Sean Young
On Mon, Nov 17, 2014 at 12:59:09PM -0200, Mauro Carvalho Chehab wrote:
 Em Sun, 9 Nov 2014 21:35:17 +
 Sean Young s...@mess.org escreveu:
 
  On Thu, Nov 06, 2014 at 08:56:47AM -0500, Andy Walls wrote:
   On November 6, 2014 8:54:28 AM EST, Andy Walls awalls.c...@gmail.com 
   wrote:
   Sean,
   
   Ir-kbd-i2c was never intended for Tx.
   
   You can transmit *short* arbitrary pulse-space streams with the zilog
   chip, by feeding it a parameter block that has the pulse timing
   information and then subsequently has been obfuscated.  The firmware
   file that LIRC uses in userspace is full of predefined versions of
   these things for RC5 and NEC IIRC.  This LIRC firmware file also holds
   the (de)obfuscation key.
   
   I've got a bunch of old notes on this stuff from essentially reverse
   engineering the firmware in the Z8.  IANAL, but to me, its use in
   developing in-kernel stuff could be dubious.
   
   Regards,
   Andy
  
  Very interesting.
  
  I had considered reverse engineering the z8 firmware but I never found a
  way to access it. I guess we have three options:
  
  1. I could use Andy's notes to implement Tx. I have not seen the original
 firmware code so I'm not contaminated by reverse engineering it. IANAL 
 but I thought this is an acceptable way of writing a driver.
  
  2. Hauppauge could prove us with documentation to write a driver with.
 
 I tried to get some info about that, but they are unable to get anything
 related to this design so far.
 
 So, I think that, if you have some time to dedicate to it, the best would
 be to go for  option #1.

Ok, thanks for asking.

Andy -- if you please send your notes please, I can work on implementing
the driver. I have hardware and time for to work on this.

Thanks

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: [RFC] adp1653: Add device tree bindings for LED controller

2014-11-20 Thread Jacek Anaszewski

Hi Pavel,

On 11/20/2014 01:12 PM, Pavel Machek wrote:

Hi!


I would also swap the segments of a property name to follow the convention
as in case of regulator-max-microamp.

Updated version:

==

Optional properties for child nodes:
- max-microamp : maximum intensity in microamperes of the LED
 (torch LED for flash devices)
- flash-max-microamp : maximum intensity in microamperes of the
   flash LED; it is mandatory if the led should
   support the flash mode
- flash-timeout-microsec : timeout in microseconds after which the flash
   led is turned off


Works for me. Do you want to submit a patch or should I do it?


You can submit a patch for leds/common.txt and a separate patch for the
adp1653 with a reference to the leds/common.txt for the child nodes.




- indicator-pattern : identifier of the blinking pattern for the
  indicator led



This would need a bit more documentation, no?


- indicator-pattern : identifier of the blinking pattern for the
  indicator led; valid identifiers should be
  defined in the documentation of the parent
  node.

I wouldn't go for pre-defined identifiers as the pattern
can be a combination of various settings like ramp-up, ramp-down,
pulse time etc. Drivers should expose only few combinations of
these settings in my opinion, like e.g. leds-lm355x.c does.

Regards,
Jacek

--
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: Fwd: Re: Re: Problems with Linux drivers (Debian Jessie kernel 3.16.0-4)

2014-11-20 Thread Christopher Scheuring
Hello,

I yust checked the SNR Level the DVBSky-Card providing with the
drivers from dvbsky.net (media_build-bst-14-141106):

# ./femon -a 0
using '/dev/dvb/adapter0/frontend0'
FE: Montage DS3103/TS2022 (SAT)
status 1f | signal 7323 | snr b064 | ber  | unc  |
FE_HAS_LOCK

# ./femon -a 1
using '/dev/dvb/adapter1/frontend0'
FE: Montage DS3103/TS2022 (SAT)
status 1f | signal 7a71 | snr 2a17 | ber  | unc  |
FE_HAS_LOCK


Looks better than with driver from linuxtv.org via git. And I
don't have any sync problems or video / audio drops.


I currently determined following:
* Using the drivers from dvbsky.net the card is Montage DS3103/TS2022
  = Loading FW dvb-fe-ds3103.fw
* With the drivers from linuxtv.org the card is Montage M88DS3103
  = Loading FW dvb-demod-m88ds3103.fw


I'm a bit confused... perhaps if I use the linuxtv.org drivers, the
card is recognized wrong and that's the problem?


Regards,
Chris


On Thu, 20 Nov 2014 09:01:23 +0200, Antti Palosaari cr...@iki.fi wrote:
 Moikka
 According to logs, everything seems to be fine. You could not compare 
 statistics numbers between two drivers. SNR 0096 is 150DEC, which means 
 15dB, IIRC it was max chip could return for DVB-S.
 
 No idea about sync etc. problems, are you sure about those? I am pretty 
 sure it works rather well as I haven't got bug reports from PCTV 461e 
 users which has that same demod + tuner.
 
 regards
 Antti
 
 
 
 On 11/19/2014 09:28 PM, Christopher Scheuring wrote:
 Hello Antti,

 the guys from t...@dvbsky.net told me to contact you because of my
 problems with the drivers for my DVBSKY S952.

 I attached the whole conversation. Currently the main problem is if i
 use the current drivers via
 git(http://git.linuxtv.org/cgit.cgi/media_build.git/about/) my single
 TT-Budget card works fine. But the signal from the DVDBSky S952 is very
 worse: Sync problems, bad SNR, drops on video and audio... If I use the
 driver dvbsky.net provides (media_build-bst-14-141106), the signal on
 booth tuners is fine - but then my TT-Budget doesn't works anymore (see
 end of this mail aka starting the conversation with t...@dvbsky.net).

 Do you have any ideas, how I could fix this problem? Before I updated
my
 system (from Debian Wheezy with Kernel 3.2.0-4-amd64 everything was
fine
 with both cards.


 If you need more detailed information, please let me know, so I could
 provide them as soon as possible,

 Thanks a lot and best wishes
 Chris


  Weitergeleitete Nachricht 
 Betreff: Re: Re: Problems with Linux drivers (Debian Jessie kernel
 3.16.0-4)
 Datum:   Wed, 19 Nov 2014 10:28:06 +0800
 Von: tech t...@dvbsky.net
 An:  Christopher Scheuring ch...@anke-und-chris.de



 Hello,
 Could you report this problem to Antti Palosaari cr...@iki.fi
 mailto:cr...@iki.fi and cc to linux-media@vger.kernel.org ?
 Antti is the author/maintainer of M88DS3103 driver.Montage M88DS3103
(SAT)*
 Please list the compare result of the driver from DVBSky site and
 Linuxtv.org.
 Max from DVBSky also register linux-media mail list.
 He will get your report and co-work with Antti to fix this issue of
 M88DS3103 driver from Linuxtv.org.
 BR,
 tech


 *From:* Christopher Scheuringch...@anke-und-chris.de
 mailto:ch...@anke-und-chris.de
 *Date:* 2014-11-19  04:42:10
 *To:* techt...@dvbsky.net mailto:t...@dvbsky.net
 *Cc:* 
 *Subject:* Re: Problems with Linux drivers (Debian Jessie kernel
 3.16.0-4)
 Hello,

 with the drivers from linuxtv.org and the firmware provided by your
 site, both cards work.

 But the DVBSky card (Montage M88DS3103) do now have a really bad
 SNR!TT-Budget C-1501 works as expected. See the output of femon - the
 signal of the DVBSky card was excellent with the drivers from you
 site... Any idea, what could cause the problem? TV signal provided by
 the DVBSky sometimes drops :-(

 xxx@xxx:~/VDR/linuxtv-dvb-apps-1.1.1/util/szap$ ./femon -a1
 *using '/dev/dvb/adapter1/frontend0'**
 **FE: Montage M88DS3103 (SAT)*
 status 1f | signal 585e | *snr 0096* | ber  | unc  |
 FE_HAS_LOCK
 status 1f | signal 585e | *snr 0096* | ber  | unc  |
 FE_HAS_LOCK


 xxx@xxx:~/VDR/linuxtv-dvb-apps-1.1.1/util/szap$ ./femon -a2
 *using '/dev/dvb/adapter2/frontend0'**
 **FE: Montage M88DS3103 (SAT)*
 status 1f | signal 6c07 | *snr 0096* | ber  | unc  |
 FE_HAS_LOCK
 status 1f | signal 6c07 | *snr 0096* | ber  | unc  |
 FE_HAS_LOCK


 xxx@xxx:~/VDR/linuxtv-dvb-apps-1.1.1/util/szap$ ./femon -a0
 *using '/dev/dvb/adapter0/frontend0'**
 **FE: STV090x Multistandard (SAT)*
 status 1f | signal a3d6 | *snr bccb* | ber  | unc  |
 FE_HAS_LOCK
 status 1f | signal a3d6 | *snr bd2e* | ber  | unc  |
 FE_HAS_LOCK


 Here the dmesg output of the loaded drivers and firmware of the DVBSky
 Card:

 dmesg | egrep cx23885|i2c|m88ds3103
  

Re: [PATCH 1/1] [media] firewire: Deletion of an unnecessary check before the function call dvb_unregister_device

2014-11-20 Thread Stefan Richter
On Nov 20 SF Markus Elfring wrote:
 From: Markus Elfring elfr...@users.sourceforge.net
 Date: Thu, 20 Nov 2014 10:49:07 +0100
 
 The dvb_unregister_device() function tests whether its argument is NULL
 and then returns immediately. Thus the test around the call is not needed.
 
 This issue was detected by using the Coccinelle software.
 
 Signed-off-by: Markus Elfring elfr...@users.sourceforge.net

Reviewed-by: Stefan Richter stef...@s5r6.in-berlin.de

 ---
  drivers/media/firewire/firedtv-ci.c | 3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)
 
 diff --git a/drivers/media/firewire/firedtv-ci.c 
 b/drivers/media/firewire/firedtv-ci.c
 index e5ebdbf..e63f582 100644
 --- a/drivers/media/firewire/firedtv-ci.c
 +++ b/drivers/media/firewire/firedtv-ci.c
 @@ -253,6 +253,5 @@ int fdtv_ca_register(struct firedtv *fdtv)
  
  void fdtv_ca_release(struct firedtv *fdtv)
  {
 - if (fdtv-cadev)
 - dvb_unregister_device(fdtv-cadev);
 + dvb_unregister_device(fdtv-cadev);
  }



-- 
Stefan Richter
-=-- =-== =-=--
http://arcgraph.de/sr/
--
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


v4l-utils stable release 1.6.1

2014-11-20 Thread Gregor Jasny

Hello,

do you consider something from these commits as important enough for a 
bugfix release?


Thanks,
Gregor


Akihiro Tsukada (9):
  libdvbv5, dvbv5-scan: generalize channel duplication check
  libdvbv5: add as many channels as possible in scanning DVB-T2
  libdvbv5: wrong frequency in the output of satellite delsys scans
  libdvbv5: add support for ISDB-S tuning
  libdvbv5: add support for ISDB-S scanning
  libdvbv5: add COUNTRY property
  v4l-utils/libdvbv5: restore deleted functions to keep API/ABI compatible
  v4l-utils/libdvbv5: fix memory leak in dvb_guess_user_country()
  v4l-utils/libdvbv5: add gconv module for the text conversions of ISDB-S/T.

Gregor Jasny (7):
  Start v4l-utils 1.7.0 development cycle
  man: remove duplicate backslash from NAME section
  man: Use Unicode character for ellipsis and fall back to ...
  man: add generated files to .gitignore
  libdvbv5: Remove stray semicolon
  v4l2-compliance: Explicitely link against rt library
  v4l2-ctl: Explicitely link against rt library

Hans Verkuil (10):
  qv4l2/v4l2-ctl: fix buffer overrun in vivid-tpg.
  v4l2-ctl: fix sliced vbi mode parsing
  v4l2-compliance: when streaming used at least 2 buffers.
  v4l2-compliance: add initial checks for VIDIOC_QUERY_EXT_CTRL
  v4l2-ctl: add support for U32 control type.
  v4l2-ctl: fix array handling
  v4l2-compliance: allow the V4L2_IN_ST_NO_SYNC status flag.
  qv4l2: add single step support
  qv4l2: don't select alsa device for video output.
  v4l2-compliance: select(): split ret = 0 test in two

Hans de Goede (2):
  rc_keymaps: allwinner: S/KEY_HOME/KEY_HOMEPAGE/
  v4lconvert: Fix decoding of jpeg data with no vertical sub-sampling

Mauro Carvalho Chehab (41):
  libdvbv5: properly represent Satellite frequencies
  README: better document the package
  libdvbv5: Fix some Doxygen warnings at dvb-fe.h
  Doxygen: Document libdvbv5 countries.h
  configure.ac: Fix gconv compilation with 64 bits
  parse_tcpdump_log.pl: only adjust direction for control EP
  contrib: add a parser for af9035
  parse_af9035.pl: properly handle URB errors
  parse_af9035.pl: Add two other commands from ITE driver
  parse_af9035.pl: add arguments to show timestamp and debug
  parse_af9035.pl: group write/read URBs
  parse_af9035.pl: create a routine to print send/race
  parse_af9035.pl: print read/write as C lines
  parse_af9035.pl: add support for firmware commands
  parse_af9035.pl: fix firmware write size
  ir-keytable: fix a regression introduced by fe2aa5f767eba
  gen_keytables.pl: Fix a regression at RC map file generation
  rc: Update the protocol name at RC6 tables
  rc_maps.cfg: reorder entries alphabetically
  rc: sync with Kernel
  rc: copy userspace-only maps to a separate dir
  README: Add the steps needed to syncronize with the Kernel tree
  vivid-tpg.h.patch: update to match current upstream tree
  Synchronize with the Kernel
  parse_af9035.pl: proper handle when stack is not filled
  parse_af9035.pl: add support for CMD_IR_GET
  parse_af9035.pl: add options to hide part of the messages
  parse_af9035.pl: Add firmware boot message to the parser
  parse_af9035.pl: improve IR handling
  parse_af9035.pl: add support for generic I2C read/write
  parse_af9035.pl: better handle the read data
  parse_af9035.pl: allow to hide parsing errors
  parse_af9035.pl: add support for standard I2C commands
  parse_af9035.pl: some cleanups
  parse_af9035.pl: Fix decoding order at I2C read/write
  parse_af9035.pl: Fix size on rd/wr regs prints
  parse_af9035.pl: Fix some hide conditions
  parse_af9035.pl: Improve argument handling
  libdvbv5: add experimental DTMB support
  parse_tcpdump_log.pl: simplify non-control data
  parse_tcpdump_log.pl: remove some leftovers

Niels Ole Salscheider (1):
  qv4l2: Fix out-of-source build

Patrick Boettcher (4):
  parse_tcpdump_log.pl: skip filtered frames and remove them from pending
  parse_tcpdump_log.pl: show transfer-direction for non-ctrl-transfers
  parse_tcpdump_log.pl: add external frame_processor-option
  parse_tcpdump_log.pl: remove --all option which was not documented and 
not working as expected


--
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 2/9] clk: sunxi: Make sun4i_a10_mod0_data available outside of clk-mod0.c

2014-11-20 Thread Hans de Goede
The sun6i prcm has mod0 compatible clocks, these need a separate driver
because the prcm uses the mfd framework, but we do want to re-use the
standard mod0 clk handling from clk-mod0.c for this, export
sun4i_a10_mod0_data, so that the prcm mod0 clk driver can use this.

Signed-off-by: Hans de Goede hdego...@redhat.com
---
 drivers/clk/sunxi/clk-mod0.c | 2 +-
 drivers/clk/sunxi/clk-mod0.h | 8 
 2 files changed, 9 insertions(+), 1 deletion(-)
 create mode 100644 drivers/clk/sunxi/clk-mod0.h

diff --git a/drivers/clk/sunxi/clk-mod0.c b/drivers/clk/sunxi/clk-mod0.c
index 9530833..0989502 100644
--- a/drivers/clk/sunxi/clk-mod0.c
+++ b/drivers/clk/sunxi/clk-mod0.c
@@ -67,7 +67,7 @@ static struct clk_factors_config sun4i_a10_mod0_config = {
.pwidth = 2,
 };
 
-static const struct factors_data sun4i_a10_mod0_data __initconst = {
+const struct factors_data sun4i_a10_mod0_data = {
.enable = 31,
.mux = 24,
.table = sun4i_a10_mod0_config,
diff --git a/drivers/clk/sunxi/clk-mod0.h b/drivers/clk/sunxi/clk-mod0.h
new file mode 100644
index 000..49aa9ab
--- /dev/null
+++ b/drivers/clk/sunxi/clk-mod0.h
@@ -0,0 +1,8 @@
+#ifndef __MACH_SUNXI_CLK_MOD0_H
+#define __MACH_SUNXI_CLK_MOD0_H
+
+#include clk-factors.h
+
+extern const struct factors_data sun4i_a10_mod0_data;
+
+#endif
-- 
2.1.0

--
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 1/9] clk: sunxi: Give sunxi_factors_register a registers parameter

2014-11-20 Thread Hans de Goede
Before this commit sunxi_factors_register uses of_iomap(node, 0) to get
the clk registers. The sun6i prcm has factor clocks, for which we want to
use sunxi_factors_register, but of_iomap(node, 0) does not work for the prcm
factor clocks, because the prcm uses the mfd framework, so the registers
are not part of the dt-node, instead they are added to the platform_device,
as platform_device resources.

This commit makes getting the registers the callers duty, so that
sunxi_factors_register can be used with mfd instantiated platform device too.

Signed-off-by: Hans de Goede hdego...@redhat.com
---
 drivers/clk/sunxi/clk-factors.c| 10 --
 drivers/clk/sunxi/clk-factors.h|  7 ---
 drivers/clk/sunxi/clk-mod0.c   |  6 --
 drivers/clk/sunxi/clk-sun8i-mbus.c |  2 +-
 drivers/clk/sunxi/clk-sunxi.c  |  3 ++-
 5 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/drivers/clk/sunxi/clk-factors.c b/drivers/clk/sunxi/clk-factors.c
index f83ba09..fc4f4b5 100644
--- a/drivers/clk/sunxi/clk-factors.c
+++ b/drivers/clk/sunxi/clk-factors.c
@@ -156,9 +156,10 @@ static const struct clk_ops clk_factors_ops = {
.set_rate = clk_factors_set_rate,
 };
 
-struct clk * __init sunxi_factors_register(struct device_node *node,
-  const struct factors_data *data,
-  spinlock_t *lock)
+struct clk *sunxi_factors_register(struct device_node *node,
+  const struct factors_data *data,
+  spinlock_t *lock,
+  void __iomem *reg)
 {
struct clk *clk;
struct clk_factors *factors;
@@ -168,11 +169,8 @@ struct clk * __init sunxi_factors_register(struct 
device_node *node,
struct clk_hw *mux_hw = NULL;
const char *clk_name = node-name;
const char *parents[FACTORS_MAX_PARENTS];
-   void __iomem *reg;
int i = 0;
 
-   reg = of_iomap(node, 0);
-
/* if we have a mux, we will have 1 parents */
while (i  FACTORS_MAX_PARENTS 
   (parents[i] = of_clk_get_parent_name(node, i)) != NULL)
diff --git a/drivers/clk/sunxi/clk-factors.h b/drivers/clk/sunxi/clk-factors.h
index 9913840..1f5526d 100644
--- a/drivers/clk/sunxi/clk-factors.h
+++ b/drivers/clk/sunxi/clk-factors.h
@@ -37,8 +37,9 @@ struct clk_factors {
spinlock_t *lock;
 };
 
-struct clk * __init sunxi_factors_register(struct device_node *node,
-  const struct factors_data *data,
-  spinlock_t *lock);
+struct clk *sunxi_factors_register(struct device_node *node,
+  const struct factors_data *data,
+  spinlock_t *lock,
+  void __iomem *reg);
 
 #endif
diff --git a/drivers/clk/sunxi/clk-mod0.c b/drivers/clk/sunxi/clk-mod0.c
index 4a56385..9530833 100644
--- a/drivers/clk/sunxi/clk-mod0.c
+++ b/drivers/clk/sunxi/clk-mod0.c
@@ -78,7 +78,8 @@ static DEFINE_SPINLOCK(sun4i_a10_mod0_lock);
 
 static void __init sun4i_a10_mod0_setup(struct device_node *node)
 {
-   sunxi_factors_register(node, sun4i_a10_mod0_data, 
sun4i_a10_mod0_lock);
+   sunxi_factors_register(node, sun4i_a10_mod0_data,
+  sun4i_a10_mod0_lock, of_iomap(node, 0));
 }
 CLK_OF_DECLARE(sun4i_a10_mod0, allwinner,sun4i-a10-mod0-clk, 
sun4i_a10_mod0_setup);
 
@@ -86,7 +87,8 @@ static DEFINE_SPINLOCK(sun5i_a13_mbus_lock);
 
 static void __init sun5i_a13_mbus_setup(struct device_node *node)
 {
-   struct clk *mbus = sunxi_factors_register(node, sun4i_a10_mod0_data, 
sun5i_a13_mbus_lock);
+   struct clk *mbus = sunxi_factors_register(node, sun4i_a10_mod0_data,
+ sun5i_a13_mbus_lock, of_iomap(node, 0));
 
/* The MBUS clocks needs to be always enabled */
__clk_get(mbus);
diff --git a/drivers/clk/sunxi/clk-sun8i-mbus.c 
b/drivers/clk/sunxi/clk-sun8i-mbus.c
index 8e49b44..444d603 100644
--- a/drivers/clk/sunxi/clk-sun8i-mbus.c
+++ b/drivers/clk/sunxi/clk-sun8i-mbus.c
@@ -69,7 +69,7 @@ static DEFINE_SPINLOCK(sun8i_a23_mbus_lock);
 static void __init sun8i_a23_mbus_setup(struct device_node *node)
 {
struct clk *mbus = sunxi_factors_register(node, sun8i_a23_mbus_data,
- sun8i_a23_mbus_lock);
+   sun8i_a23_mbus_lock, of_iomap(node, 0));
 
/* The MBUS clocks needs to be always enabled */
__clk_get(mbus);
diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c
index d5dc951..f19e0f9 100644
--- a/drivers/clk/sunxi/clk-sunxi.c
+++ b/drivers/clk/sunxi/clk-sunxi.c
@@ -521,7 +521,8 @@ static const struct factors_data sun7i_a20_out_data 
__initconst = {
 static struct clk * __init sunxi_factors_clk_setup(struct device_node *node,
 

[PATCH 0/9] sun6i / A31 ir receiver support

2014-11-20 Thread Hans de Goede
Hi Maxime, et al,

Here is a patch series adding support for the ir receiver found on sun6i,
it is the same one as found on sun5i (which is very similar to the sun4i
one we already support), except that as usual on sun6i it needs a reset
to be de-asserted.

More interesting is the clocking of it, it is clocked through a clock which
comes from the prcm module, I guess this is done so that the remote can keep
working with all the main clocks turned off. So this patch series starts
with adding support for this new ir clock.

I've discussed how to best upstream this with Mauro Chehab, the media
maintainer, and since this only touches sunxi-cir.c under the media tree, he
is fine with everything going upstream to your tree.

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 9/9] ARM: dts: sun6i: Enable ir receiver on the Mele M9

2014-11-20 Thread Hans de Goede
The Mele M9 has an ir receiver, enable it.

Signed-off-by: Hans de Goede hdego...@redhat.com
---
 arch/arm/boot/dts/sun6i-a31-m9.dts | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm/boot/dts/sun6i-a31-m9.dts 
b/arch/arm/boot/dts/sun6i-a31-m9.dts
index 4202c64..94ddf9c 100644
--- a/arch/arm/boot/dts/sun6i-a31-m9.dts
+++ b/arch/arm/boot/dts/sun6i-a31-m9.dts
@@ -83,6 +83,12 @@
reg = 1;
};
};
+
+   ir@01f02000 {
+   pinctrl-names = default;
+   pinctrl-0 = ir_pins_a;
+   status = okay;
+   };
};
 
leds {
-- 
2.1.0

--
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 6/9] ARM: dts: sun6i: Add ir_clk node

2014-11-20 Thread Hans de Goede
Add an ir_clk sub-node to the prcm node.

Signed-off-by: Hans de Goede hdego...@redhat.com
---
 arch/arm/boot/dts/sun6i-a31.dtsi | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
index a01b215..4aa628b 100644
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
@@ -882,6 +882,13 @@
apb0_i2c;
};
 
+   ir_clk: ir_clk {
+   #clock-cells = 0;
+   compatible = allwinner,sun6i-a31-ir-clk;
+   clocks = osc32k, osc24M;
+   clock-output-names = ir;
+   };
+
apb0_rst: apb0_rst {
compatible = allwinner,sun6i-a31-clock-reset;
#reset-cells = 1;
-- 
2.1.0

--
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 3/9] clk: sunxi: Add prcm mod0 clock driver

2014-11-20 Thread Hans de Goede
Add a driver for mod0 clocks found in the prcm. Currently there is only
one mod0 clocks in the prcm, the ir clock.

Signed-off-by: Hans de Goede hdego...@redhat.com
---
 Documentation/devicetree/bindings/clock/sunxi.txt |  1 +
 drivers/clk/sunxi/Makefile|  2 +-
 drivers/clk/sunxi/clk-sun6i-prcm-mod0.c   | 63 +++
 drivers/mfd/sun6i-prcm.c  | 14 +
 4 files changed, 79 insertions(+), 1 deletion(-)
 create mode 100644 drivers/clk/sunxi/clk-sun6i-prcm-mod0.c

diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt 
b/Documentation/devicetree/bindings/clock/sunxi.txt
index ed116df..342c75a 100644
--- a/Documentation/devicetree/bindings/clock/sunxi.txt
+++ b/Documentation/devicetree/bindings/clock/sunxi.txt
@@ -56,6 +56,7 @@ Required properties:
allwinner,sun4i-a10-usb-clk - for usb gates + resets on A10 / A20
allwinner,sun5i-a13-usb-clk - for usb gates + resets on A13
allwinner,sun6i-a31-usb-clk - for usb gates + resets on A31
+   allwinner,sun6i-a31-ir-clk - for the ir clock on A31
 
 Required properties for all clocks:
 - reg : shall be the control register address for the clock.
diff --git a/drivers/clk/sunxi/Makefile b/drivers/clk/sunxi/Makefile
index 7ddc2b5..daf8b1c 100644
--- a/drivers/clk/sunxi/Makefile
+++ b/drivers/clk/sunxi/Makefile
@@ -10,4 +10,4 @@ obj-y += clk-sun8i-mbus.o
 
 obj-$(CONFIG_MFD_SUN6I_PRCM) += \
clk-sun6i-ar100.o clk-sun6i-apb0.o clk-sun6i-apb0-gates.o \
-   clk-sun8i-apb0.o
+   clk-sun8i-apb0.o clk-sun6i-prcm-mod0.o
diff --git a/drivers/clk/sunxi/clk-sun6i-prcm-mod0.c 
b/drivers/clk/sunxi/clk-sun6i-prcm-mod0.c
new file mode 100644
index 000..e80f18e
--- /dev/null
+++ b/drivers/clk/sunxi/clk-sun6i-prcm-mod0.c
@@ -0,0 +1,63 @@
+/*
+ * Allwinner A31 PRCM mod0 clock driver
+ *
+ * Copyright (C) 2014 Hans de Goede hdego...@redhat.com
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include linux/clk-provider.h
+#include linux/clkdev.h
+#include linux/module.h
+#include linux/of_address.h
+#include linux/platform_device.h
+
+#include clk-factors.h
+#include clk-mod0.h
+
+static const struct of_device_id sun6i_a31_prcm_mod0_clk_dt_ids[] = {
+   { .compatible = allwinner,sun6i-a31-ir-clk },
+   { /* sentinel */ }
+};
+
+static DEFINE_SPINLOCK(sun6i_prcm_mod0_lock);
+
+static int sun6i_a31_prcm_mod0_clk_probe(struct platform_device *pdev)
+{
+   struct device_node *np = pdev-dev.of_node;
+   struct resource *r;
+   void __iomem *reg;
+
+   if (!np)
+   return -ENODEV;
+
+   r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+   reg = devm_ioremap_resource(pdev-dev, r);
+   if (IS_ERR(reg))
+   return PTR_ERR(reg);
+
+   sunxi_factors_register(np, sun4i_a10_mod0_data,
+  sun6i_prcm_mod0_lock, reg);
+   return 0;
+}
+
+static struct platform_driver sun6i_a31_prcm_mod0_clk_driver = {
+   .driver = {
+   .name = sun6i-a31-prcm-mod0-clk,
+   .of_match_table = sun6i_a31_prcm_mod0_clk_dt_ids,
+   },
+   .probe = sun6i_a31_prcm_mod0_clk_probe,
+};
+module_platform_driver(sun6i_a31_prcm_mod0_clk_driver);
+
+MODULE_DESCRIPTION(Allwinner A31 PRCM mod0 clock driver);
+MODULE_AUTHOR(Hans de Goede hdego...@redhat.com);
+MODULE_LICENSE(GPL);
diff --git a/drivers/mfd/sun6i-prcm.c b/drivers/mfd/sun6i-prcm.c
index 283ab8d..ff1254f 100644
--- a/drivers/mfd/sun6i-prcm.c
+++ b/drivers/mfd/sun6i-prcm.c
@@ -41,6 +41,14 @@ static const struct resource sun6i_a31_apb0_gates_clk_res[] 
= {
},
 };
 
+static const struct resource sun6i_a31_ir_clk_res[] = {
+   {
+   .start = 0x54,
+   .end = 0x57,
+   .flags = IORESOURCE_MEM,
+   },
+};
+
 static const struct resource sun6i_a31_apb0_rstc_res[] = {
{
.start = 0xb0,
@@ -69,6 +77,12 @@ static const struct mfd_cell sun6i_a31_prcm_subdevs[] = {
.resources = sun6i_a31_apb0_gates_clk_res,
},
{
+   .name = sun6i-a31-ir-clk,
+   .of_compatible = allwinner,sun6i-a31-ir-clk,
+   .num_resources = ARRAY_SIZE(sun6i_a31_ir_clk_res),
+   .resources = sun6i_a31_ir_clk_res,
+   },
+   {
.name = sun6i-a31-apb0-clock-reset,
.of_compatible = allwinner,sun6i-a31-clock-reset,
.num_resources = ARRAY_SIZE(sun6i_a31_apb0_rstc_res),
-- 
2.1.0

--
To unsubscribe 

[PATCH 7/9] ARM: dts: sun6i: Add ir node

2014-11-20 Thread Hans de Goede
Add a node for the ir receiver found on the A31.

Signed-off-by: Hans de Goede hdego...@redhat.com
---
 arch/arm/boot/dts/sun6i-a31.dtsi | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
index 4aa628b..d33e758 100644
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
@@ -900,6 +900,16 @@
reg = 0x01f01c00 0x300;
};
 
+   ir@01f02000 {
+   compatible = allwinner,sun5i-a13-ir;
+   clocks = apb0_gates 1, ir_clk;
+   clock-names = apb, ir;
+   resets = apb0_rst 1;
+   interrupts = 0 37 4;
+   reg = 0x01f02000 0x40;
+   status = disabled;
+   };
+
r_pio: pinctrl@01f02c00 {
compatible = allwinner,sun6i-a31-r-pinctrl;
reg = 0x01f02c00 0x400;
-- 
2.1.0

--
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 8/9] ARM: dts: sun6i: Add pinmux settings for the ir pins

2014-11-20 Thread Hans de Goede
Add pinmux settings for the ir receive pin of the A31.

Signed-off-by: Hans de Goede hdego...@redhat.com
---
 arch/arm/boot/dts/sun6i-a31.dtsi | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
index d33e758..90b7537 100644
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
@@ -922,6 +922,13 @@
#interrupt-cells = 2;
#size-cells = 0;
#gpio-cells = 3;
+
+   ir_pins_a: ir@0 {
+   allwinner,pins = PL4;
+   allwinner,function = s_ir;
+   allwinner,drive = 0;
+   allwinner,pull = 0;
+   };
};
};
 };
-- 
2.1.0

--
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 5/9] rc: sunxi-cir: Add support for the larger fifo found on sun5i and sun6i

2014-11-20 Thread Hans de Goede
Add support for the larger fifo found on sun5i and sun6i, having a separate
compatible for the ir found on sun5i  sun6i also is useful if we ever want
to add ir transmit support, because the sun5i  sun6i version do not have
transmit support.

Note this commits also adds checking for the end-of-packet interrupt flag
(which was already enabled), as the fifo-data-available interrupt flag only
gets set when the trigger-level is exceeded. So far we've been getting away
with not doing this because of the low trigger-level, but this is something
which we should have done since day one.

Signed-off-by: Hans de Goede hdego...@redhat.com
---
 .../devicetree/bindings/media/sunxi-ir.txt  |  2 +-
 drivers/media/rc/sunxi-cir.c| 21 -
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/Documentation/devicetree/bindings/media/sunxi-ir.txt 
b/Documentation/devicetree/bindings/media/sunxi-ir.txt
index 23dd5ad..5767128 100644
--- a/Documentation/devicetree/bindings/media/sunxi-ir.txt
+++ b/Documentation/devicetree/bindings/media/sunxi-ir.txt
@@ -1,7 +1,7 @@
 Device-Tree bindings for SUNXI IR controller found in sunXi SoC family
 
 Required properties:
-- compatible   : should be allwinner,sun4i-a10-ir;
+- compatible   : allwinner,sun4i-a10-ir or allwinner,sun5i-a13-ir
 - clocks   : list of clock specifiers, corresponding to
  entries in clock-names property;
 - clock-names  : should contain apb and ir entries;
diff --git a/drivers/media/rc/sunxi-cir.c b/drivers/media/rc/sunxi-cir.c
index 895fb65..559b0e3 100644
--- a/drivers/media/rc/sunxi-cir.c
+++ b/drivers/media/rc/sunxi-cir.c
@@ -56,12 +56,12 @@
 #define REG_RXINT_RAI_EN   BIT(4)
 
 /* Rx FIFO available byte level */
-#define REG_RXINT_RAL(val)(((val)  8)  (GENMASK(11, 8)))
+#define REG_RXINT_RAL(val)((val)  8)
 
 /* Rx Interrupt Status */
 #define SUNXI_IR_RXSTA_REG0x30
 /* RX FIFO Get Available Counter */
-#define REG_RXSTA_GET_AC(val) (((val)  8)  (GENMASK(5, 0)))
+#define REG_RXSTA_GET_AC(val) (((val)  8)  (ir-fifo_size * 2 - 1))
 /* Clear all interrupt status value */
 #define REG_RXSTA_CLEARALL0xff
 
@@ -72,10 +72,6 @@
 /* CIR_REG register idle threshold */
 #define REG_CIR_ITHR(val)(((val)  8)  (GENMASK(15, 8)))
 
-/* Hardware supported fifo size */
-#define SUNXI_IR_FIFO_SIZE16
-/* How many messages in FIFO trigger IRQ */
-#define TRIGGER_LEVEL 8
 /* Required frequency for IR0 or IR1 clock in CIR mode */
 #define SUNXI_IR_BASE_CLK 800
 /* Frequency after IR internal divider  */
@@ -94,6 +90,7 @@ struct sunxi_ir {
struct rc_dev   *rc;
void __iomem*base;
int irq;
+   int fifo_size;
struct clk  *clk;
struct clk  *apb_clk;
struct reset_control *rst;
@@ -115,11 +112,11 @@ static irqreturn_t sunxi_ir_irq(int irqno, void *dev_id)
/* clean all pending statuses */
writel(status | REG_RXSTA_CLEARALL, ir-base + SUNXI_IR_RXSTA_REG);
 
-   if (status  REG_RXINT_RAI_EN) {
+   if (status  (REG_RXINT_RAI_EN | REG_RXINT_RPEI_EN)) {
/* How many messages in fifo */
rc  = REG_RXSTA_GET_AC(status);
/* Sanity check */
-   rc = rc  SUNXI_IR_FIFO_SIZE ? SUNXI_IR_FIFO_SIZE : rc;
+   rc = rc  ir-fifo_size ? ir-fifo_size : rc;
/* If we have data */
for (cnt = 0; cnt  rc; cnt++) {
/* for each bit in fifo */
@@ -156,6 +153,11 @@ static int sunxi_ir_probe(struct platform_device *pdev)
if (!ir)
return -ENOMEM;
 
+   if (of_device_is_compatible(dn, allwinner,sun5i-a13-ir))
+   ir-fifo_size = 64;
+   else
+   ir-fifo_size = 16;
+
/* Clock */
ir-apb_clk = devm_clk_get(dev, apb);
if (IS_ERR(ir-apb_clk)) {
@@ -271,7 +273,7 @@ static int sunxi_ir_probe(struct platform_device *pdev)
 * level
 */
writel(REG_RXINT_ROI_EN | REG_RXINT_RPEI_EN |
-  REG_RXINT_RAI_EN | REG_RXINT_RAL(TRIGGER_LEVEL - 1),
+  REG_RXINT_RAI_EN | REG_RXINT_RAL(ir-fifo_size / 2 - 1),
   ir-base + SUNXI_IR_RXINT_REG);
 
/* Enable IR Module */
@@ -319,6 +321,7 @@ static int sunxi_ir_remove(struct platform_device *pdev)
 
 static const struct of_device_id sunxi_ir_match[] = {
{ .compatible = allwinner,sun4i-a10-ir, },
+   { .compatible = allwinner,sun5i-a13-ir, },
{},
 };
 
-- 
2.1.0

--
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 4/9] rc: sunxi-cir: Add support for an optional reset controller

2014-11-20 Thread Hans de Goede
On sun6i the cir block is attached to the reset controller, add support
for de-asserting the reset if a reset controller is specified in dt.

Signed-off-by: Hans de Goede hdego...@redhat.com
---
 drivers/media/rc/sunxi-cir.c | 25 +++--
 1 file changed, 23 insertions(+), 2 deletions(-)

diff --git a/drivers/media/rc/sunxi-cir.c b/drivers/media/rc/sunxi-cir.c
index bcee8e1..895fb65 100644
--- a/drivers/media/rc/sunxi-cir.c
+++ b/drivers/media/rc/sunxi-cir.c
@@ -23,6 +23,7 @@
 #include linux/interrupt.h
 #include linux/module.h
 #include linux/of_platform.h
+#include linux/reset.h
 #include media/rc-core.h
 
 #define SUNXI_IR_DEV sunxi-ir
@@ -95,6 +96,7 @@ struct sunxi_ir {
int irq;
struct clk  *clk;
struct clk  *apb_clk;
+   struct reset_control *rst;
const char  *map_name;
 };
 
@@ -166,15 +168,29 @@ static int sunxi_ir_probe(struct platform_device *pdev)
return PTR_ERR(ir-clk);
}
 
+   /* Reset (optional) */
+   ir-rst = devm_reset_control_get_optional(dev, NULL);
+   if (IS_ERR(ir-rst)) {
+   ret = PTR_ERR(ir-rst);
+   if (ret == -EPROBE_DEFER)
+   return ret;
+   ir-rst = NULL;
+   } else {
+   ret = reset_control_deassert(ir-rst);
+   if (ret)
+   return ret;
+   }
+
ret = clk_set_rate(ir-clk, SUNXI_IR_BASE_CLK);
if (ret) {
dev_err(dev, set ir base clock failed!\n);
-   return ret;
+   goto exit_reset_assert;
}
 
if (clk_prepare_enable(ir-apb_clk)) {
dev_err(dev, try to enable apb_ir_clk failed\n);
-   return -EINVAL;
+   ret = -EINVAL;
+   goto exit_reset_assert;
}
 
if (clk_prepare_enable(ir-clk)) {
@@ -271,6 +287,9 @@ exit_clkdisable_clk:
clk_disable_unprepare(ir-clk);
 exit_clkdisable_apb_clk:
clk_disable_unprepare(ir-apb_clk);
+exit_reset_assert:
+   if (ir-rst)
+   reset_control_assert(ir-rst);
 
return ret;
 }
@@ -282,6 +301,8 @@ static int sunxi_ir_remove(struct platform_device *pdev)
 
clk_disable_unprepare(ir-clk);
clk_disable_unprepare(ir-apb_clk);
+   if (ir-rst)
+   reset_control_assert(ir-rst);
 
spin_lock_irqsave(ir-ir_lock, flags);
/* disable IR IRQ */
-- 
2.1.0

--
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: v4l-utils stable release 1.6.1

2014-11-20 Thread Mauro Carvalho Chehab
Em Thu, 20 Nov 2014 16:31:09 +0100
Gregor Jasny gja...@googlemail.com escreveu:

 Hello,
 
 do you consider something from these commits as important enough for a 
 bugfix release?

From my side, those are bug fixes that affect two RC6 tables:
   ir-keytable: fix a regression introduced by fe2aa5f767eba
   rc: Update the protocol name at RC6 tables

Applying just the first is enough. Basically, RC6 tables are described
as RC6_MCE. The first patch makes the ir-keytable to accept both syntaxes;
the second one fixes the two existing RC6_MCE tables.

This one is an important bug fixes for DVB-S/S2 frequency storage:
   libdvbv5: properly represent Satellite frequencies

This is not properly a bug fix, but I would also add it, as it fixes the
documentation:
README: better document the package

This is a bug fix, but it affects only the keymap sync from Kernel,
so probably not worth backporting, except if you also intend to run
make sync-with-kernel at the fix tree:
   gen_keytables.pl: Fix a regression at RC map file generation

In such case, I also suggest to backport those patches:
   rc_maps.cfg: reorder entries alphabetically
   rc: sync with Kernel
   rc: copy userspace-only maps to a separate dir

This one also seems to be a backport fix:
   rc_keymaps: allwinner: S/KEY_HOME/KEY_HOMEPAGE/

That's all from remote controllers and libdvbv5 API side.

Regards,
Mauro
--
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 4/9] rc: sunxi-cir: Add support for an optional reset controller

2014-11-20 Thread Mauro Carvalho Chehab
Em Thu, 20 Nov 2014 16:55:23 +0100
Hans de Goede hdego...@redhat.com escreveu:

 On sun6i the cir block is attached to the reset controller, add support
 for de-asserting the reset if a reset controller is specified in dt.
 
 Signed-off-by: Hans de Goede hdego...@redhat.com

As this is meant to be merged via some other tree:

Acked-by: Mauro Carvalho Chehab mche...@osg.samsung.com


 ---
  drivers/media/rc/sunxi-cir.c | 25 +++--
  1 file changed, 23 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/media/rc/sunxi-cir.c b/drivers/media/rc/sunxi-cir.c
 index bcee8e1..895fb65 100644
 --- a/drivers/media/rc/sunxi-cir.c
 +++ b/drivers/media/rc/sunxi-cir.c
 @@ -23,6 +23,7 @@
  #include linux/interrupt.h
  #include linux/module.h
  #include linux/of_platform.h
 +#include linux/reset.h
  #include media/rc-core.h
  
  #define SUNXI_IR_DEV sunxi-ir
 @@ -95,6 +96,7 @@ struct sunxi_ir {
   int irq;
   struct clk  *clk;
   struct clk  *apb_clk;
 + struct reset_control *rst;
   const char  *map_name;
  };
  
 @@ -166,15 +168,29 @@ static int sunxi_ir_probe(struct platform_device *pdev)
   return PTR_ERR(ir-clk);
   }
  
 + /* Reset (optional) */
 + ir-rst = devm_reset_control_get_optional(dev, NULL);
 + if (IS_ERR(ir-rst)) {
 + ret = PTR_ERR(ir-rst);
 + if (ret == -EPROBE_DEFER)
 + return ret;
 + ir-rst = NULL;
 + } else {
 + ret = reset_control_deassert(ir-rst);
 + if (ret)
 + return ret;
 + }
 +
   ret = clk_set_rate(ir-clk, SUNXI_IR_BASE_CLK);
   if (ret) {
   dev_err(dev, set ir base clock failed!\n);
 - return ret;
 + goto exit_reset_assert;
   }
  
   if (clk_prepare_enable(ir-apb_clk)) {
   dev_err(dev, try to enable apb_ir_clk failed\n);
 - return -EINVAL;
 + ret = -EINVAL;
 + goto exit_reset_assert;
   }
  
   if (clk_prepare_enable(ir-clk)) {
 @@ -271,6 +287,9 @@ exit_clkdisable_clk:
   clk_disable_unprepare(ir-clk);
  exit_clkdisable_apb_clk:
   clk_disable_unprepare(ir-apb_clk);
 +exit_reset_assert:
 + if (ir-rst)
 + reset_control_assert(ir-rst);
  
   return ret;
  }
 @@ -282,6 +301,8 @@ static int sunxi_ir_remove(struct platform_device *pdev)
  
   clk_disable_unprepare(ir-clk);
   clk_disable_unprepare(ir-apb_clk);
 + if (ir-rst)
 + reset_control_assert(ir-rst);
  
   spin_lock_irqsave(ir-ir_lock, flags);
   /* disable IR IRQ */
--
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 5/9] rc: sunxi-cir: Add support for the larger fifo found on sun5i and sun6i

2014-11-20 Thread Mauro Carvalho Chehab
Em Thu, 20 Nov 2014 16:55:24 +0100
Hans de Goede hdego...@redhat.com escreveu:

 Add support for the larger fifo found on sun5i and sun6i, having a separate
 compatible for the ir found on sun5i  sun6i also is useful if we ever want
 to add ir transmit support, because the sun5i  sun6i version do not have
 transmit support.
 
 Note this commits also adds checking for the end-of-packet interrupt flag
 (which was already enabled), as the fifo-data-available interrupt flag only
 gets set when the trigger-level is exceeded. So far we've been getting away
 with not doing this because of the low trigger-level, but this is something
 which we should have done since day one.
 
 Signed-off-by: Hans de Goede hdego...@redhat.com

As this is meant to be merged via some other tree:

Acked-by: Mauro Carvalho Chehab mche...@osg.samsung.com


 ---
  .../devicetree/bindings/media/sunxi-ir.txt  |  2 +-
  drivers/media/rc/sunxi-cir.c| 21 
 -
  2 files changed, 13 insertions(+), 10 deletions(-)
 
 diff --git a/Documentation/devicetree/bindings/media/sunxi-ir.txt 
 b/Documentation/devicetree/bindings/media/sunxi-ir.txt
 index 23dd5ad..5767128 100644
 --- a/Documentation/devicetree/bindings/media/sunxi-ir.txt
 +++ b/Documentation/devicetree/bindings/media/sunxi-ir.txt
 @@ -1,7 +1,7 @@
  Device-Tree bindings for SUNXI IR controller found in sunXi SoC family
  
  Required properties:
 -- compatible : should be allwinner,sun4i-a10-ir;
 +- compatible : allwinner,sun4i-a10-ir or allwinner,sun5i-a13-ir
  - clocks : list of clock specifiers, corresponding to
 entries in clock-names property;
  - clock-names: should contain apb and ir entries;
 diff --git a/drivers/media/rc/sunxi-cir.c b/drivers/media/rc/sunxi-cir.c
 index 895fb65..559b0e3 100644
 --- a/drivers/media/rc/sunxi-cir.c
 +++ b/drivers/media/rc/sunxi-cir.c
 @@ -56,12 +56,12 @@
  #define REG_RXINT_RAI_EN BIT(4)
  
  /* Rx FIFO available byte level */
 -#define REG_RXINT_RAL(val)(((val)  8)  (GENMASK(11, 8)))
 +#define REG_RXINT_RAL(val)((val)  8)
  
  /* Rx Interrupt Status */
  #define SUNXI_IR_RXSTA_REG0x30
  /* RX FIFO Get Available Counter */
 -#define REG_RXSTA_GET_AC(val) (((val)  8)  (GENMASK(5, 0)))
 +#define REG_RXSTA_GET_AC(val) (((val)  8)  (ir-fifo_size * 2 - 1))
  /* Clear all interrupt status value */
  #define REG_RXSTA_CLEARALL0xff
  
 @@ -72,10 +72,6 @@
  /* CIR_REG register idle threshold */
  #define REG_CIR_ITHR(val)(((val)  8)  (GENMASK(15, 8)))
  
 -/* Hardware supported fifo size */
 -#define SUNXI_IR_FIFO_SIZE16
 -/* How many messages in FIFO trigger IRQ */
 -#define TRIGGER_LEVEL 8
  /* Required frequency for IR0 or IR1 clock in CIR mode */
  #define SUNXI_IR_BASE_CLK 800
  /* Frequency after IR internal divider  */
 @@ -94,6 +90,7 @@ struct sunxi_ir {
   struct rc_dev   *rc;
   void __iomem*base;
   int irq;
 + int fifo_size;
   struct clk  *clk;
   struct clk  *apb_clk;
   struct reset_control *rst;
 @@ -115,11 +112,11 @@ static irqreturn_t sunxi_ir_irq(int irqno, void *dev_id)
   /* clean all pending statuses */
   writel(status | REG_RXSTA_CLEARALL, ir-base + SUNXI_IR_RXSTA_REG);
  
 - if (status  REG_RXINT_RAI_EN) {
 + if (status  (REG_RXINT_RAI_EN | REG_RXINT_RPEI_EN)) {
   /* How many messages in fifo */
   rc  = REG_RXSTA_GET_AC(status);
   /* Sanity check */
 - rc = rc  SUNXI_IR_FIFO_SIZE ? SUNXI_IR_FIFO_SIZE : rc;
 + rc = rc  ir-fifo_size ? ir-fifo_size : rc;
   /* If we have data */
   for (cnt = 0; cnt  rc; cnt++) {
   /* for each bit in fifo */
 @@ -156,6 +153,11 @@ static int sunxi_ir_probe(struct platform_device *pdev)
   if (!ir)
   return -ENOMEM;
  
 + if (of_device_is_compatible(dn, allwinner,sun5i-a13-ir))
 + ir-fifo_size = 64;
 + else
 + ir-fifo_size = 16;
 +
   /* Clock */
   ir-apb_clk = devm_clk_get(dev, apb);
   if (IS_ERR(ir-apb_clk)) {
 @@ -271,7 +273,7 @@ static int sunxi_ir_probe(struct platform_device *pdev)
* level
*/
   writel(REG_RXINT_ROI_EN | REG_RXINT_RPEI_EN |
 -REG_RXINT_RAI_EN | REG_RXINT_RAL(TRIGGER_LEVEL - 1),
 +REG_RXINT_RAI_EN | REG_RXINT_RAL(ir-fifo_size / 2 - 1),
  ir-base + SUNXI_IR_RXINT_REG);
  
   /* Enable IR Module */
 @@ -319,6 +321,7 @@ static int sunxi_ir_remove(struct platform_device *pdev)
  
  static const struct of_device_id sunxi_ir_match[] = {
   { .compatible = allwinner,sun4i-a10-ir, },
 + { .compatible = allwinner,sun5i-a13-ir, },
   {},
  };
  
--
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  

Re: [linux-sunxi] [PATCH 3/9] clk: sunxi: Add prcm mod0 clock driver

2014-11-20 Thread Chen-Yu Tsai
Hi,

On Thu, Nov 20, 2014 at 7:55 AM, Hans de Goede hdego...@redhat.com wrote:
 Add a driver for mod0 clocks found in the prcm. Currently there is only
 one mod0 clocks in the prcm, the ir clock.

 Signed-off-by: Hans de Goede hdego...@redhat.com
 ---
  Documentation/devicetree/bindings/clock/sunxi.txt |  1 +
  drivers/clk/sunxi/Makefile|  2 +-
  drivers/clk/sunxi/clk-sun6i-prcm-mod0.c   | 63 
 +++
  drivers/mfd/sun6i-prcm.c  | 14 +
  4 files changed, 79 insertions(+), 1 deletion(-)
  create mode 100644 drivers/clk/sunxi/clk-sun6i-prcm-mod0.c

 diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt 
 b/Documentation/devicetree/bindings/clock/sunxi.txt
 index ed116df..342c75a 100644
 --- a/Documentation/devicetree/bindings/clock/sunxi.txt
 +++ b/Documentation/devicetree/bindings/clock/sunxi.txt
 @@ -56,6 +56,7 @@ Required properties:
 allwinner,sun4i-a10-usb-clk - for usb gates + resets on A10 / A20
 allwinner,sun5i-a13-usb-clk - for usb gates + resets on A13
 allwinner,sun6i-a31-usb-clk - for usb gates + resets on A31
 +   allwinner,sun6i-a31-ir-clk - for the ir clock on A31

  Required properties for all clocks:
  - reg : shall be the control register address for the clock.
 diff --git a/drivers/clk/sunxi/Makefile b/drivers/clk/sunxi/Makefile
 index 7ddc2b5..daf8b1c 100644
 --- a/drivers/clk/sunxi/Makefile
 +++ b/drivers/clk/sunxi/Makefile
 @@ -10,4 +10,4 @@ obj-y += clk-sun8i-mbus.o

  obj-$(CONFIG_MFD_SUN6I_PRCM) += \
 clk-sun6i-ar100.o clk-sun6i-apb0.o clk-sun6i-apb0-gates.o \
 -   clk-sun8i-apb0.o
 +   clk-sun8i-apb0.o clk-sun6i-prcm-mod0.o
 diff --git a/drivers/clk/sunxi/clk-sun6i-prcm-mod0.c 
 b/drivers/clk/sunxi/clk-sun6i-prcm-mod0.c
 new file mode 100644
 index 000..e80f18e
 --- /dev/null
 +++ b/drivers/clk/sunxi/clk-sun6i-prcm-mod0.c
 @@ -0,0 +1,63 @@
 +/*
 + * Allwinner A31 PRCM mod0 clock driver
 + *
 + * Copyright (C) 2014 Hans de Goede hdego...@redhat.com
 + *
 + * This program is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
 + * the Free Software Foundation; either version 2 of the License, or
 + * (at your option) any later version.
 + *
 + * This program is distributed in the hope that it will be useful,
 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 + * GNU General Public License for more details.
 + */
 +
 +#include linux/clk-provider.h
 +#include linux/clkdev.h
 +#include linux/module.h
 +#include linux/of_address.h
 +#include linux/platform_device.h
 +
 +#include clk-factors.h
 +#include clk-mod0.h
 +
 +static const struct of_device_id sun6i_a31_prcm_mod0_clk_dt_ids[] = {
 +   { .compatible = allwinner,sun6i-a31-ir-clk },

Could we use a generic name, like sun6i-a31-prcm-mod0-clk?
IIRC, there is another one, the module clock for the 1-wire interface.

Same for the DT patches.

ChenYu

 +   { /* sentinel */ }
 +};
 +
 +static DEFINE_SPINLOCK(sun6i_prcm_mod0_lock);
 +
 +static int sun6i_a31_prcm_mod0_clk_probe(struct platform_device *pdev)
 +{
 +   struct device_node *np = pdev-dev.of_node;
 +   struct resource *r;
 +   void __iomem *reg;
 +
 +   if (!np)
 +   return -ENODEV;
 +
 +   r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 +   reg = devm_ioremap_resource(pdev-dev, r);
 +   if (IS_ERR(reg))
 +   return PTR_ERR(reg);
 +
 +   sunxi_factors_register(np, sun4i_a10_mod0_data,
 +  sun6i_prcm_mod0_lock, reg);
 +   return 0;
 +}
 +
 +static struct platform_driver sun6i_a31_prcm_mod0_clk_driver = {
 +   .driver = {
 +   .name = sun6i-a31-prcm-mod0-clk,
 +   .of_match_table = sun6i_a31_prcm_mod0_clk_dt_ids,
 +   },
 +   .probe = sun6i_a31_prcm_mod0_clk_probe,
 +};
 +module_platform_driver(sun6i_a31_prcm_mod0_clk_driver);
 +
 +MODULE_DESCRIPTION(Allwinner A31 PRCM mod0 clock driver);
 +MODULE_AUTHOR(Hans de Goede hdego...@redhat.com);
 +MODULE_LICENSE(GPL);
 diff --git a/drivers/mfd/sun6i-prcm.c b/drivers/mfd/sun6i-prcm.c
 index 283ab8d..ff1254f 100644
 --- a/drivers/mfd/sun6i-prcm.c
 +++ b/drivers/mfd/sun6i-prcm.c
 @@ -41,6 +41,14 @@ static const struct resource 
 sun6i_a31_apb0_gates_clk_res[] = {
 },
  };

 +static const struct resource sun6i_a31_ir_clk_res[] = {
 +   {
 +   .start = 0x54,
 +   .end = 0x57,
 +   .flags = IORESOURCE_MEM,
 +   },
 +};
 +
  static const struct resource sun6i_a31_apb0_rstc_res[] = {
 {
 .start = 0xb0,
 @@ -69,6 +77,12 @@ static const struct mfd_cell sun6i_a31_prcm_subdevs[] = {
 .resources = sun6i_a31_apb0_gates_clk_res,
 },
 {
 +   .name = sun6i-a31-ir-clk,
 +   .of_compatible = 

Re: [linux-sunxi] [PATCH 3/9] clk: sunxi: Add prcm mod0 clock driver

2014-11-20 Thread Hans de Goede
Hi,

On 11/20/2014 07:24 PM, Chen-Yu Tsai wrote:
 Hi,
 
 On Thu, Nov 20, 2014 at 7:55 AM, Hans de Goede hdego...@redhat.com wrote:
 Add a driver for mod0 clocks found in the prcm. Currently there is only
 one mod0 clocks in the prcm, the ir clock.

 Signed-off-by: Hans de Goede hdego...@redhat.com
 ---
  Documentation/devicetree/bindings/clock/sunxi.txt |  1 +
  drivers/clk/sunxi/Makefile|  2 +-
  drivers/clk/sunxi/clk-sun6i-prcm-mod0.c   | 63 
 +++
  drivers/mfd/sun6i-prcm.c  | 14 +
  4 files changed, 79 insertions(+), 1 deletion(-)
  create mode 100644 drivers/clk/sunxi/clk-sun6i-prcm-mod0.c

 diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt 
 b/Documentation/devicetree/bindings/clock/sunxi.txt
 index ed116df..342c75a 100644
 --- a/Documentation/devicetree/bindings/clock/sunxi.txt
 +++ b/Documentation/devicetree/bindings/clock/sunxi.txt
 @@ -56,6 +56,7 @@ Required properties:
 allwinner,sun4i-a10-usb-clk - for usb gates + resets on A10 / A20
 allwinner,sun5i-a13-usb-clk - for usb gates + resets on A13
 allwinner,sun6i-a31-usb-clk - for usb gates + resets on A31
 +   allwinner,sun6i-a31-ir-clk - for the ir clock on A31

  Required properties for all clocks:
  - reg : shall be the control register address for the clock.
 diff --git a/drivers/clk/sunxi/Makefile b/drivers/clk/sunxi/Makefile
 index 7ddc2b5..daf8b1c 100644
 --- a/drivers/clk/sunxi/Makefile
 +++ b/drivers/clk/sunxi/Makefile
 @@ -10,4 +10,4 @@ obj-y += clk-sun8i-mbus.o

  obj-$(CONFIG_MFD_SUN6I_PRCM) += \
 clk-sun6i-ar100.o clk-sun6i-apb0.o clk-sun6i-apb0-gates.o \
 -   clk-sun8i-apb0.o
 +   clk-sun8i-apb0.o clk-sun6i-prcm-mod0.o
 diff --git a/drivers/clk/sunxi/clk-sun6i-prcm-mod0.c 
 b/drivers/clk/sunxi/clk-sun6i-prcm-mod0.c
 new file mode 100644
 index 000..e80f18e
 --- /dev/null
 +++ b/drivers/clk/sunxi/clk-sun6i-prcm-mod0.c
 @@ -0,0 +1,63 @@
 +/*
 + * Allwinner A31 PRCM mod0 clock driver
 + *
 + * Copyright (C) 2014 Hans de Goede hdego...@redhat.com
 + *
 + * This program is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
 + * the Free Software Foundation; either version 2 of the License, or
 + * (at your option) any later version.
 + *
 + * This program is distributed in the hope that it will be useful,
 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 + * GNU General Public License for more details.
 + */
 +
 +#include linux/clk-provider.h
 +#include linux/clkdev.h
 +#include linux/module.h
 +#include linux/of_address.h
 +#include linux/platform_device.h
 +
 +#include clk-factors.h
 +#include clk-mod0.h
 +
 +static const struct of_device_id sun6i_a31_prcm_mod0_clk_dt_ids[] = {
 +   { .compatible = allwinner,sun6i-a31-ir-clk },
 
 Could we use a generic name, like sun6i-a31-prcm-mod0-clk?
 IIRC, there is another one, the module clock for the 1-wire interface.

I wish we could use a generic name, but that does not work for mfd device
subnodes, as the mfd framework attaches resources (such as registers) to
the subnodes based on the compatible.

BTW it seems that that the 1-wire clock is not 100% mod0 clock compatible,
at least the ccmu.h in the allwinner SDK uses a different struct definition
for it.

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


Re: SAA7164 firmware for Asus MyCinema

2014-11-20 Thread Olli Salonen

On Wed, 19 Nov 2014, Éder Zsolt wrote:


Hi,

I found at the site: http://www.linuxtv.org/wiki/index.php/ATSC_PCIe_Cards 
that if I have a TV-tuner card which is currently unsupported, you may help 
me how I can make workable this device.


I have an Asus MyCinema EHD3-100/NAQ/FM/AV/MCE RC dual TV-Tuner card with 
SAA7164 chipset.


Did we talk about this in IRC a couple of days ago?

If not, you will need to find out which demodulator and tuner are used on 
that card. You can find those by looking at the physical card. Read the 
text on the bigger ICs and try to put them in the google to find out the 
components used. The tuner might be under metal shielding, in which case 
it might be a bit more tricky to find out.


Looking at the files in the Windows driver package might give you some 
hints as well.


Cheers,
-olli

Re: [PATCH 1/1] dvb-usb-dvbsky: add T680CI dvb-t2/t/c usb ci box support

2014-11-20 Thread Olli Salonen

Hi Max,

I think this is ok. In the nearby future, would be good to move TT 
CT2-4650 CI support to the dvbsky driver as that one is a rebadged T680CI 
anyway. If you will add T330 support as well, we could move CT2-4400 too..


Reviewed-by: Olli Salonen olli.salo...@iki.fi

Cheers,
-olli

On Thu, 13 Nov 2014, Nibble Max wrote:


DVBSky T680CI dvb-t2/t/c usb ci box:
1dvb frontend: SI2158A20(tuner), SI2168A30(demod)
2usb controller: CY7C86013A
3ci controller: CIMAX SP2 or its clone.

Signed-off-by: Nibble Max nibble@gmail.com

--
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 2/3] si2168: TS clock inversion control.

2014-11-20 Thread Olli Salonen

Reviewed-by: Olli Salonen olli.salo...@iki.fi

On Fri, 14 Nov 2014, CrazyCat wrote:


TS clock polarity control implemented.

Signed-off-by: Evgeny Plehov evgenyple...@ukr.net
---
drivers/media/dvb-frontends/si2168.c  | 7 +--
drivers/media/dvb-frontends/si2168.h  | 4 
drivers/media/dvb-frontends/si2168_priv.h | 1 +
3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/media/dvb-frontends/si2168.c 
b/drivers/media/dvb-frontends/si2168.c
index 7bac748..16a347a 100644
--- a/drivers/media/dvb-frontends/si2168.c
+++ b/drivers/media/dvb-frontends/si2168.c
@@ -308,14 +308,16 @@ static int si2168_set_frontend(struct dvb_frontend *fe)
if (ret)
goto err;

-   memcpy(cmd.args, \x14\x00\x09\x10\xe3\x18, 6);
+   memcpy(cmd.args, \x14\x00\x09\x10\xe3\x08, 6);
+   cmd.args[5] |= s-ts_clock_inv ? 0x00 : 0x10;
cmd.wlen = 6;
cmd.rlen = 4;
ret = si2168_cmd_execute(s, cmd);
if (ret)
goto err;

-   memcpy(cmd.args, \x14\x00\x08\x10\xd7\x15, 6);
+   memcpy(cmd.args, \x14\x00\x08\x10\xd7\x05, 6);
+   cmd.args[5] |= s-ts_clock_inv ? 0x00 : 0x10;
cmd.wlen = 6;
cmd.rlen = 4;
ret = si2168_cmd_execute(s, cmd);
@@ -669,6 +671,7 @@ static int si2168_probe(struct i2c_client *client,
*config-i2c_adapter = s-adapter;
*config-fe = s-fe;
s-ts_mode = config-ts_mode;
+   s-ts_clock_inv = config-ts_clock_inv;
s-fw_loaded = false;

i2c_set_clientdata(client, s);
diff --git a/drivers/media/dvb-frontends/si2168.h 
b/drivers/media/dvb-frontends/si2168.h
index e086d67..87bc121 100644
--- a/drivers/media/dvb-frontends/si2168.h
+++ b/drivers/media/dvb-frontends/si2168.h
@@ -37,6 +37,10 @@ struct si2168_config {

/* TS mode */
u8 ts_mode;
+
+   /* TS clock inverted */
+   bool ts_clock_inv;
+
};

#define SI2168_TS_PARALLEL  0x06
diff --git a/drivers/media/dvb-frontends/si2168_priv.h 
b/drivers/media/dvb-frontends/si2168_priv.h
index 132df67..66ed675 100644
--- a/drivers/media/dvb-frontends/si2168_priv.h
+++ b/drivers/media/dvb-frontends/si2168_priv.h
@@ -36,6 +36,7 @@ struct si2168 {
fe_delivery_system_t delivery_system;
fe_status_t fe_status;
u8 ts_mode;
+   bool ts_clock_inv;
bool active;
bool fw_loaded;
};
--
1.9.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


--
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 3/3] cxusb: Geniatech T230 support.

2014-11-20 Thread Olli Salonen

Reviewed-by: Olli Salonen olli.salo...@iki.fi

On Fri, 14 Nov 2014, CrazyCat wrote:


Geniatech Mygica T230 DVB-T/T2/C USB stick support.

Signed-off-by: Evgeny Plehov evgenyple...@ukr.net
---
drivers/media/dvb-core/dvb-usb-ids.h |   1 +
drivers/media/usb/dvb-usb/cxusb.c| 127 +++
2 files changed, 128 insertions(+)

diff --git a/drivers/media/dvb-core/dvb-usb-ids.h 
b/drivers/media/dvb-core/dvb-usb-ids.h
index e07a84e..80ab8d0 100644
--- a/drivers/media/dvb-core/dvb-usb-ids.h
+++ b/drivers/media/dvb-core/dvb-usb-ids.h
@@ -356,6 +356,7 @@
#define USB_PID_MSI_DIGI_VOX_MINI_III   0x8807
#define USB_PID_SONY_PLAYTV 0x0003
#define USB_PID_MYGICA_D689 0xd811
+#define USB_PID_MYGICA_T2300xc688
#define USB_PID_ELGATO_EYETV_DIVERSITY  0x0011
#define USB_PID_ELGATO_EYETV_DTT0x0021
#define USB_PID_ELGATO_EYETV_DTT_2  0x003f
diff --git a/drivers/media/usb/dvb-usb/cxusb.c 
b/drivers/media/usb/dvb-usb/cxusb.c
index b46f84d..7346698 100644
--- a/drivers/media/usb/dvb-usb/cxusb.c
+++ b/drivers/media/usb/dvb-usb/cxusb.c
@@ -1408,6 +1408,76 @@ static int cxusb_mygica_d689_frontend_attach(struct 
dvb_usb_adapter *adap)
return 0;
}

+static int cxusb_mygica_t230_frontend_attach(struct dvb_usb_adapter *adap)
+{
+   struct dvb_usb_device *d = adap-dev;
+   struct cxusb_state *st = d-priv;
+   struct i2c_adapter *adapter;
+   struct i2c_client *client_demod;
+   struct i2c_client *client_tuner;
+   struct i2c_board_info info;
+   struct si2168_config si2168_config;
+   struct si2157_config si2157_config;
+
+   /* Select required USB configuration */
+   if (usb_set_interface(d-udev, 0, 0)  0)
+   err(set interface failed);
+
+   /* Unblock all USB pipes */
+   usb_clear_halt(d-udev,
+   usb_sndbulkpipe(d-udev, d-props.generic_bulk_ctrl_endpoint));
+   usb_clear_halt(d-udev,
+   usb_rcvbulkpipe(d-udev, d-props.generic_bulk_ctrl_endpoint));
+   usb_clear_halt(d-udev,
+   usb_rcvbulkpipe(d-udev, 
d-props.adapter[0].fe[0].stream.endpoint));
+
+   /* attach frontend */
+   si2168_config.i2c_adapter = adapter;
+   si2168_config.fe = adap-fe_adap[0].fe;
+   si2168_config.ts_mode = SI2168_TS_PARALLEL;
+   si2168_config.ts_clock_inv = 1;
+   memset(info, 0, sizeof(struct i2c_board_info));
+   strlcpy(info.type, si2168, I2C_NAME_SIZE);
+   info.addr = 0x64;
+   info.platform_data = si2168_config;
+   request_module(info.type);
+   client_demod = i2c_new_device(d-i2c_adap, info);
+   if (client_demod == NULL || client_demod-dev.driver == NULL)
+   return -ENODEV;
+
+   if (!try_module_get(client_demod-dev.driver-owner)) {
+   i2c_unregister_device(client_demod);
+   return -ENODEV;
+   }
+
+   st-i2c_client_demod = client_demod;
+
+   /* attach tuner */
+   memset(si2157_config, 0, sizeof(si2157_config));
+   si2157_config.fe = adap-fe_adap[0].fe;
+   memset(info, 0, sizeof(struct i2c_board_info));
+   strlcpy(info.type, si2157, I2C_NAME_SIZE);
+   info.addr = 0x60;
+   info.platform_data = si2157_config;
+   request_module(info.type);
+   client_tuner = i2c_new_device(adapter, info);
+   if (client_tuner == NULL || client_tuner-dev.driver == NULL) {
+   module_put(client_demod-dev.driver-owner);
+   i2c_unregister_device(client_demod);
+   return -ENODEV;
+   }
+   if (!try_module_get(client_tuner-dev.driver-owner)) {
+   i2c_unregister_device(client_tuner);
+   module_put(client_demod-dev.driver-owner);
+   i2c_unregister_device(client_demod);
+   return -ENODEV;
+   }
+
+   st-i2c_client_tuner = client_tuner;
+
+   return 0;
+}
+
static int cxusb_tt_ct2_4400_attach(struct dvb_usb_adapter *adap)
{
struct dvb_usb_device *d = adap-dev;
@@ -1609,6 +1679,7 @@ static struct dvb_usb_device_properties 
cxusb_bluebird_nano2_needsfirmware_prope
static struct dvb_usb_device_properties cxusb_aver_a868r_properties;
static struct dvb_usb_device_properties cxusb_d680_dmb_properties;
static struct dvb_usb_device_properties cxusb_mygica_d689_properties;
+static struct dvb_usb_device_properties cxusb_mygica_t230_properties;
static struct dvb_usb_device_properties cxusb_tt_ct2_4400_properties;

static int cxusb_probe(struct usb_interface *intf,
@@ -1640,6 +1711,8 @@ static int cxusb_probe(struct usb_interface *intf,
 THIS_MODULE, NULL, adapter_nr) ||
0 == dvb_usb_device_init(intf, cxusb_mygica_d689_properties,
 THIS_MODULE, NULL, adapter_nr) ||
+   0 == dvb_usb_device_init(intf, cxusb_mygica_t230_properties,
+  

Re: [PATCH 1/3] tuners: si2157: Si2148 support.

2014-11-20 Thread Olli Salonen

On Mon, 17 Nov 2014, Michael Holzer wrote:


I'd see merit to show the supported chips explicitly as otherwise users
may be confused if a new unsupported chip  (lets assume Si2159)
appears and the message is generic as proposed Si215x.
To get clarity for this case source code reading would be required.


Well, the user of a Si2159 would never see the printout as the driver 
would not be loaded for a Si2159 user. I'd say just print something like 
Si215x/Si216x Silicon Tuner in the printouts and list all the chips in 
the source code. But that's not something that needs to be fixed now 
anyway, we can do that later.


Crazycat, do you think you could change the firmware loading for Si2148 
as discussed here though and send a new patch?


Cheers,
-olli
--
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: v4l-utils stable release 1.6.1

2014-11-20 Thread Hans de Goede
Hi,

On 11/20/2014 04:31 PM, Gregor Jasny wrote:
 Hello,
 
 do you consider something from these commits as important enough for a bugfix 
 release?
 

snip

 Hans de Goede (2):
   rc_keymaps: allwinner: S/KEY_HOME/KEY_HOMEPAGE/
   v4lconvert: Fix decoding of jpeg data with no vertical sub-sampling

Yes both of them (first one is not that important, but if you're doing
a 1.6.1 anyways it is good to include it).

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 3/3] em28xx: initialize si2168_config struct

2014-11-20 Thread Olli Salonen
When new parameters are added for si2168 driver, the parameters have to be 
explicitly defined for each device if the
si2168_config struct is not initialized to all zeros.

Signed-off-by: Olli Salonen olli.salo...@iki.fi
---
 drivers/media/usb/em28xx/em28xx-dvb.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/media/usb/em28xx/em28xx-dvb.c 
b/drivers/media/usb/em28xx/em28xx-dvb.c
index 65a456d..5a94f17 100644
--- a/drivers/media/usb/em28xx/em28xx-dvb.c
+++ b/drivers/media/usb/em28xx/em28xx-dvb.c
@@ -1553,6 +1553,7 @@ static int em28xx_dvb_init(struct em28xx *dev)
struct si2157_config si2157_config;
 
/* attach demod */
+   memset(si2168_config, 0, sizeof(si2168_config));
si2168_config.i2c_adapter = adapter;
si2168_config.fe = dvb-fe[0];
si2168_config.ts_mode = SI2168_TS_PARALLEL;
-- 
1.9.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


[PATCH 2/3] af9035: initialize si2168_config struct

2014-11-20 Thread Olli Salonen
When new parameters are added for si2168 driver, the parameters have to be 
explicitly defined for each device if the
si2168_config struct is not initialized to all zeros.

Signed-off-by: Olli Salonen olli.salo...@iki.fi
---
 drivers/media/usb/dvb-usb-v2/af9035.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c 
b/drivers/media/usb/dvb-usb-v2/af9035.c
index 1896ab2..80a29f5 100644
--- a/drivers/media/usb/dvb-usb-v2/af9035.c
+++ b/drivers/media/usb/dvb-usb-v2/af9035.c
@@ -1171,6 +1171,7 @@ static int it930x_frontend_attach(struct dvb_usb_adapter 
*adap)
 
dev_dbg(d-udev-dev, adap-id=%d\n, adap-id);
 
+   memset(si2168_config, 0, sizeof(si2168_config));
si2168_config.i2c_adapter = adapter;
si2168_config.fe = adap-fe[0];
si2168_config.ts_mode = SI2168_TS_SERIAL;
-- 
1.9.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


[PATCH 1/3] cxusb: initialize si2168_config struct

2014-11-20 Thread Olli Salonen
When new parameters are added for si2168 driver, the parameters have to be 
explicitly defined for each device if the 
si2168_config struct is not initialized to all zeros.

Signed-off-by: Olli Salonen olli.salo...@iki.fi
---
 drivers/media/usb/dvb-usb/cxusb.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/media/usb/dvb-usb/cxusb.c 
b/drivers/media/usb/dvb-usb/cxusb.c
index 356abb3..ef73c93 100644
--- a/drivers/media/usb/dvb-usb/cxusb.c
+++ b/drivers/media/usb/dvb-usb/cxusb.c
@@ -1435,6 +1435,7 @@ static int cxusb_tt_ct2_4400_attach(struct 
dvb_usb_adapter *adap)
msleep(100);
 
/* attach frontend */
+   memset(si2168_config, 0, sizeof(si2168_config));
si2168_config.i2c_adapter = adapter;
si2168_config.fe = adap-fe_adap[0].fe;
si2168_config.ts_mode = SI2168_TS_PARALLEL;
-- 
1.9.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


Fix Penguin Penalty 17th October2014 ( mail-archive.com )

2014-11-20 Thread attiring36612
Dear Sir

Did your website get hit by Google Penguin update on October 17th 2014? What 
basically is Google Penguin Update? It is actually a code name for Google 
algorithm which aims at decreasing your websites search engine rankings that 
violate Google’s guidelines by using black hat SEO techniques to rank your 
webpage by giving number of spammy links to the page.
 
We are one of those few SEO companies that can help you avoid penalties from 
Google Updates like Penguin and Panda. Our clients have survived all the 
previous and present updates with ease. They have never been hit because we use 
100% white hat SEO techniques to rank Webpages.  Simple thing that we do to 
keep websites away from any Penguin or Panda penalties is follow Google 
guidelines and we give Google users the best answers to their queries.

If you are looking to increase the quality of your websites and to get more 
targeted traffic or save your websites from these Google penalties email us 
back with your interest. 

We will be glad to serve you and help you grow your business.

Regards

Julia kites

SEO Manager ( TOB )
B7 Green Avenue, Amritsar 143001 Punjab

NO CLICK in the subject to STOP EMAILS
--
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] rc-core: fix toggle handling in the rc6 decoder

2014-11-20 Thread David Härdeman
The toggle bit shouldn't be cleared before the toggle value is calculated.

This should probably go into 3.17.x as well.

Fixes: 120703f9eb32 ([media] rc-core: document the protocol type)
Tested-by: Stephan Raue mailingli...@openelec.tv
Signed-off-by: David Härdeman da...@hardeman.nu
Cc: sta...@vger.kernel.org
---
 drivers/media/rc/ir-rc6-decoder.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/rc/ir-rc6-decoder.c 
b/drivers/media/rc/ir-rc6-decoder.c
index f1f098e..d16bc67 100644
--- a/drivers/media/rc/ir-rc6-decoder.c
+++ b/drivers/media/rc/ir-rc6-decoder.c
@@ -259,8 +259,8 @@ again:
case 32:
if ((scancode  RC6_6A_LCC_MASK) == 
RC6_6A_MCE_CC) {
protocol = RC_TYPE_RC6_MCE;
-   scancode = ~RC6_6A_MCE_TOGGLE_MASK;
toggle = !!(scancode  
RC6_6A_MCE_TOGGLE_MASK);
+   scancode = ~RC6_6A_MCE_TOGGLE_MASK;
} else {
protocol = RC_BIT_RC6_6A_32;
toggle = 0;

--
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 1/3] tuners: si2157: Si2148 support.

2014-11-20 Thread CrazyCat
No need, because si214x is same si215x without analog filter path.

20.11.2014, 22:10, Olli Salonen olli.salo...@iki.fi:
 Crazycat, do you think you could change the firmware loading for Si2148
 as discussed here though and send a new patch?
--
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: [linux-sunxi] [PATCH 4/9] rc: sunxi-cir: Add support for an optional reset controller

2014-11-20 Thread Julian Calaby
Hi Hans,

On Fri, Nov 21, 2014 at 2:55 AM, Hans de Goede hdego...@redhat.com wrote:
 On sun6i the cir block is attached to the reset controller, add support
 for de-asserting the reset if a reset controller is specified in dt.

 Signed-off-by: Hans de Goede hdego...@redhat.com
 ---
  drivers/media/rc/sunxi-cir.c | 25 +++--
  1 file changed, 23 insertions(+), 2 deletions(-)

Shouldn't we be updating the binding documentation?

 diff --git a/drivers/media/rc/sunxi-cir.c b/drivers/media/rc/sunxi-cir.c
 index bcee8e1..895fb65 100644
 --- a/drivers/media/rc/sunxi-cir.c
 +++ b/drivers/media/rc/sunxi-cir.c
 @@ -23,6 +23,7 @@
  #include linux/interrupt.h
  #include linux/module.h
  #include linux/of_platform.h
 +#include linux/reset.h
  #include media/rc-core.h

  #define SUNXI_IR_DEV sunxi-ir
 @@ -95,6 +96,7 @@ struct sunxi_ir {
 int irq;
 struct clk  *clk;
 struct clk  *apb_clk;
 +   struct reset_control *rst;
 const char  *map_name;
  };

 @@ -166,15 +168,29 @@ static int sunxi_ir_probe(struct platform_device *pdev)
 return PTR_ERR(ir-clk);
 }

 +   /* Reset (optional) */
 +   ir-rst = devm_reset_control_get_optional(dev, NULL);
 +   if (IS_ERR(ir-rst)) {
 +   ret = PTR_ERR(ir-rst);
 +   if (ret == -EPROBE_DEFER)
 +   return ret;
 +   ir-rst = NULL;
 +   } else {
 +   ret = reset_control_deassert(ir-rst);
 +   if (ret)
 +   return ret;
 +   }
 +
 ret = clk_set_rate(ir-clk, SUNXI_IR_BASE_CLK);
 if (ret) {
 dev_err(dev, set ir base clock failed!\n);
 -   return ret;
 +   goto exit_reset_assert;
 }

 if (clk_prepare_enable(ir-apb_clk)) {
 dev_err(dev, try to enable apb_ir_clk failed\n);
 -   return -EINVAL;
 +   ret = -EINVAL;
 +   goto exit_reset_assert;
 }

 if (clk_prepare_enable(ir-clk)) {
 @@ -271,6 +287,9 @@ exit_clkdisable_clk:
 clk_disable_unprepare(ir-clk);
  exit_clkdisable_apb_clk:
 clk_disable_unprepare(ir-apb_clk);
 +exit_reset_assert:
 +   if (ir-rst)
 +   reset_control_assert(ir-rst);

 return ret;
  }
 @@ -282,6 +301,8 @@ static int sunxi_ir_remove(struct platform_device *pdev)

 clk_disable_unprepare(ir-clk);
 clk_disable_unprepare(ir-apb_clk);
 +   if (ir-rst)
 +   reset_control_assert(ir-rst);

 spin_lock_irqsave(ir-ir_lock, flags);
 /* disable IR IRQ */
 --
 2.1.0

 --
 You received this message because you are subscribed to the Google Groups 
 linux-sunxi group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to linux-sunxi+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/optout.



-- 
Julian Calaby

Email: julian.cal...@gmail.com
Profile: http://www.google.com/profiles/julian.calaby/
--
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: Re: Fwd: Re: Re: Problems with Linux drivers (Debian Jessie kernel3.16.0-4)

2014-11-20 Thread Nibble Max
Hello Chris,

Do all of your transponders have such issue or only some special transponders?
Could you list the parameters for them? for example, dvb-s or dvb-s2 type, 
frequency, symbol rate.

The dvbsky.net firmware dvb-fe-ds3103.fw is version 3.7.
Annti uses the firmware dvb-demod-m88ds3103.fw, which is version 3.B.
But we test both firmwares work well. You can change one to the other's file 
name for check.

Best Regards,
Max

On 2014-11-20 20:56:07, Christopher Scheuring ch...@anke-und-chris.de wrote:
Hello,

I yust checked the SNR Level the DVBSky-Card providing with the
drivers from dvbsky.net (media_build-bst-14-141106):

# ./femon -a 0
using '/dev/dvb/adapter0/frontend0'
FE: Montage DS3103/TS2022 (SAT)
status 1f | signal 7323 | snr b064 | ber  | unc  |
FE_HAS_LOCK

# ./femon -a 1
using '/dev/dvb/adapter1/frontend0'
FE: Montage DS3103/TS2022 (SAT)
status 1f | signal 7a71 | snr 2a17 | ber  | unc  |
FE_HAS_LOCK


Looks better than with driver from linuxtv.org via git. And I
don't have any sync problems or video / audio drops.


I currently determined following:
* Using the drivers from dvbsky.net the card is Montage DS3103/TS2022
  = Loading FW dvb-fe-ds3103.fw
* With the drivers from linuxtv.org the card is Montage M88DS3103
  = Loading FW dvb-demod-m88ds3103.fw


I'm a bit confused... perhaps if I use the linuxtv.org drivers, the
card is recognized wrong and that's the problem?


Regards,
Chris


On Thu, 20 Nov 2014 09:01:23 +0200, Antti Palosaari cr...@iki.fi wrote:
 Moikka
 According to logs, everything seems to be fine. You could not compare 
 statistics numbers between two drivers. SNR 0096 is 150DEC, which means 
 15dB, IIRC it was max chip could return for DVB-S.
 
 No idea about sync etc. problems, are you sure about those? I am pretty 
 sure it works rather well as I haven't got bug reports from PCTV 461e 
 users which has that same demod + tuner.
 
 regards
 Antti
 
 
 
 On 11/19/2014 09:28 PM, Christopher Scheuring wrote:
 Hello Antti,

 the guys from t...@dvbsky.net told me to contact you because of my
 problems with the drivers for my DVBSKY S952.

 I attached the whole conversation. Currently the main problem is if i
 use the current drivers via
 git(http://git.linuxtv.org/cgit.cgi/media_build.git/about/) my single
 TT-Budget card works fine. But the signal from the DVDBSky S952 is very
 worse: Sync problems, bad SNR, drops on video and audio... If I use the
 driver dvbsky.net provides (media_build-bst-14-141106), the signal on
 booth tuners is fine - but then my TT-Budget doesn't works anymore (see
 end of this mail aka starting the conversation with t...@dvbsky.net).

 Do you have any ideas, how I could fix this problem? Before I updated
my
 system (from Debian Wheezy with Kernel 3.2.0-4-amd64 everything was
fine
 with both cards.


 If you need more detailed information, please let me know, so I could
 provide them as soon as possible,

 Thanks a lot and best wishes
 Chris


  Weitergeleitete Nachricht 
 Betreff:Re: Re: Problems with Linux drivers (Debian Jessie kernel
 3.16.0-4)
 Datum:  Wed, 19 Nov 2014 10:28:06 +0800
 Von:tech t...@dvbsky.net
 An: Christopher Scheuring ch...@anke-und-chris.de



 Hello,
 Could you report this problem to Antti Palosaari cr...@iki.fi
 mailto:cr...@iki.fi and cc to linux-media@vger.kernel.org ?
 Antti is the author/maintainer of M88DS3103 driver.Montage M88DS3103
(SAT)*
 Please list the compare result of the driver from DVBSky site and
 Linuxtv.org.
 Max from DVBSky also register linux-media mail list.
 He will get your report and co-work with Antti to fix this issue of
 M88DS3103 driver from Linuxtv.org.
 BR,
 tech


 *From:* Christopher Scheuringch...@anke-und-chris.de
 mailto:ch...@anke-und-chris.de
 *Date:* 2014-11-19  04:42:10
 *To:* techt...@dvbsky.net mailto:t...@dvbsky.net
 *Cc:* 
 *Subject:* Re: Problems with Linux drivers (Debian Jessie kernel
 3.16.0-4)
 Hello,

 with the drivers from linuxtv.org and the firmware provided by your
 site, both cards work.

 But the DVBSky card (Montage M88DS3103) do now have a really bad
 SNR!TT-Budget C-1501 works as expected. See the output of femon - the
 signal of the DVBSky card was excellent with the drivers from you
 site... Any idea, what could cause the problem? TV signal provided by
 the DVBSky sometimes drops :-(

 xxx@xxx:~/VDR/linuxtv-dvb-apps-1.1.1/util/szap$ ./femon -a1
 *using '/dev/dvb/adapter1/frontend0'**
 **FE: Montage M88DS3103 (SAT)*
 status 1f | signal 585e | *snr 0096* | ber  | unc  |
 FE_HAS_LOCK
 status 1f | signal 585e | *snr 0096* | ber  | unc  |
 FE_HAS_LOCK


 xxx@xxx:~/VDR/linuxtv-dvb-apps-1.1.1/util/szap$ ./femon -a2
 *using '/dev/dvb/adapter2/frontend0'**
 **FE: Montage M88DS3103 (SAT)*
 status 1f | signal 6c07 | *snr 0096* | ber  | unc  |
 FE_HAS_LOCK
 status 1f | signal 6c07 | *snr 

cron job: media_tree daily build: OK

2014-11-20 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:   Fri Nov 21 04:00:14 CET 2014
git branch: test
git hash:   c02ef64aab828d80040b5dce934729312e698c33
gcc version:i686-linux-gcc (GCC) 4.9.1
sparse version: v0.5.0-35-gc1c3f96
smatch version: 0.4.1-3153-g7d56ab3
host hardware:  x86_64
host os:3.17-2.slh.2-amd64

linux-git-arm-at91: OK
linux-git-arm-davinci: OK
linux-git-arm-exynos: OK
linux-git-arm-mx: OK
linux-git-arm-omap: OK
linux-git-arm-omap1: OK
linux-git-arm-pxa: OK
linux-git-blackfin: 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.32.27-i686: OK
linux-2.6.33.7-i686: OK
linux-2.6.34.7-i686: OK
linux-2.6.35.9-i686: 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: OK
linux-3.7.4-i686: OK
linux-3.8-i686: OK
linux-3.9.2-i686: OK
linux-3.10.1-i686: OK
linux-3.11.1-i686: OK
linux-3.12.23-i686: OK
linux-3.13.11-i686: OK
linux-3.14.9-i686: OK
linux-3.15.2-i686: OK
linux-3.16-i686: OK
linux-3.17-i686: OK
linux-3.18-rc1-i686: OK
linux-2.6.32.27-x86_64: OK
linux-2.6.33.7-x86_64: OK
linux-2.6.34.7-x86_64: OK
linux-2.6.35.9-x86_64: 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: OK
linux-3.7.4-x86_64: OK
linux-3.8-x86_64: OK
linux-3.9.2-x86_64: OK
linux-3.10.1-x86_64: OK
linux-3.11.1-x86_64: OK
linux-3.12.23-x86_64: OK
linux-3.13.11-x86_64: OK
linux-3.14.9-x86_64: OK
linux-3.15.2-x86_64: OK
linux-3.16-x86_64: OK
linux-3.17-x86_64: OK
linux-3.18-rc1-x86_64: OK
apps: OK
spec-git: OK
sparse: WARNINGS
smatch: ERRORS

Detailed results are available here:

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

Full logs are available here:

http://www.xs4all.nl/~hverkuil/logs/Friday.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


Добрый день,

2014-11-20 Thread Harlan Coben
Добрый день, Вам нужен срочный кредит, чтобы купить дом или оплатить
счета или Xmas кредит, если да, свяжитесь с нами со следующей
информацией по адресу:? 3% ставке.

Имя заявителя (Ф.И.О.):
Пол: ...
Требуется Сумма кредита :.
Кредит Продолжительность :.
Цель займа :.
Ежемесячный доход :.
телефонный номер :.
Род занятий: ..
Страна: ..
Возраст: .

Диктор,
Управление.
N�r��yb�X��ǧv�^�)޺{.n�+{���bj)w*jg����ݢj/���z�ޖ��2�ޙ�)ߡ�a�����G���h��j:+v���w��٥