[PATCH] HackRF SDR driver - v4l2-compliance test report

2014-08-23 Thread Antti Palosaari
[crope@localhost v4l2-compliance]$ ./v4l2-compliance -S /dev/swradio0 
Driver Info:
Driver name   : hackrf
Card type : HackRF One
Bus info  : usb-:00:13.2-2
Driver version: 3.16.0
Capabilities  : 0x8531
SDR Capture
Tuner
Read/Write
Streaming
Extended Pix Format
Device Capabilities
Device Caps   : 0x0531
SDR Capture
Tuner
Read/Write
Streaming
Extended Pix Format

Compliance test for device /dev/swradio0 (not using libv4l2):

Required ioctls:
test VIDIOC_QUERYCAP: OK

Allow for multiple opens:
test second sdr open: OK
test VIDIOC_QUERYCAP: OK
test VIDIOC_G/S_PRIORITY: OK

Debug ioctls:
test VIDIOC_DBG_G/S_REGISTER: OK
test VIDIOC_LOG_STATUS: OK

Input ioctls:
test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK
test VIDIOC_G/S_FREQUENCY: OK
test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
test VIDIOC_ENUMAUDIO: OK (Not Supported)
test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
test VIDIOC_G/S_AUDIO: OK (Not Supported)
Inputs: 0 Audio Inputs: 0 Tuners: 2

Output ioctls:
test VIDIOC_G/S_MODULATOR: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK
test VIDIOC_ENUMAUDOUT: OK (Not Supported)
test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
test VIDIOC_G/S_AUDOUT: OK (Not Supported)
Outputs: 0 Audio Outputs: 0 Modulators: 0

Input/Output configuration ioctls:
test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
test VIDIOC_G/S_EDID: OK (Not Supported)

Control ioctls:
test VIDIOC_QUERYCTRL/MENU: OK
test VIDIOC_G/S_CTRL: OK
test VIDIOC_G/S/TRY_EXT_CTRLS: OK
test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
Standard Controls: 5 Private Controls: 0

Format ioctls:
test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
test VIDIOC_G/S_PARM: OK (Not Supported)
test VIDIOC_G_FBUF: OK (Not Supported)
test VIDIOC_G_FMT: OK
test VIDIOC_TRY_FMT: OK
test VIDIOC_S_FMT: OK
test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)

Codec ioctls:
test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
test VIDIOC_G_ENC_INDEX: OK (Not Supported)
test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)

Buffer ioctls:
test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
test VIDIOC_EXPBUF: OK (Not Supported)


Total: 38, Succeeded: 38, Failed: 0, Warnings: 0
[crope@localhost v4l2-compliance]$ 



Antti Palosaari (1):
  hackrf: HackRF SDR driver

 drivers/media/usb/Kconfig |3 +-
 drivers/media/usb/Makefile|3 +-
 drivers/media/usb/hackrf/Kconfig  |   10 +
 drivers/media/usb/hackrf/Makefile |1 +
 drivers/media/usb/hackrf/hackrf.c | 1130 +
 5 files changed, 1145 insertions(+), 2 deletions(-)
 create mode 100644 drivers/media/usb/hackrf/Kconfig
 create mode 100644 drivers/media/usb/hackrf/Makefile
 create mode 100644 drivers/media/usb/hackrf/hackrf.c

-- 
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] hackrf: HackRF SDR driver

2014-08-23 Thread Antti Palosaari
V4L2 driver for HackRF SDR. Very basic version, with reduced
feature set. Driver implements receiver only, hardware supports
also transmitter.

USB ID 1d50:6089. Model HackRF One

Signed-off-by: Antti Palosaari cr...@iki.fi
---
 drivers/media/usb/Kconfig |3 +-
 drivers/media/usb/Makefile|3 +-
 drivers/media/usb/hackrf/Kconfig  |   10 +
 drivers/media/usb/hackrf/Makefile |1 +
 drivers/media/usb/hackrf/hackrf.c | 1130 +
 5 files changed, 1145 insertions(+), 2 deletions(-)
 create mode 100644 drivers/media/usb/hackrf/Kconfig
 create mode 100644 drivers/media/usb/hackrf/Makefile
 create mode 100644 drivers/media/usb/hackrf/hackrf.c

diff --git a/drivers/media/usb/Kconfig b/drivers/media/usb/Kconfig
index d6e8edc..056181f 100644
--- a/drivers/media/usb/Kconfig
+++ b/drivers/media/usb/Kconfig
@@ -56,8 +56,9 @@ endif
 
 if MEDIA_SDR_SUPPORT
comment Software defined radio USB devices
-source drivers/media/usb/msi2500/Kconfig
 source drivers/media/usb/airspy/Kconfig
+source drivers/media/usb/hackrf/Kconfig
+source drivers/media/usb/msi2500/Kconfig
 endif
 
 endif #MEDIA_USB_SUPPORT
diff --git a/drivers/media/usb/Makefile b/drivers/media/usb/Makefile
index b5b645b..6f2eb7c 100644
--- a/drivers/media/usb/Makefile
+++ b/drivers/media/usb/Makefile
@@ -9,8 +9,9 @@ obj-y += zr364xx/ stkwebcam/ s2255/
 obj-$(CONFIG_USB_VIDEO_CLASS)  += uvc/
 obj-$(CONFIG_USB_GSPCA) += gspca/
 obj-$(CONFIG_USB_PWC)   += pwc/
-obj-$(CONFIG_USB_MSI2500)   += msi2500/
 obj-$(CONFIG_USB_AIRSPY)+= airspy/
+obj-$(CONFIG_USB_HACKRF)+= hackrf/
+obj-$(CONFIG_USB_MSI2500)   += msi2500/
 obj-$(CONFIG_VIDEO_CPIA2) += cpia2/
 obj-$(CONFIG_VIDEO_AU0828) += au0828/
 obj-$(CONFIG_VIDEO_HDPVR)  += hdpvr/
diff --git a/drivers/media/usb/hackrf/Kconfig b/drivers/media/usb/hackrf/Kconfig
new file mode 100644
index 000..937e6f5
--- /dev/null
+++ b/drivers/media/usb/hackrf/Kconfig
@@ -0,0 +1,10 @@
+config USB_HACKRF
+   tristate HackRF
+   depends on VIDEO_V4L2
+   select VIDEOBUF2_VMALLOC
+   ---help---
+ This is a video4linux2 driver for HackRF SDR device.
+
+ To compile this driver as a module, choose M here: the
+ module will be called hackrf
+
diff --git a/drivers/media/usb/hackrf/Makefile 
b/drivers/media/usb/hackrf/Makefile
new file mode 100644
index 000..73064a2
--- /dev/null
+++ b/drivers/media/usb/hackrf/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_USB_HACKRF)  += hackrf.o
diff --git a/drivers/media/usb/hackrf/hackrf.c 
b/drivers/media/usb/hackrf/hackrf.c
new file mode 100644
index 000..a868cd9
--- /dev/null
+++ b/drivers/media/usb/hackrf/hackrf.c
@@ -0,0 +1,1130 @@
+/*
+ * HackRF driver
+ *
+ * Copyright (C) 2014 Antti Palosaari cr...@iki.fi
+ *
+ *This program is free software; you can redistribute it and/or modify
+ *it under the terms of the GNU General Public License as published by
+ *the Free Software Foundation; either version 2 of the License, or
+ *(at your option) any later version.
+ *
+ *This program is distributed in the hope that it will be useful,
+ *but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *GNU General Public License for more details.
+ */
+
+#include linux/module.h
+#include linux/slab.h
+#include linux/usb.h
+#include media/v4l2-device.h
+#include media/v4l2-ioctl.h
+#include media/v4l2-ctrls.h
+#include media/v4l2-event.h
+#include media/videobuf2-vmalloc.h
+
+/* HackRF USB API commands (from HackRF Library) */
+enum {
+   CMD_SET_TRANSCEIVER_MODE   = 0x01,
+   CMD_SAMPLE_RATE_SET= 0x06,
+   CMD_BASEBAND_FILTER_BANDWIDTH_SET  = 0x07,
+   CMD_BOARD_ID_READ  = 0x0e,
+   CMD_VERSION_STRING_READ= 0x0f,
+   CMD_SET_FREQ   = 0x10,
+   CMD_SET_LNA_GAIN   = 0x13,
+   CMD_SET_VGA_GAIN   = 0x14,
+};
+
+/*
+ *   bEndpointAddress 0x81  EP 1 IN
+ * Transfer TypeBulk
+ *   wMaxPacketSize 0x0200  1x 512 bytes
+ */
+#define MAX_BULK_BUFS(6)
+#define BULK_BUFFER_SIZE (128 * 512)
+
+static const struct v4l2_frequency_band bands_adc[] = {
+   {
+   .tuner = 0,
+   .type = V4L2_TUNER_ADC,
+   .index = 0,
+   .capability = V4L2_TUNER_CAP_1HZ | V4L2_TUNER_CAP_FREQ_BANDS,
+   .rangelow   =   20,
+   .rangehigh  = 2400,
+   },
+};
+
+static const struct v4l2_frequency_band bands_rf[] = {
+   {
+   .tuner = 1,
+   .type = V4L2_TUNER_RF,
+   .index = 0,
+   .capability = V4L2_TUNER_CAP_1HZ | V4L2_TUNER_CAP_FREQ_BANDS,
+   .rangelow   =  1,
+   .rangehigh  = 4294967294, /* max u32, hw goes over 7GHz */
+   },

[PATCH 0/9] use c99 initializers in structures

2014-08-23 Thread Julia Lawall
These patches add labels in the initializations of structure fields (c99
initializers).  The complete semantic patch thta makes this change is shown
below.  This rule ignores cases where the initialization is just 0 or NULL,
where some of the fields already use labels, and where there are nested
structures.

// smpl
@ok1@
identifier i1,i2;
position p;
@@

struct i1 i2@p = { \(0\|NULL\) };

@ok2@
identifier i1,i2,i3;
position p;
expression e;
@@

struct i1 i2@p = { ..., .i3 = e, ... };

@ok3@
identifier i1,i2;
position p;
@@

struct i1 i2@p = { ..., { ... }, ... };

@decl@
identifier i1,fld;
type T;
field list[n] fs;
@@

struct i1 {
 fs
 T fld;
 ...};

@bad@
identifier decl.i1,i2;
expression e;
position p != {ok1.p,ok2.p,ok3.p};
constant nm;
initializer list[decl.n] is;
position fix;
@@

struct i1 i2@p = { is,
(
 nm(...)
|
 e@fix
)
 ,...};

@@
identifier decl.i1,i2,decl.fld;
expression e;
position bad.p, bad.fix;
@@

struct i1 i2@p = { ...,
+ .fld = e
- e@fix
 ,...};
// /smpl

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/9] [media] v4l: ti-vpe: use c99 initializers in structures

2014-08-23 Thread Julia Lawall
From: Julia Lawall julia.law...@lip6.fr

Use c99 initializers for structures.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// smpl
@decl@
identifier i1,fld;
type T;
field list[n] fs;
@@

struct i1 {
 fs
 T fld;
 ...};

@bad@
identifier decl.i1,i2;
expression e;
initializer list[decl.n] is;
@@

struct i1 i2 = { is,
+ .fld = e
- e
 ,...};
// /smpl

Signed-off-by: Julia Lawall julia.law...@lip6.fr

---
The patches in this series do not depend on each other.

Not compiled.

 drivers/media/platform/ti-vpe/vpe.c |   12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/media/platform/ti-vpe/vpe.c 
b/drivers/media/platform/ti-vpe/vpe.c
index 972f43f..20dd7ea 100644
--- a/drivers/media/platform/ti-vpe/vpe.c
+++ b/drivers/media/platform/ti-vpe/vpe.c
@@ -138,12 +138,12 @@ struct vpe_dei_regs {
  * default expert DEI register values, unlikely to be modified.
  */
 static const struct vpe_dei_regs dei_regs = {
-   0x020C0804u,
-   0x0118100Fu,
-   0x08040200u,
-   0x1010100Cu,
-   0x10101010u,
-   0x10101010u,
+   .mdt_spacial_freq_thr_reg = 0x020C0804u,
+   .edi_config_reg = 0x0118100Fu,
+   .edi_lut_reg0 = 0x08040200u,
+   .edi_lut_reg1 = 0x1010100Cu,
+   .edi_lut_reg2 = 0x10101010u,
+   .edi_lut_reg3 = 0x10101010u,
 };
 
 /*

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/5] Digital Devices PCIe bridge update to 0.9.15a

2014-08-23 Thread Bjoern
Hi all,

It's been 3 weeks since these patches were submitted - have they been
merged yet? If not - what's the problem? Who has to check this?

I'm not the only one longing for driver updated support of ddbridge by
default, and it would really be nice if there was some progress here.
Antti did a lot of work here for all us ddbridge users.

Regards,
Bjoern

On Sa, 2014-08-02 at 06:48 +0300, Antti Palosaari wrote:
 After cold power-on, my device wasn't able to find DuoFlex C/C2/T/T2
 Expansion card, which I added yesterday. I looked old and new drivers
 and tried many things, but no success. Old kernel driver was ages,
 many years, behind manufacturer current Linux driver and there has
 been a tons of changes. So I ended up upgrading Linux kernel driver
 to 0.9.15a (it was 0.5).
 
 Now it is very near Digital Devices official driver, only modulator
 and network streaming stuff is removed and CI is abusing SEC like
 earlier also.
 
 Few device models are not supported due to missing kernel driver or
 missing device profile. Those devices are based of following DTV
 frontend chipsets:
 MaxLinear MxL5xx
 STMicroelectronics STV0910
 STMicroelectronics STV0367
 
 
 Tree for testing is here:
 http://git.linuxtv.org/cgit.cgi/anttip/media_tree.git/log/?h=digitaldevices
 
 regards
 Antti
 
 
 Antti Palosaari (5):
   cxd2843: do not call get_if_frequency() when it is NULL
   ddbridge: disable driver building
   ddbridge: remove driver temporarily
   ddbridge: add needed files from manufacturer driver 0.9.15a
   ddbridge: clean up driver for release
 
  drivers/media/dvb-frontends/cxd2843.c  |3 +-
  drivers/media/pci/ddbridge/Makefile|2 -
  drivers/media/pci/ddbridge/ddbridge-core.c | 3175 
 +++-
  drivers/media/pci/ddbridge/ddbridge-i2c.c  |  232 ++
  drivers/media/pci/ddbridge/ddbridge-regs.h |  347 ++-
  drivers/media/pci/ddbridge/ddbridge.c  |  456 
  drivers/media/pci/ddbridge/ddbridge.h  |  407 +++-
  7 files changed, 3518 insertions(+), 1104 deletions(-)
  create mode 100644 drivers/media/pci/ddbridge/ddbridge-i2c.c
  create mode 100644 drivers/media/pci/ddbridge/ddbridge.c
 


--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/5] Digital Devices PCIe bridge update to 0.9.15a

2014-08-23 Thread Antti Palosaari

Moikka
That patchset is simply far away from merge. Tons of issues to be fixed. 
It is huge amount of work to get that all in. I could estimate one month 
full time work even my experience is not enough. And I simply don't want 
to waste that much money from my pockets, it is many thousand euros. So 
I do it, if I do, on my schedule.


There is many separate issues which needs to be done. It is not 
something one people should do all. For example mainlining that 
DVB-T/T2/C/C2 demod driver. Another thing is DVB-C2 API, which is not 
much coding, but a lot of specification. You need to read and 
*understand* DVB-C2 spec and on some level other specs (mostly DVB-T2) 
in order to add missing pieces correctly to DVB API. If you are not 
coder, start here.



Antti



On 08/23/2014 02:50 PM, Bjoern wrote:

Hi all,

It's been 3 weeks since these patches were submitted - have they been
merged yet? If not - what's the problem? Who has to check this?

I'm not the only one longing for driver updated support of ddbridge by
default, and it would really be nice if there was some progress here.
Antti did a lot of work here for all us ddbridge users.

Regards,
Bjoern

On Sa, 2014-08-02 at 06:48 +0300, Antti Palosaari wrote:

After cold power-on, my device wasn't able to find DuoFlex C/C2/T/T2
Expansion card, which I added yesterday. I looked old and new drivers
and tried many things, but no success. Old kernel driver was ages,
many years, behind manufacturer current Linux driver and there has
been a tons of changes. So I ended up upgrading Linux kernel driver
to 0.9.15a (it was 0.5).

Now it is very near Digital Devices official driver, only modulator
and network streaming stuff is removed and CI is abusing SEC like
earlier also.

Few device models are not supported due to missing kernel driver or
missing device profile. Those devices are based of following DTV
frontend chipsets:
MaxLinear MxL5xx
STMicroelectronics STV0910
STMicroelectronics STV0367


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

regards
Antti


Antti Palosaari (5):
   cxd2843: do not call get_if_frequency() when it is NULL
   ddbridge: disable driver building
   ddbridge: remove driver temporarily
   ddbridge: add needed files from manufacturer driver 0.9.15a
   ddbridge: clean up driver for release

  drivers/media/dvb-frontends/cxd2843.c  |3 +-
  drivers/media/pci/ddbridge/Makefile|2 -
  drivers/media/pci/ddbridge/ddbridge-core.c | 3175 +++-
  drivers/media/pci/ddbridge/ddbridge-i2c.c  |  232 ++
  drivers/media/pci/ddbridge/ddbridge-regs.h |  347 ++-
  drivers/media/pci/ddbridge/ddbridge.c  |  456 
  drivers/media/pci/ddbridge/ddbridge.h  |  407 +++-
  7 files changed, 3518 insertions(+), 1104 deletions(-)
  create mode 100644 drivers/media/pci/ddbridge/ddbridge-i2c.c
  create mode 100644 drivers/media/pci/ddbridge/ddbridge.c






--
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] hackrf: HackRF SDR driver

2014-08-23 Thread Hans Verkuil
Hi Antti,

Thanks for this drivers, looks interesting.

I do have some review comments, see below...

On 08/23/2014 07:46 AM, Antti Palosaari wrote:
 V4L2 driver for HackRF SDR. Very basic version, with reduced
 feature set. Driver implements receiver only, hardware supports
 also transmitter.
 
 USB ID 1d50:6089. Model HackRF One
 
 Signed-off-by: Antti Palosaari cr...@iki.fi
 ---
  drivers/media/usb/Kconfig |3 +-
  drivers/media/usb/Makefile|3 +-
  drivers/media/usb/hackrf/Kconfig  |   10 +
  drivers/media/usb/hackrf/Makefile |1 +
  drivers/media/usb/hackrf/hackrf.c | 1130 
 +
  5 files changed, 1145 insertions(+), 2 deletions(-)
  create mode 100644 drivers/media/usb/hackrf/Kconfig
  create mode 100644 drivers/media/usb/hackrf/Makefile
  create mode 100644 drivers/media/usb/hackrf/hackrf.c
 
 diff --git a/drivers/media/usb/Kconfig b/drivers/media/usb/Kconfig
 index d6e8edc..056181f 100644
 --- a/drivers/media/usb/Kconfig
 +++ b/drivers/media/usb/Kconfig
 @@ -56,8 +56,9 @@ endif
  
  if MEDIA_SDR_SUPPORT
   comment Software defined radio USB devices
 -source drivers/media/usb/msi2500/Kconfig
  source drivers/media/usb/airspy/Kconfig
 +source drivers/media/usb/hackrf/Kconfig
 +source drivers/media/usb/msi2500/Kconfig
  endif
  
  endif #MEDIA_USB_SUPPORT
 diff --git a/drivers/media/usb/Makefile b/drivers/media/usb/Makefile
 index b5b645b..6f2eb7c 100644
 --- a/drivers/media/usb/Makefile
 +++ b/drivers/media/usb/Makefile
 @@ -9,8 +9,9 @@ obj-y += zr364xx/ stkwebcam/ s2255/
  obj-$(CONFIG_USB_VIDEO_CLASS)+= uvc/
  obj-$(CONFIG_USB_GSPCA) += gspca/
  obj-$(CONFIG_USB_PWC)   += pwc/
 -obj-$(CONFIG_USB_MSI2500)   += msi2500/
  obj-$(CONFIG_USB_AIRSPY)+= airspy/
 +obj-$(CONFIG_USB_HACKRF)+= hackrf/
 +obj-$(CONFIG_USB_MSI2500)   += msi2500/
  obj-$(CONFIG_VIDEO_CPIA2) += cpia2/
  obj-$(CONFIG_VIDEO_AU0828) += au0828/
  obj-$(CONFIG_VIDEO_HDPVR)+= hdpvr/
 diff --git a/drivers/media/usb/hackrf/Kconfig 
 b/drivers/media/usb/hackrf/Kconfig
 new file mode 100644
 index 000..937e6f5
 --- /dev/null
 +++ b/drivers/media/usb/hackrf/Kconfig
 @@ -0,0 +1,10 @@
 +config USB_HACKRF
 + tristate HackRF
 + depends on VIDEO_V4L2
 + select VIDEOBUF2_VMALLOC
 + ---help---
 +   This is a video4linux2 driver for HackRF SDR device.
 +
 +   To compile this driver as a module, choose M here: the
 +   module will be called hackrf
 +
 diff --git a/drivers/media/usb/hackrf/Makefile 
 b/drivers/media/usb/hackrf/Makefile
 new file mode 100644
 index 000..73064a2
 --- /dev/null
 +++ b/drivers/media/usb/hackrf/Makefile
 @@ -0,0 +1 @@
 +obj-$(CONFIG_USB_HACKRF)  += hackrf.o
 diff --git a/drivers/media/usb/hackrf/hackrf.c 
 b/drivers/media/usb/hackrf/hackrf.c
 new file mode 100644
 index 000..a868cd9
 --- /dev/null
 +++ b/drivers/media/usb/hackrf/hackrf.c
 @@ -0,0 +1,1130 @@
 +/*
 + * HackRF driver
 + *
 + * Copyright (C) 2014 Antti Palosaari cr...@iki.fi
 + *
 + *This program is free software; you can redistribute it and/or modify
 + *it under the terms of the GNU General Public License as published by
 + *the Free Software Foundation; either version 2 of the License, or
 + *(at your option) any later version.
 + *
 + *This program is distributed in the hope that it will be useful,
 + *but WITHOUT ANY WARRANTY; without even the implied warranty of
 + *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 + *GNU General Public License for more details.
 + */
 +
 +#include linux/module.h
 +#include linux/slab.h
 +#include linux/usb.h
 +#include media/v4l2-device.h
 +#include media/v4l2-ioctl.h
 +#include media/v4l2-ctrls.h
 +#include media/v4l2-event.h
 +#include media/videobuf2-vmalloc.h
 +
 +/* HackRF USB API commands (from HackRF Library) */
 +enum {
 + CMD_SET_TRANSCEIVER_MODE   = 0x01,
 + CMD_SAMPLE_RATE_SET= 0x06,
 + CMD_BASEBAND_FILTER_BANDWIDTH_SET  = 0x07,
 + CMD_BOARD_ID_READ  = 0x0e,
 + CMD_VERSION_STRING_READ= 0x0f,
 + CMD_SET_FREQ   = 0x10,
 + CMD_SET_LNA_GAIN   = 0x13,
 + CMD_SET_VGA_GAIN   = 0x14,
 +};
 +
 +/*
 + *   bEndpointAddress 0x81  EP 1 IN
 + * Transfer TypeBulk
 + *   wMaxPacketSize 0x0200  1x 512 bytes
 + */
 +#define MAX_BULK_BUFS(6)
 +#define BULK_BUFFER_SIZE (128 * 512)
 +
 +static const struct v4l2_frequency_band bands_adc[] = {
 + {
 + .tuner = 0,
 + .type = V4L2_TUNER_ADC,
 + .index = 0,
 + .capability = V4L2_TUNER_CAP_1HZ | V4L2_TUNER_CAP_FREQ_BANDS,
 + .rangelow   =   20,
 + .rangehigh  = 2400,
 + },
 +};
 +
 +static const struct v4l2_frequency_band bands_rf[] = {
 + {
 + .tuner = 1,
 + .type = 

Urgent Assistance from Syria

2014-08-23 Thread Abdul Nasser Sokariah
-- 
Good Day From Syria,

My name is Abdul Nasser Sokariah and I am writing you from Syria, I
choose to contact you directly as I need a reliable person to trust
who can help me make claims to my huge deposit with a vault company in
AFRICA, and based on my present situation in Syria, I need you
urgently to take  possession of everything and further
modalities/directives will follow.

Contact me  only on my private Email:nabdul...@gmail.com for
clarifications,I await your response.

Yours truly, Abdul Nasser Sokariah
Contact Email:nabdul...@gmail.com
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/9] use c99 initializers in structures

2014-08-23 Thread Josh Triplett
On Sat, Aug 23, 2014 at 01:20:22PM +0200, Julia Lawall wrote:
 These patches add labels in the initializations of structure fields (c99
 initializers).  The complete semantic patch thta makes this change is shown
 below.  This rule ignores cases where the initialization is just 0 or NULL,
 where some of the fields already use labels, and where there are nested
 structures.

I responded to patches 6 and 8 with comments; for the rest (1-5, 7, 9):
Reviewed-by: Josh Triplett j...@joshtriplett.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] hackrf: HackRF SDR driver

2014-08-23 Thread Antti Palosaari

Moikka!

On 08/23/2014 05:32 PM, Hans Verkuil wrote:

Hi Antti,

Thanks for this drivers, looks interesting.


Yes it is, especially as it supports transmitting (TX) too.



I do have some review comments, see below...

On 08/23/2014 07:46 AM, Antti Palosaari wrote:

V4L2 driver for HackRF SDR. Very basic version, with reduced
feature set. Driver implements receiver only, hardware supports
also transmitter.

USB ID 1d50:6089. Model HackRF One

Signed-off-by: Antti Palosaari cr...@iki.fi
---
  drivers/media/usb/Kconfig |3 +-
  drivers/media/usb/Makefile|3 +-
  drivers/media/usb/hackrf/Kconfig  |   10 +
  drivers/media/usb/hackrf/Makefile |1 +
  drivers/media/usb/hackrf/hackrf.c | 1130 +
  5 files changed, 1145 insertions(+), 2 deletions(-)
  create mode 100644 drivers/media/usb/hackrf/Kconfig
  create mode 100644 drivers/media/usb/hackrf/Makefile
  create mode 100644 drivers/media/usb/hackrf/hackrf.c

diff --git a/drivers/media/usb/Kconfig b/drivers/media/usb/Kconfig
index d6e8edc..056181f 100644
--- a/drivers/media/usb/Kconfig
+++ b/drivers/media/usb/Kconfig
@@ -56,8 +56,9 @@ endif

  if MEDIA_SDR_SUPPORT
comment Software defined radio USB devices
-source drivers/media/usb/msi2500/Kconfig
  source drivers/media/usb/airspy/Kconfig
+source drivers/media/usb/hackrf/Kconfig
+source drivers/media/usb/msi2500/Kconfig
  endif

  endif #MEDIA_USB_SUPPORT
diff --git a/drivers/media/usb/Makefile b/drivers/media/usb/Makefile
index b5b645b..6f2eb7c 100644
--- a/drivers/media/usb/Makefile
+++ b/drivers/media/usb/Makefile
@@ -9,8 +9,9 @@ obj-y += zr364xx/ stkwebcam/ s2255/
  obj-$(CONFIG_USB_VIDEO_CLASS) += uvc/
  obj-$(CONFIG_USB_GSPCA) += gspca/
  obj-$(CONFIG_USB_PWC)   += pwc/
-obj-$(CONFIG_USB_MSI2500)   += msi2500/
  obj-$(CONFIG_USB_AIRSPY)+= airspy/
+obj-$(CONFIG_USB_HACKRF)+= hackrf/
+obj-$(CONFIG_USB_MSI2500)   += msi2500/
  obj-$(CONFIG_VIDEO_CPIA2) += cpia2/
  obj-$(CONFIG_VIDEO_AU0828) += au0828/
  obj-$(CONFIG_VIDEO_HDPVR) += hdpvr/
diff --git a/drivers/media/usb/hackrf/Kconfig b/drivers/media/usb/hackrf/Kconfig
new file mode 100644
index 000..937e6f5
--- /dev/null
+++ b/drivers/media/usb/hackrf/Kconfig
@@ -0,0 +1,10 @@
+config USB_HACKRF
+   tristate HackRF
+   depends on VIDEO_V4L2
+   select VIDEOBUF2_VMALLOC
+   ---help---
+ This is a video4linux2 driver for HackRF SDR device.
+
+ To compile this driver as a module, choose M here: the
+ module will be called hackrf
+
diff --git a/drivers/media/usb/hackrf/Makefile 
b/drivers/media/usb/hackrf/Makefile
new file mode 100644
index 000..73064a2
--- /dev/null
+++ b/drivers/media/usb/hackrf/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_USB_HACKRF)  += hackrf.o
diff --git a/drivers/media/usb/hackrf/hackrf.c 
b/drivers/media/usb/hackrf/hackrf.c
new file mode 100644
index 000..a868cd9
--- /dev/null
+++ b/drivers/media/usb/hackrf/hackrf.c
@@ -0,0 +1,1130 @@
+/*
+ * HackRF driver
+ *
+ * Copyright (C) 2014 Antti Palosaari cr...@iki.fi
+ *
+ *This program is free software; you can redistribute it and/or modify
+ *it under the terms of the GNU General Public License as published by
+ *the Free Software Foundation; either version 2 of the License, or
+ *(at your option) any later version.
+ *
+ *This program is distributed in the hope that it will be useful,
+ *but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *GNU General Public License for more details.
+ */
+
+#include linux/module.h
+#include linux/slab.h
+#include linux/usb.h
+#include media/v4l2-device.h
+#include media/v4l2-ioctl.h
+#include media/v4l2-ctrls.h
+#include media/v4l2-event.h
+#include media/videobuf2-vmalloc.h
+
+/* HackRF USB API commands (from HackRF Library) */
+enum {
+   CMD_SET_TRANSCEIVER_MODE   = 0x01,
+   CMD_SAMPLE_RATE_SET= 0x06,
+   CMD_BASEBAND_FILTER_BANDWIDTH_SET  = 0x07,
+   CMD_BOARD_ID_READ  = 0x0e,
+   CMD_VERSION_STRING_READ= 0x0f,
+   CMD_SET_FREQ   = 0x10,
+   CMD_SET_LNA_GAIN   = 0x13,
+   CMD_SET_VGA_GAIN   = 0x14,
+};
+
+/*
+ *   bEndpointAddress 0x81  EP 1 IN
+ * Transfer TypeBulk
+ *   wMaxPacketSize 0x0200  1x 512 bytes
+ */
+#define MAX_BULK_BUFS(6)
+#define BULK_BUFFER_SIZE (128 * 512)
+
+static const struct v4l2_frequency_band bands_adc[] = {
+   {
+   .tuner = 0,
+   .type = V4L2_TUNER_ADC,
+   .index = 0,
+   .capability = V4L2_TUNER_CAP_1HZ | V4L2_TUNER_CAP_FREQ_BANDS,
+   .rangelow   =   20,
+   .rangehigh  = 2400,
+   },
+};
+
+static const struct v4l2_frequency_band bands_rf[] = {
+   {
+   

[PATCH 1/5] libdvbv5: Remove dvbsat_polarization_name (same as dvb_sat_pol_name)

2014-08-23 Thread Gregor Jasny
Signed-off-by: Gregor Jasny gja...@googlemail.com
---
 lib/include/libdvbv5/dvb-sat.h | 2 --
 lib/libdvbv5/dvb-sat.c | 7 ---
 2 files changed, 9 deletions(-)

diff --git a/lib/include/libdvbv5/dvb-sat.h b/lib/include/libdvbv5/dvb-sat.h
index a414448..f14e7e4 100644
--- a/lib/include/libdvbv5/dvb-sat.h
+++ b/lib/include/libdvbv5/dvb-sat.h
@@ -37,8 +37,6 @@ struct dvb_sat_lnb {
 
 struct dvb_v5_fe_parms;
 
-extern const char *dvbsat_polarization_name[5];
-
 #ifdef __cplusplus
 extern C {
 #endif
diff --git a/lib/libdvbv5/dvb-sat.c b/lib/libdvbv5/dvb-sat.c
index 795524a..d0a6076 100644
--- a/lib/libdvbv5/dvb-sat.c
+++ b/lib/libdvbv5/dvb-sat.c
@@ -405,10 +405,3 @@ ret:
return rc;
 }
 
-const char *dvbsat_polarization_name[5] = {
-   OFF,
-   H,
-   V,
-   L,
-   R,
-};
-- 
2.1.0

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 0/5] Further clean up libdvbv5

2014-08-23 Thread Gregor Jasny
Hello,

Here you'll find some patches to clean up libdvbv5. I tried to
reduce exported symbols of the shared library to easy
maintenance in the future.

Thanks,
Gregor

Gregor Jasny (5):
  libdvbv5: Remove dvbsat_polarization_name (same as dvb_sat_pol_name)
  libdvbv5: Rename and hide charset definitions
  libdvbv5: Hide unused and unexposed cnr_to_qual_s tables
  libdvbv5: Make dvb_xxx_charset const strings
  libdvbv5: Make dummy_fe static

 lib/include/libdvbv5/descriptors.h |  2 --
 lib/include/libdvbv5/dvb-sat.h |  2 --
 lib/libdvbv5/descriptors.c |  3 ---
 lib/libdvbv5/descriptors/desc_event_extended.c |  2 +-
 lib/libdvbv5/descriptors/desc_event_short.c|  4 ++--
 lib/libdvbv5/descriptors/desc_network_name.c   |  2 +-
 lib/libdvbv5/descriptors/desc_service.c|  4 ++--
 lib/libdvbv5/descriptors/desc_ts_info.c|  2 +-
 lib/libdvbv5/dvb-fe.c  |  6 +++---
 lib/libdvbv5/dvb-sat.c |  7 ---
 lib/libdvbv5/parse_string.c| 12 
 lib/libdvbv5/parse_string.h|  7 +--
 lib/libdvbv5/tables/vct.c  |  2 +-
 13 files changed, 24 insertions(+), 31 deletions(-)

-- 
2.1.0

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 4/5] libdvbv5: Make dvb_xxx_charset const strings

2014-08-23 Thread Gregor Jasny
Signed-off-by: Gregor Jasny gja...@googlemail.com
---
 lib/libdvbv5/parse_string.c | 13 +++--
 lib/libdvbv5/parse_string.h |  8 
 2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/lib/libdvbv5/parse_string.c b/lib/libdvbv5/parse_string.c
index db47c3a..081b2f8 100644
--- a/lib/libdvbv5/parse_string.c
+++ b/lib/libdvbv5/parse_string.c
@@ -35,8 +35,8 @@
 
 #define CS_OPTIONS //TRANSLIT
 
-char *dvb_default_charset = iso-8859-1;
-char *dvb_output_charset = utf-8;
+const char *dvb_default_charset = iso-8859-1;
+const char *dvb_output_charset = utf-8;
 
 struct charset_conv {
unsigned len;
@@ -308,7 +308,7 @@ void iconv_to_charset(struct dvb_v5_fe_parms *parms,
  size_t destlen,
  const unsigned char *src,
  size_t len,
- char *type, char *output_charset)
+ const char *type, const char *output_charset)
 {
char out_cs[strlen(output_charset) + 1 + sizeof(CS_OPTIONS)];
char *p = dest;
@@ -331,7 +331,7 @@ void iconv_to_charset(struct dvb_v5_fe_parms *parms,
 
 static void charset_conversion(struct dvb_v5_fe_parms *parms, char **dest, 
const unsigned char *s,
   size_t len,
-  char *type, char *output_charset)
+  const char *type, const char *output_charset)
 {
size_t destlen = len * 3;
int need_conversion = 1;
@@ -371,10 +371,11 @@ static void charset_conversion(struct dvb_v5_fe_parms 
*parms, char **dest, const
 
 void parse_string(struct dvb_v5_fe_parms *parms, char **dest, char **emph,
  const unsigned char *src, size_t len,
- char *default_charset, char *output_charset)
+ const char *default_charset, const char *output_charset)
 {
size_t destlen, i, len2 = 0;
-   char *p, *p2, *type = default_charset;
+   char *p, *p2;
+   const char *type = default_charset;
unsigned char *tmp1 = NULL, *tmp2 = NULL;
const unsigned char *s;
int emphasis = 0;
diff --git a/lib/libdvbv5/parse_string.h b/lib/libdvbv5/parse_string.h
index e269ff3..48ae6ec 100644
--- a/lib/libdvbv5/parse_string.h
+++ b/lib/libdvbv5/parse_string.h
@@ -28,14 +28,14 @@ void iconv_to_charset(struct dvb_v5_fe_parms *parms,
  size_t destlen,
  const unsigned char *src,
  size_t len,
- char *type, char *output_charset);
+ const char *type, const char *output_charset);
 
 void parse_string(struct dvb_v5_fe_parms *parms, char **dest, char **emph,
  const unsigned char *src, size_t len,
- char *default_charset, char *output_charset);
+ const char *default_charset, const char *output_charset);
 
-extern char *dvb_default_charset;
-extern char *dvb_output_charset;
+extern const char *dvb_default_charset;
+extern const char *dvb_output_charset;
 
 #if HAVE_VISIBILITY
 #pragma GCC visibility pop
-- 
2.1.0

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 3/5] libdvbv5: Hide unused and unexposed cnr_to_qual_s tables

2014-08-23 Thread Gregor Jasny
Signed-off-by: Gregor Jasny gja...@googlemail.com
---
 lib/libdvbv5/dvb-fe.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/libdvbv5/dvb-fe.c b/lib/libdvbv5/dvb-fe.c
index 013edd6..6471f68 100644
--- a/lib/libdvbv5/dvb-fe.c
+++ b/lib/libdvbv5/dvb-fe.c
@@ -944,7 +944,7 @@ struct cnr_to_qual_s dvb_s2_cnr_2_qual[] = {
  * Minimum values from ARIB STD-B21 for DVB_QUAL_OK.
  * As ARIB doesn't define a max value, assume +2dB for DVB_QUAL_GOOD
  */
-struct cnr_to_qual_s isdb_t_cnr_2_qual[] = {
+static struct cnr_to_qual_s isdb_t_cnr_2_qual[] = {
{  DQPSK, FEC_1_2,  6.2,  8.2},
{  DQPSK, FEC_2_3,  7.7,  9.7},
{  DQPSK, FEC_3_4,  8.7, 10.7},
@@ -974,7 +974,7 @@ struct cnr_to_qual_s isdb_t_cnr_2_qual[] = {
  * Values obtained from table A.1 of ETSI EN 300 744 v1.6.1
  * OK corresponds to Ricean fading; Good to Rayleigh fading
  */
-struct cnr_to_qual_s dvb_t_cnr_2_qual[] = {
+static struct cnr_to_qual_s dvb_t_cnr_2_qual[] = {
{   QPSK, FEC_1_2,  4.1,  5.9},
{   QPSK, FEC_2_3,  6.1,  9.6},
{   QPSK, FEC_3_4,  7.2, 12.4},
-- 
2.1.0

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 5/5] libdvbv5: Make dummy_fe static

2014-08-23 Thread Gregor Jasny
Signed-off-by: Gregor Jasny gja...@googlemail.com
---
 lib/libdvbv5/dvb-fe.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/libdvbv5/dvb-fe.c b/lib/libdvbv5/dvb-fe.c
index 6471f68..c260674 100644
--- a/lib/libdvbv5/dvb-fe.c
+++ b/lib/libdvbv5/dvb-fe.c
@@ -35,7 +35,7 @@ static void dvb_v5_free(struct dvb_v5_fe_parms *parms)
free(parms);
 }
 
-struct dvb_v5_fe_parms dummy_fe;
+static struct dvb_v5_fe_parms dummy_fe;
 struct dvb_v5_fe_parms *dvb_fe_dummy()
 {
dummy_fe.logfunc = dvb_default_log;
-- 
2.1.0

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/5] libdvbv5: Rename and hide charset definitions

2014-08-23 Thread Gregor Jasny
Signed-off-by: Gregor Jasny gja...@googlemail.com
---
 lib/include/libdvbv5/descriptors.h | 2 --
 lib/libdvbv5/descriptors.c | 3 ---
 lib/libdvbv5/descriptors/desc_event_extended.c | 2 +-
 lib/libdvbv5/descriptors/desc_event_short.c| 4 ++--
 lib/libdvbv5/descriptors/desc_network_name.c   | 2 +-
 lib/libdvbv5/descriptors/desc_service.c| 4 ++--
 lib/libdvbv5/descriptors/desc_ts_info.c| 2 +-
 lib/libdvbv5/parse_string.c| 3 +++
 lib/libdvbv5/parse_string.h| 3 +++
 lib/libdvbv5/tables/vct.c  | 2 +-
 10 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/lib/include/libdvbv5/descriptors.h 
b/lib/include/libdvbv5/descriptors.h
index 88b8ad2..47738d8 100644
--- a/lib/include/libdvbv5/descriptors.h
+++ b/lib/include/libdvbv5/descriptors.h
@@ -38,8 +38,6 @@ struct dvb_v5_fe_parms;
 typedef void (*dvb_table_init_func)(struct dvb_v5_fe_parms *parms, const 
uint8_t *buf, ssize_t buflen, void **table);
 
 extern const dvb_table_init_func dvb_table_initializers[256];
-extern char *default_charset;
-extern char *output_charset;
 
 #define bswap16(b) do {\
b = ntohs(b); \
diff --git a/lib/libdvbv5/descriptors.c b/lib/libdvbv5/descriptors.c
index 5f61332..8e7ebb1 100644
--- a/lib/libdvbv5/descriptors.c
+++ b/lib/libdvbv5/descriptors.c
@@ -96,9 +96,6 @@ const dvb_table_init_func dvb_table_initializers[256] = {
[ATSC_TABLE_CVCT]= TABLE_INIT(atsc_table_vct),
 };
 
-char *default_charset = iso-8859-1;
-char *output_charset = utf-8;
-
 int dvb_desc_parse(struct dvb_v5_fe_parms *parms, const uint8_t *buf,
   uint16_t buflen, struct dvb_desc **head_desc)
 {
diff --git a/lib/libdvbv5/descriptors/desc_event_extended.c 
b/lib/libdvbv5/descriptors/desc_event_extended.c
index 6af38f2..71e747a 100644
--- a/lib/libdvbv5/descriptors/desc_event_extended.c
+++ b/lib/libdvbv5/descriptors/desc_event_extended.c
@@ -59,7 +59,7 @@ int dvb_desc_event_extended_init(struct dvb_v5_fe_parms 
*parms, const uint8_t *b
len = *buf;
len1 = len;
buf++;
-   parse_string(parms, event-text, event-text_emph, buf, len1, 
default_charset, output_charset);
+   parse_string(parms, event-text, event-text_emph, buf, len1, 
dvb_default_charset, dvb_output_charset);
buf += len;
return 0;
 }
diff --git a/lib/libdvbv5/descriptors/desc_event_short.c 
b/lib/libdvbv5/descriptors/desc_event_short.c
index adb38fe..9b19269 100644
--- a/lib/libdvbv5/descriptors/desc_event_short.c
+++ b/lib/libdvbv5/descriptors/desc_event_short.c
@@ -42,7 +42,7 @@ int dvb_desc_event_short_init(struct dvb_v5_fe_parms *parms, 
const uint8_t *buf,
len = buf[0];
buf++;
len1 = len;
-   parse_string(parms, event-name, event-name_emph, buf, len1, 
default_charset, output_charset);
+   parse_string(parms, event-name, event-name_emph, buf, len1, 
dvb_default_charset, dvb_output_charset);
buf += len;
 
event-text = NULL;
@@ -50,7 +50,7 @@ int dvb_desc_event_short_init(struct dvb_v5_fe_parms *parms, 
const uint8_t *buf,
len = buf[0];
len2 = len;
buf++;
-   parse_string(parms, event-text, event-text_emph, buf, len2, 
default_charset, output_charset);
+   parse_string(parms, event-text, event-text_emph, buf, len2, 
dvb_default_charset, dvb_output_charset);
buf += len;
return 0;
 }
diff --git a/lib/libdvbv5/descriptors/desc_network_name.c 
b/lib/libdvbv5/descriptors/desc_network_name.c
index a34a27f..17cdbd4 100644
--- a/lib/libdvbv5/descriptors/desc_network_name.c
+++ b/lib/libdvbv5/descriptors/desc_network_name.c
@@ -33,7 +33,7 @@ int dvb_desc_network_name_init(struct dvb_v5_fe_parms *parms, 
const uint8_t *buf
len1 = len;
net-network_name = NULL;
net-network_name_emph = NULL;
-   parse_string(parms, net-network_name, net-network_name_emph, buf, 
len1, default_charset, output_charset);
+   parse_string(parms, net-network_name, net-network_name_emph, buf, 
len1, dvb_default_charset, dvb_output_charset);
buf += len;
return 0;
 }
diff --git a/lib/libdvbv5/descriptors/desc_service.c 
b/lib/libdvbv5/descriptors/desc_service.c
index 069317a..6858c32 100644
--- a/lib/libdvbv5/descriptors/desc_service.c
+++ b/lib/libdvbv5/descriptors/desc_service.c
@@ -37,7 +37,7 @@ int dvb_desc_service_init(struct dvb_v5_fe_parms *parms, 
const uint8_t *buf, str
len = buf[0];
buf++;
len1 = len;
-   parse_string(parms, service-provider, service-provider_emph, buf, 
len1, default_charset, output_charset);
+   parse_string(parms, service-provider, service-provider_emph, buf, 
len1, dvb_default_charset, dvb_output_charset);
buf += len;
 
service-name = NULL;
@@ -45,7 +45,7 @@ int dvb_desc_service_init(struct dvb_v5_fe_parms *parms, 
const uint8_t *buf, str
len = buf[0];
len2 = len;
buf++;
-   

Re: [PATCHv2] videobuf2-core: take mmap_sem before calling __qbuf_userptr

2014-08-23 Thread Laurent Pinchart
Hi Hans,

Thank you for the patch.

On Friday 22 August 2014 23:31:31 Hans Verkuil wrote:
 (Changes since v1: fix the embarrassing bug where mmap_sem wasn't
 initialized)
 
 Commit f035eb4e976ef5a059e30bc91cfd310ff030a7d3 (videobuf2: fix lockdep
 warning) unfortunately removed the mmap_sem lock that is needed around the
 call to __qbuf_userptr. Amazingly nobody noticed this (especially me as the
 author) until Jan Kara pointed this out to me.
 
 Signed-off-by: Hans Verkuil hans.verk...@cisco.com
 Reported-by: Jan Kara j...@suse.cz

Acked-by: Laurent Pinchart laurent.pinch...@ideasonboard.com

but please see below for one small comment.

 ---
  drivers/media/v4l2-core/videobuf2-core.c | 4 
  1 file changed, 4 insertions(+)
 
 diff --git a/drivers/media/v4l2-core/videobuf2-core.c
 b/drivers/media/v4l2-core/videobuf2-core.c index 5b808e2..a0ab6af 100644
 --- a/drivers/media/v4l2-core/videobuf2-core.c
 +++ b/drivers/media/v4l2-core/videobuf2-core.c
 @@ -1591,6 +1591,7 @@ static void __enqueue_in_driver(struct vb2_buffer *vb)
 static int __buf_prepare(struct vb2_buffer *vb, const struct v4l2_buffer
 *b) {
   struct vb2_queue *q = vb-vb2_queue;
 + struct rw_semaphore *mmap_sem;

Do we really need the local variable ?

   int ret;
 
   ret = __verify_length(vb, b);
 @@ -1627,7 +1628,10 @@ static int __buf_prepare(struct vb2_buffer *vb, const
 struct v4l2_buffer *b) ret = __qbuf_mmap(vb, b);
   break;
   case V4L2_MEMORY_USERPTR:
 + mmap_sem = current-mm-mmap_sem;
 + down_read(mmap_sem);
   ret = __qbuf_userptr(vb, b);
 + up_read(mmap_sem);
   break;
   case V4L2_MEMORY_DMABUF:
   ret = __qbuf_dmabuf(vb, b);

-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/5] Digital Devices PCIe bridge update to 0.9.15a

2014-08-23 Thread Bjoern
Ok, got it. I just thought it was replacing the current driver with the
new one - and that seemed to be it. Didn't know there was such a lot of
work left before it's merged :o

Sorry and good luck!

-Bjoern


On Sa, 2014-08-23 at 17:05 +0300, Antti Palosaari wrote:
 Moikka
 That patchset is simply far away from merge. Tons of issues to be fixed. 
 It is huge amount of work to get that all in. I could estimate one month 
 full time work even my experience is not enough. And I simply don't want 
 to waste that much money from my pockets, it is many thousand euros. So 
 I do it, if I do, on my schedule.
 
 There is many separate issues which needs to be done. It is not 
 something one people should do all. For example mainlining that 
 DVB-T/T2/C/C2 demod driver. Another thing is DVB-C2 API, which is not 
 much coding, but a lot of specification. You need to read and 
 *understand* DVB-C2 spec and on some level other specs (mostly DVB-T2) 
 in order to add missing pieces correctly to DVB API. If you are not 
 coder, start here.
 
 
 Antti
 
 
 
 On 08/23/2014 02:50 PM, Bjoern wrote:
  Hi all,
 
  It's been 3 weeks since these patches were submitted - have they been
  merged yet? If not - what's the problem? Who has to check this?
 
  I'm not the only one longing for driver updated support of ddbridge by
  default, and it would really be nice if there was some progress here.
  Antti did a lot of work here for all us ddbridge users.
 
  Regards,
  Bjoern
 
  On Sa, 2014-08-02 at 06:48 +0300, Antti Palosaari wrote:
  After cold power-on, my device wasn't able to find DuoFlex C/C2/T/T2
  Expansion card, which I added yesterday. I looked old and new drivers
  and tried many things, but no success. Old kernel driver was ages,
  many years, behind manufacturer current Linux driver and there has
  been a tons of changes. So I ended up upgrading Linux kernel driver
  to 0.9.15a (it was 0.5).
 
  Now it is very near Digital Devices official driver, only modulator
  and network streaming stuff is removed and CI is abusing SEC like
  earlier also.
 
  Few device models are not supported due to missing kernel driver or
  missing device profile. Those devices are based of following DTV
  frontend chipsets:
  MaxLinear MxL5xx
  STMicroelectronics STV0910
  STMicroelectronics STV0367
 
 
  Tree for testing is here:
  http://git.linuxtv.org/cgit.cgi/anttip/media_tree.git/log/?h=digitaldevices
 
  regards
  Antti
 
 
  Antti Palosaari (5):
 cxd2843: do not call get_if_frequency() when it is NULL
 ddbridge: disable driver building
 ddbridge: remove driver temporarily
 ddbridge: add needed files from manufacturer driver 0.9.15a
 ddbridge: clean up driver for release
 
drivers/media/dvb-frontends/cxd2843.c  |3 +-
drivers/media/pci/ddbridge/Makefile|2 -
drivers/media/pci/ddbridge/ddbridge-core.c | 3175 
  +++-
drivers/media/pci/ddbridge/ddbridge-i2c.c  |  232 ++
drivers/media/pci/ddbridge/ddbridge-regs.h |  347 ++-
drivers/media/pci/ddbridge/ddbridge.c  |  456 
drivers/media/pci/ddbridge/ddbridge.h  |  407 +++-
7 files changed, 3518 insertions(+), 1104 deletions(-)
create mode 100644 drivers/media/pci/ddbridge/ddbridge-i2c.c
create mode 100644 drivers/media/pci/ddbridge/ddbridge.c
 
 
 
 


--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


cron job: media_tree daily build: ERRORS

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

Results of the daily build of media_tree:

date:   Sun Aug 24 04:00:16 CEST 2014
git branch: test
git hash:   b250392f7b5062cf026b1423e27265e278fd6b30
gcc version:i686-linux-gcc (GCC) 4.9.1
sparse version: v0.5.0-20-g7abd8a7
host hardware:  x86_64
host os:3.16-0.slh.2-amd64

linux-git-arm-at91: ERRORS
linux-git-arm-davinci: ERRORS
linux-git-arm-exynos: ERRORS
linux-git-arm-mx: ERRORS
linux-git-arm-omap: ERRORS
linux-git-arm-omap1: ERRORS
linux-git-arm-pxa: ERRORS
linux-git-blackfin: ERRORS
linux-git-i686: OK
linux-git-m32r: OK
linux-git-mips: ERRORS
linux-git-powerpc64: OK
linux-git-sh: ERRORS
linux-git-x86_64: OK
linux-2.6.32.27-i686: ERRORS
linux-2.6.33.7-i686: ERRORS
linux-2.6.34.7-i686: ERRORS
linux-2.6.35.9-i686: ERRORS
linux-2.6.36.4-i686: ERRORS
linux-2.6.37.6-i686: ERRORS
linux-2.6.38.8-i686: ERRORS
linux-2.6.39.4-i686: ERRORS
linux-3.0.60-i686: ERRORS
linux-3.1.10-i686: ERRORS
linux-3.2.37-i686: ERRORS
linux-3.3.8-i686: ERRORS
linux-3.4.27-i686: ERRORS
linux-3.5.7-i686: ERRORS
linux-3.6.11-i686: ERRORS
linux-3.7.4-i686: ERRORS
linux-3.8-i686: ERRORS
linux-3.9.2-i686: ERRORS
linux-3.10.1-i686: ERRORS
linux-3.11.1-i686: ERRORS
linux-3.12.23-i686: ERRORS
linux-3.13.11-i686: ERRORS
linux-3.14.9-i686: ERRORS
linux-3.15.2-i686: ERRORS
linux-3.16-i686: ERRORS
linux-2.6.32.27-x86_64: ERRORS
linux-2.6.33.7-x86_64: ERRORS
linux-2.6.34.7-x86_64: ERRORS
linux-2.6.35.9-x86_64: ERRORS
linux-2.6.36.4-x86_64: ERRORS
linux-2.6.37.6-x86_64: ERRORS
linux-2.6.38.8-x86_64: ERRORS
linux-2.6.39.4-x86_64: ERRORS
linux-3.0.60-x86_64: ERRORS
linux-3.1.10-x86_64: ERRORS
linux-3.2.37-x86_64: ERRORS
linux-3.3.8-x86_64: ERRORS
linux-3.4.27-x86_64: ERRORS
linux-3.5.7-x86_64: ERRORS
linux-3.6.11-x86_64: ERRORS
linux-3.7.4-x86_64: ERRORS
linux-3.8-x86_64: ERRORS
linux-3.9.2-x86_64: ERRORS
linux-3.10.1-x86_64: ERRORS
linux-3.11.1-x86_64: ERRORS
linux-3.12.23-x86_64: ERRORS
linux-3.13.11-x86_64: ERRORS
linux-3.14.9-x86_64: ERRORS
linux-3.15.2-x86_64: ERRORS
linux-3.16-x86_64: ERRORS
apps: WARNINGS
spec-git: OK
sparse: WARNINGS

Detailed results are available here:

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

Full logs are available here:

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