Jonathan Corbet | 1 May 2012 01:27
Favicon

Re: [PATCH] via-camera: specify XO-1.5 camera clock speed

On Mon, 30 Apr 2012 23:06:27 +0100 (BST)
Daniel Drake <dsd <at> laptop.org> wrote:

> For the ov7670 camera to return images at the requested frame rate,
> it needs to make calculations based on the clock speed, which is
> a completely external factor (depends on the wiring of the system).
> 
> On the XO-1.5, which is the only known via-camera user, the camera
> is clocked at 90MHz.
> 
> Pass this information to the ov7670 driver, to fix an issue where
> a framerate of 3x the requested amount was being provided.

This is big-time weird...this problem has been solved before.  The reason
ov7670 *has* a clock speed parameter is because the XO 1.5 - the second
user - clocked it so fast.  I'm going to have to go digging through some
history to try to figure out where this fix went...

Meanwhile, this looks fine.

Acked-by: Jonathan Corbet <corbet <at> lwn.net>

jon
Daniel Drake | 1 May 2012 01:29
Favicon

Re: [PATCH] via-camera: specify XO-1.5 camera clock speed

On Mon, Apr 30, 2012 at 5:27 PM, Jonathan Corbet <corbet <at> lwn.net> wrote:
> On Mon, 30 Apr 2012 23:06:27 +0100 (BST)
> Daniel Drake <dsd <at> laptop.org> wrote:
>
>> For the ov7670 camera to return images at the requested frame rate,
>> it needs to make calculations based on the clock speed, which is
>> a completely external factor (depends on the wiring of the system).
>>
>> On the XO-1.5, which is the only known via-camera user, the camera
>> is clocked at 90MHz.
>>
>> Pass this information to the ov7670 driver, to fix an issue where
>> a framerate of 3x the requested amount was being provided.
>
> This is big-time weird...this problem has been solved before.  The reason
> ov7670 *has* a clock speed parameter is because the XO 1.5 - the second
> user - clocked it so fast.  I'm going to have to go digging through some
> history to try to figure out where this fix went...
>
> Meanwhile, this looks fine.

We solved it with ugly #ifdef things in the OLPC kernel.
http://dev.laptop.org/ticket/10137

Then we found and discussed the upstreamable solution, put the
ov7670_config thing in place, and solved it for XO-1 (cafe).

But for whatever reason it looks like I forgot to fix via-camera --
maybe via-camera was still in flux and non-upstream at that time.

(Continue reading)

Michael Krufky | 1 May 2012 06:12
Gravatar

[PATCH 01/10] linux-dvb v5 API support for ATSC-MH

Signed-off-by: Michael Krufky <mkrufky <at> linuxtv.org>
---
 drivers/media/dvb/dvb-core/dvb_frontend.c |   92 ++++++++++++++++++++++++++++-
 drivers/media/dvb/dvb-core/dvb_frontend.h |   22 +++++++
 include/linux/dvb/frontend.h              |   54 +++++++++++++++++-
 3 files changed, 166 insertions(+), 2 deletions(-)

diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c
index 4555baa..067f10a 100644
--- a/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
 <at>  <at>  -180,13 +180,13  <at>  <at>  static enum dvbv3_emulation_type dvbv3_type(u32 delivery_system)
 	case SYS_DMBTH:
 		return DVBV3_OFDM;
 	case SYS_ATSC:
+	case SYS_ATSCMH:
 	case SYS_DVBC_ANNEX_B:
 		return DVBV3_ATSC;
 	case SYS_UNDEFINED:
 	case SYS_ISDBC:
 	case SYS_DVBH:
 	case SYS_DAB:
-	case SYS_ATSCMH:
 	default:
 		/*
 		 * Doesn't know how to emulate those types and/or
 <at>  <at>  -1027,6 +1027,28  <at>  <at>  static struct dtv_cmds_h dtv_cmds[DTV_MAX_COMMAND + 1] = {
 	_DTV_CMD(DTV_HIERARCHY, 0, 0),

 	_DTV_CMD(DTV_ENUM_DELSYS, 0, 0),
(Continue reading)

Michael Krufky | 1 May 2012 06:12
Gravatar

[PATCH 02/10] DocBook: document new DTV Properties for ATSC-MH delivery system

Signed-off-by: Michael Krufky <mkrufky <at> linuxtv.org>
---
 Documentation/DocBook/media/dvb/dvbproperty.xml |  178 +++++++++++++++++++++++
 1 files changed, 178 insertions(+), 0 deletions(-)

diff --git a/Documentation/DocBook/media/dvb/dvbproperty.xml b/Documentation/DocBook/media/dvb/dvbproperty.xml
index c7a4ca5..d631535 100644
--- a/Documentation/DocBook/media/dvb/dvbproperty.xml
+++ b/Documentation/DocBook/media/dvb/dvbproperty.xml
 <at>  <at>  -531,6 +531,154  <at>  <at>  typedef enum fe_delivery_system {
 				here are referring to what can be found in the TMCC-structure -
 				independent of the mode.</para>
 		</section>
+		<section id="DTV-ATSCMH-FIC-VER">
+			<title><constant>DTV_ATSCMH_FIC_VER</constant></title>
+			<para>Version number of the FIC (Fast Information Channel) signaling data.</para>
+			<para>FIC is used for relaying information to allow rapid service acquisition by the receiver.</para>
+			<para>Possible values: 0, 1, 2, 3, ..., 30, 31</para>
+		</section>
+		<section id="DTV-ATSCMH-PARADE-ID">
+			<title><constant>DTV_ATSCMH_PARADE_ID</constant></title>
+			<para>Parade identification number</para>
+			<para>A parade is a collection of up to eight MH groups, conveying one or two ensembles.</para>
+			<para>Possible values: 0, 1, 2, 3, ..., 126, 127</para>
+		</section>
+		<section id="DTV-ATSCMH-NOG">
+			<title><constant>DTV_ATSCMH_NOG</constant></title>
+			<para>Number of MH groups per MH subframe for a designated parade.</para>
+			<para>Possible values: 1, 2, 3, 4, 5, 6, 7, 8</para>
+		</section>
(Continue reading)

Michael Krufky | 1 May 2012 06:12
Gravatar

[PATCH 06/10] lg2160: update internal api interfaces and enable build

Signed-off-by: Michael Krufky <mkrufky <at> linuxtv.org>
---
 drivers/media/dvb/frontends/Kconfig  |    8 ++++++++
 drivers/media/dvb/frontends/lg2160.c |   25 +++++++++----------------
 2 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/drivers/media/dvb/frontends/Kconfig b/drivers/media/dvb/frontends/Kconfig
index 2124670..09e21c9 100644
--- a/drivers/media/dvb/frontends/Kconfig
+++ b/drivers/media/dvb/frontends/Kconfig
 <at>  <at>  -531,6 +531,14  <at>  <at>  config DVB_LGDT3305
 	  An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
 	  to support this frontend.

+config DVB_LG2160
+	tristate "LG Electronics LG216x based"
+	depends on DVB_CORE && I2C
+	default m if DVB_FE_CUSTOMISE
+	help
+	  An ATSC/MH demodulator module. Say Y when you want
+	  to support this frontend.
+
 config DVB_S5H1409
 	tristate "Samsung S5H1409 based"
 	depends on DVB_CORE && I2C
diff --git a/drivers/media/dvb/frontends/lg2160.c b/drivers/media/dvb/frontends/lg2160.c
index 269ab7b..daa8596 100644
--- a/drivers/media/dvb/frontends/lg2160.c
+++ b/drivers/media/dvb/frontends/lg2160.c
 <at>  <at>  -939,17 +939,15  <at>  <at>  static int lg216x_read_rs_err_count(struct lg216x_state *state, u16 *err)
(Continue reading)

Michael Krufky | 1 May 2012 06:12
Gravatar

[PATCH 03/10] increment DVB API to version 5.6 for ATSC-MH frontend control

Signed-off-by: Michael Krufky <mkrufky <at> linuxtv.org>
---
 include/linux/dvb/version.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/include/linux/dvb/version.h b/include/linux/dvb/version.h
index 0559e2b..43d9e8d 100644
--- a/include/linux/dvb/version.h
+++ b/include/linux/dvb/version.h
 <at>  <at>  -24,6 +24,6  <at>  <at> 
 #define _DVBVERSION_H_
 
 #define DVB_API_VERSION 5
-#define DVB_API_VERSION_MINOR 5
+#define DVB_API_VERSION_MINOR 6

 #endif /*_DVBVERSION_H_*/
--

-- 
1.7.5.4

Michael Krufky | 1 May 2012 06:12
Gravatar

[PATCH 08/10] dvb-usb: add support for dvb-usb-adapters that deliver raw payload

From: Michael Krufky <mkrufky <at> kernellabs.com>

Select this feature setting the dvb-usb-adapter caps field with
DVB_USB_ADAP_RECEIVES_RAW_PAYLOAD

Signed-off-by: Michael Krufky <mkrufky <at> linuxtv.org>
---
 drivers/media/dvb/dvb-usb/dvb-usb-urb.c |   12 ++++++++++++
 drivers/media/dvb/dvb-usb/dvb-usb.h     |    1 +
 2 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-urb.c b/drivers/media/dvb/dvb-usb/dvb-usb-urb.c
index 53a5c30..5c8f651 100644
--- a/drivers/media/dvb/dvb-usb/dvb-usb-urb.c
+++ b/drivers/media/dvb/dvb-usb/dvb-usb-urb.c
 <at>  <at>  -80,6 +80,14  <at>  <at>  static void dvb_usb_data_complete_204(struct usb_data_stream *stream, u8 *buffer
 		dvb_dmx_swfilter_204(&adap->demux, buffer, length);
 }

+static void dvb_usb_data_complete_raw(struct usb_data_stream *stream,
+				      u8 *buffer, size_t length)
+{
+	struct dvb_usb_adapter *adap = stream->user_priv;
+	if (adap->feedcount > 0 && adap->state & DVB_USB_ADAP_STATE_DVB)
+		dvb_dmx_swfilter_raw(&adap->demux, buffer, length);
+}
+
 int dvb_usb_adapter_stream_init(struct dvb_usb_adapter *adap)
 {
 	int i, ret = 0;
(Continue reading)

Michael Krufky | 1 May 2012 06:12
Gravatar

[PATCH 09/10] dvb-usb: increase MAX_NO_OF_FE_PER_ADAP from 2 to 3

Signed-off-by: Michael Krufky <mkrufky <at> linuxtv.org>
---
 drivers/media/dvb/dvb-usb/dvb-usb.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/media/dvb/dvb-usb/dvb-usb.h b/drivers/media/dvb/dvb-usb/dvb-usb.h
index 86cfa86..99f9440 100644
--- a/drivers/media/dvb/dvb-usb/dvb-usb.h
+++ b/drivers/media/dvb/dvb-usb/dvb-usb.h
 <at>  <at>  -157,7 +157,7  <at>  <at>  struct dvb_usb_adapter_fe_properties {
 	int size_of_priv;
 };

-#define MAX_NO_OF_FE_PER_ADAP 2
+#define MAX_NO_OF_FE_PER_ADAP 3
 struct dvb_usb_adapter_properties {
 	int size_of_priv;

--

-- 
1.7.5.4

Michael Krufky | 1 May 2012 06:12
Gravatar

[PATCH 07/10] dvb-demux: add functionality to send raw payload to the dvr device

From: Michael Krufky <mkrufky <at> kernellabs.com>

If your driver needs to deliver the raw payload to userspace without
passing through the kernel demux, use function: dvb_dmx_swfilter_raw

Signed-off-by: Michael Krufky <mkrufky <at> linuxtv.org>
---
 drivers/media/dvb/dvb-core/dvb_demux.c |   10 ++++++++++
 drivers/media/dvb/dvb-core/dvb_demux.h |    2 ++
 2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/drivers/media/dvb/dvb-core/dvb_demux.c b/drivers/media/dvb/dvb-core/dvb_demux.c
index faa3671..d82469f 100644
--- a/drivers/media/dvb/dvb-core/dvb_demux.c
+++ b/drivers/media/dvb/dvb-core/dvb_demux.c
 <at>  <at>  -568,6 +568,16  <at>  <at>  void dvb_dmx_swfilter_204(struct dvb_demux *demux, const u8 *buf, size_t count)
 }
 EXPORT_SYMBOL(dvb_dmx_swfilter_204);

+void dvb_dmx_swfilter_raw(struct dvb_demux *demux, const u8 *buf, size_t count)
+{
+	spin_lock(&demux->lock);
+
+	demux->feed->cb.ts(buf, count, NULL, 0, &demux->feed->feed.ts, DMX_OK);
+
+	spin_unlock(&demux->lock);
+}
+EXPORT_SYMBOL(dvb_dmx_swfilter_raw);
+
 static struct dvb_demux_filter *dvb_dmx_filter_alloc(struct dvb_demux *demux)
(Continue reading)

Michael Krufky | 1 May 2012 06:12
Gravatar

[PATCH 04/10] mxl111sf-tuner: tune SYS_ATSCMH just like SYS_ATSC

Signed-off-by: Michael Krufky <mkrufky <at> linuxtv.org>
---
 drivers/media/dvb/dvb-usb/mxl111sf-tuner.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/media/dvb/dvb-usb/mxl111sf-tuner.c b/drivers/media/dvb/dvb-usb/mxl111sf-tuner.c
index 72db6ee..74da5bb1 100644
--- a/drivers/media/dvb/dvb-usb/mxl111sf-tuner.c
+++ b/drivers/media/dvb/dvb-usb/mxl111sf-tuner.c
 <at>  <at>  -284,6 +284,7  <at>  <at>  static int mxl111sf_tuner_set_params(struct dvb_frontend *fe)

 	switch (delsys) {
 	case SYS_ATSC:
+	case SYS_ATSCMH:
 		bw = 0; /* ATSC */
 		break;
 	case SYS_DVBC_ANNEX_B:
--

-- 
1.7.5.4


Gmane