[PATCH 0/3] [media] DVB-frontends: Deletion of a few unnecessary checks
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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_*
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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.
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
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
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
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
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 )
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 Googles 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
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.
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
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)
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
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
Добрый день,
Добрый день, Вам нужен срочный кредит, чтобы купить дом или оплатить счета или Xmas кредит, если да, свяжитесь с нами со следующей информацией по адресу:? 3% ставке. Имя заявителя (Ф.И.О.): Пол: ... Требуется Сумма кредита :. Кредит Продолжительность :. Цель займа :. Ежемесячный доход :. телефонный номер :. Род занятий: .. Страна: .. Возраст: . Диктор, Управление. N�r��yb�X��ǧv�^�){.n�+{���bj)w*jg����ݢj/���z�ޖ��2�ޙ�)ߡ�a�����G���h��j:+v���w��٥