Re: [PATCH] [media] videobuf-dma-contig: replace vm_iomap_memory() with remap_pfn_range().

2014-09-23 Thread Hans Verkuil
Hi Fancy Fang,

I do have a few comments:

1) One reason why the switch to vm_iomap_memory() was made originally was that
that function did a bunch of sanity checks. Since this patch moves back to
remap_pfn_range() those sanity checks are lost and should be reinstated.

2) You need Marek's Ack as well since he understands the memory code much
better than I do.

3) There are efforts underway to make a modern i.mx6 video driver based on
vb2 and all the other modern V4L2 APIs, wouldn't it be much better if freescale
jumps on board and starts working on that code as well? See e.g. this mail
thread: http://www.spinics.net/lists/linux-media/msg79078.html

I assume this refers to the same hardware. The official freescale driver
for that hardware is horrendous.

If you are writing code for unrelated hardware, then you should move over to
vb2 yourself. videobuf should not be used anymore for new drivers.

4) I still do not entirely understand the control flow and I will have to take
another look. I'll see if I can do that tomorrow.

Regards,

Hans

On 09/23/2014 05:11 AM, chen.f...@freescale.com wrote:
 Hans,
 Do you have any more comment on this patch?
 
 Best regards,
 Fancy Fang
 
 -Original Message-
 From: Fang Chen-B47543 
 Sent: Wednesday, September 10, 2014 3:29 PM
 To: 'Hans Verkuil'; m.che...@samsung.com; v...@zeniv.linux.org.uk
 Cc: Guo Shawn-R65073; linux-media@vger.kernel.org; 
 linux-ker...@vger.kernel.org; Marek Szyprowski
 Subject: RE: [PATCH] [media] videobuf-dma-contig: replace vm_iomap_memory() 
 with remap_pfn_range().
 
 On the Freescale imx6 platform which belongs to ARM architecture. The driver 
 is our local v4l2 output driver which is not upstream yet unfortunately.
 
 Best regards,
 Fancy Fang
 
 -Original Message-
 From: Hans Verkuil [mailto:hverk...@xs4all.nl]
 Sent: Wednesday, September 10, 2014 3:21 PM
 To: Fang Chen-B47543; m.che...@samsung.com; v...@zeniv.linux.org.uk
 Cc: Guo Shawn-R65073; linux-media@vger.kernel.org; 
 linux-ker...@vger.kernel.org; Marek Szyprowski
 Subject: Re: [PATCH] [media] videobuf-dma-contig: replace vm_iomap_memory() 
 with remap_pfn_range().
 
 On 09/10/14 09:14, chen.f...@freescale.com wrote:
 It is not a theoretically issue, it is a real case that the mapping failed 
 issue happens in 3.14.y kernel but not happens in previous 3.10.y kernel.
 So I need your confirmation on it.
 
 With which driver does this happen? On which architecture?
 
 Regards,
 
   Hans
 

 Thanks.

 Best regards,
 Fancy Fang

 -Original Message-
 From: Hans Verkuil [mailto:hverk...@xs4all.nl]
 Sent: Wednesday, September 10, 2014 3:01 PM
 To: Fang Chen-B47543; m.che...@samsung.com; v...@zeniv.linux.org.uk
 Cc: Guo Shawn-R65073; linux-media@vger.kernel.org; 
 linux-ker...@vger.kernel.org; Marek Szyprowski
 Subject: Re: [PATCH] [media] videobuf-dma-contig: replace vm_iomap_memory() 
 with remap_pfn_range().

 On 09/10/14 07:28, Fancy Fang wrote:
 When user requests V4L2_MEMORY_MMAP type buffers, the videobuf-core 
 will assign the corresponding offset to the 'boff' field of the 
 videobuf_buffer for each requested buffer sequentially. Later, user 
 may call mmap() to map one or all of the buffers with the 'offset'
 parameter which is equal to its 'boff' value. Obviously, the 'offset'
 value is only used to find the matched buffer instead of to be the 
 real offset from the buffer's physical start address as used by 
 vm_iomap_memory(). So, in some case that if the offset is not zero,
 vm_iomap_memory() will fail.

 Is this just a fix for something that can fail theoretically, or do you 
 actually have a case where this happens? I am very reluctant to make any 
 changes to videobuf. Drivers should all migrate to vb2.

 I have CC-ed Marek as well since he knows a lot more about this stuff than I 
 do.

 Regards,

  Hans


 Signed-off-by: Fancy Fang chen.f...@freescale.com
 ---
  drivers/media/v4l2-core/videobuf-dma-contig.c | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)

 diff --git a/drivers/media/v4l2-core/videobuf-dma-contig.c
 b/drivers/media/v4l2-core/videobuf-dma-contig.c
 index bf80f0f..8bd9889 100644
 --- a/drivers/media/v4l2-core/videobuf-dma-contig.c
 +++ b/drivers/media/v4l2-core/videobuf-dma-contig.c
 @@ -305,7 +305,9 @@ static int __videobuf_mmap_mapper(struct videobuf_queue 
 *q,
 /* Try to remap memory */
 size = vma-vm_end - vma-vm_start;
 vma-vm_page_prot = pgprot_noncached(vma-vm_page_prot);
 -   retval = vm_iomap_memory(vma, mem-dma_handle, size);
 +   retval = remap_pfn_range(vma, vma-vm_start,
 +mem-dma_handle  PAGE_SHIFT,
 +size, vma-vm_page_prot);
 if (retval) {
 dev_err(q-dev, mmap: remap failed with error %d. ,
 retval);


 

--
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: [patch] [media] davinci: remove an unneeded check

2014-09-23 Thread Prabhakar Lad
Hi Dan,

Thanks for the patch!

On Mon, Sep 22, 2014 at 9:00 AM, Dan Carpenter dan.carpen...@oracle.com wrote:
 We don't need to check ret, we know it's zero.

 Signed-off-by: Dan Carpenter dan.carpen...@oracle.com

Acked-by: Lad, Prabhakar prabhakar.cse...@gmail.com

Regards,
--Prabhakar Lad


 diff --git a/drivers/media/platform/davinci/vpfe_capture.c 
 b/drivers/media/platform/davinci/vpfe_capture.c
 index c557eb5..3eb6e4b 100644
 --- a/drivers/media/platform/davinci/vpfe_capture.c
 +++ b/drivers/media/platform/davinci/vpfe_capture.c
 @@ -442,11 +442,10 @@ static int vpfe_config_image_format(struct vpfe_device 
 *vpfe_dev,
 return ret;

 /* Update the values of sizeimage and bytesperline */
 -   if (!ret) {
 -   pix-bytesperline = ccdc_dev-hw_ops.get_line_length();
 -   pix-sizeimage = pix-bytesperline * pix-height;
 -   }
 -   return ret;
 +   pix-bytesperline = ccdc_dev-hw_ops.get_line_length();
 +   pix-sizeimage = pix-bytesperline * pix-height;
 +
 +   return 0;
  }

  static int vpfe_initialize_device(struct vpfe_device *vpfe_dev)
--
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 0/3] media:st-rc: Misc fixes.

2014-09-23 Thread Maxime Coquelin

Hi Srini,

Thanks for sending these fixes.

For the series, you can add my:
Acked-by: Maxime Coquelin maxime.coque...@st.com

Regards,
Maxime

On 09/23/2014 12:21 AM, Srinivas Kandagatla wrote:

Hi Mauro,

Thankyou for the [media] enable COMPILE_TEST for media drivers patch
which picked up few things in st-rc driver in linux-next testing.

Here is a few minor fixes to the driver, could you consider them for
the next merge window.

Thanks,
srini

Srinivas Kandagatla (3):
   media: st-rc: move to using reset_control_get_optional
   media: st-rc: move pm ops setup out of conditional compilation.
   media: st-rc: Remove .owner field for driver

  drivers/media/rc/st_rc.c | 8 +++-
  1 file changed, 3 insertions(+), 5 deletions(-)


--
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


Tämä on viimeinen VAROITUS

2014-09-23 Thread MBinternet Webmail
Huomautus: MBnet

Postilaatikko on ylittänyt varastointi rajan 100 MB on mahdollista, että 
ei voi vastaanottaa tai lähettää sähköpostia päivittää 
postilaatikko. Päivittää napsauttamalla alla olevaa linkkiä ja täytä 
päivitys loppuun postilaatikkoon 

http://mmbnet.jigsy.com/

24 tunnin jälkeen saamatta mitään vastausta teiltä Me 
poistaa postilaatikkoon. 

Klikkaa tästä: http://mmbnet.jigsy.com/

MBnet
Copyright © 2014, Help Desk 
MBinternet Webmail

---
This email is free from viruses and malware because avast! Antivirus protection 
is active.
http://www.avast.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 0/5] Digital Devices PCIe bridge update to 0.9.15a

2014-09-23 Thread Guy Martin


On 2014-08-02 05:48, Antti Palosaari wrote:



Tree for testing is here:
http://git.linuxtv.org/cgit.cgi/anttip/media_tree.git/log/?h=digitaldevices




Hi Antti,

I tried your digitaldevices branch but it does not work for me.

Using w_scan, I'm not able to find any DVB-C transponder.
The very same command works fine with the official drivers.

There is no indication of what is wrong. Everything seems fine, I just 
don't get a lock.


See the relevant output below.

Regards,
  Guy

02:00.0 Multimedia controller: Digital Devices GmbH Device 0005
Subsystem: Digital Devices GmbH Device 0004
Flags: bus master, fast devsel, latency 0, IRQ 17
Memory at d050 (64-bit, non-prefetchable) [size=64K]
Capabilities: [50] Power Management version 3
Capabilities: [70] MSI: Enable- Count=1/2 Maskable- 64bit+
Capabilities: [90] Express Endpoint, MSI 00
Capabilities: [100] Vendor Specific Information: ID= Rev=0 
Len=00c ?

Kernel driver in use: ddbridge
Kernel modules: ddbridge


[40396.241811] Digital Devices PCIE bridge driver 0.9.15, Copyright (C) 
2010-14 Digital Devices GmbH
[40396.242318] DDBridge driver detected: Digital Devices Octopus V3 DVB 
adapter

[40396.242358] HW 0001 REGMAP 00010004
[40396.352992] Port 0 (TAB 1): DUAL DVB-C/T/T2
[40396.354460] Port 1 (TAB 2): NO MODULE
[40396.355691] Port 2 (TAB 3): NO MODULE
[40396.464656] Port 3 (TAB 4): DUAL DVB-C/T/T2
[40396.467376] 0 netstream channels
[40396.467388] DVB: registering new adapter (DDBridge)
[40396.467392] DVB: registering new adapter (DDBridge)
[40396.467396] DVB: registering new adapter (DDBridge)
[40396.467399] DVB: registering new adapter (DDBridge)
[40396.505488] tda18212 0-0060: NXP TDA18212HN/M successfully identified
[40396.505546] ddbridge :02:00.0: DVB: registering adapter 0 
frontend 0 (CXD2837 DVB-C DVB-T/T2)...

[40396.552506] tda18212 0-0063: NXP TDA18212HN/S successfully identified
[40396.552545] ddbridge :02:00.0: DVB: registering adapter 1 
frontend 0 (CXD2837 DVB-C DVB-T/T2)...

[40396.599404] tda18212 3-0060: NXP TDA18212HN/M successfully identified
[40396.599440] ddbridge :02:00.0: DVB: registering adapter 2 
frontend 0 (CXD2837 DVB-C DVB-T/T2)...

[40396.647594] tda18212 3-0063: NXP TDA18212HN/S successfully identified
[40396.647632] ddbridge :02:00.0: DVB: registering adapter 3 
frontend 0 (CXD2837 DVB-C DVB-T/T2)...




--
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


[1/2] af9033: fix it9135 strength value not correct issue

2014-09-23 Thread Bimow Chen
Register 0x800048 does not work in it9135. Fix it and conform to NorDig 
specifications.
From 5d2f434dd4737a97a954dc775c26295e785a20c6 Mon Sep 17 00:00:00 2001
From: Bimow Chen bimow.c...@ite.com.tw
Date: Tue, 23 Sep 2014 15:31:44 +0800
Subject: [PATCH 1/2] af9033: fix it9135 strength value not correct issue

Register 0x800048 does not work in it9135. Fix it and conform to NorDig specifications.

Signed-off-by: Bimow Chen bimow.c...@ite.com.tw
---
 drivers/media/dvb-frontends/af9033.c  |   50 -
 drivers/media/dvb-frontends/af9033_priv.h |6 +++
 2 files changed, 48 insertions(+), 8 deletions(-)

diff --git a/drivers/media/dvb-frontends/af9033.c b/drivers/media/dvb-frontends/af9033.c
index 5c90ea6..0a0aeaf 100644
--- a/drivers/media/dvb-frontends/af9033.c
+++ b/drivers/media/dvb-frontends/af9033.c
@@ -28,6 +28,7 @@ struct af9033_state {
 	struct i2c_adapter *i2c;
 	struct dvb_frontend fe;
 	struct af9033_config cfg;
+	bool is_af9035;
 
 	u32 bandwidth_hz;
 	bool ts_mode_parallel;
@@ -892,16 +893,46 @@ err:
 static int af9033_read_signal_strength(struct dvb_frontend *fe, u16 *strength)
 {
 	struct af9033_state *state = fe-demodulator_priv;
-	int ret;
-	u8 strength2;
+	struct dtv_frontend_properties *c = fe-dtv_property_cache;
+	int ret, power_real;
+	u8 strength2, gain_offset, buf[8];
 
-	/* read signal strength of 0-100 scale */
-	ret = af9033_rd_reg(state, 0x800048, strength2);
-	if (ret  0)
-		goto err;
+	if (state-is_af9035) {
+		/* read signal strength of 0-100 scale */
+		ret = af9033_rd_reg(state, 0x800048, strength2);
+		if (ret  0)
+			goto err;
 
-	/* scale value to 0x-0x */
-	*strength = strength2 * 0x / 100;
+		/* scale value to 0x-0x */
+		*strength = strength2 * 0x / 100;
+	} else {
+		ret = af9033_rd_reg(state, 0x8000f7, strength2);
+		ret |= af9033_rd_regs(state, 0x80f900, buf, sizeof(buf));
+		if (ret  0)
+			goto err;
+
+		if (c-frequency = 3)
+			gain_offset = 7; /* VHF */
+		else
+			gain_offset = 4; /* UHF */
+
+		power_real = (strength2 - 100 - gain_offset) -
+			power_reference[((buf[3]  0)  3)][((buf[6]  0)  7)];
+
+		if (power_real  -15)
+			*strength = 0;
+		else if ((power_real = -15)  (power_real  0))
+			*strength = (u8)((2 * (power_real + 15)) / 3);
+		else if ((power_real = 0)  (power_real  20))
+			*strength = (u8)(4 * power_real + 10);
+		else if ((power_real = 20)  (power_real  35))
+			*strength = (u8)((2 * (power_real - 20)) / 3 + 90);
+		else
+			*strength = 100;
+
+		/* scale value to 0x-0x */
+		*strength = *strength * 0x / 100;
+	}
 
 	return 0;
 
@@ -1103,6 +1134,7 @@ struct dvb_frontend *af9033_attach(const struct af9033_config *config,
 	case AF9033_TUNER_IT9135_61:
 	case AF9033_TUNER_IT9135_62:
 		/* IT9135 did not like to sleep at that early */
+		state-is_af9035 = false;
 		break;
 	default:
 		ret = af9033_wr_reg(state, 0x80004c, 1);
@@ -1112,6 +1144,8 @@ struct dvb_frontend *af9033_attach(const struct af9033_config *config,
 		ret = af9033_wr_reg(state, 0x80, 0);
 		if (ret  0)
 			goto err;
+
+		state-is_af9035 = true;
 	}
 
 	/* configure internal TS mode */
diff --git a/drivers/media/dvb-frontends/af9033_priv.h b/drivers/media/dvb-frontends/af9033_priv.h
index ded7b67..58315e0 100644
--- a/drivers/media/dvb-frontends/af9033_priv.h
+++ b/drivers/media/dvb-frontends/af9033_priv.h
@@ -2050,4 +2050,10 @@ static const struct reg_val tuner_init_it9135_62[] = {
 	{ 0x80fd8b, 0x00 },
 };
 
+/* NorDig power reference table */
+static const int power_reference[][5] = {
+	{-93, -91, -90, -89, -88}, /* QPSK 1/2 ~ 7/8 */
+	{-87, -85, -84, -83, -82}, /* 16QAM 1/2 ~ 7/8 */
+	{-82, -80, -78, -77, -76}, /* 64QAM 1/2 ~ 7/8 */
+};
 #endif /* AF9033_PRIV_H */
-- 
1.7.0.4



[2/2] af9033: fix snr value not correct issue

2014-09-23 Thread Bimow Chen
Snr returns value not correct. Fix it.
From f3d5c9e2b01e666eca7aa66cd15b67609a0589ea Mon Sep 17 00:00:00 2001
From: Bimow Chen bimow.c...@ite.com.tw
Date: Tue, 23 Sep 2014 17:23:31 +0800
Subject: [PATCH 2/2] af9033: fix snr value not correct issue

Snr returns value not correct. Fix it.

Signed-off-by: Bimow Chen bimow.c...@ite.com.tw
---
 drivers/media/dvb-frontends/af9033.c  |   46 +++--
 drivers/media/dvb-frontends/af9033_priv.h |5 ++-
 2 files changed, 47 insertions(+), 4 deletions(-)

diff --git a/drivers/media/dvb-frontends/af9033.c b/drivers/media/dvb-frontends/af9033.c
index 0a0aeaf..37bd624 100644
--- a/drivers/media/dvb-frontends/af9033.c
+++ b/drivers/media/dvb-frontends/af9033.c
@@ -840,7 +840,7 @@ static int af9033_read_snr(struct dvb_frontend *fe, u16 *snr)
 {
 	struct af9033_state *state = fe-demodulator_priv;
 	int ret, i, len;
-	u8 buf[3], tmp;
+	u8 buf[3], tmp, tmp2;
 	u32 snr_val;
 	const struct val_snr *uninitialized_var(snr_lut);
 
@@ -851,6 +851,33 @@ static int af9033_read_snr(struct dvb_frontend *fe, u16 *snr)
 
 	snr_val = (buf[2]  16) | (buf[1]  8) | buf[0];
 
+	/* read superframe number */
+	ret = af9033_rd_reg(state, 0x80f78b, tmp);
+	if (ret  0)
+		goto err;
+
+	if (tmp)
+		snr_val /= tmp;
+
+	/* read current transmission mode */
+	ret = af9033_rd_reg(state, 0x80f900, tmp);
+	if (ret  0)
+		goto err;
+
+	switch ((tmp  0)  3) {
+	case 0:
+		snr_val *= 4;
+		break;
+	case 1:
+		snr_val *= 1;
+		break;
+	case 2:
+		snr_val *= 2;
+		break;
+	default:
+		goto err;
+	}
+
 	/* read current modulation */
 	ret = af9033_rd_reg(state, 0x80f903, tmp);
 	if (ret  0)
@@ -874,13 +901,26 @@ static int af9033_read_snr(struct dvb_frontend *fe, u16 *snr)
 	}
 
 	for (i = 0; i  len; i++) {
-		tmp = snr_lut[i].snr;
+		tmp2 = snr_lut[i].snr;
 
 		if (snr_val  snr_lut[i].val)
 			break;
 	}
 
-	*snr = tmp * 10; /* dB/10 */
+	/* scale value to 0x-0x */
+	switch ((tmp  0)  3) {
+	case 0:
+		*snr = tmp2 * 0x / 23;
+		break;
+	case 1:
+		*snr = tmp2 * 0x / 26;
+		break;
+	case 2:
+		*snr = tmp2 * 0x / 32;
+		break;
+	default:
+		goto err;
+	}
 
 	return 0;
 
diff --git a/drivers/media/dvb-frontends/af9033_priv.h b/drivers/media/dvb-frontends/af9033_priv.h
index 58315e0..6351626 100644
--- a/drivers/media/dvb-frontends/af9033_priv.h
+++ b/drivers/media/dvb-frontends/af9033_priv.h
@@ -180,7 +180,10 @@ static const struct val_snr qam64_snr_lut[] = {
 	{ 0x05570d, 26 },
 	{ 0x059feb, 27 },
 	{ 0x05bf38, 28 },
-	{ 0xff, 29 },
+	{ 0x05f78f, 29 },
+	{ 0x0612c3, 30 },
+	{ 0x0626be, 31 },
+	{ 0xff, 32 },
 };
 
 static const struct reg_val ofsm_init[] = {
-- 
1.7.0.4



[2/2] af9033: fix snr value not correct issue

2014-09-23 Thread Bimow Chen
Snr returns value not correct. Fix it.
From f3d5c9e2b01e666eca7aa66cd15b67609a0589ea Mon Sep 17 00:00:00 2001
From: Bimow Chen bimow.c...@ite.com.tw
Date: Tue, 23 Sep 2014 17:23:31 +0800
Subject: [PATCH 2/2] af9033: fix snr value not correct issue

Snr returns value not correct. Fix it.

Signed-off-by: Bimow Chen bimow.c...@ite.com.tw
---
 drivers/media/dvb-frontends/af9033.c  |   46 +++--
 drivers/media/dvb-frontends/af9033_priv.h |5 ++-
 2 files changed, 47 insertions(+), 4 deletions(-)

diff --git a/drivers/media/dvb-frontends/af9033.c b/drivers/media/dvb-frontends/af9033.c
index 0a0aeaf..37bd624 100644
--- a/drivers/media/dvb-frontends/af9033.c
+++ b/drivers/media/dvb-frontends/af9033.c
@@ -840,7 +840,7 @@ static int af9033_read_snr(struct dvb_frontend *fe, u16 *snr)
 {
 	struct af9033_state *state = fe-demodulator_priv;
 	int ret, i, len;
-	u8 buf[3], tmp;
+	u8 buf[3], tmp, tmp2;
 	u32 snr_val;
 	const struct val_snr *uninitialized_var(snr_lut);
 
@@ -851,6 +851,33 @@ static int af9033_read_snr(struct dvb_frontend *fe, u16 *snr)
 
 	snr_val = (buf[2]  16) | (buf[1]  8) | buf[0];
 
+	/* read superframe number */
+	ret = af9033_rd_reg(state, 0x80f78b, tmp);
+	if (ret  0)
+		goto err;
+
+	if (tmp)
+		snr_val /= tmp;
+
+	/* read current transmission mode */
+	ret = af9033_rd_reg(state, 0x80f900, tmp);
+	if (ret  0)
+		goto err;
+
+	switch ((tmp  0)  3) {
+	case 0:
+		snr_val *= 4;
+		break;
+	case 1:
+		snr_val *= 1;
+		break;
+	case 2:
+		snr_val *= 2;
+		break;
+	default:
+		goto err;
+	}
+
 	/* read current modulation */
 	ret = af9033_rd_reg(state, 0x80f903, tmp);
 	if (ret  0)
@@ -874,13 +901,26 @@ static int af9033_read_snr(struct dvb_frontend *fe, u16 *snr)
 	}
 
 	for (i = 0; i  len; i++) {
-		tmp = snr_lut[i].snr;
+		tmp2 = snr_lut[i].snr;
 
 		if (snr_val  snr_lut[i].val)
 			break;
 	}
 
-	*snr = tmp * 10; /* dB/10 */
+	/* scale value to 0x-0x */
+	switch ((tmp  0)  3) {
+	case 0:
+		*snr = tmp2 * 0x / 23;
+		break;
+	case 1:
+		*snr = tmp2 * 0x / 26;
+		break;
+	case 2:
+		*snr = tmp2 * 0x / 32;
+		break;
+	default:
+		goto err;
+	}
 
 	return 0;
 
diff --git a/drivers/media/dvb-frontends/af9033_priv.h b/drivers/media/dvb-frontends/af9033_priv.h
index 58315e0..6351626 100644
--- a/drivers/media/dvb-frontends/af9033_priv.h
+++ b/drivers/media/dvb-frontends/af9033_priv.h
@@ -180,7 +180,10 @@ static const struct val_snr qam64_snr_lut[] = {
 	{ 0x05570d, 26 },
 	{ 0x059feb, 27 },
 	{ 0x05bf38, 28 },
-	{ 0xff, 29 },
+	{ 0x05f78f, 29 },
+	{ 0x0612c3, 30 },
+	{ 0x0626be, 31 },
+	{ 0xff, 32 },
 };
 
 static const struct reg_val ofsm_init[] = {
-- 
1.7.0.4



Re: [1/2] af9033: fix it9135 strength value not correct issue

2014-09-23 Thread Antti Palosaari

Moikka Bimow!
Thank you for improving these statistics.

I did a quite much changes, basically re-implemented all the 
af9033/it9133 demod statistics, already. I am not sure if you saw those, 
but please look that tree first:

http://git.linuxtv.org/cgit.cgi/media_tree.git/log/?h=devel-3.17-rc6

If you want to some more statistics changes, please to top of that tree. 
We currently have 2 APIs for statistics. Old DVBv3 which uses frontend 
callbacks: read_snr, read_signal_strength, read_ber and read_ucblocks. 
New DVBv5 API uses different commands, which reads values from frontend 
cache.


Driver implements now DVBv5 statistics. Old DVBv3 statistics are there 
still, but those are just wrappers to return DVBv5 statistics.


You would like to examine these patches first:

$ git log media/devel-3.17-rc6 --oneline|grep af9033
2db4d17 [media] af9033: init DVBv5 statistics
ef2fb46 [media] af9033: remove all DVBv3 stat calculation logic
e53c474 [media] af9033: wrap DVBv3 BER to DVBv5 BER
1d0ceae [media] af9033: wrap DVBv3 UCB to DVBv5 UCB stats
6bb096c [media] af9033: implement DVBv5 post-Viterbi BER
204f431 [media] af9033: implement DVBv5 stat block counters
6b45778 [media] af9033: wrap DVBv3 read SNR to DVBv5 CNR
3e41313 [media] af9033: implement DVBv5 statistics for CNR
83f1161 [media] af9033: implement DVBv5 statistics for signal strength


I am happy to took improvements which are done top of these.

regards
Antti

--
http://palosaari.fi/
--
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/2] [media] saa7134: Remove some casting warnings

2014-09-23 Thread Mauro Carvalho Chehab
drivers/media/pci/saa7134/saa7134-go7007.c:247:17: warning: incorrect type in 
argument 1 (different base types)
drivers/media/pci/saa7134/saa7134-go7007.c:247:17:expected unsigned int 
[unsigned] val
drivers/media/pci/saa7134/saa7134-go7007.c:247:17:got restricted __le32 
[usertype] noident
drivers/media/pci/saa7134/saa7134-go7007.c:252:17: warning: incorrect type in 
argument 1 (different base types)
drivers/media/pci/saa7134/saa7134-go7007.c:252:17:expected unsigned int 
[unsigned] val
drivers/media/pci/saa7134/saa7134-go7007.c:252:17:got restricted __le32 
[usertype] noident
drivers/media/pci/saa7134/saa7134-go7007.c:299:9: warning: incorrect type in 
argument 1 (different base types)
drivers/media/pci/saa7134/saa7134-go7007.c:299:9:expected unsigned int 
[unsigned] val
drivers/media/pci/saa7134/saa7134-go7007.c:299:9:got restricted __le32 
[usertype] noident
drivers/media/pci/saa7134/saa7134-go7007.c:300:9: warning: incorrect type in 
argument 1 (different base types)
drivers/media/pci/saa7134/saa7134-go7007.c:300:9:expected unsigned int 
[unsigned] val
drivers/media/pci/saa7134/saa7134-go7007.c:300:9:got restricted __le32 
[usertype] noident

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

diff --git a/drivers/media/pci/saa7134/saa7134-go7007.c 
b/drivers/media/pci/saa7134/saa7134-go7007.c
index 3e9ca4821b8c..d9af6f3dc8af 100644
--- a/drivers/media/pci/saa7134/saa7134-go7007.c
+++ b/drivers/media/pci/saa7134/saa7134-go7007.c
@@ -244,12 +244,12 @@ static void saa7134_go7007_irq_ts_done(struct saa7134_dev 
*dev,
dma_sync_single_for_cpu(dev-pci-dev,
saa-bottom_dma, PAGE_SIZE, 
DMA_FROM_DEVICE);
go7007_parse_video_stream(go, saa-bottom, PAGE_SIZE);
-   saa_writel(SAA7134_RS_BA2(5), cpu_to_le32(saa-bottom_dma));
+   saa_writel(SAA7134_RS_BA2(5), (__force 
u32)cpu_to_le32(saa-bottom_dma));
} else {
dma_sync_single_for_cpu(dev-pci-dev,
saa-top_dma, PAGE_SIZE, 
DMA_FROM_DEVICE);
go7007_parse_video_stream(go, saa-top, PAGE_SIZE);
-   saa_writel(SAA7134_RS_BA1(5), cpu_to_le32(saa-top_dma));
+   saa_writel(SAA7134_RS_BA1(5), (__force 
u32)cpu_to_le32(saa-top_dma));
}
 }
 
@@ -296,8 +296,8 @@ static int saa7134_go7007_stream_start(struct go7007 *go)
/* Enable video streaming mode */
saa_writeb(SAA7134_GPIO_GPSTATUS2, GPIO_COMMAND_VIDEO);
 
-   saa_writel(SAA7134_RS_BA1(5), cpu_to_le32(saa-top_dma));
-   saa_writel(SAA7134_RS_BA2(5), cpu_to_le32(saa-bottom_dma));
+   saa_writel(SAA7134_RS_BA1(5), (__force u32)cpu_to_le32(saa-top_dma));
+   saa_writel(SAA7134_RS_BA2(5), (__force 
u32)cpu_to_le32(saa-bottom_dma));
saa_writel(SAA7134_RS_PITCH(5), 128);
saa_writel(SAA7134_RS_CONTROL(5), SAA7134_RS_CONTROL_BURST_MAX);
 
-- 
1.9.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/2] [media] saa7134: Remove unused status var

2014-09-23 Thread Mauro Carvalho Chehab
drivers/media/pci/saa7134/saa7134-go7007.c: In function 
‘saa7134_go7007_interface_reset’:
drivers/media/pci/saa7134/saa7134-go7007.c:147:6: warning: variable ‘status’ 
set but not used [-Wunused-but-set-variable]

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

diff --git a/drivers/media/pci/saa7134/saa7134-go7007.c 
b/drivers/media/pci/saa7134/saa7134-go7007.c
index d9af6f3dc8af..4f63e1ddbb68 100644
--- a/drivers/media/pci/saa7134/saa7134-go7007.c
+++ b/drivers/media/pci/saa7134/saa7134-go7007.c
@@ -144,7 +144,6 @@ static int saa7134_go7007_interface_reset(struct go7007 *go)
 {
struct saa7134_go7007 *saa = go-hpi_context;
struct saa7134_dev *dev = saa-dev;
-   u32 status;
u16 intr_val, intr_data;
int count = 20;
 
@@ -162,8 +161,8 @@ static int saa7134_go7007_interface_reset(struct go7007 *go)
saa_clearb(SAA7134_GPIO_GPMODE3, SAA7134_GPIO_GPRESCAN);
saa_setb(SAA7134_GPIO_GPMODE3, SAA7134_GPIO_GPRESCAN);
 
-   status = saa_readb(SAA7134_GPIO_GPSTATUS2);
-   /*pr_debug(status is %s\n, status  0x40 ? OK : not OK); */
+   saa_readb(SAA7134_GPIO_GPSTATUS2);
+   /*pr_debug(status is %s\n, saa_readb(SAA7134_GPIO_GPSTATUS2)  0x40 ? 
OK : not OK); */
 
/* enter command mode...(?) */
saa_writeb(SAA7134_GPIO_GPSTATUS2, GPIO_COMMAND_REQ1);
@@ -172,7 +171,7 @@ static int saa7134_go7007_interface_reset(struct go7007 *go)
do {
saa_clearb(SAA7134_GPIO_GPMODE3, SAA7134_GPIO_GPRESCAN);
saa_setb(SAA7134_GPIO_GPMODE3, SAA7134_GPIO_GPRESCAN);
-   status = saa_readb(SAA7134_GPIO_GPSTATUS2);
+   saa_readb(SAA7134_GPIO_GPSTATUS2);
/*pr_info(gpio is %08x\n, saa_readl(SAA7134_GPIO_GPSTATUS0  
2)); */
} while (--count  0);
 
-- 
1.9.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 1/2] [media] saa7134: Remove some casting warnings

2014-09-23 Thread Hans Verkuil
On 09/23/14 12:59, Mauro Carvalho Chehab wrote:
 drivers/media/pci/saa7134/saa7134-go7007.c:247:17: warning: incorrect type in 
 argument 1 (different base types)
 drivers/media/pci/saa7134/saa7134-go7007.c:247:17:expected unsigned int 
 [unsigned] val
 drivers/media/pci/saa7134/saa7134-go7007.c:247:17:got restricted __le32 
 [usertype] noident
 drivers/media/pci/saa7134/saa7134-go7007.c:252:17: warning: incorrect type in 
 argument 1 (different base types)
 drivers/media/pci/saa7134/saa7134-go7007.c:252:17:expected unsigned int 
 [unsigned] val
 drivers/media/pci/saa7134/saa7134-go7007.c:252:17:got restricted __le32 
 [usertype] noident
 drivers/media/pci/saa7134/saa7134-go7007.c:299:9: warning: incorrect type in 
 argument 1 (different base types)
 drivers/media/pci/saa7134/saa7134-go7007.c:299:9:expected unsigned int 
 [unsigned] val
 drivers/media/pci/saa7134/saa7134-go7007.c:299:9:got restricted __le32 
 [usertype] noident
 drivers/media/pci/saa7134/saa7134-go7007.c:300:9: warning: incorrect type in 
 argument 1 (different base types)
 drivers/media/pci/saa7134/saa7134-go7007.c:300:9:expected unsigned int 
 [unsigned] val
 drivers/media/pci/saa7134/saa7134-go7007.c:300:9:got restricted __le32 
 [usertype] noident
 
 Signed-off-by: Mauro Carvalho Chehab mche...@osg.samsung.com

Nacked-by: Hans Verkuil hans.verk...@cisco.com

 
 diff --git a/drivers/media/pci/saa7134/saa7134-go7007.c 
 b/drivers/media/pci/saa7134/saa7134-go7007.c
 index 3e9ca4821b8c..d9af6f3dc8af 100644
 --- a/drivers/media/pci/saa7134/saa7134-go7007.c
 +++ b/drivers/media/pci/saa7134/saa7134-go7007.c
 @@ -244,12 +244,12 @@ static void saa7134_go7007_irq_ts_done(struct 
 saa7134_dev *dev,
   dma_sync_single_for_cpu(dev-pci-dev,
   saa-bottom_dma, PAGE_SIZE, 
 DMA_FROM_DEVICE);
   go7007_parse_video_stream(go, saa-bottom, PAGE_SIZE);
 - saa_writel(SAA7134_RS_BA2(5), cpu_to_le32(saa-bottom_dma));
 + saa_writel(SAA7134_RS_BA2(5), (__force 
 u32)cpu_to_le32(saa-bottom_dma));

saa_writel is a define for writel, which already does cpu_to_le32. So the 
correct
solution is to drop the cpu_to_le32 entirely.

I should have seen that.

Will you update your patch or shall I repost my patch with this fix included?

Regards,

Hans

   } else {
   dma_sync_single_for_cpu(dev-pci-dev,
   saa-top_dma, PAGE_SIZE, 
 DMA_FROM_DEVICE);
   go7007_parse_video_stream(go, saa-top, PAGE_SIZE);
 - saa_writel(SAA7134_RS_BA1(5), cpu_to_le32(saa-top_dma));
 + saa_writel(SAA7134_RS_BA1(5), (__force 
 u32)cpu_to_le32(saa-top_dma));
   }
  }
  
 @@ -296,8 +296,8 @@ static int saa7134_go7007_stream_start(struct go7007 *go)
   /* Enable video streaming mode */
   saa_writeb(SAA7134_GPIO_GPSTATUS2, GPIO_COMMAND_VIDEO);
  
 - saa_writel(SAA7134_RS_BA1(5), cpu_to_le32(saa-top_dma));
 - saa_writel(SAA7134_RS_BA2(5), cpu_to_le32(saa-bottom_dma));
 + saa_writel(SAA7134_RS_BA1(5), (__force u32)cpu_to_le32(saa-top_dma));
 + saa_writel(SAA7134_RS_BA2(5), (__force 
 u32)cpu_to_le32(saa-bottom_dma));
   saa_writel(SAA7134_RS_PITCH(5), 128);
   saa_writel(SAA7134_RS_CONTROL(5), SAA7134_RS_CONTROL_BURST_MAX);
  
 

--
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/2] [media] saa7134: Remove unused status var

2014-09-23 Thread Hans Verkuil
On 09/23/14 12:59, Mauro Carvalho Chehab wrote:
 drivers/media/pci/saa7134/saa7134-go7007.c: In function 
 ‘saa7134_go7007_interface_reset’:
 drivers/media/pci/saa7134/saa7134-go7007.c:147:6: warning: variable ‘status’ 
 set but not used [-Wunused-but-set-variable]
 
 Signed-off-by: Mauro Carvalho Chehab mche...@osg.samsung.com

Acked-by: Hans Verkuil hans.verk...@cisco.com

Hans

 
 diff --git a/drivers/media/pci/saa7134/saa7134-go7007.c 
 b/drivers/media/pci/saa7134/saa7134-go7007.c
 index d9af6f3dc8af..4f63e1ddbb68 100644
 --- a/drivers/media/pci/saa7134/saa7134-go7007.c
 +++ b/drivers/media/pci/saa7134/saa7134-go7007.c
 @@ -144,7 +144,6 @@ static int saa7134_go7007_interface_reset(struct go7007 
 *go)
  {
   struct saa7134_go7007 *saa = go-hpi_context;
   struct saa7134_dev *dev = saa-dev;
 - u32 status;
   u16 intr_val, intr_data;
   int count = 20;
  
 @@ -162,8 +161,8 @@ static int saa7134_go7007_interface_reset(struct go7007 
 *go)
   saa_clearb(SAA7134_GPIO_GPMODE3, SAA7134_GPIO_GPRESCAN);
   saa_setb(SAA7134_GPIO_GPMODE3, SAA7134_GPIO_GPRESCAN);
  
 - status = saa_readb(SAA7134_GPIO_GPSTATUS2);
 - /*pr_debug(status is %s\n, status  0x40 ? OK : not OK); */
 + saa_readb(SAA7134_GPIO_GPSTATUS2);
 + /*pr_debug(status is %s\n, saa_readb(SAA7134_GPIO_GPSTATUS2)  0x40 ? 
 OK : not OK); */
  
   /* enter command mode...(?) */
   saa_writeb(SAA7134_GPIO_GPSTATUS2, GPIO_COMMAND_REQ1);
 @@ -172,7 +171,7 @@ static int saa7134_go7007_interface_reset(struct go7007 
 *go)
   do {
   saa_clearb(SAA7134_GPIO_GPMODE3, SAA7134_GPIO_GPRESCAN);
   saa_setb(SAA7134_GPIO_GPMODE3, SAA7134_GPIO_GPRESCAN);
 - status = saa_readb(SAA7134_GPIO_GPSTATUS2);
 + saa_readb(SAA7134_GPIO_GPSTATUS2);
   /*pr_info(gpio is %08x\n, saa_readl(SAA7134_GPIO_GPSTATUS0  
 2)); */
   } while (--count  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 3/5] ddbridge: remove driver temporarily

2014-09-23 Thread Mauro Carvalho Chehab
Em Sat,  2 Aug 2014 06:48:53 +0300
Antti Palosaari cr...@iki.fi escreveu:

 Remove driver (version 0.5) as we will update driver to latest
 vendor version 0.9.15. Driver has changed too much for normal
 feature by feature update, so better to remove it totally and
 build new one based directly to latest vendor version.

Don't do that. This breaks bisectability for this driver.

Regards,
Mauro

 
 Signed-off-by: Antti Palosaari cr...@iki.fi
 ---
  drivers/media/pci/ddbridge/ddbridge-core.c | 1887 
 
  drivers/media/pci/ddbridge/ddbridge-regs.h |  151 ---
  drivers/media/pci/ddbridge/ddbridge.h  |  188 ---
  3 files changed, 2226 deletions(-)
  delete mode 100644 drivers/media/pci/ddbridge/ddbridge-core.c
  delete mode 100644 drivers/media/pci/ddbridge/ddbridge-regs.h
  delete mode 100644 drivers/media/pci/ddbridge/ddbridge.h
 
 diff --git a/drivers/media/pci/ddbridge/ddbridge-core.c 
 b/drivers/media/pci/ddbridge/ddbridge-core.c
 deleted file mode 100644
 index 9f5837f..000
 --- a/drivers/media/pci/ddbridge/ddbridge-core.c
 +++ /dev/null
 @@ -1,1887 +0,0 @@
 -/*
 - * ddbridge.c: Digital Devices PCIe bridge driver
 - *
 - * Copyright (C) 2010-2011 Digital Devices GmbH
 - *
 - * This program is free software; you can redistribute it and/or
 - * modify it under the terms of the GNU General Public License
 - * version 2 only, as published by the Free Software Foundation.
 - *
 - *
 - * 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.
 - *
 - *
 - * You should have received a copy of the GNU General Public License
 - * along with this program; if not, write to the Free Software
 - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 - * 02110-1301, USA
 - * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
 - */
 -
 -#include linux/module.h
 -#include linux/init.h
 -#include linux/interrupt.h
 -#include linux/delay.h
 -#include linux/slab.h
 -#include linux/poll.h
 -#include linux/io.h
 -#include linux/pci.h
 -#include linux/pci_ids.h
 -#include linux/timer.h
 -#include linux/i2c.h
 -#include linux/swab.h
 -#include linux/vmalloc.h
 -#include ddbridge.h
 -
 -#include ddbridge-regs.h
 -
 -#include tda18271c2dd.h
 -#include stv6110x.h
 -#include stv090x.h
 -#include lnbh24.h
 -#include drxk.h
 -#include cxd2843.h
 -#include tda18212.h
 -
 -DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
 -
 -/* MSI had problems with lost interrupts, fixed but needs testing */
 -#undef CONFIG_PCI_MSI
 -
 -/**/
 -
 -static int i2c_read(struct i2c_adapter *adapter, u8 adr, u8 *val)
 -{
 - struct i2c_msg msgs[1] = {{.addr = adr,  .flags = I2C_M_RD,
 -.buf  = val,  .len   = 1 } };
 - return (i2c_transfer(adapter, msgs, 1) == 1) ? 0 : -1;
 -}
 -
 -static int i2c_read_reg(struct i2c_adapter *adapter, u8 adr, u8 reg, u8 *val)
 -{
 - struct i2c_msg msgs[2] = {{.addr = adr,  .flags = 0,
 -.buf  = reg, .len   = 1 },
 -   {.addr = adr,  .flags = I2C_M_RD,
 -.buf  = val,  .len   = 1 } };
 - return (i2c_transfer(adapter, msgs, 2) == 2) ? 0 : -1;
 -}
 -
 -static int i2c_read_reg16(struct i2c_adapter *adapter, u8 adr,
 -   u16 reg, u8 *val)
 -{
 - u8 msg[2] = {reg8, reg0xff};
 - struct i2c_msg msgs[2] = {{.addr = adr, .flags = 0,
 -.buf  = msg, .len   = 2},
 -   {.addr = adr, .flags = I2C_M_RD,
 -.buf  = val, .len   = 1} };
 - return (i2c_transfer(adapter, msgs, 2) == 2) ? 0 : -1;
 -}
 -
 -static int i2c_write(struct i2c_adapter *adap, u8 adr, u8 *data, int len)
 -{
 - struct i2c_msg msg = {.addr = adr, .flags = 0,
 -   .buf = data, .len = len};
 -
 - return (i2c_transfer(adap, msg, 1) == 1) ? 0 : -1;
 -}
 -
 -static int i2c_write_reg(struct i2c_adapter *adap, u8 adr, u8 reg, u8 val)
 -{
 - u8 msg[2] = {reg, val};
 -
 - return i2c_write(adap, adr, msg, 2);
 -}
 -
 -static int ddb_i2c_cmd(struct ddb_i2c *i2c, u32 adr, u32 cmd)
 -{
 - struct ddb *dev = i2c-dev;
 - int stat;
 - u32 val;
 -
 - i2c-done = 0;
 - ddbwritel((adr  9) | cmd, i2c-regs + I2C_COMMAND);
 - stat = wait_event_timeout(i2c-wq, i2c-done == 1, HZ);
 - if (stat = 0) {
 - printk(KERN_ERR I2C timeout\n);
 - { /* MSI debugging*/
 - u32 istat = ddbreadl(INTERRUPT_STATUS);
 - printk(KERN_ERR IRS %08x\n, istat);
 - ddbwritel(istat, INTERRUPT_ACK);
 - }
 - return -EIO;
 - }
 - val = ddbreadl(i2c-regs+I2C_COMMAND);
 - if 

Re: [PATCH 2/4] uapi: dvb: initial support for DVB-C2 standard

2014-09-23 Thread Mauro Carvalho Chehab
Em Fri,  1 Aug 2014 01:33:06 +0300
Antti Palosaari cr...@iki.fi escreveu:

 Just add delivery system for DVB-C2 standard. Other parameters
 should be added later.

The best is to add the parameters altogether, as:

1) We need to add the corresponding bits at the docbook;
2) We need to add support for it at libdvbv5.

Regards,
Mauro
 
 Signed-off-by: Antti Palosaari cr...@iki.fi
 ---
  include/uapi/linux/dvb/frontend.h | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/include/uapi/linux/dvb/frontend.h 
 b/include/uapi/linux/dvb/frontend.h
 index c56d77c..98648eb 100644
 --- a/include/uapi/linux/dvb/frontend.h
 +++ b/include/uapi/linux/dvb/frontend.h
 @@ -410,6 +410,7 @@ typedef enum fe_delivery_system {
   SYS_DVBT2,
   SYS_TURBO,
   SYS_DVBC_ANNEX_C,
 + SYS_DVBC2,
  } fe_delivery_system_t;
  
  /* backward compatibility */
--
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/4] cxd2843: Sony CXD2843 DVB-C/C2/T/T2 demodulator driver

2014-09-23 Thread Mauro Carvalho Chehab
Em Fri,  1 Aug 2014 01:33:07 +0300
Antti Palosaari cr...@iki.fi escreveu:

 Sony CXD2843 DVB-C/C2/T/T2 demodulator driver.
 Driver taken from Digital Devices Linux driver package
 dddvb-0.9.15a.

Tried to ping you about that todad on IRC. For now, I'm seeing this as a
RFC patch, right?

It seems that there are some work to be done to make this to follow our
CodingStyle, like CamelCase enums and integers in uppercase, removing the
GNU address, etc.

Also, you'll likely want to convert it to use the REGMAP API.

So, for now I'll be tagging this as RFC at patchwork, together with the
corresponding patch series.

Regards,
Mauro

 
 Signed-off-by: Antti Palosaari cr...@iki.fi
 ---
  drivers/media/dvb-frontends/Kconfig   |8 +
  drivers/media/dvb-frontends/Makefile  |1 +
  drivers/media/dvb-frontends/cxd2843.c | 2025 
 +
  drivers/media/dvb-frontends/cxd2843.h |   30 +
  4 files changed, 2064 insertions(+)
  create mode 100644 drivers/media/dvb-frontends/cxd2843.c
  create mode 100644 drivers/media/dvb-frontends/cxd2843.h
 
 diff --git a/drivers/media/dvb-frontends/Kconfig 
 b/drivers/media/dvb-frontends/Kconfig
 index fe0ddcc..5475f59 100644
 --- a/drivers/media/dvb-frontends/Kconfig
 +++ b/drivers/media/dvb-frontends/Kconfig
 @@ -72,6 +72,14 @@ config DVB_SI2165
  
 Say Y when you want to support this frontend.
  
 +config DVB_CXD2843
 + tristate Sony CXD2843
 + depends on DVB_CORE  I2C
 + default m if !MEDIA_SUBDRV_AUTOSELECT
 + help
 +   Sony CXD2843 DVB-C/C2/T/T2 demodulator driver.
 +   Say Y when you want to support this frontend.
 +
  comment DVB-S (satellite) frontends
   depends on DVB_CORE
  
 diff --git a/drivers/media/dvb-frontends/Makefile 
 b/drivers/media/dvb-frontends/Makefile
 index edf103d..9a9f131 100644
 --- a/drivers/media/dvb-frontends/Makefile
 +++ b/drivers/media/dvb-frontends/Makefile
 @@ -103,6 +103,7 @@ obj-$(CONFIG_DVB_MB86A20S) += mb86a20s.o
  obj-$(CONFIG_DVB_IX2505V) += ix2505v.o
  obj-$(CONFIG_DVB_STV0367) += stv0367.o
  obj-$(CONFIG_DVB_CXD2820R) += cxd2820r.o
 +obj-$(CONFIG_DVB_CXD2843) += cxd2843.o
  obj-$(CONFIG_DVB_DRXK) += drxk.o
  obj-$(CONFIG_DVB_TDA18271C2DD) += tda18271c2dd.o
  obj-$(CONFIG_DVB_SI2165) += si2165.o
 diff --git a/drivers/media/dvb-frontends/cxd2843.c 
 b/drivers/media/dvb-frontends/cxd2843.c
 new file mode 100644
 index 000..10fc240
 --- /dev/null
 +++ b/drivers/media/dvb-frontends/cxd2843.c
 @@ -0,0 +1,2025 @@
 +/*
 + * Driver for the Sony CXD2843ER DVB-T/T2/C/C2 demodulator.
 + * Also supports the CXD2837ER DVB-T/T2/C and the
 + * CXD2838ER ISDB-T demodulator.
 + *
 + * Copyright (C) 2013-2014 Digital Devices GmbH
 + *
 + * This program is free software; you can redistribute it and/or
 + * modify it under the terms of the GNU General Public License
 + * version 2 only, as published by the Free Software Foundation.
 + *
 + *
 + * 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.
 + *
 + *
 + * You should have received a copy of the GNU General Public License
 + * along with this program; if not, write to the Free Software
 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 + * 02110-1301, USA
 + * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
 + */
 +
 +#include linux/kernel.h
 +#include linux/module.h
 +#include linux/moduleparam.h
 +#include linux/init.h
 +#include linux/delay.h
 +#include linux/firmware.h
 +#include linux/i2c.h
 +#include linux/version.h
 +#include linux/mutex.h
 +#include asm/div64.h
 +
 +#include dvb_frontend.h
 +#include cxd2843.h
 +
 +#define USE_ALGO 1
 +
 +enum EDemodType { CXD2843, CXD2837, CXD2838 };
 +enum EDemodState { Unknown, Shutdown, Sleep, ActiveT,
 +ActiveT2, ActiveC, ActiveC2, ActiveIT };
 +enum ET2Profile { T2P_Base, T2P_Lite };
 +enum omode { OM_NONE, OM_DVBT, OM_DVBT2, OM_DVBC,
 +  OM_QAM_ITU_C, OM_DVBC2, OM_ISDBT };



 +
 +struct cxd_state {
 + struct dvb_frontend   frontend;
 + struct i2c_adapter   *i2c;
 + struct mutex  mutex;
 +
 + u8  adrt;
 + u8  curbankt;
 +
 + u8  adrx;
 + u8  curbankx;
 +
 + enum EDemodType  type;
 + enum EDemodState state;
 + enum ET2Profile T2Profile;
 + enum omode omode;
 +
 + u8IF_FS;
 + int   ContinuousClock;
 + int   SerialMode;
 + u8SerialClockFrequency;
 +
 + u32   LockTimeout;
 + u32   TSLockTimeout;
 + u32   L1PostTimeout;
 + u32   DataSliceID;
 + int   FirstTimeLock;
 + u32   plp;
 + u32   last_status;
 +
 + u32   bandwidth;
 + u32   bw;
 +
 + unsigned long tune_time;
 +
 + u32   LastBERNominator;
 + u32   LastBERDenominator;
 + u8BERScaleMax;
 +};
 +
 +static int i2c_write(struct i2c_adapter *adap, u8 adr, u8 *data, 

Fw: [PATCH 4/4] V4L/DVB: Add sleep for firmware ready

2014-09-23 Thread Mauro Carvalho Chehab
Antti,

After the firmware load changes, is this patch still applicable?

Regards,
Mauro

Forwarded message:

Date: Tue, 05 Aug 2014 13:48:03 +0800
From: Bimow Chen bimow.c...@ite.com.tw
To: linux-media@vger.kernel.org
Subject: [PATCH 4/4] V4L/DVB: Add sleep for firmware ready


From b19fa868ce937a6ef10f1591a49b2a7ad14964a9 Mon Sep 17 00:00:00 2001
From: Bimow Chen bimow.c...@ite.com.tw
Date: Tue, 5 Aug 2014 11:20:53 +0800
Subject: [PATCH 4/4] Add sleep for firmware ready.


Signed-off-by: Bimow Chen bimow.c...@ite.com.tw
---
 drivers/media/usb/dvb-usb-v2/af9035.c |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c 
b/drivers/media/usb/dvb-usb-v2/af9035.c
index 7b9b75f..a450cdb 100644
--- a/drivers/media/usb/dvb-usb-v2/af9035.c
+++ b/drivers/media/usb/dvb-usb-v2/af9035.c
@@ -602,6 +602,8 @@ static int af9035_download_firmware(struct dvb_usb_device 
*d,
if (ret  0)
goto err;
 
+   msleep(30);
+
/* firmware loaded, request boot */
req.cmd = CMD_FW_BOOT;
ret = af9035_ctrl_msg(d, req);
-- 
1.7.0.4

--
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: Fw: [PATCH 4/4] V4L/DVB: Add sleep for firmware ready

2014-09-23 Thread Antti Palosaari
I am not sure as I cannot reproduce it. Also 30ms wait here is long as 
hell, whilst it is not critical.


When I look that firmware downloading from the 1-2 month old Hauppauge 
driver sniffs, it is not there:


That line is CMD_FW_BOOT, command 0x23 it is 3rd number:
#define CMD_FW_BOOT 0x23
000313:  OUT: 00 ms 001490 ms BULK[2]  05 00 23 9a 65 dc

Here is whole sequence:
000311:  OUT: 00 ms 001489 ms BULK[2]  15 00 29 99 03 01 00 
01 57 f7 09 02 6d 6c 02 4f 9f 02 4f a2 0b 16

000312:  OUT: 01 ms 001489 ms BULK[00081]  04 99 00 66 ff
000313:  OUT: 00 ms 001490 ms BULK[2]  05 00 23 9a 65 dc
000314:  OUT: 11 ms 001490 ms BULK[00081]  04 9a 00 65 ff
000315:  OUT: 00 ms 001501 ms BULK[2]  0b 00 00 9b 01 02 00 
00 12 22 40 ec

000316:  OUT: 00 ms 001501 ms BULK[00081]  05 9b 00 02 62 ff


So windows driver waits 10ms after boot, not before.

Due to these reasons, I would like to skip that patch until I see error 
or get good explanation why it is needed and so.



regards
Antti


On 09/23/2014 02:50 PM, Mauro Carvalho Chehab wrote:

Antti,

After the firmware load changes, is this patch still applicable?

Regards,
Mauro

Forwarded message:

Date: Tue, 05 Aug 2014 13:48:03 +0800
From: Bimow Chen bimow.c...@ite.com.tw
To: linux-media@vger.kernel.org
Subject: [PATCH 4/4] V4L/DVB: Add sleep for firmware ready


 From b19fa868ce937a6ef10f1591a49b2a7ad14964a9 Mon Sep 17 00:00:00 2001
From: Bimow Chen bimow.c...@ite.com.tw
Date: Tue, 5 Aug 2014 11:20:53 +0800
Subject: [PATCH 4/4] Add sleep for firmware ready.


Signed-off-by: Bimow Chen bimow.c...@ite.com.tw
---
  drivers/media/usb/dvb-usb-v2/af9035.c |2 ++
  1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c 
b/drivers/media/usb/dvb-usb-v2/af9035.c
index 7b9b75f..a450cdb 100644
--- a/drivers/media/usb/dvb-usb-v2/af9035.c
+++ b/drivers/media/usb/dvb-usb-v2/af9035.c
@@ -602,6 +602,8 @@ static int af9035_download_firmware(struct dvb_usb_device 
*d,
if (ret  0)
goto err;

+   msleep(30);
+
/* firmware loaded, request boot */
req.cmd = CMD_FW_BOOT;
ret = af9035_ctrl_msg(d, req);



--
http://palosaari.fi/
--
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/4] cxd2843: Sony CXD2843 DVB-C/C2/T/T2 demodulator driver

2014-09-23 Thread Antti Palosaari
Consider it is a RFC. There is tons of things to do, review and fix 
issues. There is issues like missing DVB-C2 API, I2C model, style issues 
etc.


regards
Antti

On 09/23/2014 02:47 PM, Mauro Carvalho Chehab wrote:

Em Fri,  1 Aug 2014 01:33:07 +0300
Antti Palosaari cr...@iki.fi escreveu:


Sony CXD2843 DVB-C/C2/T/T2 demodulator driver.
Driver taken from Digital Devices Linux driver package
dddvb-0.9.15a.


Tried to ping you about that todad on IRC. For now, I'm seeing this as a
RFC patch, right?

It seems that there are some work to be done to make this to follow our
CodingStyle, like CamelCase enums and integers in uppercase, removing the
GNU address, etc.

Also, you'll likely want to convert it to use the REGMAP API.

So, for now I'll be tagging this as RFC at patchwork, together with the
corresponding patch series.

Regards,
Mauro



Signed-off-by: Antti Palosaari cr...@iki.fi
---
  drivers/media/dvb-frontends/Kconfig   |8 +
  drivers/media/dvb-frontends/Makefile  |1 +
  drivers/media/dvb-frontends/cxd2843.c | 2025 +
  drivers/media/dvb-frontends/cxd2843.h |   30 +
  4 files changed, 2064 insertions(+)
  create mode 100644 drivers/media/dvb-frontends/cxd2843.c
  create mode 100644 drivers/media/dvb-frontends/cxd2843.h

diff --git a/drivers/media/dvb-frontends/Kconfig 
b/drivers/media/dvb-frontends/Kconfig
index fe0ddcc..5475f59 100644
--- a/drivers/media/dvb-frontends/Kconfig
+++ b/drivers/media/dvb-frontends/Kconfig
@@ -72,6 +72,14 @@ config DVB_SI2165

  Say Y when you want to support this frontend.

+config DVB_CXD2843
+   tristate Sony CXD2843
+   depends on DVB_CORE  I2C
+   default m if !MEDIA_SUBDRV_AUTOSELECT
+   help
+ Sony CXD2843 DVB-C/C2/T/T2 demodulator driver.
+ Say Y when you want to support this frontend.
+
  comment DVB-S (satellite) frontends
depends on DVB_CORE

diff --git a/drivers/media/dvb-frontends/Makefile 
b/drivers/media/dvb-frontends/Makefile
index edf103d..9a9f131 100644
--- a/drivers/media/dvb-frontends/Makefile
+++ b/drivers/media/dvb-frontends/Makefile
@@ -103,6 +103,7 @@ obj-$(CONFIG_DVB_MB86A20S) += mb86a20s.o
  obj-$(CONFIG_DVB_IX2505V) += ix2505v.o
  obj-$(CONFIG_DVB_STV0367) += stv0367.o
  obj-$(CONFIG_DVB_CXD2820R) += cxd2820r.o
+obj-$(CONFIG_DVB_CXD2843) += cxd2843.o
  obj-$(CONFIG_DVB_DRXK) += drxk.o
  obj-$(CONFIG_DVB_TDA18271C2DD) += tda18271c2dd.o
  obj-$(CONFIG_DVB_SI2165) += si2165.o
diff --git a/drivers/media/dvb-frontends/cxd2843.c 
b/drivers/media/dvb-frontends/cxd2843.c
new file mode 100644
index 000..10fc240
--- /dev/null
+++ b/drivers/media/dvb-frontends/cxd2843.c
@@ -0,0 +1,2025 @@
+/*
+ * Driver for the Sony CXD2843ER DVB-T/T2/C/C2 demodulator.
+ * Also supports the CXD2837ER DVB-T/T2/C and the
+ * CXD2838ER ISDB-T demodulator.
+ *
+ * Copyright (C) 2013-2014 Digital Devices GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2 only, as published by the Free Software Foundation.
+ *
+ *
+ * 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.
+ *
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA
+ * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
+ */
+
+#include linux/kernel.h
+#include linux/module.h
+#include linux/moduleparam.h
+#include linux/init.h
+#include linux/delay.h
+#include linux/firmware.h
+#include linux/i2c.h
+#include linux/version.h
+#include linux/mutex.h
+#include asm/div64.h
+
+#include dvb_frontend.h
+#include cxd2843.h
+
+#define USE_ALGO 1
+
+enum EDemodType { CXD2843, CXD2837, CXD2838 };
+enum EDemodState { Unknown, Shutdown, Sleep, ActiveT,
+  ActiveT2, ActiveC, ActiveC2, ActiveIT };
+enum ET2Profile { T2P_Base, T2P_Lite };
+enum omode { OM_NONE, OM_DVBT, OM_DVBT2, OM_DVBC,
+OM_QAM_ITU_C, OM_DVBC2, OM_ISDBT };





+
+struct cxd_state {
+   struct dvb_frontend   frontend;
+   struct i2c_adapter   *i2c;
+   struct mutex  mutex;
+
+   u8  adrt;
+   u8  curbankt;
+
+   u8  adrx;
+   u8  curbankx;
+
+   enum EDemodType  type;
+   enum EDemodState state;
+   enum ET2Profile T2Profile;
+   enum omode omode;
+
+   u8IF_FS;
+   int   ContinuousClock;
+   int   SerialMode;
+   u8SerialClockFrequency;
+
+   u32   LockTimeout;
+   u32   TSLockTimeout;
+   u32   L1PostTimeout;
+   u32   DataSliceID;
+   int   FirstTimeLock;
+   u32   plp;
+   u32   last_status;
+
+   u32   bandwidth;
+   u32   bw;
+
+   unsigned long tune_time;
+

[linuxtv-media:devel-3.17-rc6 497/499] saa7134-go7007.c:undefined reference to `go7007_snd_remove'

2014-09-23 Thread kbuild test robot
tree:   git://linuxtv.org/media_tree.git devel-3.17-rc6
head:   fa1d4addf88f8d419bc946f9f7debe3e8603d302
commit: 9d78802f269b59156c4674112d1c4433f19b1f54 [497/499] [media] saa7134: add 
saa7134-go7007
config: i386-randconfig-ha2-0923 (attached as .config)
reproduce:
  git checkout 9d78802f269b59156c4674112d1c4433f19b1f54
  # save the attached .config to linux build tree
  make ARCH=i386 

All error/warnings:

   drivers/built-in.o: In function `saa7134_go7007_fini':
 saa7134-go7007.c:(.text+0x3b628b): undefined reference to `go7007_snd_remove'
   drivers/built-in.o: In function `saa7134_go7007_interface_reset':
 saa7134-go7007.c:(.text+0x3b659a): undefined reference to 
 `go7007_read_interrupt'
   drivers/built-in.o: In function `saa7134_go7007_init':
 saa7134-go7007.c:(.text+0x3b65fa): undefined reference to `go7007_alloc'
 saa7134-go7007.c:(.text+0x3b66ed): undefined reference to 
 `go7007_boot_encoder'
 saa7134-go7007.c:(.text+0x3b66fe): undefined reference to 
 `go7007_register_encoder'
   drivers/built-in.o: In function `saa7134_go7007_irq_ts_done':
 saa7134-go7007.c:(.text+0x3b6c2a): undefined reference to 
 `go7007_parse_video_stream'
 saa7134-go7007.c:(.text+0x3b6c86): undefined reference to 
 `go7007_parse_video_stream'

---
0-DAY kernel build testing backend  Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild Intel Corporation
#
# Automatically generated file; DO NOT EDIT.
# Linux/i386 3.17.0-rc5 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT=elf32-i386
CONFIG_ARCH_DEFCONFIG=arch/x86/configs/i386_defconfig
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
# CONFIG_ZONE_DMA32 is not set
# CONFIG_AUDIT_ARCH is not set
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_X86_32_SMP=y
CONFIG_X86_HT=y
CONFIG_X86_32_LAZY_GS=y
CONFIG_ARCH_HWEIGHT_CFLAGS=-fcall-saved-ecx -fcall-saved-edx
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_DEFCONFIG_LIST=/lib/modules/$UNAME_RELEASE/.config
CONFIG_CONSTRUCTORS=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y

#
# General setup
#
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=
# CONFIG_COMPILE_TEST is not set
CONFIG_LOCALVERSION=
CONFIG_LOCALVERSION_AUTO=y
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
# CONFIG_KERNEL_GZIP is not set
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
CONFIG_KERNEL_LZ4=y
CONFIG_DEFAULT_HOSTNAME=(none)
# CONFIG_SWAP is not set
# CONFIG_SYSVIPC is not set
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_CROSS_MEMORY_ATTACH is not set
# CONFIG_FHANDLE is not set
# CONFIG_USELIB is not set
# CONFIG_AUDIT is not set
CONFIG_HAVE_ARCH_AUDITSYSCALL=y

#
# IRQ subsystem
#
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_GENERIC_IRQ_CHIP=y
CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_DEBUG=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CMOS_UPDATE=y

#
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
CONFIG_NO_HZ_IDLE=y
CONFIG_NO_HZ=y
# CONFIG_HIGH_RES_TIMERS is not set

#
# CPU/Task time and stats accounting
#
CONFIG_TICK_CPU_ACCOUNTING=y
# CONFIG_IRQ_TIME_ACCOUNTING is not set
CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
# CONFIG_TASKSTATS is not set

#
# RCU Subsystem
#
CONFIG_TREE_RCU=y
# CONFIG_PREEMPT_RCU is not set
CONFIG_RCU_STALL_COMMON=y
CONFIG_RCU_FANOUT=32
CONFIG_RCU_FANOUT_LEAF=16
CONFIG_RCU_FANOUT_EXACT=y
CONFIG_RCU_FAST_NO_HZ=y
CONFIG_TREE_RCU_TRACE=y
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_NOCB_CPU_NONE is not set
# CONFIG_RCU_NOCB_CPU_ZERO is not set
CONFIG_RCU_NOCB_CPU_ALL=y
CONFIG_BUILD_BIN2C=y
CONFIG_IKCONFIG=y
CONFIG_LOG_BUF_SHIFT=17
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE=y
CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is not set

Re: [PATCH 1/5] video: move mediabus format definition to a more standard place

2014-09-23 Thread Guennadi Liakhovetski
Hi Boris,

On Tue, 22 Jul 2014, Boris BREZILLON wrote:

 Rename mediabus formats and move the enum into a separate header file so
 that it can be used by DRM/KMS subsystem without any reference to the V4L2
 subsystem.
 
 Old V4L2_MBUS_FMT_ definitions are now macros that points to VIDEO_BUS_FMT_
 definitions.
 
 Signed-off-by: Boris BREZILLON boris.brezil...@free-electrons.com

In principle I find this a good idea, certainly it's good to reuse code. 
Just wondering, wouldn't it be better instead of adding those defines to 
define a macro like

#define VIDEO_BUS_TO_MBUS(x)V4L2_MBUS_ ## x = VIDEO_BUS_ ## x

and then do

enum v4l2_mbus_pixelcode {
VIDEO_BUS_TO_MBUS(FIXED),
VIDEO_BUS_TO_MBUS(RGB444_2X8_PADHI_BE),
...
};

? I'm not very strong on this, I just think an enum is nicer than a bunch 
of defines and this way copy-paste errors are less likely, but if you or 
others strongly disagree - I won't insist :)

Whether or not you decide to accept this proposal you have my

Acked-by: Guennadi Liakhovetski g.liakhovet...@gmx.de

Thanks
Guennadi

 ---
  include/uapi/linux/Kbuild |   1 +
  include/uapi/linux/v4l2-mediabus.h| 183 
 ++
  include/uapi/linux/video-bus-format.h | 127 +++
  3 files changed, 205 insertions(+), 106 deletions(-)
  create mode 100644 include/uapi/linux/video-bus-format.h
 
 diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild
 index 24e9033..371874b 100644
 --- a/include/uapi/linux/Kbuild
 +++ b/include/uapi/linux/Kbuild
 @@ -408,6 +408,7 @@ header-y += veth.h
  header-y += vfio.h
  header-y += vhost.h
  header-y += videodev2.h
 +header-y += video-bus-format.h
  header-y += virtio_9p.h
  header-y += virtio_balloon.h
  header-y += virtio_blk.h
 diff --git a/include/uapi/linux/v4l2-mediabus.h 
 b/include/uapi/linux/v4l2-mediabus.h
 index 1445e85..8c31f11 100644
 --- a/include/uapi/linux/v4l2-mediabus.h
 +++ b/include/uapi/linux/v4l2-mediabus.h
 @@ -13,119 +13,90 @@
  
  #include linux/types.h
  #include linux/videodev2.h
 +#include linux/video-bus-format.h
  
 -/*
 - * These pixel codes uniquely identify data formats on the media bus. Mostly
 - * they correspond to similarly named V4L2_PIX_FMT_* formats, format 0 is
 - * reserved, V4L2_MBUS_FMT_FIXED shall be used by host-client pairs, where 
 the
 - * data format is fixed. Additionally, 2X8 means that one pixel is 
 transferred
 - * in two 8-bit samples, BE or LE specify in which order those samples 
 are
 - * transferred over the bus: LE means that the least significant bits are
 - * transferred first, BE means that the most significant bits are 
 transferred
 - * first, and PADHI and PADLO define which bits - low or high, in the
 - * incomplete high byte, are filled with padding bits.
 - *
 - * The pixel codes are grouped by type, bus_width, bits per component, 
 samples
 - * per pixel and order of subsamples. Numerical values are sorted using 
 generic
 - * numerical sort order (8 thus comes before 10).
 - *
 - * As their value can't change when a new pixel code is inserted in the
 - * enumeration, the pixel codes are explicitly given a numerical value. The 
 next
 - * free values for each category are listed below, update them when inserting
 - * new pixel codes.
 - */
 -enum v4l2_mbus_pixelcode {
 - V4L2_MBUS_FMT_FIXED = 0x0001,
 -
 - /* RGB - next is 0x100e */
 - V4L2_MBUS_FMT_RGB444_2X8_PADHI_BE = 0x1001,
 - V4L2_MBUS_FMT_RGB444_2X8_PADHI_LE = 0x1002,
 - V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE = 0x1003,
 - V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE = 0x1004,
 - V4L2_MBUS_FMT_BGR565_2X8_BE = 0x1005,
 - V4L2_MBUS_FMT_BGR565_2X8_LE = 0x1006,
 - V4L2_MBUS_FMT_RGB565_2X8_BE = 0x1007,
 - V4L2_MBUS_FMT_RGB565_2X8_LE = 0x1008,
 - V4L2_MBUS_FMT_RGB666_1X18 = 0x1009,
 - V4L2_MBUS_FMT_RGB888_1X24 = 0x100a,
 - V4L2_MBUS_FMT_RGB888_2X12_BE = 0x100b,
 - V4L2_MBUS_FMT_RGB888_2X12_LE = 0x100c,
 - V4L2_MBUS_FMT_ARGB_1X32 = 0x100d,
 +#define V4L2_MBUS_FMT_FIXED  VIDEO_BUS_FMT_FIXED
  
 - /* YUV (including grey) - next is 0x2024 */
 - V4L2_MBUS_FMT_Y8_1X8 = 0x2001,
 - V4L2_MBUS_FMT_UV8_1X8 = 0x2015,
 - V4L2_MBUS_FMT_UYVY8_1_5X8 = 0x2002,
 - V4L2_MBUS_FMT_VYUY8_1_5X8 = 0x2003,
 - V4L2_MBUS_FMT_YUYV8_1_5X8 = 0x2004,
 - V4L2_MBUS_FMT_YVYU8_1_5X8 = 0x2005,
 - V4L2_MBUS_FMT_UYVY8_2X8 = 0x2006,
 - V4L2_MBUS_FMT_VYUY8_2X8 = 0x2007,
 - V4L2_MBUS_FMT_YUYV8_2X8 = 0x2008,
 - V4L2_MBUS_FMT_YVYU8_2X8 = 0x2009,
 - V4L2_MBUS_FMT_Y10_1X10 = 0x200a,
 - V4L2_MBUS_FMT_UYVY10_2X10 = 0x2018,
 - V4L2_MBUS_FMT_VYUY10_2X10 = 0x2019,
 - V4L2_MBUS_FMT_YUYV10_2X10 = 0x200b,
 - V4L2_MBUS_FMT_YVYU10_2X10 = 0x200c,
 - V4L2_MBUS_FMT_Y12_1X12 = 0x2013,
 - V4L2_MBUS_FMT_UYVY8_1X16 = 0x200f,
 - V4L2_MBUS_FMT_VYUY8_1X16 = 0x2010,
 - V4L2_MBUS_FMT_YUYV8_1X16 = 0x2011,
 - V4L2_MBUS_FMT_YVYU8_1X16 = 0x2012,
 - 

Re: [PATCH 1/3] si2157: Add support for Si2147-A30

2014-09-23 Thread Antti Palosaari

Acked-by: Antti Palosaari cr...@iki.fi
Reviewed-by: Antti Palosaari cr...@iki.fi


On 09/21/2014 01:53 PM, Olli Salonen wrote:

This patch adds support for Si2147-A30 tuner. Fairly trivial, no firmware
needed for this tuner. However, command 14 00 02 07 01 00 seems to be
mandatory. On Si2157 and Si2158 the value 0x0100 is the default value, so this
patch does not impact the existing tuners/devices. On Si2147 the default is
0x and I can't get a lock with that value.

Signed-off-by: Olli Salonen olli.salo...@iki.fi
Cc: cr...@iki.fi
---
  drivers/media/tuners/si2157.c  | 13 +++--
  drivers/media/tuners/si2157.h  |  2 +-
  drivers/media/tuners/si2157_priv.h |  2 +-
  3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/drivers/media/tuners/si2157.c b/drivers/media/tuners/si2157.c
index efb5cce..41965c7 100644
--- a/drivers/media/tuners/si2157.c
+++ b/drivers/media/tuners/si2157.c
@@ -1,5 +1,5 @@
  /*
- * Silicon Labs Si2157/2158 silicon tuner driver
+ * Silicon Labs Si2147/2157/2158 silicon tuner driver
   *
   * Copyright (C) 2014 Antti Palosaari cr...@iki.fi
   *
@@ -110,12 +110,14 @@ static int si2157_init(struct dvb_frontend *fe)

#define SI2158_A20 ('A'  24 | 58  16 | '2'  8 | '0'  0)
#define SI2157_A30 ('A'  24 | 57  16 | '3'  8 | '0'  0)
+   #define SI2147_A30 ('A'  24 | 47  16 | '3'  8 | '0'  0)

switch (chip_id) {
case SI2158_A20:
fw_file = SI2158_A20_FIRMWARE;
break;
case SI2157_A30:
+   case SI2147_A30:
goto skip_fw_download;
break;
default:
@@ -258,7 +260,14 @@ static int si2157_set_params(struct dvb_frontend *fe)
if (s-inversion)
cmd.args[5] = 0x01;
cmd.wlen = 6;
-   cmd.rlen = 1;
+   cmd.rlen = 4;
+   ret = si2157_cmd_execute(s, cmd);
+   if (ret)
+   goto err;
+
+   memcpy(cmd.args, \x14\x00\x02\x07\x01\x00, 6);
+   cmd.wlen = 6;
+   cmd.rlen = 4;
ret = si2157_cmd_execute(s, cmd);
if (ret)
goto err;
diff --git a/drivers/media/tuners/si2157.h b/drivers/media/tuners/si2157.h
index 6da4d5d..d3b19ca 100644
--- a/drivers/media/tuners/si2157.h
+++ b/drivers/media/tuners/si2157.h
@@ -1,5 +1,5 @@
  /*
- * Silicon Labs Si2157/2158 silicon tuner driver
+ * Silicon Labs Si2147/2157/2158 silicon tuner driver
   *
   * Copyright (C) 2014 Antti Palosaari cr...@iki.fi
   *
diff --git a/drivers/media/tuners/si2157_priv.h 
b/drivers/media/tuners/si2157_priv.h
index 3ddab5e..02350f8 100644
--- a/drivers/media/tuners/si2157_priv.h
+++ b/drivers/media/tuners/si2157_priv.h
@@ -1,5 +1,5 @@
  /*
- * Silicon Labs Si2157/2158 silicon tuner driver
+ * Silicon Labs Si2147/2157/2158 silicon tuner driver
   *
   * Copyright (C) 2014 Antti Palosaari cr...@iki.fi
   *



--
http://palosaari.fi/
--
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] af9035: Add possibility to define which I2C adapter to use

2014-09-23 Thread Antti Palosaari

Acked-by: Antti Palosaari cr...@iki.fi
Reviewed-by: Antti Palosaari cr...@iki.fi


On 09/21/2014 01:53 PM, Olli Salonen wrote:

Some I2C tuner drivers require that the I2C device of the tuner is added to the 
I2C adapter of the demodulator (Si2168+Si2157 for example). Add possibility to 
tell af9035_add_i2c_dev which I2C adapter should be used.

Cc: cr...@iki.fi
Signed-off-by: Olli Salonen olli.salo...@iki.fi
---
  drivers/media/usb/dvb-usb-v2/af9035.c | 9 -
  1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c 
b/drivers/media/usb/dvb-usb-v2/af9035.c
index 440ecb4..c50d27d 100644
--- a/drivers/media/usb/dvb-usb-v2/af9035.c
+++ b/drivers/media/usb/dvb-usb-v2/af9035.c
@@ -194,12 +194,11 @@ static int af9035_wr_reg_mask(struct dvb_usb_device *d, 
u32 reg, u8 val,
  }

  static int af9035_add_i2c_dev(struct dvb_usb_device *d, char *type, u8 addr,
-   void *platform_data)
+   void *platform_data, struct i2c_adapter *adapter)
  {
int ret, num;
struct state *state = d_to_priv(d);
struct i2c_client *client;
-   struct i2c_adapter *adapter = d-i2c_adap;
struct i2c_board_info board_info = {
.addr = addr,
.platform_data = platform_data,
@@ -1091,7 +1090,7 @@ static int af9035_frontend_attach(struct dvb_usb_adapter 
*adap)
state-af9033_config[adap-id].fe = adap-fe[0];
state-af9033_config[adap-id].ops = state-ops;
ret = af9035_add_i2c_dev(d, af9033, state-af9033_i2c_addr[adap-id],
-   state-af9033_config[adap-id]);
+   state-af9033_config[adap-id], d-i2c_adap);
if (ret)
goto err;

@@ -1382,7 +1381,7 @@ static int af9035_tuner_attach(struct dvb_usb_adapter 
*adap)

ret = af9035_add_i2c_dev(d, it913x,
state-af9033_i2c_addr[adap-id]  1,
-   it913x_config);
+   it913x_config, d-i2c_adap);
if (ret)
goto err;

@@ -1407,7 +1406,7 @@ static int af9035_tuner_attach(struct dvb_usb_adapter 
*adap)

ret = af9035_add_i2c_dev(d, it913x,
state-af9033_i2c_addr[adap-id]  1,
-   it913x_config);
+   it913x_config, d-i2c_adap);
if (ret)
goto err;




--
http://palosaari.fi/
--
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] af9035: Add support for IT930x USB bridge

2014-09-23 Thread Antti Palosaari

Acked-by: Antti Palosaari cr...@iki.fi
Reviewed-by: Antti Palosaari cr...@iki.fi

Changes were a bit complicated, but I understood those in general and 
there is nothing wrong for my eyes. Mostly I was surprised of new 
implementation of init() (init is mainly for configuring TS interfaces).


Also I2C adapter xfer goes pretty complex, but that is because there is 
actually 3 I2C adapters and some of those even offer multiple access 
methods by firmware. Maybe there is also room for later improvement.


But as I said, patch it is OK.

regards
Antti


On 09/21/2014 01:53 PM, Olli Salonen wrote:

Add support for IT930x USB bridge and IT9303 reference design.

It is a DVB-T/T2/C tuner with the following components:
- IT9303 USB bridge
- Si2168-B40 demodulator
- Si2147-A30 tuner

The IT9303 requires firmware that can be downloaded here:
http://trsqr.net/olli/linux/firmwares/it930x/

The Si2168-B40 requires firmware, but the one that is used by PCTV 292e can be 
used.
http://palosaari.fi/linux/v4l-dvb/firmware/Si2168/Si2168-B40/

The Si2147-A30 tuner does not require firmware loading.

Cc: cr...@iki.fi
Signed-off-by: Olli Salonen olli.salo...@iki.fi
---
  drivers/media/dvb-core/dvb-usb-ids.h  |   1 +
  drivers/media/usb/dvb-usb-v2/af9035.c | 324 --
  drivers/media/usb/dvb-usb-v2/af9035.h |   6 +
  3 files changed, 314 insertions(+), 17 deletions(-)

diff --git a/drivers/media/dvb-core/dvb-usb-ids.h 
b/drivers/media/dvb-core/dvb-usb-ids.h
index d484a51..e07a84e 100644
--- a/drivers/media/dvb-core/dvb-usb-ids.h
+++ b/drivers/media/dvb-core/dvb-usb-ids.h
@@ -144,6 +144,7 @@
  #define USB_PID_ITETECH_IT91350x9135
  #define USB_PID_ITETECH_IT9135_9005   0x9005
  #define USB_PID_ITETECH_IT9135_9006   0x9006
+#define USB_PID_ITETECH_IT9303 0x9306
  #define USB_PID_KWORLD_399U   0xe399
  #define USB_PID_KWORLD_399U_2 0xe400
  #define USB_PID_KWORLD_395U   0xe396
diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c 
b/drivers/media/usb/dvb-usb-v2/af9035.c
index c50d27d..00758c8 100644
--- a/drivers/media/usb/dvb-usb-v2/af9035.c
+++ b/drivers/media/usb/dvb-usb-v2/af9035.c
@@ -290,7 +290,7 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
return -EAGAIN;

/*
-* I2C sub header is 5 bytes long. Meaning of those bytes are:
+* AF9035 I2C sub header is 5 bytes long. Meaning of those bytes are:
 * 0: data len
 * 1: I2C addr  1
 * 2: reg addr len
@@ -317,6 +317,12 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
 * bus. I2C subsystem does not allow register multiple devices to same
 * bus, having same slave address. Due to that we reuse demod address,
 * shifted by one bit, on that case.
+*
+* For IT930x we use a different command and the sub header is
+* different as well:
+* 0: data len
+* 1: I2C bus (0x03 seems to be only value used)
+* 2: I2C addr  1
 */
  #define AF9035_IS_I2C_XFER_WRITE_READ(_msg, _num) \
(_num == 2  !(_msg[0].flags  I2C_M_RD)  (_msg[1].flags  I2C_M_RD))
@@ -348,13 +354,24 @@ static int af9035_i2c_master_xfer(struct i2c_adapter 
*adap,
struct usb_req req = { CMD_I2C_RD, 0, 5 + msg[0].len,
buf, msg[1].len, msg[1].buf };

+   if (state-chip_type == 0x9306) {
+   req.cmd = CMD_GENERIC_I2C_RD;
+   req.wlen = 3 + msg[0].len;
+   }
req.mbox |= ((msg[0].addr  0x80)3);
+
buf[0] = msg[1].len;
-   buf[1] = msg[0].addr  1;
-   buf[2] = 0x00; /* reg addr len */
-   buf[3] = 0x00; /* reg addr MSB */
-   buf[4] = 0x00; /* reg addr LSB */
-   memcpy(buf[5], msg[0].buf, msg[0].len);
+   if (state-chip_type == 0x9306) {
+   buf[1] = 0x03; /* I2C bus */
+   buf[2] = msg[0].addr  1;
+   memcpy(buf[3], msg[0].buf, msg[0].len);
+   } else {
+   buf[1] = msg[0].addr  1;
+   buf[2] = 0x00; /* reg addr len */
+   buf[3] = 0x00; /* reg addr MSB */
+   buf[4] = 0x00; /* reg addr LSB */
+   memcpy(buf[5], msg[0].buf, msg[0].len);
+   }
ret = af9035_ctrl_msg(d, req);
}
} else if (AF9035_IS_I2C_XFER_WRITE(msg, num)) {
@@ -380,13 +397,24 @@ static int af9035_i2c_master_xfer(struct i2c_adapter 
*adap,
struct usb_req 

Re: [PATCH 4/4] V4L/DVB: Add sleep for firmware ready

2014-09-23 Thread Mauro Carvalho Chehab
Em Tue, 23 Sep 2014 15:00:48 +0300
Antti Palosaari cr...@iki.fi escreveu:

 I am not sure as I cannot reproduce it. Also 30ms wait here is long as 
 hell, whilst it is not critical.
 
 When I look that firmware downloading from the 1-2 month old Hauppauge 
 driver sniffs, it is not there:
 
 That line is CMD_FW_BOOT, command 0x23 it is 3rd number:
 #define CMD_FW_BOOT 0x23
 000313:  OUT: 00 ms 001490 ms BULK[2]  05 00 23 9a 65 dc
 
 Here is whole sequence:
 000311:  OUT: 00 ms 001489 ms BULK[2]  15 00 29 99 03 01 00 
 01 57 f7 09 02 6d 6c 02 4f 9f 02 4f a2 0b 16
 000312:  OUT: 01 ms 001489 ms BULK[00081]  04 99 00 66 ff
 000313:  OUT: 00 ms 001490 ms BULK[2]  05 00 23 9a 65 dc
 000314:  OUT: 11 ms 001490 ms BULK[00081]  04 9a 00 65 ff
 000315:  OUT: 00 ms 001501 ms BULK[2]  0b 00 00 9b 01 02 00 
 00 12 22 40 ec
 000316:  OUT: 00 ms 001501 ms BULK[00081]  05 9b 00 02 62 ff
 
 
 So windows driver waits 10ms after boot, not before.
 
 Due to these reasons, I would like to skip that patch until I see error 
 or get good explanation why it is needed and so.

Ok. I'll tag it as RFC then.

 
 
 regards
 Antti
 
 
 On 09/23/2014 02:50 PM, Mauro Carvalho Chehab wrote:
  Antti,
 
  After the firmware load changes, is this patch still applicable?
 
  Regards,
  Mauro
 
  Forwarded message:
 
  Date: Tue, 05 Aug 2014 13:48:03 +0800
  From: Bimow Chen bimow.c...@ite.com.tw
  To: linux-media@vger.kernel.org
  Subject: [PATCH 4/4] V4L/DVB: Add sleep for firmware ready
 
 
   From b19fa868ce937a6ef10f1591a49b2a7ad14964a9 Mon Sep 17 00:00:00 2001
  From: Bimow Chen bimow.c...@ite.com.tw
  Date: Tue, 5 Aug 2014 11:20:53 +0800
  Subject: [PATCH 4/4] Add sleep for firmware ready.
 
 
  Signed-off-by: Bimow Chen bimow.c...@ite.com.tw
  ---
drivers/media/usb/dvb-usb-v2/af9035.c |2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
 
  diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c 
  b/drivers/media/usb/dvb-usb-v2/af9035.c
  index 7b9b75f..a450cdb 100644
  --- a/drivers/media/usb/dvb-usb-v2/af9035.c
  +++ b/drivers/media/usb/dvb-usb-v2/af9035.c
  @@ -602,6 +602,8 @@ static int af9035_download_firmware(struct 
  dvb_usb_device *d,
  if (ret  0)
  goto err;
 
  +   msleep(30);
  +
  /* firmware loaded, request boot */
  req.cmd = CMD_FW_BOOT;
  ret = af9035_ctrl_msg(d, req);
 
 
--
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] af9035: Add support for IT930x USB bridge

2014-09-23 Thread Olli Salonen
Hi Antti,

Thanks for the review. I agree that the I2C xfer does not look too
elegant at the moment. Maybe it could be worth investigating if same
methods could be used for all these devices. Alternatively I could
have created another function for I2C xfer using the I2C_GENERIC_RD
and WR commands, but then again the differences were so small...

Would you suggest to move the non-endpoint related registers somewhere
else from the init function? I just reused that as it was
convenient... Tuner attach?

Cheers,
-olli

On 23 September 2014 15:46, Antti Palosaari cr...@iki.fi wrote:
 Acked-by: Antti Palosaari cr...@iki.fi
 Reviewed-by: Antti Palosaari cr...@iki.fi

 Changes were a bit complicated, but I understood those in general and there
 is nothing wrong for my eyes. Mostly I was surprised of new implementation
 of init() (init is mainly for configuring TS interfaces).

 Also I2C adapter xfer goes pretty complex, but that is because there is
 actually 3 I2C adapters and some of those even offer multiple access methods
 by firmware. Maybe there is also room for later improvement.

 But as I said, patch it is OK.

 regards
 Antti


 On 09/21/2014 01:53 PM, Olli Salonen wrote:

 Add support for IT930x USB bridge and IT9303 reference design.

 It is a DVB-T/T2/C tuner with the following components:
 - IT9303 USB bridge
 - Si2168-B40 demodulator
 - Si2147-A30 tuner

 The IT9303 requires firmware that can be downloaded here:
 http://trsqr.net/olli/linux/firmwares/it930x/

 The Si2168-B40 requires firmware, but the one that is used by PCTV 292e
 can be used.
 http://palosaari.fi/linux/v4l-dvb/firmware/Si2168/Si2168-B40/

 The Si2147-A30 tuner does not require firmware loading.

 Cc: cr...@iki.fi
 Signed-off-by: Olli Salonen olli.salo...@iki.fi
 ---
   drivers/media/dvb-core/dvb-usb-ids.h  |   1 +
   drivers/media/usb/dvb-usb-v2/af9035.c | 324
 --
   drivers/media/usb/dvb-usb-v2/af9035.h |   6 +
   3 files changed, 314 insertions(+), 17 deletions(-)

 diff --git a/drivers/media/dvb-core/dvb-usb-ids.h
 b/drivers/media/dvb-core/dvb-usb-ids.h
 index d484a51..e07a84e 100644
 --- a/drivers/media/dvb-core/dvb-usb-ids.h
 +++ b/drivers/media/dvb-core/dvb-usb-ids.h
 @@ -144,6 +144,7 @@
   #define USB_PID_ITETECH_IT91350x9135
   #define USB_PID_ITETECH_IT9135_9005   0x9005
   #define USB_PID_ITETECH_IT9135_9006   0x9006
 +#define USB_PID_ITETECH_IT9303 0x9306
   #define USB_PID_KWORLD_399U   0xe399
   #define USB_PID_KWORLD_399U_2 0xe400
   #define USB_PID_KWORLD_395U   0xe396
 diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c
 b/drivers/media/usb/dvb-usb-v2/af9035.c
 index c50d27d..00758c8 100644
 --- a/drivers/media/usb/dvb-usb-v2/af9035.c
 +++ b/drivers/media/usb/dvb-usb-v2/af9035.c
 @@ -290,7 +290,7 @@ static int af9035_i2c_master_xfer(struct i2c_adapter
 *adap,
 return -EAGAIN;

 /*
 -* I2C sub header is 5 bytes long. Meaning of those bytes are:
 +* AF9035 I2C sub header is 5 bytes long. Meaning of those bytes
 are:
  * 0: data len
  * 1: I2C addr  1
  * 2: reg addr len
 @@ -317,6 +317,12 @@ static int af9035_i2c_master_xfer(struct i2c_adapter
 *adap,
  * bus. I2C subsystem does not allow register multiple devices to
 same
  * bus, having same slave address. Due to that we reuse demod
 address,
  * shifted by one bit, on that case.
 +*
 +* For IT930x we use a different command and the sub header is
 +* different as well:
 +* 0: data len
 +* 1: I2C bus (0x03 seems to be only value used)
 +* 2: I2C addr  1
  */
   #define AF9035_IS_I2C_XFER_WRITE_READ(_msg, _num) \
 (_num == 2  !(_msg[0].flags  I2C_M_RD)  (_msg[1].flags 
 I2C_M_RD))
 @@ -348,13 +354,24 @@ static int af9035_i2c_master_xfer(struct i2c_adapter
 *adap,
 struct usb_req req = { CMD_I2C_RD, 0, 5 +
 msg[0].len,
 buf, msg[1].len, msg[1].buf };

 +   if (state-chip_type == 0x9306) {
 +   req.cmd = CMD_GENERIC_I2C_RD;
 +   req.wlen = 3 + msg[0].len;
 +   }
 req.mbox |= ((msg[0].addr  0x80)3);
 +
 buf[0] = msg[1].len;
 -   buf[1] = msg[0].addr  1;
 -   buf[2] = 0x00; /* reg addr len */
 -   buf[3] = 0x00; /* reg addr MSB */
 -   buf[4] = 0x00; /* reg addr LSB */
 -   memcpy(buf[5], msg[0].buf, msg[0].len);
 +   if (state-chip_type == 0x9306) {
 +   buf[1] = 0x03; /* I2C bus */
 +   buf[2] = msg[0].addr  1;
 +   

RE: [PATCH v2 1/6] V4L2: Add Renesas R-Car JPEG codec driver.

2014-09-23 Thread Kamil Debski
Hi Mikhail,

 From: linux-media-ow...@vger.kernel.org [mailto:linux-media-
 ow...@vger.kernel.org] On Behalf Of Mikhail Ulyanov
 Sent: Monday, August 25, 2014 2:30 PM
 
 This patch contains driver for Renesas R-Car JPEG codec.
 
 Cnanges since v1:
 - s/g_fmt function simplified
 - default format for queues added
 - dumb vidioc functions added to be in compliance with standard
 api:
 jpu_s_priority, jpu_g_priority
 - standard v4l2_ctrl_subscribe_event and v4l2_event_unsubscribe
   now in use by the same reason

The patch looks good to me. However, I would suggest using the BIT macro
and making some short functions inline.
 
 Signed-off-by: Mikhail Ulyanov mikhail.ulya...@cogentembedded.com
 ---
  drivers/media/platform/Kconfig  |   11 +
  drivers/media/platform/Makefile |2 +
  drivers/media/platform/jpu.c | 1628
 ++
  3 files changed, 1641 insertions(+)
  create mode 100644 drivers/media/platform/jpu.c
 
 diff --git a/drivers/media/platform/Kconfig
 b/drivers/media/platform/Kconfig index 6d86646..1b8c846 100644
 --- a/drivers/media/platform/Kconfig
 +++ b/drivers/media/platform/Kconfig
 @@ -220,6 +220,17 @@ config VIDEO_RENESAS_VSP1
 To compile this driver as a module, choose M here: the module
 will be called vsp1.
 
 +config VIDEO_RENESAS_JPU
 + tristate Renesas JPEG Processing Unit
 + depends on VIDEO_DEV  VIDEO_V4L2
 + select VIDEOBUF2_DMA_CONTIG
 + select V4L2_MEM2MEM_DEV
 + ---help---
 +   This is a V4L2 driver for the Renesas JPEG Processing Unit.
 +
 +   To compile this driver as a module, choose M here: the module
 +   will be called jpu.
 +
  config VIDEO_TI_VPE
   tristate TI VPE (Video Processing Engine) driver
   depends on VIDEO_DEV  VIDEO_V4L2  SOC_DRA7XX diff --git
 a/drivers/media/platform/Makefile b/drivers/media/platform/Makefile
 index e5269da..e438534 100644
 --- a/drivers/media/platform/Makefile
 +++ b/drivers/media/platform/Makefile
 @@ -47,6 +47,8 @@ obj-$(CONFIG_SOC_CAMERA)+= soc_camera/
 
  obj-$(CONFIG_VIDEO_RENESAS_VSP1) += vsp1/
 
 +obj-$(CONFIG_VIDEO_RENESAS_JPU)  += jpu.o
 +
  obj-y+= davinci/
 
  obj-$(CONFIG_ARCH_OMAP)  += omap/
 diff --git a/drivers/media/platform/jpu.c
 b/drivers/media/platform/jpu.c new file mode 100644 index
 000..da70491
 --- /dev/null
 +++ b/drivers/media/platform/jpu.c
 @@ -0,0 +1,1628 @@
 +/*
 + * Author: Mikhail Ulyanov  sou...@cogentembedded.com
 + * Copyright (C) 2014 Cogent Embedded, Inc.
 + * Copyright (C) 2014 Renesas Electronics Corporation
 + *
 + * This is based on the drivers/media/platform/s5p-jpu driver by
 + * Andrzej Pietrasiewicz and Jacek Anaszewski.
 + *
 + * This program is free software; you can redistribute it and/or
 modify
 + * it under the terms of the GNU General Public License version 2 as
 + * published by the Free Software Foundation.
 + */
 +
 +#include linux/clk.h
 +#include linux/err.h
 +#include linux/gfp.h
 +#include linux/interrupt.h
 +#include linux/io.h
 +#include linux/kernel.h
 +#include linux/module.h
 +#include linux/of.h
 +#include linux/of_device.h
 +#include linux/platform_device.h
 +#include linux/slab.h
 +#include linux/spinlock.h
 +#include linux/string.h
 +#include linux/videodev2.h
 +#include media/v4l2-ctrls.h
 +#include media/v4l2-device.h
 +#include media/v4l2-event.h
 +#include media/v4l2-fh.h
 +#include media/v4l2-mem2mem.h
 +#include media/v4l2-ioctl.h
 +#include media/videobuf2-core.h
 +#include media/videobuf2-dma-contig.h
 +
 +
 +#define JPU_M2M_NAME jpu
 +
 +#define JPU_WIDTH_MIN16
 +#define JPU_HEIGHT_MIN   16
 +#define JPU_WIDTH_MAX4096
 +#define JPU_HEIGHT_MAX   4096
 +#define JPU_DEFAULT_WIDTH640
 +#define JPU_DEFAULT_HEIGHT   480
 +
 +#define JPU_ENCODE   0
 +#define JPU_DECODE   1
 +
 +/* Flags that indicate a format can be used for capture/output */
 +#define JPU_FMT_TYPE_OUTPUT  0
 +#define JPU_FMT_TYPE_CAPTURE 1
 +#define JPU_ENC_CAPTURE  (1  0)
 +#define JPU_ENC_OUTPUT   (1  1)
 +#define JPU_DEC_CAPTURE  (1  2)
 +#define JPU_DEC_OUTPUT   (1  3)

The BIT macro could be used here.

 +
 +/*
 + * JPEG registers and bits
 + */
 +
 +/* JPEG code mode register */
 +#define JCMOD0x00
 +#define JCMOD_SOI_DISABLE(1  8)
 +#define JCMOD_SOI_ENABLE (0  8)
 +#define JCMOD_PCTR   (1  7)
 +#define JCMOD_MSKIP_DISABLE  (0  5)
 +#define JCMOD_MSKIP_ENABLE   (1  5)
 +#define JCMOD_DSP_ENC(0  3)
 +#define JCMOD_DSP_DEC(1  3)
 +#define JCMOD_REDU   (7  0)
 +#define JCMOD_REDU_422   (1  0)
 +#define JCMOD_REDU_420   (2  0)
 +
 +/* JPEG code command register */
 +#define JCCMD0x04
 +#define JCCMD_SRST   (1  12)
 +#define JCCMD_BRST   (1  7)
 +#define JCCMD_JEND   (1  2)
 +#define JCCMD_JSRT   (1  0)
 +
 +/* JPEG code 

RE: [PATCH] [media] s5p-mfc: Use decode status instead of display status on MFCv5

2014-09-23 Thread Kamil Debski
Hi Sjoerd,

 From: linux-media-ow...@vger.kernel.org [mailto:linux-media-
 ow...@vger.kernel.org] On Behalf Of Sjoerd Simons
 Sent: Monday, September 22, 2014 2:52 PM
 To: Kyungmin Park; Kamil Debski; Arun Kumar K
 Cc: Mauro Carvalho Chehab; linux-arm-ker...@lists.infradead.org; linux-
 me...@vger.kernel.org; linux-ker...@vger.kernel.org; linux-samsung-
 s...@vger.kernel.org; Daniel Drake; Sjoerd Simons
 Subject: [PATCH] [media] s5p-mfc: Use decode status instead of display
 status on MFCv5
 
 Commit 90c0ae50097 changed how the frame_type of a decoded frame
 gets determined, by switching from the get_dec_frame_type to
 get_disp_frame_type operation. Unfortunately it seems that on MFC v5
 the
 result of get_disp_frame_type is always 0 (no display) when decoding
 (tested with H264), resulting in no frame ever being output from the
 decoder.

Could you tell me which firmware version do you use (date)?

Best wishes,
-- 
Kamil Debski
Samsung RD Institute Poland
 
 This patch reverts MFC v5 to the previous behaviour while keeping the
 new behaviour for v6 and up.
 
 Signed-off-by: Sjoerd Simons sjoerd.sim...@collabora.co.uk
 ---
  drivers/media/platform/s5p-mfc/s5p_mfc.c | 7 ++-
  1 file changed, 6 insertions(+), 1 deletion(-)
 
 diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc.c
 b/drivers/media/platform/s5p-mfc/s5p_mfc.c
 index d35b041..27ca9d0 100644
 --- a/drivers/media/platform/s5p-mfc/s5p_mfc.c
 +++ b/drivers/media/platform/s5p-mfc/s5p_mfc.c
 @@ -264,7 +264,12 @@ static void s5p_mfc_handle_frame_new(struct
 s5p_mfc_ctx *ctx, unsigned int err)
   unsigned int frame_type;
 
   dspl_y_addr = s5p_mfc_hw_call(dev-mfc_ops, get_dspl_y_adr, dev);
 - frame_type = s5p_mfc_hw_call(dev-mfc_ops, get_disp_frame_type,
 ctx);
 + if (IS_MFCV6_PLUS(dev))
 + frame_type = s5p_mfc_hw_call(dev-mfc_ops,
 + get_disp_frame_type, ctx);
 + else
 + frame_type = s5p_mfc_hw_call(dev-mfc_ops,
 + get_dec_frame_type, dev);
 
   /* If frame is same as previous then skip and do not dequeue */
   if (frame_type == S5P_FIMV_DECODE_FRAME_SKIPPED) {
 --
 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

--
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/6] V4L2: Add Renesas R-Car JPEG codec driver.

2014-09-23 Thread Geert Uytterhoeven
On Tue, Aug 19, 2014 at 2:50 PM, Mikhail Ulyanov
mikhail.ulya...@cogentembedded.com wrote:
 +static void put_short_be(unsigned long *p, u16 v)
 +{
 +   u16 *addr = (u16 *)*p;
 +
 +   *addr = cpu_to_be16(v);
 +   *p += 2;
 +}
 +
 +static void put_word_be(unsigned long *p, u32 v)
 +{
 +   u32 *addr = (u32 *)*p;
 +
 +   *addr = cpu_to_be32(v);
 +   *p += 4;
 +}

Is the address in *p guaranteed to be aligned to 2 resp. 4  bytes?

If not, you can use put_unaligned*().

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say programmer or something like that.
-- Linus Torvalds
--
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/5] drm: add bus_formats and nbus_formats fields to drm_display_info

2014-09-23 Thread Thierry Reding
On Tue, Jul 22, 2014 at 02:23:45PM +0200, Boris BREZILLON wrote:
 Add bus_formats and nbus_formats fields and
 drm_display_info_set_bus_formats helper function to specify the bus
 formats supported by a given display.
 
 This information can be used by display controller drivers to configure
 the output interface appropriately (i.e. RGB565, RGB666 or RGB888 on raw
 RGB or LVDS busses).
 
 Signed-off-by: Boris BREZILLON boris.brezil...@free-electrons.com
 ---
  drivers/gpu/drm/drm_crtc.c | 28 
  include/drm/drm_crtc.h |  8 
  2 files changed, 36 insertions(+)
 
 diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
 index c808a09..50c8395 100644
 --- a/drivers/gpu/drm/drm_crtc.c
 +++ b/drivers/gpu/drm/drm_crtc.c
 @@ -825,6 +825,34 @@ static void drm_mode_remove(struct drm_connector 
 *connector,
   drm_mode_destroy(connector-dev, mode);
  }
  
 +/*
 + * drm_display_info_set_bus_formats - set the supported bus formats
 + * @info: display info to store bus formats in
 + * @fmts: array containing the supported bus formats
 + * @nfmts: the number of entries in the fmts array
 + *
 + * Store the suppported bus formats in display info structure.
 + */
 +int drm_display_info_set_bus_formats(struct drm_display_info *info,
 +  const enum video_bus_format *fmts,
 +  int nfmts)

Can you make nfmts unsigned please?

 +{
 + enum video_bus_format *formats = NULL;
 +
 + if (fmts  nfmts) {
 + formats = kmemdup(fmts, sizeof(*fmts) * nfmts, GFP_KERNEL);
 + if (!formats)
 + return -ENOMEM;
 + }
 +
 + kfree(info-bus_formats);
 + info-bus_formats = formats;
 + info-nbus_formats = formats ? nfmts : 0;

And perhaps check for formats == NULL  nfmts != 0 since that's not a
valid pair of values. Then you can simply assign this directly without
relying on the value of formats.

Also other variable names use num_ as a prefix instead of n, so if
you're going to respin anyway might as well make the names more
consistent.

 +
 + return 0;
 +}
 +EXPORT_SYMBOL(drm_display_info_set_bus_formats);
 +
  /**
   * drm_connector_init - Init a preallocated connector
   * @dev: DRM device
 diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
 index e529b68..957729b 100644
 --- a/include/drm/drm_crtc.h
 +++ b/include/drm/drm_crtc.h
 @@ -31,6 +31,7 @@
  #include linux/idr.h
  #include linux/fb.h
  #include linux/hdmi.h
 +#include linux/video-bus-format.h
  #include drm/drm_mode.h
  #include drm/drm_fourcc.h
  #include drm/drm_modeset_lock.h
 @@ -121,6 +122,9 @@ struct drm_display_info {
   enum subpixel_order subpixel_order;
   u32 color_formats;
  
 + const enum video_bus_format *bus_formats;
 + int nbus_formats;

unsigned int here too, please.

Thierry


pgpsFlpGhOy0x.pgp
Description: PGP signature


Re: [PATCH 5/5] drm: panel: simple-panel: add bus format information for foxlink panel

2014-09-23 Thread Thierry Reding
On Tue, Jul 22, 2014 at 02:23:47PM +0200, Boris BREZILLON wrote:
 Foxlink's fl500wvr00-a0t supports RGB888 format.
 
 Signed-off-by: Boris BREZILLON boris.brezil...@free-electrons.com
 ---
  drivers/gpu/drm/panel/panel-simple.c | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/drivers/gpu/drm/panel/panel-simple.c 
 b/drivers/gpu/drm/panel/panel-simple.c
 index 42fd6d1..f1e49fd 100644
 --- a/drivers/gpu/drm/panel/panel-simple.c
 +++ b/drivers/gpu/drm/panel/panel-simple.c
 @@ -428,6 +428,7 @@ static const struct panel_desc foxlink_fl500wvr00_a0t = {
   .width = 108,
   .height = 65,
   },
 + .bus_format = VIDEO_BUS_FMT_RGB888_1X24,

This is really equivalent to .bpc = 8. Didn't you say you had other
use-cases where .bpc wasn't sufficient?

Thierry


pgpACzaTCYnMu.pgp
Description: PGP signature


Re: [PATCH] [media] s5p-mfc: Use decode status instead of display status on MFCv5

2014-09-23 Thread Sjoerd Simons
Hey Kamil,


On Tue, 2014-09-23 at 15:58 +0200, Kamil Debski wrote:
  Commit 90c0ae50097 changed how the frame_type of a decoded frame
  gets determined, by switching from the get_dec_frame_type to
  get_disp_frame_type operation. Unfortunately it seems that on MFC v5
  the
  result of get_disp_frame_type is always 0 (no display) when decoding
  (tested with H264), resulting in no frame ever being output from the
  decoder.
 
 Could you tell me which firmware version do you use (date)?

I'm using the firmware version as included in
http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/

Unfortunately there is no specific version information included about
the firmware. The commit that added it is fb5cda9c70277f6 dated Nov 28
17:43:06 2012 +0530, so that at least gives some information about the
time-frame.


-- 
Sjoerd Simons sjoerd.sim...@collabora.co.uk
Collabora Ltd.


smime.p7s
Description: S/MIME cryptographic signature


Re: [PATCH 5/5] drm: panel: simple-panel: add bus format information for foxlink panel

2014-09-23 Thread Boris BREZILLON
Hi Thierry,

On Tue, 23 Sep 2014 16:06:13 +0200
Thierry Reding thierry.red...@gmail.com wrote:

 On Tue, Jul 22, 2014 at 02:23:47PM +0200, Boris BREZILLON wrote:
  Foxlink's fl500wvr00-a0t supports RGB888 format.
  
  Signed-off-by: Boris BREZILLON boris.brezil...@free-electrons.com
  ---
   drivers/gpu/drm/panel/panel-simple.c | 1 +
   1 file changed, 1 insertion(+)
  
  diff --git a/drivers/gpu/drm/panel/panel-simple.c 
  b/drivers/gpu/drm/panel/panel-simple.c
  index 42fd6d1..f1e49fd 100644
  --- a/drivers/gpu/drm/panel/panel-simple.c
  +++ b/drivers/gpu/drm/panel/panel-simple.c
  @@ -428,6 +428,7 @@ static const struct panel_desc foxlink_fl500wvr00_a0t = 
  {
  .width = 108,
  .height = 65,
  },
  +   .bus_format = VIDEO_BUS_FMT_RGB888_1X24,
 
 This is really equivalent to .bpc = 8. Didn't you say you had other
 use-cases where .bpc wasn't sufficient?

Yes, the HLCDC support RGB565 where you don't have the same number of
bits for each color (Red and Blue = 5 bits, Green = 6 bits), and thus
can't be encoded in the bpc field.

 
 Thierry



-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.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 3/5] drm: add bus_formats and nbus_formats fields to drm_display_info

2014-09-23 Thread Boris BREZILLON
Hi Thierry,

On Tue, 23 Sep 2014 16:04:40 +0200
Thierry Reding thierry.red...@gmail.com wrote:

 On Tue, Jul 22, 2014 at 02:23:45PM +0200, Boris BREZILLON wrote:
  Add bus_formats and nbus_formats fields and
  drm_display_info_set_bus_formats helper function to specify the bus
  formats supported by a given display.
  
  This information can be used by display controller drivers to configure
  the output interface appropriately (i.e. RGB565, RGB666 or RGB888 on raw
  RGB or LVDS busses).
  
  Signed-off-by: Boris BREZILLON boris.brezil...@free-electrons.com
  ---
   drivers/gpu/drm/drm_crtc.c | 28 
   include/drm/drm_crtc.h |  8 
   2 files changed, 36 insertions(+)
  
  diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
  index c808a09..50c8395 100644
  --- a/drivers/gpu/drm/drm_crtc.c
  +++ b/drivers/gpu/drm/drm_crtc.c
  @@ -825,6 +825,34 @@ static void drm_mode_remove(struct drm_connector 
  *connector,
  drm_mode_destroy(connector-dev, mode);
   }
   
  +/*
  + * drm_display_info_set_bus_formats - set the supported bus formats
  + * @info: display info to store bus formats in
  + * @fmts: array containing the supported bus formats
  + * @nfmts: the number of entries in the fmts array
  + *
  + * Store the suppported bus formats in display info structure.
  + */
  +int drm_display_info_set_bus_formats(struct drm_display_info *info,
  +const enum video_bus_format *fmts,
  +int nfmts)
 
 Can you make nfmts unsigned please?


Sure.

 
  +{
  +   enum video_bus_format *formats = NULL;
  +
  +   if (fmts  nfmts) {
  +   formats = kmemdup(fmts, sizeof(*fmts) * nfmts, GFP_KERNEL);
  +   if (!formats)
  +   return -ENOMEM;
  +   }
  +
  +   kfree(info-bus_formats);
  +   info-bus_formats = formats;
  +   info-nbus_formats = formats ? nfmts : 0;
 
 And perhaps check for formats == NULL  nfmts != 0 since that's not a
 valid pair of values. Then you can simply assign this directly without
 relying on the value of formats.
 
 Also other variable names use num_ as a prefix instead of n, so if
 you're going to respin anyway might as well make the names more
 consistent.

I'll rename the field and variable and add the proper check before
assigning values.

Thanks for your review.

Best Regards,

Boris

-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.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/5] media: v4l2-core changes to use media tuner token api

2014-09-23 Thread Devin Heitmueller
Hello Shuah,

 What about G_INPUT and G_TUNER?  Consider the following use case, which is
 entirely legal in the V4L2 API:

 Did you mean G_INPUT and G_STD here? I didn't see G_TUNER mentioned
 below in the use-case.

It can be either ENUM_INPUT or G_TUNER.  Both return status
information that requires communication with the video decoder chip
and/or tuner.  It's probably worth mentioning that ENUMINPUT isn't
like the other ENUM_ calls in that it doesn't return a static list
without  talking to the driver - it contains a field (called .status)
which actually needs to talk to the hardware in order to populate it.

 1.  Program opens /dev/video0
 2.  Program calls G_INPUT/G_STD and sees that the appropriate input and
 standard are already set, since all devices have a default input at
 initialization
 3.  Program never calls S_INPUT, S_STD, or S_TUNER
 4.  Program goes into a loop calling ENUM_INPUT, waiting until it returns
 the input as having signal lock
 5.  When signal lock is seen, program calls STREAMON.

 I am missing vb2 streamon change to hold the tuner in this patch set.
 Without that change vb2 work isn't complete. Unfortunately I don't
 have hybrid hardware that uses a vb2 driver.

I don't think you quite understood my concern.  The concern is that in
the use case above I'm actively using the tuner *before*
VIDIOC_STREAMON is called.  Hence from a locking standpoint you
probably don't want to allow the DVB device to take control of the
tuner.


 In the above case, you would be actively using the au8522 video decoder but
 not holding the lock, so thr DVB device can be opened and screw everything
 up.  Likewise if the DVB device were in use and such a program were run, it
 wouls break.


 I think this use-case will be covered with changes to vb2 streamon
 to check and hold tuner. I am thinking it might not be necessary to
 change g_tuner, g_std, g_input and enum_input at v4l2-core level.
 Does that sounds right??

The more I think about it, the less confident I am that you actually
can take a fine-grained locking approach without adding additional
ioctls to make it explicit.  When is the tuner unlocked?  Is it when
the filehandle is closed?  If so, then the the following script would
behave in an unexpected manner:

#!/bin/sh

while [ 1 ]; do
  v4l2-ctl -n
  # Some code to parse the output and see if the status field for
current input shows no signal
  # If status shows as locked break
done
v4l2-ctl --stream-mmap=500 --stream-to=/tmp/foo.bin

In the above case I'm actively using the tuner but not holding the
lock most of the time, so a separate process can grab the DVB device
between calls to v4l2-ctl -n.

However if you're keeping the device locked until STREAMOFF, then
you'll break all sorts of applications which might just close the
filehandle without calling STREAMOFF, and hence you'll have cases
where the tuner is left locked in analog mode *forever*, preventing
apps from using it in digital mode.

Without adding a new ioctl to lock/unlock the analog side of the
device, there is no real way to deal with this perfectly legal use
case.  The downside of that of course is that applications would have
to be modified in order for the locking to be used, and the default
would have to be to not do locking in order to preserve backward
compatibility with existing applications.

What other ioctls have we not thought of?  I think there is an
argument to be made that we're being too aggressive in trying to
control the locking based on the ioctls called.  It might make sense
to simplify the approach to lock on when the device is opened, and
unlock when closed.  This avoids the complexity of trying to figure
out *which* ioctls we need to set the lock on (which likely varies on
a per device basis anyway), at the cost of not allowing the device to
be used when something has the filehandle opened for the other side of
the device (the behavior of which is currently undefined in the spec).
I know there are concerns that some apps might leave the FD open even
when done using it, but that seems like a less likely case than
properly handling fine-grained locking (causing unexpected behavior
for the applications that don't expect -EBUSY to be returned after the
device has been successfully opened).

We can always start with coarse locking on open/close, and do finer
grained locking down the road if needed - or simply change the
currently undefined behavior in the spec to say that you have to close
the device handle before attempting to open the other side of the
device.

On a related note, you should be testing with MythTV - none of the
applications you are currently testing with support both analog *and*
digital, so you are not seeing all the race conditions that can occur
when you close one side of the device and then *immediately* open the
other side.  In particular, there is a known race that occurs when
closing the DVB device and then opening the V4L device, because the
DVB frontend shuts down the tuner 

[PATCH] [media] saa7134: Fix compilation breakage when go7007 is not selected

2014-09-23 Thread Mauro Carvalho Chehab
All error/warnings:

   drivers/built-in.o: In function `saa7134_go7007_fini':
 saa7134-go7007.c:(.text+0x3b628b): undefined reference to `go7007_snd_remove'
   drivers/built-in.o: In function `saa7134_go7007_interface_reset':
 saa7134-go7007.c:(.text+0x3b659a): undefined reference to 
 `go7007_read_interrupt'
   drivers/built-in.o: In function `saa7134_go7007_init':
 saa7134-go7007.c:(.text+0x3b65fa): undefined reference to `go7007_alloc'
 saa7134-go7007.c:(.text+0x3b66ed): undefined reference to 
 `go7007_boot_encoder'
 saa7134-go7007.c:(.text+0x3b66fe): undefined reference to 
 `go7007_register_encoder'
   drivers/built-in.o: In function `saa7134_go7007_irq_ts_done':
 saa7134-go7007.c:(.text+0x3b6c2a): undefined reference to 
 `go7007_parse_video_stream'
 saa7134-go7007.c:(.text+0x3b6c86): undefined reference to 
 `go7007_parse_video_stream'

Whis happens when VIDEO_GO7007 is not selected, but saa7134
is selected.

Reported-by: kbuild test robot fengguang...@intel.com
Signed-off-by: Mauro Carvalho Chehab mche...@osg.samsung.com

---

This is not as smart as it should be, as, for now, to select go7007,
USB needs to be selected, with is weird for a PCI device.

diff --git a/drivers/media/pci/saa7134/Kconfig 
b/drivers/media/pci/saa7134/Kconfig
index 18ae75546302..a10b5fd1a226 100644
--- a/drivers/media/pci/saa7134/Kconfig
+++ b/drivers/media/pci/saa7134/Kconfig
@@ -63,3 +63,10 @@ config VIDEO_SAA7134_DVB
 
  To compile this driver as a module, choose M here: the
  module will be called saa7134-dvb.
+
+config VIDEO_SAA7134_GO7007
+   tristate go7007 support for saa7134 based TV cards
+   depends on VIDEO_SAA7134
+   depends on VIDEO_GO7007
+   ---help---
+ Enables saa7134 driver supports for boards with go7007.
diff --git a/drivers/media/pci/saa7134/Makefile 
b/drivers/media/pci/saa7134/Makefile
index b55bd9afda11..09c43da67588 100644
--- a/drivers/media/pci/saa7134/Makefile
+++ b/drivers/media/pci/saa7134/Makefile
@@ -4,7 +4,8 @@ saa7134-y +=saa7134-ts.o saa7134-tvaudio.o saa7134-vbi.o
 saa7134-y +=   saa7134-video.o
 saa7134-$(CONFIG_VIDEO_SAA7134_RC) += saa7134-input.o
 
-obj-$(CONFIG_VIDEO_SAA7134) +=  saa7134.o saa7134-empress.o saa7134-go7007.o
+obj-$(CONFIG_VIDEO_SAA7134) +=  saa7134.o saa7134-empress.o
+obj-$(CONFIG_VIDEO_SAA7134_GO7007) += saa7134-go7007.o
 
 obj-$(CONFIG_VIDEO_SAA7134_ALSA) += saa7134-alsa.o
 
-- 
1.9.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 1/5] video: move mediabus format definition to a more standard place

2014-09-23 Thread Boris BREZILLON
Hi Guennadi,

On Tue, 23 Sep 2014 14:33:20 +0200 (CEST)
Guennadi Liakhovetski g.liakhovet...@gmx.de wrote:

 Hi Boris,
 
 On Tue, 22 Jul 2014, Boris BREZILLON wrote:
 
  Rename mediabus formats and move the enum into a separate header file so
  that it can be used by DRM/KMS subsystem without any reference to the V4L2
  subsystem.
  
  Old V4L2_MBUS_FMT_ definitions are now macros that points to VIDEO_BUS_FMT_
  definitions.
  
  Signed-off-by: Boris BREZILLON boris.brezil...@free-electrons.com
 
 In principle I find this a good idea, certainly it's good to reuse code. 
 Just wondering, wouldn't it be better instead of adding those defines to 
 define a macro like
 
 #define VIDEO_BUS_TO_MBUS(x)  V4L2_MBUS_ ## x = VIDEO_BUS_ ## x
 
 and then do
 
 enum v4l2_mbus_pixelcode {
   VIDEO_BUS_TO_MBUS(FIXED),
   VIDEO_BUS_TO_MBUS(RGB444_2X8_PADHI_BE),
   ...
 };
 
 ? I'm not very strong on this, I just think an enum is nicer than a bunch 
 of defines and this way copy-paste errors are less likely, but if you or 
 others strongly disagree - I won't insist :)

I'd say it might be a good solution if we enforce new users (including
user space users) to use video_bus_format enum values instead of
v4l2_mbus_pixelcode ones. But if we keep adding new values to this enum
I'd say this approach is less readable than having the full names
(V4L2_MBUS_XXX) expressed, because users will still have to use those
full names.

Anyway, I can still replace this macro list by an enum:

enum v4l2_mbus_pixelcode {
V4L2_MBUS_FIXED = VIDEO_BUS_FIXED,
V4L2_MBUS_RGB444_2X8_PADHI_BE = VIDEO_BUS_RGB444_2X8_PADHI_BE,
...
};

Best Regards,

Boris

-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.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


[PATCH v2] [media] saa7134: Fix compilation breakage when go7007 is not selected

2014-09-23 Thread Mauro Carvalho Chehab
All error/warnings:

   drivers/built-in.o: In function `saa7134_go7007_fini':
 saa7134-go7007.c:(.text+0x3b628b): undefined reference to `go7007_snd_remove'
   drivers/built-in.o: In function `saa7134_go7007_interface_reset':
 saa7134-go7007.c:(.text+0x3b659a): undefined reference to 
 `go7007_read_interrupt'
   drivers/built-in.o: In function `saa7134_go7007_init':
 saa7134-go7007.c:(.text+0x3b65fa): undefined reference to `go7007_alloc'
 saa7134-go7007.c:(.text+0x3b66ed): undefined reference to 
 `go7007_boot_encoder'
 saa7134-go7007.c:(.text+0x3b66fe): undefined reference to 
 `go7007_register_encoder'
   drivers/built-in.o: In function `saa7134_go7007_irq_ts_done':
 saa7134-go7007.c:(.text+0x3b6c2a): undefined reference to 
 `go7007_parse_video_stream'
 saa7134-go7007.c:(.text+0x3b6c86): undefined reference to 
 `go7007_parse_video_stream'

This happens when:
 - VIDEO_SAA7134 is either 'm' or 'y'
 - VIDEO_GO7007 is not selected.

Reported-by: kbuild test robot fengguang...@intel.com
Signed-off-by: Mauro Carvalho Chehab mche...@osg.samsung.com
---
 drivers/media/pci/saa7134/Kconfig  | 8 
 drivers/media/pci/saa7134/Makefile | 3 ++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/media/pci/saa7134/Kconfig 
b/drivers/media/pci/saa7134/Kconfig
index 18ae75546302..b44e0d70907e 100644
--- a/drivers/media/pci/saa7134/Kconfig
+++ b/drivers/media/pci/saa7134/Kconfig
@@ -63,3 +63,11 @@ config VIDEO_SAA7134_DVB
 
  To compile this driver as a module, choose M here: the
  module will be called saa7134-dvb.
+
+config VIDEO_SAA7134_GO7007
+   tristate go7007 support for saa7134 based TV cards
+   depends on VIDEO_SAA7134
+   depends on VIDEO_GO7007
+   ---help---
+ Enables saa7134 driver support for boards with go7007
+ MPEG encoder (WIS Voyager or compatible).
diff --git a/drivers/media/pci/saa7134/Makefile 
b/drivers/media/pci/saa7134/Makefile
index b55bd9afda11..09c43da67588 100644
--- a/drivers/media/pci/saa7134/Makefile
+++ b/drivers/media/pci/saa7134/Makefile
@@ -4,7 +4,8 @@ saa7134-y +=saa7134-ts.o saa7134-tvaudio.o saa7134-vbi.o
 saa7134-y +=   saa7134-video.o
 saa7134-$(CONFIG_VIDEO_SAA7134_RC) += saa7134-input.o
 
-obj-$(CONFIG_VIDEO_SAA7134) +=  saa7134.o saa7134-empress.o saa7134-go7007.o
+obj-$(CONFIG_VIDEO_SAA7134) +=  saa7134.o saa7134-empress.o
+obj-$(CONFIG_VIDEO_SAA7134_GO7007) += saa7134-go7007.o
 
 obj-$(CONFIG_VIDEO_SAA7134_ALSA) += saa7134-alsa.o
 
-- 
1.9.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


randconfig build error with next-20140923, in drivers/media/mmc/siano/smssdio.c

2014-09-23 Thread Jim Davis
Building with the attached random configuration file,

drivers/built-in.o: In function `smssdio_remove':
smssdio.c:(.text+0x14751c): undefined reference to `smscore_putbuffer'
smssdio.c:(.text+0x147526): undefined reference to `smscore_unregister_device'
drivers/built-in.o: In function `smssdio_interrupt':
smssdio.c:(.text+0x1475aa): undefined reference to `smscore_getbuffer'
smssdio.c:(.text+0x147695): undefined reference to `smscore_putbuffer'
smssdio.c:(.text+0x1476f3): undefined reference to `smscore_putbuffer'
smssdio.c:(.text+0x14772a): undefined reference to `smsendian_handle_rx_message'
smssdio.c:(.text+0x147737): undefined reference to `smscore_onresponse'
drivers/built-in.o: In function `smssdio_sendrequest':
smssdio.c:(.text+0x14776c): undefined reference to `smsendian_handle_tx_message'
drivers/built-in.o: In function `smssdio_probe':
smssdio.c:(.text+0x14786c): undefined reference to `sms_get_board'
smssdio.c:(.text+0x14788a): undefined reference to `smscore_register_device'
smssdio.c:(.text+0x1478a1): undefined reference to `smscore_set_board_id'
smssdio.c:(.text+0x1478fa): undefined reference to `smscore_start_device'
smssdio.c:(.text+0x14792d): undefined reference to `smscore_unregister_device'
make: *** [vmlinux] Error 1
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 3.17.0-rc6 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT=elf64-x86-64
CONFIG_ARCH_DEFCONFIG=arch/x86/configs/x86_64_defconfig
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
CONFIG_ZONE_DMA32=y
CONFIG_AUDIT_ARCH=y
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_ARCH_HWEIGHT_CFLAGS=-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx 
-fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 
-fcall-saved-r11
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_DEFCONFIG_LIST=/lib/modules/$UNAME_RELEASE/.config
CONFIG_CONSTRUCTORS=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y

#
# General setup
#
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=
CONFIG_COMPILE_TEST=y
CONFIG_LOCALVERSION=
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
CONFIG_DEFAULT_HOSTNAME=(none)
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_POSIX_MQUEUE is not set
CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_FHANDLE=y
# CONFIG_USELIB is not set
CONFIG_AUDIT=y
CONFIG_HAVE_ARCH_AUDITSYSCALL=y
CONFIG_AUDITSYSCALL=y
CONFIG_AUDIT_WATCH=y
CONFIG_AUDIT_TREE=y

#
# IRQ subsystem
#
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ=y
CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_DEBUG=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CMOS_UPDATE=y

#
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y
CONFIG_HZ_PERIODIC=y
# CONFIG_NO_HZ_IDLE is not set
# CONFIG_NO_HZ is not set
CONFIG_HIGH_RES_TIMERS=y

#
# CPU/Task time and stats accounting
#
CONFIG_TICK_CPU_ACCOUNTING=y
# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
# CONFIG_IRQ_TIME_ACCOUNTING is not set
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
# CONFIG_TASKSTATS is not set

#
# RCU Subsystem
#
CONFIG_TINY_RCU=y
# CONFIG_PREEMPT_RCU is not set
# CONFIG_TASKS_RCU is not set
CONFIG_RCU_STALL_COMMON=y
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_BUILD_BIN2C=y
CONFIG_IKCONFIG=m
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=17
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
CONFIG_ARCH_SUPPORTS_INT128=y
CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is not set
CONFIG_CGROUP_FREEZER=y
# CONFIG_CGROUP_DEVICE is not set
CONFIG_CPUSETS=y
# CONFIG_PROC_PID_CPUSET is not set
# CONFIG_CGROUP_CPUACCT is not set
CONFIG_RESOURCE_COUNTERS=y
# CONFIG_MEMCG is not set
# CONFIG_CGROUP_PERF is not set
# CONFIG_CGROUP_SCHED is not set
CONFIG_BLK_CGROUP=y
# 

[PATCH] si2168: add FE_CAN_MULTISTREAM into caps

2014-09-23 Thread Olli Salonen
PLP selection was implemented for Si2168 last month (patchwork 25387). However, 
FE_CAN_MULTISTREAM was not added to dvb_frontend_ops of si2168. This patch adds 
FE_CAN_MULTISTREAM, which indicates that multiple PLP are supported.

Signed-off-by: Olli Salonen olli.salo...@iki.fi
---
 drivers/media/dvb-frontends/si2168.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/media/dvb-frontends/si2168.c 
b/drivers/media/dvb-frontends/si2168.c
index 55a4212..c7e7446 100644
--- a/drivers/media/dvb-frontends/si2168.c
+++ b/drivers/media/dvb-frontends/si2168.c
@@ -598,7 +598,8 @@ static const struct dvb_frontend_ops si2168_ops = {
FE_CAN_GUARD_INTERVAL_AUTO |
FE_CAN_HIERARCHY_AUTO |
FE_CAN_MUTE_TS |
-   FE_CAN_2G_MODULATION
+   FE_CAN_2G_MODULATION |
+   FE_CAN_MULTISTREAM
},
 
.get_tune_settings = si2168_get_tune_settings,
-- 
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


Re: randconfig build error with next-20140923, in drivers/media/mmc/siano/smssdio.c

2014-09-23 Thread Paul Bolle
On Tue, 2014-09-23 at 09:38 -0700, Jim Davis wrote:
 Building with the attached random configuration file,
 
 drivers/built-in.o: In function `smssdio_remove':
 smssdio.c:(.text+0x14751c): undefined reference to `smscore_putbuffer'
 smssdio.c:(.text+0x147526): undefined reference to `smscore_unregister_device'
 drivers/built-in.o: In function `smssdio_interrupt':
 smssdio.c:(.text+0x1475aa): undefined reference to `smscore_getbuffer'
 smssdio.c:(.text+0x147695): undefined reference to `smscore_putbuffer'
 smssdio.c:(.text+0x1476f3): undefined reference to `smscore_putbuffer'
 smssdio.c:(.text+0x14772a): undefined reference to 
 `smsendian_handle_rx_message'
 smssdio.c:(.text+0x147737): undefined reference to `smscore_onresponse'
 drivers/built-in.o: In function `smssdio_sendrequest':
 smssdio.c:(.text+0x14776c): undefined reference to 
 `smsendian_handle_tx_message'
 drivers/built-in.o: In function `smssdio_probe':
 smssdio.c:(.text+0x14786c): undefined reference to `sms_get_board'
 smssdio.c:(.text+0x14788a): undefined reference to `smscore_register_device'
 smssdio.c:(.text+0x1478a1): undefined reference to `smscore_set_board_id'
 smssdio.c:(.text+0x1478fa): undefined reference to `smscore_start_device'
 smssdio.c:(.text+0x14792d): undefined reference to `smscore_unregister_device'
 make: *** [vmlinux] Error 1

#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 3.17.0-rc6 Kernel Configuration
#
[...]
CONFIG_SMS_SDIO_DRV=y
[...]
CONFIG_SMS_SIANO_MDTV=m
[...]

Should SMS_SDIO_DRV depend on SMS_SIANO_MDTV?


Paul Bolle

--
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: [STLinux Kernel] [PATCH 1/3] media: st-rc: move to using reset_control_get_optional

2014-09-23 Thread Peter Griffin
Hi Srini,

On Mon, 22 Sep 2014, Srinivas Kandagatla wrote:

 This patch fixes a compilation error while building with the
 random kernel configuration.
 
 drivers/media/rc/st_rc.c: In function 'st_rc_probe':
 drivers/media/rc/st_rc.c:281:2: error: implicit declaration of
 function 'reset_control_get' [-Werror=implicit-function-declaration]
   rc_dev-rstc = reset_control_get(dev, NULL);
 
 drivers/media/rc/st_rc.c:281:15: warning: assignment makes pointer
 from integer without a cast [enabled by default]
   rc_dev-rstc = reset_control_get(dev, NULL);

Is managing the reset line actually optional though? I can't test atm as I 
don't have
access to my board, but quite often if the IP's aren't taken out of reset reads 
/ writes
to the perhpiheral will hang the SoC.

If managing the reset line isn't optional then I think the correct fix is to add
depends on RESET_CONTROLLER in the kconfig.

This will then do the right thing for randconfig builds as well.

regards,

Peter.
--
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: [STLinux Kernel] [PATCH 3/3] media: st-rc: Remove .owner field for driver

2014-09-23 Thread Peter Griffin
On Mon, 22 Sep 2014, Srinivas Kandagatla wrote:

 There is no need to init .owner field.
 
 Based on the patch from Peter Griffin peter.grif...@linaro.org
 mmc: remove .owner field for drivers using module_platform_driver
 
 This patch removes the superflous .owner field for drivers which
 use the module_platform_driver API, as this is overriden in
 platform_driver_register anyway.
 
 Signed-off-by: Srinivas Kandagatla srinivas.kandaga...@linaro.org

Acked by: 
Acked-by: Peter Griffin peter.grif...@linaro.org
--
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/4] em28xx: get rid of structs em28xx_ac97_mode and em28xx_audio_mode

2014-09-23 Thread Frank Schäfer

Am 23.09.2014 um 02:02 schrieb Mauro Carvalho Chehab:
 Em Sat, 13 Sep 2014 10:52:22 +0200
 Frank Schäfer fschaefer@googlemail.com escreveu:

 Now that we have enum em28xx_int_audio (none/i2s/ac97), it is no longer
 necessary to check dev-audio_mode.ac97 to determine the type of internal 
 audio connection.
 There is also no need to save the type of the detected AC97 chip.
 Removing the AC97 chip is a bad idea, as the mux of each AC97 device
 is different.

 I don't remember anymore what device comes with the sigmatel chips,
 but it does have a different mixer than em202. The logic to set it
 different is not there basically for two reasons:

 1) I don't have the device with sigmatel (I think someone borrowed it to me
 at that time, and for a very limited period of time);

 2) there's a hole ac97 support at /sound. The idea is to re-use it instead
 of reinventing the wheel, but that requires time and a few different AC97
 setups.
1.) WHICH devices to you think need AC97 chip type specific code ?
2.) WHEN are you going to implement it ?

It's just a big dead ugly chunk of code, which causes confusion.
So please, let's simplify the code.
If we really need to distinguish between AC97 chips one day, we can
reintroduce it again.
Please note that I'm not removing the AC97 chip type detection, so we
are not loosing any information that might be useful in the future.

 Btw, there are other em28xx devices with other non-em202 AC97 chips out
 there, with different settings (and even different sampling rates).
 Those AC97 devices are generally found at the grabber devices.
I know. The VAD Laplace webcam is one of them. And the current audio
code is broken for it.
But the reason for that isn't that we do not distinguish enough between
AC97 chips.
The reason for that is, that we touch AC97 _at_all_ for USB audio class
devices, which is evil, unnecessary and therefore also not done by the
Windows driver.
The situation is of course different for devices with usb vendor class
audio (em28xx-alsa).

But that's a separate issue which has nothing to do with this patch... ;-)

Regards,
Frank


 Regards,
 Mauro

 So replce the remaining checks of dev-audio_mode.ac97 with equivalent checks
 of dev-int_audio_type and get rid of struct em28xx_ac97_mode and finally the
 whole struct em28xx_audio_mode.

 Signed-off-by: Frank Schäfer fschaefer@googlemail.com
 ---
  drivers/media/usb/em28xx/em28xx-audio.c |  2 +-
  drivers/media/usb/em28xx/em28xx-core.c  | 36 
 ++---
  drivers/media/usb/em28xx/em28xx-video.c |  2 +-
  drivers/media/usb/em28xx/em28xx.h   | 13 
  4 files changed, 8 insertions(+), 45 deletions(-)

 diff --git a/drivers/media/usb/em28xx/em28xx-audio.c 
 b/drivers/media/usb/em28xx/em28xx-audio.c
 index 90c7a83..c3a4224 100644
 --- a/drivers/media/usb/em28xx/em28xx-audio.c
 +++ b/drivers/media/usb/em28xx/em28xx-audio.c
 @@ -933,7 +933,7 @@ static int em28xx_audio_init(struct em28xx *dev)
  
  INIT_WORK(adev-wq_trigger, audio_trigger);
  
 -if (dev-audio_mode.ac97 != EM28XX_NO_AC97) {
 +if (dev-int_audio_type == EM28XX_INT_AUDIO_AC97) {
  em28xx_cvol_new(card, dev, Video, AC97_VIDEO);
  em28xx_cvol_new(card, dev, Line In, AC97_LINE);
  em28xx_cvol_new(card, dev, Phone, AC97_PHONE);
 diff --git a/drivers/media/usb/em28xx/em28xx-core.c 
 b/drivers/media/usb/em28xx/em28xx-core.c
 index ed83e4e..7464e70 100644
 --- a/drivers/media/usb/em28xx/em28xx-core.c
 +++ b/drivers/media/usb/em28xx/em28xx-core.c
 @@ -405,12 +405,8 @@ static int em28xx_set_audio_source(struct em28xx *dev)
  return ret;
  msleep(5);
  
 -switch (dev-audio_mode.ac97) {
 -case EM28XX_NO_AC97:
 -break;
 -default:
 +if (dev-int_audio_type == EM28XX_INT_AUDIO_AC97)
  ret = set_ac97_input(dev);
 -}
  
  return ret;
  }
 @@ -439,7 +435,7 @@ int em28xx_audio_analog_set(struct em28xx *dev)
  /* It is assumed that all devices use master volume for output.
 It would be possible to use also line output.
   */
 -if (dev-audio_mode.ac97 != EM28XX_NO_AC97) {
 +if (dev-int_audio_type == EM28XX_INT_AUDIO_AC97) {
  /* Mute all outputs */
  for (i = 0; i  ARRAY_SIZE(outputs); i++) {
  ret = em28xx_write_ac97(dev, outputs[i].reg, 0x8000);
 @@ -462,7 +458,7 @@ int em28xx_audio_analog_set(struct em28xx *dev)
  ret = em28xx_set_audio_source(dev);
  
  /* Sets volume */
 -if (dev-audio_mode.ac97 != EM28XX_NO_AC97) {
 +if (dev-int_audio_type == EM28XX_INT_AUDIO_AC97) {
  int vol;
  
  em28xx_write_ac97(dev, AC97_POWERDOWN, 0x4200);
 @@ -544,14 +540,11 @@ int em28xx_audio_setup(struct em28xx *dev)
  em28xx_info(I2S Audio (%d sample rate(s))\n,
 i2s_samplerates);
  /* Skip the code that does AC97 vendor detection */
 -dev-audio_mode.ac97 = 

Re: [linuxtv-media:devel-3.17-rc6 491/499] drivers/media/usb/em28xx/em28xx.h:787:2: warning: 'vid' may be used uninitialized in this function

2014-09-23 Thread Frank Schäfer

Am 23.09.2014 um 04:27 schrieb kbuild test robot:
 tree:   git://linuxtv.org/media_tree.git devel-3.17-rc6
 head:   7f8de65b0dc84c19e79d7a642a5655524c57035c
 commit: f5ac7a471e156f997833f94bad2228e57122c227 [491/499] [media] em28xx: 
 remove some unnecessary fields from struct em28xx_audio_mode
 config: i386-randconfig-r0-0923 (attached as .config)
 reproduce:
   git checkout f5ac7a471e156f997833f94bad2228e57122c227
   # save the attached .config to linux build tree
   make ARCH=i386 

 Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
 http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings

 All warnings:

In file included from drivers/media/usb/em28xx/em28xx-core.c:35:0:
drivers/media/usb/em28xx/em28xx-core.c: In function 'em28xx_audio_setup':
 drivers/media/usb/em28xx/em28xx.h:787:2: warning: 'vid' may be used 
 uninitialized in this function [-Wmaybe-uninitialized]
  printk(KERN_INFO %s: fmt,\
  ^
drivers/media/usb/em28xx/em28xx-core.c:507:6: note: 'vid' was declared here
  u32 vid;
  ^
This is a false warning.
Applying https://patchwork.linuxtv.org/patch/25918/ makes it disappear.

Regards,
Frank


 vim +/vid +787 drivers/media/usb/em28xx/em28xx.h

 47677e51 drivers/media/usb/em28xx/em28xx.h   Mauro Carvalho Chehab 2014-03-05 
  771  void em28xx_free_device(struct kref *ref);
 c8793b03 drivers/media/video/em28xx/em28xx.h Mauro Carvalho Chehab 2008-01-13 
  772  
 855ff38e drivers/media/usb/em28xx/em28xx.h   Frank Schaefer2013-03-27 
  773  /* Provided by em28xx-camera.c */
 855ff38e drivers/media/usb/em28xx/em28xx.h   Frank Schaefer2013-03-27 
  774  int em28xx_detect_sensor(struct em28xx *dev);
 855ff38e drivers/media/usb/em28xx/em28xx.h   Frank Schaefer2013-03-27 
  775  int em28xx_init_camera(struct em28xx *dev);
 855ff38e drivers/media/usb/em28xx/em28xx.h   Frank Schaefer2013-03-27 
  776  
 a6c2ba28 drivers/media/video/em28xx/em28xx.h Andrew Morton 2005-11-08 
  777  /* printk macros */
 a6c2ba28 drivers/media/video/em28xx/em28xx.h Andrew Morton 2005-11-08 
  778  
 3acf2809 drivers/media/video/em28xx/em28xx.h Mauro Carvalho Chehab 2005-11-08 
  779  #define em28xx_err(fmt, arg...) do {\
 a6c2ba28 drivers/media/video/em28xx/em28xx.h Andrew Morton 2005-11-08 
  780printk(KERN_ERR fmt , ##arg); } while (0)
 a6c2ba28 drivers/media/video/em28xx/em28xx.h Andrew Morton 2005-11-08 
  781  
 3acf2809 drivers/media/video/em28xx/em28xx.h Mauro Carvalho Chehab 2005-11-08 
  782  #define em28xx_errdev(fmt, arg...) do {\
 a6c2ba28 drivers/media/video/em28xx/em28xx.h Andrew Morton 2005-11-08 
  783printk(KERN_ERR %s: fmt,\
 a6c2ba28 drivers/media/video/em28xx/em28xx.h Andrew Morton 2005-11-08 
  784dev-name , ##arg); } while (0)
 a6c2ba28 drivers/media/video/em28xx/em28xx.h Andrew Morton 2005-11-08 
  785  
 3acf2809 drivers/media/video/em28xx/em28xx.h Mauro Carvalho Chehab 2005-11-08 
  786  #define em28xx_info(fmt, arg...) do {\
 a6c2ba28 drivers/media/video/em28xx/em28xx.h Andrew Morton 2005-11-08 
 @787printk(KERN_INFO %s: fmt,\
 a6c2ba28 drivers/media/video/em28xx/em28xx.h Andrew Morton 2005-11-08 
  788dev-name , ##arg); } while (0)
 3acf2809 drivers/media/video/em28xx/em28xx.h Mauro Carvalho Chehab 2005-11-08 
  789  #define em28xx_warn(fmt, arg...) do {\
 a6c2ba28 drivers/media/video/em28xx/em28xx.h Andrew Morton 2005-11-08 
  790printk(KERN_WARNING %s: fmt,\
 a6c2ba28 drivers/media/video/em28xx/em28xx.h Andrew Morton 2005-11-08 
  791dev-name , ##arg); } while (0)
 a6c2ba28 drivers/media/video/em28xx/em28xx.h Andrew Morton 2005-11-08 
  792  
 a6c2ba28 drivers/media/video/em28xx/em28xx.h Andrew Morton 2005-11-08 
  793  #endif

 :: The code at line 787 was first introduced by commit
 :: a6c2ba283565dbc9f055dcb2ecba1971460bb535 [PATCH] v4l: 716: support for 
 em28xx board family

 :: TO: a...@osdl.org a...@osdl.org
 :: CC: Linus Torvalds torva...@g5.osdl.org

 ---
 0-DAY kernel build testing backend  Open Source Technology Center
 http://lists.01.org/mailman/listinfo/kbuild Intel Corporation

--
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/2] [media] saa7134: Remove some casting warnings

2014-09-23 Thread Mauro Carvalho Chehab
Em Tue, 23 Sep 2014 13:08:55 +0200
Hans Verkuil hverk...@xs4all.nl escreveu:

 On 09/23/14 12:59, Mauro Carvalho Chehab wrote:
  drivers/media/pci/saa7134/saa7134-go7007.c:247:17: warning: incorrect type 
  in argument 1 (different base types)
  drivers/media/pci/saa7134/saa7134-go7007.c:247:17:expected unsigned int 
  [unsigned] val
  drivers/media/pci/saa7134/saa7134-go7007.c:247:17:got restricted __le32 
  [usertype] noident
  drivers/media/pci/saa7134/saa7134-go7007.c:252:17: warning: incorrect type 
  in argument 1 (different base types)
  drivers/media/pci/saa7134/saa7134-go7007.c:252:17:expected unsigned int 
  [unsigned] val
  drivers/media/pci/saa7134/saa7134-go7007.c:252:17:got restricted __le32 
  [usertype] noident
  drivers/media/pci/saa7134/saa7134-go7007.c:299:9: warning: incorrect type 
  in argument 1 (different base types)
  drivers/media/pci/saa7134/saa7134-go7007.c:299:9:expected unsigned int 
  [unsigned] val
  drivers/media/pci/saa7134/saa7134-go7007.c:299:9:got restricted __le32 
  [usertype] noident
  drivers/media/pci/saa7134/saa7134-go7007.c:300:9: warning: incorrect type 
  in argument 1 (different base types)
  drivers/media/pci/saa7134/saa7134-go7007.c:300:9:expected unsigned int 
  [unsigned] val
  drivers/media/pci/saa7134/saa7134-go7007.c:300:9:got restricted __le32 
  [usertype] noident
  
  Signed-off-by: Mauro Carvalho Chehab mche...@osg.samsung.com
 
 Nacked-by: Hans Verkuil hans.verk...@cisco.com
 
  
  diff --git a/drivers/media/pci/saa7134/saa7134-go7007.c 
  b/drivers/media/pci/saa7134/saa7134-go7007.c
  index 3e9ca4821b8c..d9af6f3dc8af 100644
  --- a/drivers/media/pci/saa7134/saa7134-go7007.c
  +++ b/drivers/media/pci/saa7134/saa7134-go7007.c
  @@ -244,12 +244,12 @@ static void saa7134_go7007_irq_ts_done(struct 
  saa7134_dev *dev,
  dma_sync_single_for_cpu(dev-pci-dev,
  saa-bottom_dma, PAGE_SIZE, 
  DMA_FROM_DEVICE);
  go7007_parse_video_stream(go, saa-bottom, PAGE_SIZE);
  -   saa_writel(SAA7134_RS_BA2(5), cpu_to_le32(saa-bottom_dma));
  +   saa_writel(SAA7134_RS_BA2(5), (__force 
  u32)cpu_to_le32(saa-bottom_dma));
 
 saa_writel is a define for writel, which already does cpu_to_le32. So the 
 correct
 solution is to drop the cpu_to_le32 entirely.
 
 I should have seen that.
 
 Will you update your patch or shall I repost my patch with this fix included?

I'll update it.

Thanks,
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: [media/dvb_usb_af9005] BUG: unable to handle kernel paging request (WAS: [media/em28xx] BUG: unable to handle kernel)

2014-09-23 Thread Frank Schäfer

Am 19.09.2014 um 21:55 schrieb Luca Olivetti:
 El 19/09/14 21:22, Frank Schäfer ha escrit:

 So symbol_request() returns pointers.!= NULL

 A closer look at the definition of symbol_request() shows, that it does
 nothing if CONFIG_MODULES is disabled (it just returns its argument).


 One possibility to fix this bug would be to embrace these three lines with

 #ifdef CONFIG_DVB_USB_AF9005_REMOTE
 ...
 #endif
 Luca, what do you think ?

 This seems to be an ancient bug, which is known at least since 5 1/2 years:
 https://lkml.org/lkml/2009/2/4/350
 Well, it's been a while so I don't remember the details, but I think the
 same now as then ;-)
 The idea behind CONFIG_DVB_USB_AF9005_REMOTE was to provide an
 alternative implementation (based on lirc, at the time it wasn't in the
 kernel), since this adapter doesn't decode the IR pulses by itself.
 In theory you could leave it undefined but still provide an
 implementation in a different module. Just adding

 #ifdef CONFIG_DVB_USB_AF9005_REMOTE

 would nuke the (futile?) effort.

 Now, since the problem seems to be with CONFIG_MODULES disabled, maybe
 you could combine both conditions

 #if defined(CONFIG_MODULE) || defined(CONFIG_DVB_USB_AF9005_REMOTE)
What happens, if CONFIG_MODULES is enabled, but neither module
af9005-remote nor any other IR module is available ?
Has this ever been tested ?

Regards,
Frank

--
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/2] em28xx: fix VBI handling logic

2014-09-23 Thread Frank Schäfer

Am 19.09.2014 um 18:02 schrieb Mauro Carvalho Chehab:
 When both VBI and video are streaming, and video stream is stopped,
 a subsequent trial to restart it will fail, because S_FMT will
 return -EBUSY.

 That prevents applications like zvbi to work properly.

 Please notice that, while this fix it fully for zvbi, the
 best is to get rid of streaming_users and res_get logic as a hole.

 However, this single-line patch is better to be merged at -stable.

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

 diff --git a/drivers/media/usb/em28xx/em28xx-video.c 
 b/drivers/media/usb/em28xx/em28xx-video.c
 index 08569cbccd95..d75e7f82dfb9 100644
 --- a/drivers/media/usb/em28xx/em28xx-video.c
 +++ b/drivers/media/usb/em28xx/em28xx-video.c
 @@ -1351,7 +1351,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void 
 *priv,
   struct em28xx *dev = video_drvdata(file);
   struct em28xx_v4l2 *v4l2 = dev-v4l2;
  
 - if (v4l2-streaming_users  0)
 + if (vb2_is_busy(v4l2-vb_vidq))
Looks dangerous.
Are you 100% sure that VIDIOC_S_FMT can have no effect on VBI capturing ?
It seems to trigger writes to multiple registers...

Regards,
Frank

   return -EBUSY;
  
   vidioc_try_fmt_vid_cap(file, priv, f);

--
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] [media] tc90522: declare tc90522_functionality as static

2014-09-23 Thread Mauro Carvalho Chehab
drivers/media/dvb-frontends/tc90522.c:706:5: warning: symbol 
'tc90522_functionality' was not declared. Should it be static?
drivers/media/dvb-frontends/tc90522.c:706:5: warning: no previous prototype for 
'tc90522_functionality' [-Wmissing-prototypes]
 u32 tc90522_functionality(struct i2c_adapter *adap)
 ^

Cc: Akihiro Tsukada tsk...@gmail.com
Signed-off-by: Mauro Carvalho Chehab mche...@osg.samsung.com

diff --git a/drivers/media/dvb-frontends/tc90522.c 
b/drivers/media/dvb-frontends/tc90522.c
index f4760dd998c3..cdd9808c322c 100644
--- a/drivers/media/dvb-frontends/tc90522.c
+++ b/drivers/media/dvb-frontends/tc90522.c
@@ -703,7 +703,7 @@ tc90522_master_xfer(struct i2c_adapter *adap, struct 
i2c_msg *msgs, int num)
return (ret == j) ? num : ret;
 }
 
-u32 tc90522_functionality(struct i2c_adapter *adap)
+static u32 tc90522_functionality(struct i2c_adapter *adap)
 {
return I2C_FUNC_I2C;
 }
-- 
1.9.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] pt3: make pt3_pm_ops() static

2014-09-23 Thread Mauro Carvalho Chehab
drivers/media/pci/pt3/pt3.c:862:1: warning: symbol 'pt3_pm_ops' was not 
declared. Should it be static?

Cc: Akihiro Tsukada tsk...@gmail.com
Signed-off-by: Mauro Carvalho Chehab mche...@osg.samsung.com

diff --git a/drivers/media/pci/pt3/pt3.c b/drivers/media/pci/pt3/pt3.c
index 206ede0719b0..90f86ce7a001 100644
--- a/drivers/media/pci/pt3/pt3.c
+++ b/drivers/media/pci/pt3/pt3.c
@@ -859,7 +859,7 @@ static const struct pci_device_id pt3_id_table[] = {
 };
 MODULE_DEVICE_TABLE(pci, pt3_id_table);
 
-SIMPLE_DEV_PM_OPS(pt3_pm_ops, pt3_suspend, pt3_resume);
+static SIMPLE_DEV_PM_OPS(pt3_pm_ops, pt3_suspend, pt3_resume);
 
 static struct pci_driver pt3_driver = {
.name   = DRV_NAME,
-- 
1.9.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 v4 3/4] tc90522: add driver for Toshiba TC90522 quad demodulator

2014-09-23 Thread Mauro Carvalho Chehab
Em Tue,  9 Sep 2014 02:20:42 +0900
tsk...@gmail.com escreveu:

 From: Akihiro Tsukada tsk...@gmail.com
 
 This patch adds driver for tc90522 demodulator chips.
 The chip contains 4 demod modules that run in parallel and are independently
 controllable via separate I2C addresses.
 Two of the modules are for ISDB-T and the rest for ISDB-S.
 It is used in earthsoft pt3 cards.
 
 Note that this driver does not init the chip,
 because the initilization sequence / register setting is not disclosed.
 Thus, the driver assumes that the chips are initilized externally
 by its parent board driver before fe-ops-init() are called.
 Earthsoft PT3 PCIe card, for example, contains the init sequence
 in its private memory and provides a command to trigger the sequence.

I applied this series, as we're discussing it already for a long time,
and it seems in a good shape...

Yet, I got some minor issues with FE status. See below.

PS.: could you also test (and send us patches as needed) for ISDB-S
support at libdvbv5 and dvbv5-utils[1]?

[1] http://linuxtv.org/wiki/index.php/DVBv5_Tools

Thanks!
Mauro


 +static int tc90522s_read_status(struct dvb_frontend *fe, fe_status_t *status)
 +{
 + struct tc90522_state *state;
 + int ret;
 + u8 reg;
 +
 + state = fe-demodulator_priv;
 + ret = reg_read(state, 0xc3, reg, 1);
 + if (ret  0)
 + return ret;
 +
 + *status = 0;
 + if (reg  0x80) /* input level under min ? */
 + return 0;
 + *status |= FE_HAS_SIGNAL;
 +
 + if (reg  0x60) /* carrier? */
 + return 0;

Sure about that? Wouldn't it be, instead, reg  0x60 == 0x60?

 + *status |= FE_HAS_CARRIER | FE_HAS_VITERBI | FE_HAS_SYNC;
 +
 + if (reg  0x10)
 + return 0;
 + if (reg_read(state, 0xc5, reg, 1)  0 || !(reg  0x03))
 + return 0;
 + *status |= FE_HAS_LOCK;
 + return 0;
 +}
 +
 +static int tc90522t_read_status(struct dvb_frontend *fe, fe_status_t *status)
 +{
 + struct tc90522_state *state;
 + int ret;
 + u8 reg;
 +
 + state = fe-demodulator_priv;
 + ret = reg_read(state, 0x96, reg, 1);
 + if (ret  0)
 + return ret;
 +
 + *status = 0;
 + if (reg  0xe0) {
 + *status = FE_HAS_SIGNAL | FE_HAS_CARRIER | FE_HAS_VITERBI
 + | FE_HAS_SYNC | FE_HAS_LOCK;
 + return 0;
 + }
 +
 + ret = reg_read(state, 0x80, reg, 1);
 + if (ret  0)
 + return ret;
 +
 + if (reg  0xf0)
 + return 0;
 + *status |= FE_HAS_SIGNAL | FE_HAS_CARRIER;
 +
 + if (reg  0x0c)
 + return 0;
 + *status |= FE_HAS_SYNC | FE_HAS_VITERBI;

The entire series of checks above seems wrong on my eyes too.

For example, if reg = 0x20 or 0x40 or 0x80 or ..., it will return
FE_HAS_LOCK.

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] si2168: add FE_CAN_MULTISTREAM into caps

2014-09-23 Thread Antti Palosaari

Acked-by: Antti Palosaari cr...@iki.fi
Reviewed-by: Antti Palosaari cr...@iki.fi

regards
Antti

On 09/23/2014 07:53 PM, Olli Salonen wrote:

PLP selection was implemented for Si2168 last month (patchwork 25387). However, 
FE_CAN_MULTISTREAM was not added to dvb_frontend_ops of si2168. This patch adds 
FE_CAN_MULTISTREAM, which indicates that multiple PLP are supported.

Signed-off-by: Olli Salonen olli.salo...@iki.fi
---
  drivers/media/dvb-frontends/si2168.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/media/dvb-frontends/si2168.c 
b/drivers/media/dvb-frontends/si2168.c
index 55a4212..c7e7446 100644
--- a/drivers/media/dvb-frontends/si2168.c
+++ b/drivers/media/dvb-frontends/si2168.c
@@ -598,7 +598,8 @@ static const struct dvb_frontend_ops si2168_ops = {
FE_CAN_GUARD_INTERVAL_AUTO |
FE_CAN_HIERARCHY_AUTO |
FE_CAN_MUTE_TS |
-   FE_CAN_2G_MODULATION
+   FE_CAN_2G_MODULATION |
+   FE_CAN_MULTISTREAM
},

.get_tune_settings = si2168_get_tune_settings,



--
http://palosaari.fi/
--
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/5] media: v4l2-core changes to use media tuner token api

2014-09-23 Thread Shuah Khan
Hi Devin/Mauro/Hans,

Summarizing the discussion on v4l to keep others on this
thread in the loop. Please see below:

Hans! Could you please take a look and see if it raises
any red flags for you.

On 09/23/2014 08:17 AM, Devin Heitmueller wrote:

 
 We can always start with coarse locking on open/close, and do finer
 grained locking down the road if needed - or simply change the
 currently undefined behavior in the spec to say that you have to close
 the device handle before attempting to open the other side of the
 device.
 

I share the same concerns about fine grain locking approach that
requires changes to various v4l2 ioctls to hold the token. My
concern with the current approach is that we won't be able to find
all the v4l paths to secure. During my testing, it is clear that
several applications don't seem to check ioctls return codes and
even if one of the ioctls returns -EBUSY, applications keep calling
other ioctls instead of exiting with device busy condition.

Compared to the current approach, holding lock in open and releasing
it in close is cleaner with predictable failure conditions. It is lot
easier to maintain. In addition, this approach keeps it same as the
dvb core token hold approach as outlined below.

dvb on the other hand is easier with its clean entry and exit points.
In the case of dvb, the lock is held when the device is opened in
read/write mode before dvb front-end thread gets started and released
when thread exits.

I discussed this a couple of times in the past during development
for this current patch series. The concern has been that a number of
currently supported use-cases will break with the simpler approach
to lock when v4l device is opened and unlock when it is closed.

As we discussed this morning and agreed on giving the simpler
approach a try first keeping the finer grain locking option
open for revisit. This would be acceptable provided the token
code is tested on existing apps, including mythtv, kradio,
gnome-radio.

In addition to releasing the token at device close, release the token
if an app decides to use S_PRIORITY to release the streaming ownership
e. g. V4L2_PRIORITY_BACKGROUND

Devin recommended testing on devices that have an encoder to cover
the cases where there are multiple /dev/videoX nodes tied to the
same tuner.

Please check if I captured it correctly. I can get started on the
simpler approach and see where it takes us. I have to change the
v4l2 and driver v4l2 patches. dvb and the rest can stay the same.

thanks,
-- Shuah

-- 
Shuah Khan
Sr. Linux Kernel Developer
Samsung Research America (Silicon Valley)
shua...@osg.samsung.com | (970) 217-8978
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


$

2014-09-23 Thread fbi
Have you lost money to scammers do get back for claim.
--
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


[GIT PULL] soc-camera for 3.18

2014-09-23 Thread Guennadi Liakhovetski
Hi Mauro,

Please, pull the following three patches:

The following changes since commit 4db4327f32bc3757355abff261c979408c85c771:

  Merge branch 'topic/devel-3.17-rc6' into to_next (2014-09-22 21:24:28 -0300)

are available in the git repository at:


  git://linuxtv.org/gliakhovetski/v4l-dvb.git for-3.18-1

for you to fetch changes up to 0c87b375d25fa05bb9686f28eb3d720df0428866:

  soc_camera: Support VIDIOC_EXPBUF ioctl (2014-09-23 23:22:08 +0200)


Dan Carpenter (1):
  mx2-camera: potential negative underflow bug

Kazunori Kobayashi (1):
  soc_camera: Support VIDIOC_EXPBUF ioctl

Sergei Shtylyov (1):
  rcar_vin: fix error message in rcar_vin_get_formats()

 drivers/media/platform/soc_camera/mx2_camera.c |  2 +-
 drivers/media/platform/soc_camera/rcar_vin.c   |  2 +-
 drivers/media/platform/soc_camera/soc_camera.c | 17 +
 3 files changed, 19 insertions(+), 2 deletions(-)

Thanks
Guennadi
--
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


[linuxtv-media:devel-3.17-rc6-1 499/499] drivers/media/rc/ir-hix5hd2.c:94:2: error: implicit declaration of function 'writel_relaxed'

2014-09-23 Thread kbuild test robot
tree:   git://linuxtv.org/media_tree.git devel-3.17-rc6-1
head:   f4bbac39a84f72120579feeade95c0a7a9f0191b
commit: f4bbac39a84f72120579feeade95c0a7a9f0191b [499/499] [media] rc: 
Introduce hix5hd2 IR transmitter driver
config: ia64-allmodconfig
reproduce:
  wget 
https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross
 -O ~/bin/make.cross
  chmod +x ~/bin/make.cross
  git checkout f4bbac39a84f72120579feeade95c0a7a9f0191b
  make.cross ARCH=ia64  allmodconfig
  make.cross ARCH=ia64 

All error/warnings:

   drivers/media/rc/ir-hix5hd2.c: In function 'hix5hd2_ir_config':
 drivers/media/rc/ir-hix5hd2.c:94:2: error: implicit declaration of function 
 'writel_relaxed' [-Werror=implicit-function-declaration]
 writel_relaxed(0x01, priv-base + IR_ENABLE);
 ^
   drivers/media/rc/ir-hix5hd2.c: At top level:
   drivers/media/rc/ir-hix5hd2.c:293:12: warning: 'hix5hd2_ir_suspend' defined 
but not used [-Wunused-function]
static int hix5hd2_ir_suspend(struct device *dev)
   ^
   drivers/media/rc/ir-hix5hd2.c:303:12: warning: 'hix5hd2_ir_resume' defined 
but not used [-Wunused-function]
static int hix5hd2_ir_resume(struct device *dev)
   ^
   cc1: some warnings being treated as errors

vim +/writel_relaxed +94 drivers/media/rc/ir-hix5hd2.c

88  
89  static int hix5hd2_ir_config(struct hix5hd2_ir_priv *priv)
90  {
91  int timeout = 1;
92  u32 val, rate;
93  
   94  writel_relaxed(0x01, priv-base + IR_ENABLE);
95  while (readl_relaxed(priv-base + IR_BUSY)) {
96  if (timeout--) {
97  udelay(1);

---
0-DAY kernel build testing backend  Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild Intel Corporation
--
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


[linuxtv-media:devel-3.17-rc6 489/499] drivers/media/rc/ir-hix5hd2.c:100:2: error: implicit declaration of function 'readl_relaxed'

2014-09-23 Thread kbuild test robot
tree:   git://linuxtv.org/media_tree.git devel-3.17-rc6
head:   49310ed0ab8da344dece4a543bfcdd14490ccfa0
commit: a84fcdaa905862b09482544d190c94a8436e4334 [489/499] [media] rc: 
Introduce hix5hd2 IR transmitter driver
config: m68k-allmodconfig
reproduce:
  wget 
https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross
 -O ~/bin/make.cross
  chmod +x ~/bin/make.cross
  git checkout a84fcdaa905862b09482544d190c94a8436e4334
  make.cross ARCH=m68k  allmodconfig
  make.cross ARCH=m68k 

All error/warnings:

   drivers/media/rc/ir-hix5hd2.c: In function 'hix5hd2_ir_config':
 drivers/media/rc/ir-hix5hd2.c:100:2: error: implicit declaration of function 
 'readl_relaxed' [-Werror=implicit-function-declaration]
 while (readl_relaxed(priv-base + IR_BUSY)) {
 ^
   cc1: some warnings being treated as errors

vim +/readl_relaxed +100 drivers/media/rc/ir-hix5hd2.c

94  static int hix5hd2_ir_config(struct hix5hd2_ir_priv *priv)
95  {
96  int timeout = 1;
97  u32 val, rate;
98  
99  writel_relaxed(0x01, priv-base + IR_ENABLE);
  100  while (readl_relaxed(priv-base + IR_BUSY)) {
   101  if (timeout--) {
   102  udelay(1);
   103  } else {

---
0-DAY kernel build testing backend  Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild Intel Corporation
--
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


[linuxtv-media:devel-3.17-rc6 489/499] drivers/media/rc/ir-hix5hd2.c:99:41: sparse: incorrect type in argument 2 (different address spaces)

2014-09-23 Thread kbuild test robot
tree:   git://linuxtv.org/media_tree.git devel-3.17-rc6
head:   49310ed0ab8da344dece4a543bfcdd14490ccfa0
commit: a84fcdaa905862b09482544d190c94a8436e4334 [489/499] [media] rc: 
Introduce hix5hd2 IR transmitter driver
reproduce:
  # apt-get install sparse
  git checkout a84fcdaa905862b09482544d190c94a8436e4334
  make ARCH=x86_64 allmodconfig
  make C=1 CF=-D__CHECK_ENDIAN__


sparse warnings: (new ones prefixed by )

 drivers/media/rc/ir-hix5hd2.c:99:41: sparse: incorrect type in argument 2 
 (different address spaces)
   drivers/media/rc/ir-hix5hd2.c:99:41:expected void volatile [noderef] 
asn:2*addr
   drivers/media/rc/ir-hix5hd2.c:99:41:got void *
 drivers/media/rc/ir-hix5hd2.c:100:16: sparse: incorrect type in argument 1 
 (different address spaces)
   drivers/media/rc/ir-hix5hd2.c:100:16:expected void const volatile 
[noderef] asn:2*addr
   drivers/media/rc/ir-hix5hd2.c:100:16:got void *
 drivers/media/rc/ir-hix5hd2.c:117:40: sparse: incorrect type in argument 2 
 (different address spaces)
   drivers/media/rc/ir-hix5hd2.c:117:40:expected void volatile [noderef] 
asn:2*addr
   drivers/media/rc/ir-hix5hd2.c:117:40:got void *
 drivers/media/rc/ir-hix5hd2.c:119:41: sparse: incorrect type in argument 2 
 (different address spaces)
   drivers/media/rc/ir-hix5hd2.c:119:41:expected void volatile [noderef] 
asn:2*addr
   drivers/media/rc/ir-hix5hd2.c:119:41:got void *
 drivers/media/rc/ir-hix5hd2.c:121:41: sparse: incorrect type in argument 2 
 (different address spaces)
   drivers/media/rc/ir-hix5hd2.c:121:41:expected void volatile [noderef] 
asn:2*addr
   drivers/media/rc/ir-hix5hd2.c:121:41:got void *
 drivers/media/rc/ir-hix5hd2.c:147:18: sparse: incorrect type in argument 1 
 (different address spaces)
   drivers/media/rc/ir-hix5hd2.c:147:18:expected void const volatile 
[noderef] asn:2*addr
   drivers/media/rc/ir-hix5hd2.c:147:18:got void *
 drivers/media/rc/ir-hix5hd2.c:155:28: sparse: incorrect type in argument 1 
 (different address spaces)
   drivers/media/rc/ir-hix5hd2.c:155:28:expected void const volatile 
[noderef] asn:2*addr
   drivers/media/rc/ir-hix5hd2.c:155:28:got void *
 drivers/media/rc/ir-hix5hd2.c:157:25: sparse: incorrect type in argument 1 
 (different address spaces)
   drivers/media/rc/ir-hix5hd2.c:157:25:expected void const volatile 
[noderef] asn:2*addr
   drivers/media/rc/ir-hix5hd2.c:157:25:got void *
 drivers/media/rc/ir-hix5hd2.c:159:61: sparse: incorrect type in argument 2 
 (different address spaces)
   drivers/media/rc/ir-hix5hd2.c:159:61:expected void volatile [noderef] 
asn:2*addr
   drivers/media/rc/ir-hix5hd2.c:159:61:got void *
 drivers/media/rc/ir-hix5hd2.c:167:28: sparse: incorrect type in argument 1 
 (different address spaces)
   drivers/media/rc/ir-hix5hd2.c:167:28:expected void const volatile 
[noderef] asn:2*addr
   drivers/media/rc/ir-hix5hd2.c:167:28:got void *
 drivers/media/rc/ir-hix5hd2.c:169:36: sparse: incorrect type in argument 1 
 (different address spaces)
   drivers/media/rc/ir-hix5hd2.c:169:36:expected void const volatile 
[noderef] asn:2*addr
   drivers/media/rc/ir-hix5hd2.c:169:36:got void *
 drivers/media/rc/ir-hix5hd2.c:188:64: sparse: incorrect type in argument 2 
 (different address spaces)
   drivers/media/rc/ir-hix5hd2.c:188:64:expected void volatile [noderef] 
asn:2*addr
   drivers/media/rc/ir-hix5hd2.c:188:64:got void *
 drivers/media/rc/ir-hix5hd2.c:190:68: sparse: incorrect type in argument 2 
 (different address spaces)
   drivers/media/rc/ir-hix5hd2.c:190:68:expected void volatile [noderef] 
asn:2*addr
   drivers/media/rc/ir-hix5hd2.c:190:68:got void *
 drivers/media/rc/ir-hix5hd2.c:220:20: sparse: incorrect type in assignment 
 (different address spaces)
   drivers/media/rc/ir-hix5hd2.c:220:20:expected void *base
   drivers/media/rc/ir-hix5hd2.c:220:20:got void [noderef] asn:2*
 drivers/media/rc/ir-hix5hd2.c:315:41: sparse: incorrect type in argument 2 
 (different address spaces)
   drivers/media/rc/ir-hix5hd2.c:315:41:expected void volatile [noderef] 
asn:2*addr
   drivers/media/rc/ir-hix5hd2.c:315:41:got void *
 drivers/media/rc/ir-hix5hd2.c:316:41: sparse: incorrect type in argument 2 
 (different address spaces)
   drivers/media/rc/ir-hix5hd2.c:316:41:expected void volatile [noderef] 
asn:2*addr
   drivers/media/rc/ir-hix5hd2.c:316:41:got void *
 drivers/media/rc/ir-hix5hd2.c:317:41: sparse: incorrect type in argument 2 
 (different address spaces)
   drivers/media/rc/ir-hix5hd2.c:317:41:expected void volatile [noderef] 
asn:2*addr
   drivers/media/rc/ir-hix5hd2.c:317:41:got void *
 drivers/media/rc/ir-hix5hd2.c:318:41: sparse: incorrect type in argument 2 
 (different address spaces)
   drivers/media/rc/ir-hix5hd2.c:318:41:expected void volatile [noderef] 
asn:2*addr
   drivers/media/rc/ir-hix5hd2.c:318:41:got void *

vim +99 drivers/media/rc/ir-hix5hd2.c

93  
94  static int 

Re: [PATCH 2/2] em28xx: fix VBI handling logic

2014-09-23 Thread Mauro Carvalho Chehab
Em Tue, 23 Sep 2014 21:32:02 +0200
Frank Schäfer fschaefer@googlemail.com escreveu:

 
 Am 19.09.2014 um 18:02 schrieb Mauro Carvalho Chehab:
  When both VBI and video are streaming, and video stream is stopped,
  a subsequent trial to restart it will fail, because S_FMT will
  return -EBUSY.
 
  That prevents applications like zvbi to work properly.
 
  Please notice that, while this fix it fully for zvbi, the
  best is to get rid of streaming_users and res_get logic as a hole.
 
  However, this single-line patch is better to be merged at -stable.
 
  Signed-off-by: Mauro Carvalho Chehab mche...@osg.samsung.com
 
  diff --git a/drivers/media/usb/em28xx/em28xx-video.c 
  b/drivers/media/usb/em28xx/em28xx-video.c
  index 08569cbccd95..d75e7f82dfb9 100644
  --- a/drivers/media/usb/em28xx/em28xx-video.c
  +++ b/drivers/media/usb/em28xx/em28xx-video.c
  @@ -1351,7 +1351,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, 
  void *priv,
  struct em28xx *dev = video_drvdata(file);
  struct em28xx_v4l2 *v4l2 = dev-v4l2;
   
  -   if (v4l2-streaming_users  0)
  +   if (vb2_is_busy(v4l2-vb_vidq))
 Looks dangerous.

Why Dangerous? 

Did you identify any problem? With what application?

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


[linuxtv-media:devel-3.17-rc6 497/499] qm1d1c0042.c:undefined reference to `__divdi3'

2014-09-23 Thread kbuild test robot
tree:   git://linuxtv.org/media_tree.git devel-3.17-rc6
head:   49310ed0ab8da344dece4a543bfcdd14490ccfa0
commit: f5a98f37a535a43b3a27c6a63b07f23d248e4b31 [497/499] [media] pt3: add 
support for Earthsoft PT3 ISDB-S/T receiver card
config: i386-allyesconfig
reproduce:
  git checkout f5a98f37a535a43b3a27c6a63b07f23d248e4b31
  make ARCH=i386  allyesconfig
  make ARCH=i386 

All error/warnings:

   drivers/built-in.o: In function `qm1d1c0042_set_params':
 qm1d1c0042.c:(.text+0x2519730): undefined reference to `__divdi3'
   drivers/built-in.o: In function `tc90522t_get_frontend':
 tc90522.c:(.text+0x260b64c): undefined reference to `__divdi3'
 tc90522.c:(.text+0x260b685): undefined reference to `__divdi3'
 tc90522.c:(.text+0x260b6bb): undefined reference to `__divdi3'
 tc90522.c:(.text+0x260b713): undefined reference to `__divdi3'
   drivers/built-in.o:tc90522.c:(.text+0x260bb64): more undefined references to 
`__divdi3' follow

---
0-DAY kernel build testing backend  Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild Intel Corporation
--
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: [media/dvb_usb_af9005] BUG: unable to handle kernel paging request (WAS: [media/em28xx] BUG: unable to handle kernel)

2014-09-23 Thread Luca Olivetti
El 23/09/14 20:52, Frank Schäfer ha escrit:

 This seems to be an ancient bug, which is known at least since 5 1/2 years:
 https://lkml.org/lkml/2009/2/4/350
[...]

 #if defined(CONFIG_MODULE) || defined(CONFIG_DVB_USB_AF9005_REMOTE)
 What happens, if CONFIG_MODULES is enabled, but neither module
 af9005-remote nor any other IR module is available ?
 Has this ever been tested ?

I think I tested at the time and symbol_request returned NULL in that
case, however I'm not sure and I cannot find any documentation on how
symbol_request is supposed to work in that case.

Bye
-- 
Luca

--
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


[linuxtv-media:devel-3.17-rc6 495/499] ERROR: __divdi3 [drivers/media/tuners/qm1d1c0042.ko] undefined!

2014-09-23 Thread kbuild test robot
tree:   git://linuxtv.org/media_tree.git devel-3.17-rc6
head:   49310ed0ab8da344dece4a543bfcdd14490ccfa0
commit: 7608f575b81599ba8e73c27b7ca1fa3993dee585 [495/499] [media] qm1d1c0042: 
add driver for Sharp QM1D1C0042 ISDB-S tuner
config: i386-randconfig-r0-0924 (attached as .config)
reproduce:
  git checkout 7608f575b81599ba8e73c27b7ca1fa3993dee585
  # save the attached .config to linux build tree
  make ARCH=i386 

All error/warnings:

 ERROR: __divdi3 [drivers/media/tuners/qm1d1c0042.ko] undefined!

---
0-DAY kernel build testing backend  Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild Intel Corporation
#
# Automatically generated file; DO NOT EDIT.
# Linux/i386 3.17.0-rc5 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT=elf32-i386
CONFIG_ARCH_DEFCONFIG=arch/x86/configs/i386_defconfig
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
# CONFIG_ZONE_DMA32 is not set
# CONFIG_AUDIT_ARCH is not set
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_X86_32_SMP=y
CONFIG_X86_HT=y
CONFIG_ARCH_HWEIGHT_CFLAGS=-fcall-saved-ecx -fcall-saved-edx
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_DEFCONFIG_LIST=/lib/modules/$UNAME_RELEASE/.config
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y

#
# General setup
#
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=
# CONFIG_COMPILE_TEST is not set
CONFIG_LOCALVERSION=
CONFIG_LOCALVERSION_AUTO=y
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
# CONFIG_KERNEL_GZIP is not set
CONFIG_KERNEL_BZIP2=y
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
CONFIG_DEFAULT_HOSTNAME=(none)
# CONFIG_SWAP is not set
# CONFIG_SYSVIPC is not set
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
CONFIG_CROSS_MEMORY_ATTACH=y
# CONFIG_FHANDLE is not set
# CONFIG_USELIB is not set
CONFIG_AUDIT=y
CONFIG_HAVE_ARCH_AUDITSYSCALL=y
CONFIG_AUDITSYSCALL=y
CONFIG_AUDIT_WATCH=y
CONFIG_AUDIT_TREE=y

#
# IRQ subsystem
#
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_IRQ_DOMAIN=y
# CONFIG_IRQ_DOMAIN_DEBUG is not set
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CMOS_UPDATE=y

#
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
CONFIG_NO_HZ_IDLE=y
CONFIG_NO_HZ=y
# CONFIG_HIGH_RES_TIMERS is not set

#
# CPU/Task time and stats accounting
#
CONFIG_TICK_CPU_ACCOUNTING=y
# CONFIG_IRQ_TIME_ACCOUNTING is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set

#
# RCU Subsystem
#
CONFIG_TREE_RCU=y
# CONFIG_PREEMPT_RCU is not set
CONFIG_RCU_STALL_COMMON=y
CONFIG_RCU_FANOUT=32
CONFIG_RCU_FANOUT_LEAF=16
# CONFIG_RCU_FANOUT_EXACT is not set
CONFIG_RCU_FAST_NO_HZ=y
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_NOCB_CPU_NONE is not set
CONFIG_RCU_NOCB_CPU_ZERO=y
# CONFIG_RCU_NOCB_CPU_ALL is not set
CONFIG_BUILD_BIN2C=y
CONFIG_IKCONFIG=y
# CONFIG_IKCONFIG_PROC is not set
CONFIG_LOG_BUF_SHIFT=17
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE=y
CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is not set
# CONFIG_CGROUP_FREEZER is not set
CONFIG_CGROUP_DEVICE=y
# CONFIG_CPUSETS is not set
# CONFIG_CGROUP_CPUACCT is not set
CONFIG_RESOURCE_COUNTERS=y
CONFIG_MEMCG=y
CONFIG_MEMCG_KMEM=y
# CONFIG_CGROUP_PERF is not set
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
# CONFIG_RT_GROUP_SCHED is not set
# CONFIG_BLK_CGROUP is not set
# CONFIG_CHECKPOINT_RESTORE is not set
CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set
# CONFIG_IPC_NS is not set
CONFIG_USER_NS=y
CONFIG_PID_NS=y
CONFIG_NET_NS=y
CONFIG_SCHED_AUTOGROUP=y
# CONFIG_SYSFS_DEPRECATED is not set
CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=
CONFIG_RD_GZIP=y
CONFIG_RD_BZIP2=y
CONFIG_RD_LZMA=y
CONFIG_RD_XZ=y
CONFIG_RD_LZO=y

[linuxtv-media:devel-3.17-rc6 492/499] ERROR: __aeabi_ldivmod [drivers/media/tuners/qm1d1c0042.ko] undefined!

2014-09-23 Thread kbuild test robot
tree:   git://linuxtv.org/media_tree.git devel-3.17-rc6
head:   5b5560842a7ee002d208a20866f88fafd63198eb
commit: f5a98f37a535a43b3a27c6a63b07f23d248e4b31 [492/499] [media] pt3: add 
support for Earthsoft PT3 ISDB-S/T receiver card
config: arm-allmodconfig
reproduce:
  wget 
https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross
 -O ~/bin/make.cross
  chmod +x ~/bin/make.cross
  git checkout f5a98f37a535a43b3a27c6a63b07f23d248e4b31
  make.cross ARCH=arm  allmodconfig
  make.cross ARCH=arm 

All error/warnings:

 ERROR: __aeabi_ldivmod [drivers/media/tuners/qm1d1c0042.ko] undefined!
 ERROR: __aeabi_ldivmod [drivers/media/dvb-frontends/tc90522.ko] undefined!

---
0-DAY kernel build testing backend  Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild Intel Corporation
--
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] [media] qm1d1c0042: fix compilation on 32 bits

2014-09-23 Thread Mauro Carvalho Chehab
   drivers/built-in.o: In function `qm1d1c0042_set_params':
 qm1d1c0042.c:(.text+0x2519730): undefined reference to `__divdi3'

Reported-by: kbuild test robot fengguang...@intel.com
Signed-off-by: Mauro Carvalho Chehab mche...@osg.samsung.com

diff --git a/drivers/media/tuners/qm1d1c0042.c 
b/drivers/media/tuners/qm1d1c0042.c
index 585594b9c4f8..2a990f406cf5 100644
--- a/drivers/media/tuners/qm1d1c0042.c
+++ b/drivers/media/tuners/qm1d1c0042.c
@@ -28,6 +28,7 @@
  */
 
 #include linux/kernel.h
+#include linux/math64.h
 #include qm1d1c0042.h
 
 #define QM1D1C0042_NUM_REGS 0x20
@@ -234,7 +235,9 @@ static int qm1d1c0042_set_params(struct dvb_frontend *fe)
 * sd = b  (b = 0)
 *  122 + b  (b  0)
 */
-   b = (((s64) freq)  20) / state-cfg.xtal_freq - (((s64) a)  20);
+   b = (s32)div64_s64(((s64) freq)  20,
+  state-cfg.xtal_freq - (((s64) a)  20));
+
if (b = 0)
sd = b;
else
-- 
1.9.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] [media] tc90522: fix compilation on 32 bits

2014-09-23 Thread Mauro Carvalho Chehab
   drivers/built-in.o: In function `tc90522t_get_frontend':
 tc90522.c:(.text+0x260b64c): undefined reference to `__divdi3'
 tc90522.c:(.text+0x260b685): undefined reference to `__divdi3'
 tc90522.c:(.text+0x260b6bb): undefined reference to `__divdi3'
 tc90522.c:(.text+0x260b713): undefined reference to `__divdi3'
   drivers/built-in.o:tc90522.c:(.text+0x260bb64): more undefined references to 
`__divdi3' follow

Reported-by: kbuild test robot fengguang...@intel.com
Signed-off-by: Mauro Carvalho Chehab mche...@osg.samsung.com

diff --git a/drivers/media/dvb-frontends/tc90522.c 
b/drivers/media/dvb-frontends/tc90522.c
index cdd9808c322c..d9905fb52f84 100644
--- a/drivers/media/dvb-frontends/tc90522.c
+++ b/drivers/media/dvb-frontends/tc90522.c
@@ -28,6 +28,7 @@
  */
 
 #include linux/kernel.h
+#include linux/math64.h
 #include linux/dvb/frontend.h
 #include dvb_math.h
 #include tc90522.h
@@ -275,7 +276,7 @@ static int tc90522s_get_frontend(struct dvb_frontend *fe)
/* cn = cnr  3 */
p = int_sqrt(cndat  16);
p4 = cndat * cndat;
-   cn = (-16346LL * p4 * p / 10)  35;
+   cn = div64_s64(-16346LL * p4 * p, 10)  35;
cn += (14341LL * p4)  21;
cn -= (50259LL * cndat * p)  23;
cn += (88977LL * cndat)  9;
@@ -434,13 +435,13 @@ static int tc90522t_get_frontend(struct dvb_frontend *fe)
p *= 10;
 
cn = 24772;
-   cn += ((43827LL * p) / 10)  24;
+   cn += div64_s64(43827LL * p, 10)  24;
tmp = p  8;
-   cn += ((3184LL * tmp * tmp) / 10)  32;
+   cn += div64_s64(3184LL * tmp * tmp, 10)  32;
tmp = p  13;
-   cn -= ((128LL * tmp * tmp * tmp) / 10)  33;
+   cn -= div64_s64(128LL * tmp * tmp * tmp, 10)  33;
tmp = p  18;
-   cn += ((192LL * tmp * tmp * tmp * tmp) / 1000)  24;
+   cn += div64_s64(192LL * tmp * tmp * tmp * tmp, 1000)  24;
 
stats-stat[0].svalue = cn  3;
stats-stat[0].scale = FE_SCALE_DECIBEL;
-- 
1.9.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


cron job: media_tree daily build: ERRORS

2014-09-23 Thread Hans Verkuil
This message is generated daily by a cron job that builds media_tree for
the kernels and architectures in the list below.

Results of the daily build of media_tree:

date:   Wed Sep 24 04:00:19 CEST 2014
git branch: test
git hash:   c0aaf696d45e2a72048a56441e81dad78659c698
gcc version:i686-linux-gcc (GCC) 4.9.1
sparse version: v0.5.0-20-g7abd8a7
host hardware:  x86_64
host os:3.16-2.slh.3-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: WARNINGS
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: WARNINGS
linux-3.12.23-i686: WARNINGS
linux-3.13.11-i686: WARNINGS
linux-3.14.9-i686: WARNINGS
linux-3.15.2-i686: WARNINGS
linux-3.16-i686: WARNINGS
linux-3.17-rc1-i686: WARNINGS
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: WARNINGS
linux-3.12.23-x86_64: WARNINGS
linux-3.13.11-x86_64: WARNINGS
linux-3.14.9-x86_64: WARNINGS
linux-3.15.2-x86_64: WARNINGS
linux-3.16-x86_64: WARNINGS
linux-3.17-rc1-x86_64: WARNINGS
apps: OK
spec-git: OK
sparse: ERRORS
sparse: ERRORS

Detailed results are available here:

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

Full logs are available here:

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


Re: [PATCH v4 3/4] tc90522: add driver for Toshiba TC90522 quad demodulator

2014-09-23 Thread Akihiro TSUKADA

Hi,

On 2014年09月24日 05:07, Mauro Carvalho Chehab wrote:
 I applied this series, as we're discussing it already for a long time,
 and it seems in a good shape...

thanks for your reviews and advices.

 +static int tc90522s_read_status(struct dvb_frontend *fe, fe_status_t 
 *status)
...
 +if (reg  0x60) /* carrier? */
 +return 0;
 
 Sure about that? Wouldn't it be, instead, reg  0x60 == 0x60?

Yes, I'm pretty sure about that.
The register indicates errors in the various demod stages,
and if all go well, the reg should be 0.

 +static int tc90522t_read_status(struct dvb_frontend *fe, fe_status_t 
 *status)
..
 The entire series of checks above seems wrong on my eyes too.
 
 For example, if reg = 0x20 or 0x40 or 0x80 or ..., it will return
 FE_HAS_LOCK.

This register 0x96 should indicates lock status for each layers,
and since layer config can vary in ISDB-T, the driver checks that
any of the three bits is set, for faster lock detection.
and the register 0x80 is the same kind of the one in the above ISDB-S case.

 PS.: could you also test (and send us patches as needed) for ISDB-S
 support at libdvbv5 and dvbv5-utils[1]?
I'll have a try.

regards,
akihiro

  

--
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] cx23885: initialize config structs for T9580

2014-09-23 Thread Olli Salonen
The config structs used for DVBSky T9580 were not initialized. This patch fixes 
that.

Signed-off-by: Olli Salonen olli.salo...@iki.fi
---
 drivers/media/pci/cx23885/cx23885-dvb.c |3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/drivers/media/pci/cx23885/cx23885-dvb.c 
b/drivers/media/pci/cx23885/cx23885-dvb.c
index 13734b8..4cb9031 100644
--- a/drivers/media/pci/cx23885/cx23885-dvb.c
+++ b/drivers/media/pci/cx23885/cx23885-dvb.c
@@ -1600,6 +1600,7 @@ static int dvb_register(struct cx23885_tsport *port)
break;
 
/* attach tuner */
+   memset(m88ts2022_config, 0, sizeof(m88ts2022_config));
m88ts2022_config.fe = fe0-dvb.frontend;
m88ts2022_config.clock = 2700;
memset(info, 0, sizeof(struct i2c_board_info));
@@ -1635,6 +1636,7 @@ static int dvb_register(struct cx23885_tsport *port)
/* port c - terrestrial/cable */
case 2:
/* attach frontend */
+   memset(si2168_config, 0, sizeof(si2168_config));
si2168_config.i2c_adapter = adapter;
si2168_config.fe = fe0-dvb.frontend;
si2168_config.ts_mode = SI2168_TS_SERIAL;
@@ -1654,6 +1656,7 @@ static int dvb_register(struct cx23885_tsport *port)
port-i2c_client_demod = client_demod;
 
/* attach tuner */
+   memset(si2157_config, 0, sizeof(si2157_config));
si2157_config.fe = fe0-dvb.frontend;
memset(info, 0, sizeof(struct i2c_board_info));
strlcpy(info.type, si2157, I2C_NAME_SIZE);
-- 
1.7.0.4

--
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


[linuxtv-media:devel-3.17-rc6 485/499] ERROR: __divdi3 [drivers/media/dvb-frontends/tc90522.ko] undefined!

2014-09-23 Thread kbuild test robot
tree:   git://linuxtv.org/media_tree.git devel-3.17-rc6
head:   e124632a5199546c5e1b3abc7dc4bc000503e0e6
commit: f5d82a75e666a6cc66453285cb3ce28c5d02397a [485/499] [media] tc90522: add 
driver for Toshiba TC90522 quad demodulator
config: i386-randconfig-r0-0924 (attached as .config)
reproduce:
  git checkout f5d82a75e666a6cc66453285cb3ce28c5d02397a
  # save the attached .config to linux build tree
  make ARCH=i386 

Note: the linuxtv-media/devel-3.17-rc6 HEAD 
e124632a5199546c5e1b3abc7dc4bc000503e0e6 builds fine.
  It only hurts bisectibility.

All error/warnings:

   ERROR: __divdi3 [drivers/media/tuners/qm1d1c0042.ko] undefined!
 ERROR: __divdi3 [drivers/media/dvb-frontends/tc90522.ko] undefined!

---
0-DAY kernel build testing backend  Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild Intel Corporation
#
# Automatically generated file; DO NOT EDIT.
# Linux/i386 3.17.0-rc5 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT=elf32-i386
CONFIG_ARCH_DEFCONFIG=arch/x86/configs/i386_defconfig
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
# CONFIG_ZONE_DMA32 is not set
# CONFIG_AUDIT_ARCH is not set
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_X86_32_SMP=y
CONFIG_X86_HT=y
CONFIG_ARCH_HWEIGHT_CFLAGS=-fcall-saved-ecx -fcall-saved-edx
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_DEFCONFIG_LIST=/lib/modules/$UNAME_RELEASE/.config
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y

#
# General setup
#
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=
# CONFIG_COMPILE_TEST is not set
CONFIG_LOCALVERSION=
CONFIG_LOCALVERSION_AUTO=y
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
# CONFIG_KERNEL_GZIP is not set
CONFIG_KERNEL_BZIP2=y
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
CONFIG_DEFAULT_HOSTNAME=(none)
# CONFIG_SWAP is not set
# CONFIG_SYSVIPC is not set
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
CONFIG_CROSS_MEMORY_ATTACH=y
# CONFIG_FHANDLE is not set
# CONFIG_USELIB is not set
CONFIG_AUDIT=y
CONFIG_HAVE_ARCH_AUDITSYSCALL=y
CONFIG_AUDITSYSCALL=y
CONFIG_AUDIT_WATCH=y
CONFIG_AUDIT_TREE=y

#
# IRQ subsystem
#
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_IRQ_DOMAIN=y
# CONFIG_IRQ_DOMAIN_DEBUG is not set
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CMOS_UPDATE=y

#
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
CONFIG_NO_HZ_IDLE=y
CONFIG_NO_HZ=y
# CONFIG_HIGH_RES_TIMERS is not set

#
# CPU/Task time and stats accounting
#
CONFIG_TICK_CPU_ACCOUNTING=y
# CONFIG_IRQ_TIME_ACCOUNTING is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set

#
# RCU Subsystem
#
CONFIG_TREE_RCU=y
# CONFIG_PREEMPT_RCU is not set
CONFIG_RCU_STALL_COMMON=y
CONFIG_RCU_FANOUT=32
CONFIG_RCU_FANOUT_LEAF=16
# CONFIG_RCU_FANOUT_EXACT is not set
CONFIG_RCU_FAST_NO_HZ=y
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_NOCB_CPU_NONE is not set
CONFIG_RCU_NOCB_CPU_ZERO=y
# CONFIG_RCU_NOCB_CPU_ALL is not set
CONFIG_BUILD_BIN2C=y
CONFIG_IKCONFIG=y
# CONFIG_IKCONFIG_PROC is not set
CONFIG_LOG_BUF_SHIFT=17
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE=y
CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is not set
# CONFIG_CGROUP_FREEZER is not set
CONFIG_CGROUP_DEVICE=y
# CONFIG_CPUSETS is not set
# CONFIG_CGROUP_CPUACCT is not set
CONFIG_RESOURCE_COUNTERS=y
CONFIG_MEMCG=y
CONFIG_MEMCG_KMEM=y
# CONFIG_CGROUP_PERF is not set
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
# CONFIG_RT_GROUP_SCHED is not set
# CONFIG_BLK_CGROUP is not set
# CONFIG_CHECKPOINT_RESTORE is not set
CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set
# CONFIG_IPC_NS is not set
CONFIG_USER_NS=y
CONFIG_PID_NS=y
CONFIG_NET_NS=y

RE: [PATCH] [media] videobuf-dma-contig: replace vm_iomap_memory() with remap_pfn_range().

2014-09-23 Thread chen.f...@freescale.com
Thanks a lot, Hans.
 
I know the reason that you use vm_iomap_memory() instead of remap_pfn_range(). 
But
according to my analysis, the sanity check is not suitable for v4l2 buffers 
mapping. You can check the
code logic to see this. 

Migration to vb2 is not a quick job and it is not on our schedule yet.
I just need you to check the code logic and make a decision for this.

Best regards,
Fancy Fang


-Original Message-
From: Hans Verkuil [mailto:hverk...@xs4all.nl] 
Sent: Tuesday, September 23, 2014 2:10 PM
To: Fang Chen-B47543; m.che...@samsung.com; v...@zeniv.linux.org.uk
Cc: Guo Shawn-R65073; linux-media@vger.kernel.org; 
linux-ker...@vger.kernel.org; Marek Szyprowski
Subject: Re: [PATCH] [media] videobuf-dma-contig: replace vm_iomap_memory() 
with remap_pfn_range().

Hi Fancy Fang,

I do have a few comments:

1) One reason why the switch to vm_iomap_memory() was made originally was that 
that function did a bunch of sanity checks. Since this patch moves back to
remap_pfn_range() those sanity checks are lost and should be reinstated.

2) You need Marek's Ack as well since he understands the memory code much 
better than I do.

3) There are efforts underway to make a modern i.mx6 video driver based on
vb2 and all the other modern V4L2 APIs, wouldn't it be much better if freescale 
jumps on board and starts working on that code as well? See e.g. this mail
thread: http://www.spinics.net/lists/linux-media/msg79078.html

I assume this refers to the same hardware. The official freescale driver for 
that hardware is horrendous.

If you are writing code for unrelated hardware, then you should move over to
vb2 yourself. videobuf should not be used anymore for new drivers.

4) I still do not entirely understand the control flow and I will have to take 
another look. I'll see if I can do that tomorrow.

Regards,

Hans

On 09/23/2014 05:11 AM, chen.f...@freescale.com wrote:
 Hans,
 Do you have any more comment on this patch?
 
 Best regards,
 Fancy Fang
 
 -Original Message-
 From: Fang Chen-B47543
 Sent: Wednesday, September 10, 2014 3:29 PM
 To: 'Hans Verkuil'; m.che...@samsung.com; v...@zeniv.linux.org.uk
 Cc: Guo Shawn-R65073; linux-media@vger.kernel.org; 
 linux-ker...@vger.kernel.org; Marek Szyprowski
 Subject: RE: [PATCH] [media] videobuf-dma-contig: replace vm_iomap_memory() 
 with remap_pfn_range().
 
 On the Freescale imx6 platform which belongs to ARM architecture. The driver 
 is our local v4l2 output driver which is not upstream yet unfortunately.
 
 Best regards,
 Fancy Fang
 
 -Original Message-
 From: Hans Verkuil [mailto:hverk...@xs4all.nl]
 Sent: Wednesday, September 10, 2014 3:21 PM
 To: Fang Chen-B47543; m.che...@samsung.com; v...@zeniv.linux.org.uk
 Cc: Guo Shawn-R65073; linux-media@vger.kernel.org; 
 linux-ker...@vger.kernel.org; Marek Szyprowski
 Subject: Re: [PATCH] [media] videobuf-dma-contig: replace vm_iomap_memory() 
 with remap_pfn_range().
 
 On 09/10/14 09:14, chen.f...@freescale.com wrote:
 It is not a theoretically issue, it is a real case that the mapping failed 
 issue happens in 3.14.y kernel but not happens in previous 3.10.y kernel.
 So I need your confirmation on it.
 
 With which driver does this happen? On which architecture?
 
 Regards,
 
   Hans
 

 Thanks.

 Best regards,
 Fancy Fang

 -Original Message-
 From: Hans Verkuil [mailto:hverk...@xs4all.nl]
 Sent: Wednesday, September 10, 2014 3:01 PM
 To: Fang Chen-B47543; m.che...@samsung.com; v...@zeniv.linux.org.uk
 Cc: Guo Shawn-R65073; linux-media@vger.kernel.org; 
 linux-ker...@vger.kernel.org; Marek Szyprowski
 Subject: Re: [PATCH] [media] videobuf-dma-contig: replace vm_iomap_memory() 
 with remap_pfn_range().

 On 09/10/14 07:28, Fancy Fang wrote:
 When user requests V4L2_MEMORY_MMAP type buffers, the videobuf-core 
 will assign the corresponding offset to the 'boff' field of the 
 videobuf_buffer for each requested buffer sequentially. Later, user 
 may call mmap() to map one or all of the buffers with the 'offset'
 parameter which is equal to its 'boff' value. Obviously, the 'offset'
 value is only used to find the matched buffer instead of to be the 
 real offset from the buffer's physical start address as used by 
 vm_iomap_memory(). So, in some case that if the offset is not zero,
 vm_iomap_memory() will fail.

 Is this just a fix for something that can fail theoretically, or do you 
 actually have a case where this happens? I am very reluctant to make any 
 changes to videobuf. Drivers should all migrate to vb2.

 I have CC-ed Marek as well since he knows a lot more about this stuff than I 
 do.

 Regards,

  Hans


 Signed-off-by: Fancy Fang chen.f...@freescale.com
 ---
  drivers/media/v4l2-core/videobuf-dma-contig.c | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)

 diff --git a/drivers/media/v4l2-core/videobuf-dma-contig.c
 b/drivers/media/v4l2-core/videobuf-dma-contig.c
 index bf80f0f..8bd9889 100644
 --- 

[linuxtv-media:devel-3.17-rc6 468/499] ERROR: go7007_parse_video_stream [drivers/media/pci/saa7134/saa7134-go7007.ko] undefined!

2014-09-23 Thread kbuild test robot
tree:   git://linuxtv.org/media_tree.git devel-3.17-rc6
head:   e124632a5199546c5e1b3abc7dc4bc000503e0e6
commit: 452015de2e2afaf0e2f76f28477dd3025d44bc95 [468/499] [media] saa7134: add 
saa7134-go7007
config: x86_64-randconfig-hxb0-0924 (attached as .config)
reproduce:
  git checkout 452015de2e2afaf0e2f76f28477dd3025d44bc95
  # save the attached .config to linux build tree
  make ARCH=x86_64 

All error/warnings:

 ERROR: go7007_parse_video_stream 
 [drivers/media/pci/saa7134/saa7134-go7007.ko] undefined!
 ERROR: go7007_register_encoder 
 [drivers/media/pci/saa7134/saa7134-go7007.ko] undefined!
 ERROR: go7007_boot_encoder [drivers/media/pci/saa7134/saa7134-go7007.ko] 
 undefined!
 ERROR: go7007_alloc [drivers/media/pci/saa7134/saa7134-go7007.ko] 
 undefined!
 ERROR: go7007_read_interrupt [drivers/media/pci/saa7134/saa7134-go7007.ko] 
 undefined!
 ERROR: go7007_snd_remove [drivers/media/pci/saa7134/saa7134-go7007.ko] 
 undefined!

---
0-DAY kernel build testing backend  Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild Intel Corporation
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86_64 3.17.0-rc5 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT=elf64-x86-64
CONFIG_ARCH_DEFCONFIG=arch/x86/configs/x86_64_defconfig
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
CONFIG_ZONE_DMA32=y
CONFIG_AUDIT_ARCH=y
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_X86_64_SMP=y
CONFIG_X86_HT=y
CONFIG_ARCH_HWEIGHT_CFLAGS=-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx 
-fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 
-fcall-saved-r11
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_DEFCONFIG_LIST=/lib/modules/$UNAME_RELEASE/.config
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y

#
# General setup
#
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=
CONFIG_COMPILE_TEST=y
CONFIG_LOCALVERSION=
CONFIG_LOCALVERSION_AUTO=y
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
# CONFIG_KERNEL_GZIP is not set
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
CONFIG_KERNEL_XZ=y
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
CONFIG_DEFAULT_HOSTNAME=(none)
# CONFIG_SWAP is not set
# CONFIG_SYSVIPC is not set
# CONFIG_POSIX_MQUEUE is not set
CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_FHANDLE=y
# CONFIG_USELIB is not set
# CONFIG_AUDIT is not set
CONFIG_HAVE_ARCH_AUDITSYSCALL=y

#
# IRQ subsystem
#
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_IRQ_DOMAIN=y
# CONFIG_IRQ_DOMAIN_DEBUG is not set
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CMOS_UPDATE=y

#
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
CONFIG_NO_HZ_IDLE=y
# CONFIG_NO_HZ_FULL is not set
# CONFIG_NO_HZ is not set
# CONFIG_HIGH_RES_TIMERS is not set

#
# CPU/Task time and stats accounting
#
CONFIG_TICK_CPU_ACCOUNTING=y
# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
# CONFIG_IRQ_TIME_ACCOUNTING is not set
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
# CONFIG_TASK_IO_ACCOUNTING is not set

#
# RCU Subsystem
#
CONFIG_TREE_PREEMPT_RCU=y
CONFIG_PREEMPT_RCU=y
CONFIG_RCU_STALL_COMMON=y
CONFIG_CONTEXT_TRACKING=y
CONFIG_RCU_USER_QS=y
CONFIG_CONTEXT_TRACKING_FORCE=y
CONFIG_RCU_FANOUT=64
CONFIG_RCU_FANOUT_LEAF=16
CONFIG_RCU_FANOUT_EXACT=y
CONFIG_RCU_FAST_NO_HZ=y
CONFIG_TREE_RCU_TRACE=y
# CONFIG_RCU_BOOST is not set
# CONFIG_RCU_NOCB_CPU is not set
CONFIG_BUILD_BIN2C=y
CONFIG_IKCONFIG=y
CONFIG_LOG_BUF_SHIFT=17
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
CONFIG_ARCH_SUPPORTS_INT128=y
CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE=y
CONFIG_ARCH_USES_NUMA_PROT_NONE=y
# CONFIG_NUMA_BALANCING_DEFAULT_ENABLED is not set

RE: [PATCH 4/4] V4L/DVB: Add sleep for firmware ready

2014-09-23 Thread Bimow.Chen
Hi all,

It's my mistake. Sleep after boot for firmware ready, not before.
Please reject this patch.
Thank you.

Best regards,
Bimow
-Original Message-
From: Mauro Carvalho Chehab [mailto:mche...@osg.samsung.com] 
Sent: Tuesday, September 23, 2014 9:11 PM
To: Antti Palosaari
Cc: linux-media@vger.kernel.org; Bimow Chen (陳心懋)
Subject: Re: [PATCH 4/4] V4L/DVB: Add sleep for firmware ready

Em Tue, 23 Sep 2014 15:00:48 +0300
Antti Palosaari cr...@iki.fi escreveu:

 I am not sure as I cannot reproduce it. Also 30ms wait here is long as 
 hell, whilst it is not critical.
 
 When I look that firmware downloading from the 1-2 month old Hauppauge 
 driver sniffs, it is not there:
 
 That line is CMD_FW_BOOT, command 0x23 it is 3rd number:
 #define CMD_FW_BOOT 0x23
 000313:  OUT: 00 ms 001490 ms BULK[2]  05 00 23 9a 65 dc
 
 Here is whole sequence:
 000311:  OUT: 00 ms 001489 ms BULK[2]  15 00 29 99 03 01 00
 01 57 f7 09 02 6d 6c 02 4f 9f 02 4f a2 0b 16
 000312:  OUT: 01 ms 001489 ms BULK[00081]  04 99 00 66 ff
 000313:  OUT: 00 ms 001490 ms BULK[2]  05 00 23 9a 65 dc
 000314:  OUT: 11 ms 001490 ms BULK[00081]  04 9a 00 65 ff
 000315:  OUT: 00 ms 001501 ms BULK[2]  0b 00 00 9b 01 02 00
 00 12 22 40 ec
 000316:  OUT: 00 ms 001501 ms BULK[00081]  05 9b 00 02 62 ff
 
 
 So windows driver waits 10ms after boot, not before.
 
 Due to these reasons, I would like to skip that patch until I see 
 error or get good explanation why it is needed and so.

Ok. I'll tag it as RFC then.

 
 
 regards
 Antti
 
 
 On 09/23/2014 02:50 PM, Mauro Carvalho Chehab wrote:
  Antti,
 
  After the firmware load changes, is this patch still applicable?
 
  Regards,
  Mauro
 
  Forwarded message:
 
  Date: Tue, 05 Aug 2014 13:48:03 +0800
  From: Bimow Chen bimow.c...@ite.com.tw
  To: linux-media@vger.kernel.org
  Subject: [PATCH 4/4] V4L/DVB: Add sleep for firmware ready
 
 
   From b19fa868ce937a6ef10f1591a49b2a7ad14964a9 Mon Sep 17 00:00:00 
  2001
  From: Bimow Chen bimow.c...@ite.com.tw
  Date: Tue, 5 Aug 2014 11:20:53 +0800
  Subject: [PATCH 4/4] Add sleep for firmware ready.
 
 
  Signed-off-by: Bimow Chen bimow.c...@ite.com.tw
  ---
drivers/media/usb/dvb-usb-v2/af9035.c |2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
 
  diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c 
  b/drivers/media/usb/dvb-usb-v2/af9035.c
  index 7b9b75f..a450cdb 100644
  --- a/drivers/media/usb/dvb-usb-v2/af9035.c
  +++ b/drivers/media/usb/dvb-usb-v2/af9035.c
  @@ -602,6 +602,8 @@ static int af9035_download_firmware(struct 
  dvb_usb_device *d,
  if (ret  0)
  goto err;
 
  +   msleep(30);
  +
  /* firmware loaded, request boot */
  req.cmd = CMD_FW_BOOT;
  ret = af9035_ctrl_msg(d, req);
 
 
N�妓緶r��y���匒淅炮カv傂�)瑎{.n�+�極�{��蓫j)��緡w*jg炳��摃j/�翯z嫡���2���刻俾�)腄冠嗓��埂��嶭�熝:+v���w��晱

Re: [PATCH] [media] tc90522: declare tc90522_functionality as static

2014-09-23 Thread Akihiro TSUKADA
Sorry to bother you with those build warnings.
Somehow I didn't see them when I built the modules myself on 64bit box.
maybe since I forgot to test all-y config (and 32bit build),
the gcc cmd did not include [-Wmissing-prototypes].

--
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