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 --- 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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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'
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
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
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
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
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
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
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.
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
$
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
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'
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'
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)
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
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'
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)
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!
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!
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
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
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
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
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
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!
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().
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!
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
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
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