In the lack of a better spec, let's assume the timeout
values compatible with SMBus spec:
http://smbus.org/specs/smbus110.pdf
at chapter 8 - Electrical Characteristics of SMBus devices
Ok, SMBus is a subset of I2C, and not all devices will be
following it, but the timeout value before
Better to split chipset detection from the audio setup. So, move the
detection code to em28xx_init_dev().
Signed-off-by: Mauro Carvalho Chehab m.che...@samsung.com
---
drivers/media/usb/em28xx/em28xx-cards.c | 11 +++
drivers/media/usb/em28xx/em28xx-core.c | 12 +---
2 files
There are several init code inside em28xx-cards that are actually
part of analog initialization. Move the code to em28x-video, in
order to remove part of the mess.
In thesis, no functional changes so far.
Signed-off-by: Mauro Carvalho Chehab m.che...@samsung.com
---
Now that we want to split the video handling to a separate
module, move all video-specific functions to em28xx-video.
No functional changes.
Signed-off-by: Mauro Carvalho Chehab m.che...@samsung.com
---
drivers/media/usb/em28xx/em28xx-cards.c | 107 -
In order to initialize the analog tuner, v4l2 should be registere
first, or otherwise we get an oops:
[ 51.783537] BUG: unable to handle kernel NULL pointer dereference at)
[ 51.784479] IP: [81319fbb] __list_add+0x1b/0xc0
[ 51.784479] PGD 0
[ 51.784479] Oops: [#1] SMP
Instead of assuming that msleep() is precise, use a jiffies
based code to wait for AC97 to be available.
Signed-off-by: Mauro Carvalho Chehab m.che...@samsung.com
---
drivers/media/usb/em28xx/em28xx-core.c | 7 +--
drivers/media/usb/em28xx/em28xx.h | 5 -
2 files changed, 9
Add a message with consistent prints before and after each
extension initialization, and provide a better text for module
load.
While here, add a missing sanity check for extension finish
code at em28xx-v4l extension.
Signed-off-by: Mauro Carvalho Chehab m.che...@samsung.com
---
Better to first write the GPIOs of the input mux, before initializing
the audio.
Signed-off-by: Mauro Carvalho Chehab m.che...@samsung.com
---
drivers/media/usb/em28xx/em28xx-video.c | 40 -
1 file changed, 20 insertions(+), 20 deletions(-)
diff --git
The proper error code for I2C errors are EREMOTEIO. The em28xx driver
is using EIO instead.
Replace all occurrences of EIO at em28xx-i2c, in order to fix it.
Signed-off-by: Mauro Carvalho Chehab m.che...@samsung.com
---
drivers/media/usb/em28xx/em28xx-i2c.c | 20 ++--
1 file
-ENODEV reports a permanent condition where a device is not found,
and used only during device probing or device removal, as stated
at the V4L2 spec:
http://linuxtv.org/downloads/v4l-dvb-apis/gen_errors.html
Except during device detection, this is not the case of I2C
transfer timeout
From: Mauro Carvalho Chehab mche...@redhat.com
Instead of allocating/deallocating URBs and transfer buffers
every time stream is started/stopped, just do it once.
That reduces the memory allocation pressure and makes the
code that start/stop streaming a way simpler.
Signed-off-by: Mauro
Instead of allocating transfer buffers with kmalloc() use
usb_alloc_coherent().
That makes it work also with arm CPUs.
Signed-off-by: Mauro Carvalho Chehab m.che...@samsung.com
---
drivers/media/usb/em28xx/em28xx-audio.c | 31 ---
1 file changed, 20 insertions(+), 11
When em28xx extensions are loaded/removed, there are two locks:
a single static em28xx_devlist_mutex that registers each extension
and the struct em28xx dev-lock.
When extensions are registered, em28xx_devlist_mutex is taken first,
and then dev-lock.
Be sure that, when extensions are being
I2C read operations can also take some time to happen.
Try again, if it fails with return code different than 0x10
until timeout.
Signed-off-by: Mauro Carvalho Chehab m.che...@samsung.com
---
drivers/media/usb/em28xx/em28xx-i2c.c | 62 +++
1 file changed, 34
In order to make easier for the next patches, do some
cosmetic changes.
No functional changes.
Signed-off-by: Mauro Carvalho Chehab m.che...@samsung.com
---
drivers/media/usb/em28xx/em28xx-cards.c | 2 +-
drivers/media/usb/em28xx/em28xx-video.c | 2 --
drivers/media/usb/em28xx/em28xx.h
Now that all analog-specific code are at em28xx-video, convert
it into an em28xx extension and load it as a separate module.
Signed-off-by: Mauro Carvalho Chehab m.che...@samsung.com
---
drivers/media/usb/em28xx/Kconfig | 6 ++-
drivers/media/usb/em28xx/Makefile| 5 ++-
The I2C wait completion/timeout logic currently assumes that
msleep(5) will wait exaclty 5 ms. This is not true at all,
as it depends on CONFIG_HZ.
Convert it to use jiffies, in order to not wait for more time
than needed.
Signed-off-by: Mauro Carvalho Chehab m.che...@samsung.com
---
This patch series split em28xx into a separate V4L2 driver,
allowing the new dvb-only chips to be supported without requiring
V4L2.
While testing the original patchset, I noticed several issues with
HVR-950. The remaining patches on this series fix most of those
issues.
There's one remaining
Instead of using two I2C operations between write and read,
use just one i2c_transfer. That allows I2C mutexes to not
let any other I2C transfer between the two.
Signed-off-by: Mauro Carvalho Chehab m.che...@samsung.com
---
drivers/media/i2c/tvp5150.c | 26 +++---
1 file
This macro is not used. remove it.
Signed-off-by: Mauro Carvalho Chehab m.che...@samsung.com
---
drivers/media/tuners/tuner-xc2028.c | 9 -
1 file changed, 9 deletions(-)
diff --git a/drivers/media/tuners/tuner-xc2028.c
b/drivers/media/tuners/tuner-xc2028.c
index
changeset 45f04e82d035 added a logic to check if em28xx got
a timeout on an I2C transfer.
That patch started to produce a series of errors that is present
with HVR-950, like:
[ 4032.218656] xc2028 19-0061: Error on line 1299: -19
However, as there are several places where -ENODEV is produced,
Em Fri, 03 Jan 2014 21:29:20 +0100
Frank Schäfer fschaefer@googlemail.com escreveu:
Am 28.12.2013 13:15, schrieb Mauro Carvalho Chehab:
This patch series split em28xx into a separate V4L2 driver,
allowing the new dvb-only chips to be supported without requiring
V4L2.
While testing
Signed-off-by: André Roth neol...@gmail.com
---
lib/include/libdvbv5/descriptors.h |2 --
lib/libdvbv5/descriptors.c | 44 ++--
2 files changed, 22 insertions(+), 24 deletions(-)
diff --git a/lib/include/libdvbv5/descriptors.h
Signed-off-by: André Roth neol...@gmail.com
---
lib/include/libdvbv5/pmt.h |6 +-
lib/libdvbv5/descriptors/pmt.c | 22 +++---
2 files changed, 20 insertions(+), 8 deletions(-)
diff --git a/lib/include/libdvbv5/pmt.h b/lib/include/libdvbv5/pmt.h
index
Signed-off-by: André Roth neol...@gmail.com
---
lib/include/libdvbv5/cat.h | 51 +++
lib/libdvbv5/Makefile.am |2 ++
lib/libdvbv5/descriptors.c |2 ++
lib/libdvbv5/descriptors/cat.c | 66
4 files
Signed-off-by: André Roth neol...@gmail.com
---
lib/include/libdvbv5/atsc_header.h|2 +-
lib/include/libdvbv5/desc_atsc_service_location.h |4 ++--
lib/include/libdvbv5/desc_cable_delivery.h|8
lib/include/libdvbv5/desc_event_extended.h|4
Signed-off-by: André Roth neol...@gmail.com
---
lib/include/libdvbv5/desc_atsc_service_location.h |7 ++-
lib/include/libdvbv5/desc_ca.h|7 ++-
lib/include/libdvbv5/desc_ca_identifier.h |7 ++-
lib/include/libdvbv5/desc_cable_delivery.h|
Signed-off-by: André Roth neol...@gmail.com
---
lib/include/libdvbv5/desc_ca.h| 63
lib/include/libdvbv5/desc_ca_identifier.h | 55 +
lib/libdvbv5/Makefile.am | 10 ++--
lib/libdvbv5/descriptors.c
- log hex values where appropriate
- cleanup indents
Signed-off-by: André Roth neol...@gmail.com
---
lib/libdvbv5/descriptors.c|4 ++--
lib/libdvbv5/descriptors/cat.c|2 +-
lib/libdvbv5/descriptors/desc_atsc_service_location.c |1 -
Signed-off-by: André Roth neol...@gmail.com
---
lib/libdvbv5/descriptors/desc_atsc_service_location.c |1 -
lib/libdvbv5/descriptors/desc_ca.c|1 -
lib/libdvbv5/descriptors/desc_ca_identifier.c |1 -
lib/libdvbv5/descriptors/desc_cable_delivery.c|
Signed-off-by: André Roth neol...@gmail.com
---
lib/include/libdvbv5/descriptors.h | 16
lib/libdvbv5/descriptors.c |4 ++--
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/lib/include/libdvbv5/descriptors.h
b/lib/include/libdvbv5/descriptors.h
Signed-off-by: André Roth neol...@gmail.com
---
lib/include/libdvbv5/desc_atsc_service_location.h |2 +-
lib/include/libdvbv5/desc_ca.h|2 +-
lib/include/libdvbv5/desc_ca_identifier.h |2 +-
lib/include/libdvbv5/desc_cable_delivery.h
Signed-off-by: André Roth neol...@gmail.com
---
lib/include/libdvbv5/descriptors.h |2 +-
lib/libdvbv5/descriptors.c | 24 +---
2 files changed, 14 insertions(+), 12 deletions(-)
diff --git a/lib/include/libdvbv5/descriptors.h
The I2C output messages is too polluted. Clean it a little
bit, by:
- use the proper core support for memory dumps;
- hide most stuff under the i2c_debug umbrella;
- add the missing KERN_CONT where needed;
- use 2 levels or verbosity. Only the second one
At least on HVR-950, sometimes an I2C operation fails.
This seems to be more frequent when the device is connected
into an USB 3.0 port.
Instead of report an error, try to repeat it, for up to
20 ms. That makes the code more reliable.
Signed-off-by: Mauro Carvalho Chehab m.che...@samsung.com
The recent changes in the USB API (implement new semantics for
URB_ISO_ASAP) made the former meaning of the URB_ISO_ASAP flag the
default, and changed this flag to mean that URBs can be delayed.
This is not the behaviour wanted by any of the audio drivers because
it leads to discontinuous playback
Use the same module version on all em28xx sub-modules, and use
the same naming convention to describe the driver.
Signed-off-by: Mauro Carvalho Chehab m.che...@samsung.com
---
drivers/media/usb/em28xx/em28xx-audio.c | 3 ++-
drivers/media/usb/em28xx/em28xx-core.c | 2 --
Did you trace the i2c messages on the bus? This seems like papering
the actual bug.
USB 3.0 is a disaster with Linux, maybe your hardware or your
controller driver is not okay?
There are other bugreports out there which are USB 3.0 related, some
of our customers reported that since 3.6.0 is okay
From: Links (Markus) help.markus+...@gmail.com
modified: drivers/media/usb/cx231xx/cx231xx-cards.c
Signed-off-by: Links (Markus) help.markus+...@gmail.com
---
drivers/media/usb/cx231xx/cx231xx-cards.c |2 ++
1 file changed, 2 insertions(+)
diff --git
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: Sun Jan 5 04:00:27 CET 2014
git branch: test
git hash: f7d40eea8e3e531f1517ab7eded552e8837ef5da
gcc
Firmware loading fails intermittently on nxt2004 with the fedora
3.12.5-302.fc20.x86_64 kernel.
It appears that this is due to [PATCH 3.11 178/272] [media] dvb-frontends:
Don't use dynamic static allocation.
If I revert the patch for nxt200x.c it works correctly.
See
41 matches
Mail list logo