I AM WAITING URGENT FOR YOUR RESPOND

2015-04-02 Thread mr.fabian dube
HELLO
I work with a bank In West Africa , Burkina Faso . I have a business
transaction for you. In my department we discovered an abandoned sum
of$10.5 Million US Dollars .In an account that belongs to one of our
foreign customer who died along with his entire family in car bomb in
Iraq .
Since his supposed next of kin died along side with him at the Bomb
blast, there is nobody to claim the left overbalance in the account.
It is therefore upon this discovery that I decided to seek your
assistance and present you to the bank as his Next of kin.

 If you accept i would give you the guide lines on how we can achieve
this transfer of the balance (10.5Million Dollars)to your account. And
we will shear the money 50-50%. I expect that you will give me your
telephone and fax numbers for easy   communication with you and for
more details. Kindly reply to me  through this my private email
mrfabian.d...@yahoo.com
Then for more information you can cell me on this my private phone
number bellow thanks
Best Regards
Mr. Fabian Dube
Tell. +226 68525346
I AM WAITING URGENT FOR YOUR RESPOND
--
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/RFC v13 04/13] DT: Add documentation for the mfd Maxim max77693

2015-04-02 Thread Lee Jones
On Thu, 02 Apr 2015, Pavel Machek wrote:

 On Mon 2015-03-23 15:59:37, Lee Jones wrote:
  On Mon, 23 Mar 2015, Pavel Machek wrote:
  
   On Mon 2015-03-23 15:02:13, Lee Jones wrote:
On Mon, 23 Mar 2015, Pavel Machek wrote:
 On Mon 2015-03-23 12:07:43, Lee Jones wrote:
  This patch requires a DT Ack.
 
 No, it requires DT people to be notified -- and they were, few times
 by now.
 
 They clearly don't care.

Well fortunately for the Kernel community, I do care.  And as this
patch adds 3 new DT properties, has been through many iterations
already with vast changes made over that period and there is still
some controversy looming, I'm saying that it _does_ require a DT
Ack.
   
   Can you help get that ack, then? As a maintainer, you have better
   chance getting reply from DT people than patch submitter.
  
  Hopefully they will see my plea a couple of replies back.
  
  If that fails I'll go poke them via other means.  Failing that I'll go
  see them in person and continually hit them with wet fish until one of
  them relents.
 
 Can I request footage of the last steps on the youtube?

Too late, it's been and gone.

 (IOW ping, I don't think I seen any replies from DT maintainers...)

Then you haven't been looking the right place [1]. ;)

[1] http://comments.gmane.org/gmane.linux.leds/2245

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
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] fc0013: remove unneeded test

2015-04-02 Thread Laurent Navet
The same code is executed if ret is true or false, so this test can
be removed.
Fix Coverity CID 1268782.

Signed-off-by: Laurent Navet laurent.na...@gmail.com
---
 drivers/media/tuners/fc0013.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/media/tuners/fc0013.c b/drivers/media/tuners/fc0013.c
index b416231..522690d 100644
--- a/drivers/media/tuners/fc0013.c
+++ b/drivers/media/tuners/fc0013.c
@@ -217,8 +217,6 @@ static int fc0013_set_vhf_track(struct fc0013_priv *priv, 
u32 freq)
} else {/* UHF and GPS */
ret = fc0013_writereg(priv, 0x1d, tmp | 0x1c);
}
-   if (ret)
-   goto error_out;
 error_out:
return ret;
 }
-- 
2.1.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:master 534/537] drivers/media/i2c/soc_camera/ov2640.c:1057:3: error: implicit declaration of function 'gpiod_direction_output'

2015-04-02 Thread kbuild test robot
tree:   git://linuxtv.org/media_tree.git master
head:   739cfd9be9af6bbbe4c652077add59409adf2225
commit: 4e65172f7bd20fcbfa87453d1e5711ad129d4216 [534/537] [media] media: 
ov2640: add primary dt support
config: m68k-allmodconfig (attached as .config)
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 4e65172f7bd20fcbfa87453d1e5711ad129d4216
  # save the attached .config to linux build tree
  make.cross ARCH=m68k 

All error/warnings:

   drivers/media/i2c/soc_camera/ov2640.c: In function 'ov2640_hw_power':
 drivers/media/i2c/soc_camera/ov2640.c:1057:3: error: implicit declaration of 
 function 'gpiod_direction_output' [-Werror=implicit-function-declaration]
  gpiod_direction_output(priv-pwdn_gpio, !on);
  ^
   drivers/media/i2c/soc_camera/ov2640.c: In function 'ov2640_probe_dt':
 drivers/media/i2c/soc_camera/ov2640.c:1081:2: error: implicit declaration of 
 function 'devm_gpiod_get_optional' [-Werror=implicit-function-declaration]
 priv-resetb_gpio = devm_gpiod_get_optional(client-dev, resetb,
 ^
 drivers/media/i2c/soc_camera/ov2640.c:1082:4: error: 'GPIOD_OUT_LOW' 
 undeclared (first use in this function)
   GPIOD_OUT_LOW);
   ^
   drivers/media/i2c/soc_camera/ov2640.c:1082:4: note: each undeclared 
identifier is reported only once for each function it appears in
 drivers/media/i2c/soc_camera/ov2640.c:1090:4: error: 'GPIOD_OUT_HIGH' 
 undeclared (first use in this function)
   GPIOD_OUT_HIGH);
   ^
   cc1: some warnings being treated as errors

vim +/gpiod_direction_output +1057 drivers/media/i2c/soc_camera/ov2640.c

  1051  struct ov2640_priv *priv = to_ov2640(client);
  1052  
  1053  dev_dbg(client-dev, %s: %s the camera\n,
  1054  __func__, on ? ENABLE : DISABLE);
  1055  
  1056  if (priv-pwdn_gpio)
 1057  gpiod_direction_output(priv-pwdn_gpio, !on);
  1058  
  1059  return 0;
  1060  }
  1061  
  1062  static int ov2640_hw_reset(struct device *dev)
  1063  {
  1064  struct i2c_client *client = to_i2c_client(dev);
  1065  struct ov2640_priv *priv = to_ov2640(client);
  1066  
  1067  if (priv-resetb_gpio) {
  1068  /* Active the resetb pin to perform a reset pulse */
  1069  gpiod_direction_output(priv-resetb_gpio, 1);
  1070  usleep_range(3000, 5000);
  1071  gpiod_direction_output(priv-resetb_gpio, 0);
  1072  }
  1073  
  1074  return 0;
  1075  }
  1076  
  1077  static int ov2640_probe_dt(struct i2c_client *client,
  1078  struct ov2640_priv *priv)
  1079  {
  1080  /* Request the reset GPIO deasserted */
 1081  priv-resetb_gpio = devm_gpiod_get_optional(client-dev, 
 resetb,
 1082  GPIOD_OUT_LOW);
  1083  if (!priv-resetb_gpio)
  1084  dev_dbg(client-dev, resetb gpio is not assigned!\n);
  1085  else if (IS_ERR(priv-resetb_gpio))
  1086  return PTR_ERR(priv-resetb_gpio);
  1087  
  1088  /* Request the power down GPIO asserted */
  1089  priv-pwdn_gpio = devm_gpiod_get_optional(client-dev, pwdn,
 1090  GPIOD_OUT_HIGH);
  1091  if (!priv-pwdn_gpio)
  1092  dev_dbg(client-dev, pwdn gpio is not assigned!\n);
  1093  else if (IS_ERR(priv-pwdn_gpio))

---
0-DAY kernel test infrastructureOpen Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild Intel Corporation
#
# Automatically generated file; DO NOT EDIT.
# Linux/m68k 4.0.0-rc1 Kernel Configuration
#
CONFIG_M68K=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_TIME_LOW_RES=y
CONFIG_NO_IOPORT_MAP=y
# CONFIG_NO_DMA is not set
CONFIG_ZONE_DMA=y
CONFIG_HZ=100
CONFIG_DEFCONFIG_LIST=/lib/modules/$UNAME_RELEASE/.config
CONFIG_CONSTRUCTORS=y
CONFIG_IRQ_WORK=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=y
CONFIG_DEFAULT_HOSTNAME=(none)
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_FHANDLE=y
CONFIG_USELIB=y
CONFIG_AUDIT=y

#
# IRQ subsystem
#
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_DEBUG=y
CONFIG_ARCH_USES_GETTIMEOFFSET=y

#
# CPU/Task time and stats accounting
#
CONFIG_TICK_CPU_ACCOUNTING=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y

#
# RCU Subsystem
#
CONFIG_TINY_RCU=y
CONFIG_SRCU=y
CONFIG_TASKS_RCU=y
CONFIG_RCU_STALL_COMMON=y
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_RCU_KTHREAD_PRIO=0
CONFIG_BUILD_BIN2C=y
CONFIG_IKCONFIG=m

Re: [GIT PULL FOR v4.1] Xilinx video pipeline drivers

2015-04-02 Thread Mauro Carvalho Chehab
Hi Laurent,

Em Wed, 11 Mar 2015 22:47:37 +0200
Laurent Pinchart laurent.pinch...@ideasonboard.com escreveu:

 Hi Mauro,
 
 The following changes since commit ae3da40179c66001afad608f972bdb57d50d1e66:
 
   v4l2-subdev: remove enum_framesizes/intervals (2015-03-06 10:01:44 +0100)
 
 are available in the git repository at:
 
   git://linuxtv.org/pinchartl/media.git xilinx
 
 for you to fetch changes up to 5fc7561dba773afd95169aba32f53a01facaf22a:
 
   v4l: xilinx: Add Test Pattern Generator driver (2015-03-11 22:43:48 +0200)
 
 Please note that the series depends and is based on Hans' for-v4.1g branch 
 for 
 which he has sent a pull request.

This didn't merge ok. Not sure if for-v4.1g branch was merged or not, but
I merged already all pending requests from Hans, leaving this one to the
end.

Could you please check if what you need is already there and rebase your
work?

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: [GIT PULL FOR v4.1] Xilinx video pipeline drivers

2015-04-02 Thread Laurent Pinchart
Hi Mauro,

On Friday 03 April 2015 00:15:22 Mauro Carvalho Chehab wrote:
 Em Wed, 11 Mar 2015 22:47:37 +0200 Laurent Pinchart escreveu:
  Hi Mauro,
  
  The following changes since commit 
ae3da40179c66001afad608f972bdb57d50d1e66:
v4l2-subdev: remove enum_framesizes/intervals (2015-03-06 10:01:44
+0100)
  
  are available in the git repository at:
git://linuxtv.org/pinchartl/media.git xilinx
  
  for you to fetch changes up to 5fc7561dba773afd95169aba32f53a01facaf22a:
v4l: xilinx: Add Test Pattern Generator driver (2015-03-11 22:43:48
+0200)
  
  Please note that the series depends and is based on Hans' for-v4.1g branch
  for which he has sent a pull request.
 
 This didn't merge ok. Not sure if for-v4.1g branch was merged or not, but
 I merged already all pending requests from Hans, leaving this one to the
 end.

Weird. I've rebased my branch on top of linuxtv master and got no conflict.

 Could you please check if what you need is already there and rebase your
 work?

Done, and pushed to

git://linuxtv.org/pinchartl/media.git xilinx

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


cron job: media_tree daily build: ERRORS

2015-04-02 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:   Fri Apr  3 04:00:20 CEST 2015
git branch: test
git hash:   b3226f961aa91eb94971939400c7506e7dcc86c0
gcc version:i686-linux-gcc (GCC) 4.9.1
sparse version: v0.5.0-44-g40791b9
smatch version: 0.4.1-3153-g7d56ab3
host hardware:  x86_64
host os:3.19.0-1.slh.1-amd64

linux-git-arm-at91: ERRORS
linux-git-arm-davinci: OK
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: OK
linux-git-i686: WARNINGS
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.7-i686: ERRORS
linux-3.17.8-i686: ERRORS
linux-3.18.7-i686: ERRORS
linux-3.19-i686: ERRORS
linux-4.0-rc1-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.7-x86_64: ERRORS
linux-3.17.8-x86_64: ERRORS
linux-3.18.7-x86_64: ERRORS
linux-3.19-x86_64: OK
linux-4.0-rc1-x86_64: OK
apps: OK
spec-git: OK
sparse: ERRORS
ABI WARNING: change for arm-at91
ABI WARNING: change for arm-exynos
ABI WARNING: change for arm-mx
ABI WARNING: change for arm-omap
ABI WARNING: change for arm-omap1
ABI WARNING: change for arm-pxa
ABI WARNING: change for mips
smatch: ERRORS

Detailed results are available here:

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

Full logs are available here:

http://www.xs4all.nl/~hverkuil/logs/Friday.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: [RFC PATCH] ir: add tools for receiving and sending ir

2015-04-02 Thread David Härdeman
On Thu, Mar 19, 2015 at 09:51:08PM +, Sean Young wrote:
Provide simple tools for displaying raw IR and received scancodes, and
sending them.

Todo:
 - ir-rec cannot enable protocol decoders
 - ir-send should accept scancode on commandline
 - long options


Didn't look at it in detail, but I noticed one thing...copyright headers
like this:

+/*
+ Copyright (C) 2015 Sean Young s...@mess.org
+ */

Really should specify the license.

--
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: [RFC PATCH 0/6] Send and receive decoded IR using lirc interface

2015-04-02 Thread David Härdeman
On Wed, Apr 01, 2015 at 08:10:16PM -0300, Mauro Carvalho Chehab wrote:
Em Thu, 02 Apr 2015 00:19:41 +0200
David Härdeman da...@hardeman.nu escreveu:
 On Tue, Mar 31, 2015 at 08:47:16PM -0300, Mauro Carvalho Chehab wrote:
 Em Mon, 30 Mar 2015 23:18:19 +0200
 David Härdeman da...@hardeman.nu escreveu:
  On Thu, Mar 19, 2015 at 09:50:11PM +, Sean Young wrote:
  Second, if we expose protocol type (which we should, not doing so is
  throwing away valuable information) we should tackle the NEC scancode
  question. I've already explained my firm conviction that always
  reporting NEC as a 32 bit scancode is the only sane thing to do. Mauro
  is of the opinion that NEC16/24/32 should be essentially different
  protocols.
 
 Changing NEC would break userspace, as existing tables won't work.
 So, no matter what I think, changing it won't happen as we're not
 allowed to break userspace.
 
 I have no idea what breakage you're talking about. Sean's patches would
 introduce new API, so they can't break anything. 

Sure, but changing RX would break, and using 32 bits just for TX,
while keeping 16/24/32 for RX would be too messy.

Well...why would RX break?

I'm still not sure what you're referring to when you mention RX, the
only thing I can think of is keytables...

 My patch series also
 introduced a new API for setting/getting keytable entries (with
 heuristics for the old ways to convert NEC scancodes on the fly) so it
 should (hopefully) not break anything.

I sent a review of your patch series a long time ago. Didn't receive
any answer to my review from you yet. Yet, let's not mix the subjects.
If you want to discuss that, please reply to the old thread and submit
your work on small chunks, after the approach is agreed.

The old thread suggested I should start an RFC round for the new rc
device. The new API for setting/getting keytable entries with explicit
protocol information is orthogonal to that. I'll re-post those two
patches shortly so we have something tangible to discuss.

 (and yes, I think NEC16 is *the* NEC protocol; the other are just
 variants made by some vendors to fill their needs)

Oh, and I forgot to add. I've used NEC branded remote controls which
were not using NEC16 (IIRC, they used NEC24).

 We are talking about the protocol used to communicate what has been
 received/should be sent between userspace and the kernel. Simply passing
 the 32 bits that have been sent/received is the simplest, most
 straightfoward way to go.

Yes, it would be simpler. That doesn't mean that it is technically
correct. Yet, you could argue that passing 48 bits would be even
simpler, due to NEC/48 (or 64 bits, if one would ever propose a
nec-64 variant).

That's a strawman...a different transmission length calls for a separate
protocol id, otherwise you don't know what has been received (was it
0x0004, 0x04, 0x0004, etc...)

Ok, NEC/16/24/32 always send 32 bits at the same way, while other
longer variants would actually change the payload size, while
16/24/32 is just a change of the bytes meaning at the payload.
Yet, they're different.

In much the same way as private or public IP addresses are different,
yet any sane API just reports the 32 bit address and lets the userspace
application worry about how it should be presented.

  Third, we should still have a way to represent the protocol in the
  keymap as well.
 
 Not sure about that, but this is a different matter. 
 
 Yes, it's a different matter. And what is there to be unsure about? Not
 having the protocol as part of the keymap means throwing away
 information...

The internal representation at kernelspace can always be changed.

If you're instead referring to some specific problem with the userspace
to kernelspace TX API, then please point to the specific patch for the
actual implementation, instead of discussing it in an abstract way.

I'll post two patches. Let's discuss them.


-- 
David Härdeman
--
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] rc-core: use the full 32 bits for NEC scancodes

2015-04-02 Thread David Härdeman
Using the full 32 bits for all kinds of NEC scancodes simplifies rc-core
and the nec decoder without any loss of functionality. At the same time
it ensures that scancodes for NEC16/NEC24/NEC32 do not overlap and
removes any ambiguity.

For example, before this patch, consider these two NEC messages:
NEC16 message to address 0x05, command 0x03
NEC24 message to address 0x0005, command 0x03

They'll both have scancode 0x0503, and there's no way to tell which
message was received.

In order to maintain backwards compatibility, some heuristics are added
in rc-main.c to convert scancodes to NEC32 as necessary when userspace
adds entries to the keytable using the regular input ioctls.

No conversion will be made for the newer rc_keymap_entry based ioctls
(see the next patch).

Signed-off-by: David Härdeman da...@hardeman.nu
---
 drivers/media/rc/ir-nec-decoder.c|   26 ++
 drivers/media/rc/rc-main.c   |   54 +-
 drivers/media/usb/dvb-usb-v2/af9015.c|   22 ++--
 drivers/media/usb/dvb-usb-v2/af9035.c|   23 +++--
 drivers/media/usb/dvb-usb-v2/az6007.c|   16 ++---
 drivers/media/usb/dvb-usb-v2/rtl28xxu.c  |   20 +++
 drivers/media/usb/dvb-usb/dib0700_core.c |   24 +++--
 drivers/media/usb/em28xx/em28xx-input.c  |   37 +
 include/media/rc-map.h   |   16 +++--
 9 files changed, 101 insertions(+), 137 deletions(-)

diff --git a/drivers/media/rc/ir-nec-decoder.c 
b/drivers/media/rc/ir-nec-decoder.c
index 7b81fec..16907c1 100644
--- a/drivers/media/rc/ir-nec-decoder.c
+++ b/drivers/media/rc/ir-nec-decoder.c
@@ -50,7 +50,6 @@ static int ir_nec_decode(struct rc_dev *dev, struct 
ir_raw_event ev)
struct nec_dec *data = dev-raw-nec;
u32 scancode;
u8 address, not_address, command, not_command;
-   bool send_32bits = false;
 
if (!(dev-enabled_protocols  RC_BIT_NEC))
return 0;
@@ -163,28 +162,9 @@ static int ir_nec_decode(struct rc_dev *dev, struct 
ir_raw_event ev)
command = bitrev8((data-bits   8)  0xff);
not_command = bitrev8((data-bits   0)  0xff);
 
-   if ((command ^ not_command) != 0xff) {
-   IR_dprintk(1, NEC checksum error: received 0x%08x\n,
-  data-bits);
-   send_32bits = true;
-   }
-
-   if (send_32bits) {
-   /* NEC transport, but modified protocol, used by at
-* least Apple and TiVo remotes */
-   scancode = data-bits;
-   IR_dprintk(1, NEC (modified) scancode 0x%08x\n, 
scancode);
-   } else if ((address ^ not_address) != 0xff) {
-   /* Extended NEC */
-   scancode = address  16 |
-  not_address   8 |
-  command;
-   IR_dprintk(1, NEC (Ext) scancode 0x%06x\n, scancode);
-   } else {
-   /* Normal NEC */
-   scancode = address  8 | command;
-   IR_dprintk(1, NEC scancode 0x%04x\n, scancode);
-   }
+   scancode = RC_SCANCODE_NEC32(address  24 | not_address  16 |
+command  8  | not_command);
+   IR_dprintk(1, NEC scancode 0x%08x\n, scancode);
 
if (data-is_nec_x)
data-necx_repeat = true;
diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c
index d068c4e..40ce504 100644
--- a/drivers/media/rc/rc-main.c
+++ b/drivers/media/rc/rc-main.c
@@ -317,6 +317,49 @@ static unsigned int ir_establish_scancode(struct rc_dev 
*dev,
 }
 
 /**
+ * guess_protocol() - heuristics to guess the protocol for a scancode
+ * @rdev:  the struct rc_dev device descriptor
+ * @return:the guessed RC_TYPE_* protocol
+ *
+ * Internal routine to guess the current IR protocol for legacy ioctls.
+ */
+static inline enum rc_type guess_protocol(struct rc_dev *rdev)
+{
+   struct rc_map *rc_map = rdev-rc_map;
+
+   if (hweight64(rdev-enabled_protocols) == 1)
+   return rc_bitmap_to_type(rdev-enabled_protocols);
+   else if (hweight64(rdev-allowed_protos) == 1)
+   return rc_bitmap_to_type(rdev-allowed_protos);
+   else
+   return rc_map-rc_type;
+}
+
+/**
+ * to_nec32() - helper function to try to convert misc NEC scancodes to NEC32
+ * @orig:  original scancode
+ * @return:NEC32 scancode
+ *
+ * This helper routine is used to provide backwards compatibility.
+ */
+static u64 to_nec32(u64 orig)
+{
+   u8 b3 = (u8)(orig  16);
+   u8 b2 = (u8)(orig   8);
+   u8 b1 = (u8)(orig   0);
+
+   if (orig = 0x)
+   /* Plain old NEC */
+   return b2  24 | ((u8)~b2)  16 |  b1  8 | 

[PATCH 0/2] NEC scancodes and protocols in keymaps

2015-04-02 Thread David Härdeman
The following two patches should show more clearly what I mean by
adding protocols to the keytables (and letting userspace add
keytable entries with explicit protocol information). Consider
it a basis for discussion.

Each patch has a separate description, please refer to those for
more information.

---

David Härdeman (2):
  rc-core: use the full 32 bits for NEC scancodes
  rc-core: don't throw away protocol information


 drivers/media/rc/ati_remote.c|1 
 drivers/media/rc/imon.c  |7 +
 drivers/media/rc/ir-nec-decoder.c|   26 ---
 drivers/media/rc/rc-main.c   |  233 --
 drivers/media/usb/dvb-usb-v2/af9015.c|   22 +--
 drivers/media/usb/dvb-usb-v2/af9035.c|   23 +--
 drivers/media/usb/dvb-usb-v2/az6007.c|   16 +-
 drivers/media/usb/dvb-usb-v2/rtl28xxu.c  |   20 +--
 drivers/media/usb/dvb-usb/dib0700_core.c |   24 +--
 drivers/media/usb/em28xx/em28xx-input.c  |   37 +
 include/media/rc-core.h  |   26 +++
 include/media/rc-map.h   |   23 ++-
 12 files changed, 264 insertions(+), 194 deletions(-)

--
David Härdeman
--
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] rc-core: don't throw away protocol information

2015-04-02 Thread David Härdeman
It is currently impossible to distinguish between scancodes which have
been generated using different protocols (and scancodes can, and will,
overlap).

For example:
RC5 message to address 0x00, command 0x03 has scancode 0x0503
JVC message to address 0x00, command 0x03 has scancode 0x0503

It is only possible to distinguish (and parse) scancodes by known the
scancode *and* the protocol.

Setting and getting keycodes in the input subsystem used to be done via
the EVIOC[GS]KEYCODE ioctl and unsigned int[2] (one int for scancode
and one for the keycode).

The interface has now been extended to use the EVIOC[GS]KEYCODE_V2 ioctl
which uses the following struct:

struct input_keymap_entry {
__u8  flags;
__u8  len;
__u16 index;
__u32 keycode;
__u8  scancode[32];
};

(scancode can of course be even bigger, thanks to the len member).

This patch changes how the input_keymap_entry struct is interpreted
by rc-core by casting it to rc_keymap_entry:

struct rc_scancode {
__u16 protocol;
__u16 reserved[3];
__u64 scancode;
}

struct rc_keymap_entry {
__u8  flags;
__u8  len;
__u16 index;
__u32 keycode;
union {
struct rc_scancode rc;
__u8 raw[32];
};
};

The u64 scancode member is large enough for all current protocols and it
would be possible to extend it in the future should it be necessary for
some exotic protocol.

The main advantage with this change is that the protocol is made explicit,
which means that we're not throwing away data (the protocol type).

This also means that struct rc_map no longer hardcodes the protocol, meaning
that keytables with mixed entries are possible.

Heuristics are also added to hopefully do the right thing with older
ioctls in order to preserve backwards compatibility.

Signed-off-by: David Härdeman da...@hardeman.nu
---
 drivers/media/rc/ati_remote.c |1 
 drivers/media/rc/imon.c   |7 +
 drivers/media/rc/rc-main.c|  195 +
 include/media/rc-core.h   |   26 +
 include/media/rc-map.h|7 +
 5 files changed, 171 insertions(+), 65 deletions(-)

diff --git a/drivers/media/rc/ati_remote.c b/drivers/media/rc/ati_remote.c
index a356318..a1df608 100644
--- a/drivers/media/rc/ati_remote.c
+++ b/drivers/media/rc/ati_remote.c
@@ -544,6 +544,7 @@ static void ati_remote_input_report(struct urb *urb)
 * set, assume this is a scrollwheel up/down event.
 */
wheel_keycode = rc_g_keycode_from_table(ati_remote-rdev,
+   RC_TYPE_OTHER,
scancode  0x78);
 
if (wheel_keycode == KEY_RESERVED) {
diff --git a/drivers/media/rc/imon.c b/drivers/media/rc/imon.c
index 65f80b8..ec4414a 100644
--- a/drivers/media/rc/imon.c
+++ b/drivers/media/rc/imon.c
@@ -1263,14 +1263,15 @@ static u32 imon_remote_key_lookup(struct imon_context 
*ictx, u32 scancode)
bool is_release_code = false;
 
/* Look for the initial press of a button */
-   keycode = rc_g_keycode_from_table(ictx-rdev, scancode);
+   keycode = rc_g_keycode_from_table(ictx-rdev, ictx-rc_type, scancode);
ictx-rc_toggle = 0x0;
ictx-rc_scancode = scancode;
 
/* Look for the release of a button */
if (keycode == KEY_RESERVED) {
release = scancode  ~0x4000;
-   keycode = rc_g_keycode_from_table(ictx-rdev, release);
+   keycode = rc_g_keycode_from_table(ictx-rdev, ictx-rc_type,
+ release);
if (keycode != KEY_RESERVED)
is_release_code = true;
}
@@ -1299,7 +1300,7 @@ static u32 imon_mce_key_lookup(struct imon_context *ictx, 
u32 scancode)
scancode = scancode | MCE_KEY_MASK | MCE_TOGGLE_BIT;
 
ictx-rc_scancode = scancode;
-   keycode = rc_g_keycode_from_table(ictx-rdev, scancode);
+   keycode = rc_g_keycode_from_table(ictx-rdev, ictx-rc_type, scancode);
 
/* not used in mce mode, but make sure we know its false */
ictx-release_code = false;
diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c
index 40ce504..01c9d33 100644
--- a/drivers/media/rc/rc-main.c
+++ b/drivers/media/rc/rc-main.c
@@ -103,7 +103,7 @@ EXPORT_SYMBOL_GPL(rc_map_unregister);
 
 
 static struct rc_map_table empty[] = {
-   { 0x2a, KEY_COFFEE },
+   { RC_TYPE_OTHER, 0x2a, KEY_COFFEE },
 };
 
 static struct rc_map_list empty_map = {
@@ -119,7 +119,6 @@ static struct rc_map_list empty_map = {
  * ir_create_table() - initializes a scancode table
  * @rc_map:the rc_map to initialize
  * @name:  name to assign to the table
- * @rc_type:   ir type to assign to the new table
  * @size:  initial size of the table
  * @return:zero on success or a 

[PATCH] rc-core: use an IDA rather than a bitmap

2015-04-02 Thread David Härdeman
This patch changes rc-core to use the kernel facilities that are already
available for handling unique numbers instead of rolling its own bitmap
stuff.

Stefan, this should apply cleanly to the media git tree...could you test it?
---
 drivers/media/rc/rc-ir-raw.c |2 +-
 drivers/media/rc/rc-main.c   |   40 
 include/media/rc-core.h  |4 ++--
 3 files changed, 23 insertions(+), 23 deletions(-)

diff --git a/drivers/media/rc/rc-ir-raw.c b/drivers/media/rc/rc-ir-raw.c
index b732ac6..ad26052 100644
--- a/drivers/media/rc/rc-ir-raw.c
+++ b/drivers/media/rc/rc-ir-raw.c
@@ -271,7 +271,7 @@ int ir_raw_event_register(struct rc_dev *dev)
 
spin_lock_init(dev-raw-lock);
dev-raw-thread = kthread_run(ir_raw_event_thread, dev-raw,
-  rc%ld, dev-devno);
+  rc%u, dev-minor);
 
if (IS_ERR(dev-raw-thread)) {
rc = PTR_ERR(dev-raw-thread);
diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c
index f8c5e47..d068c4e 100644
--- a/drivers/media/rc/rc-main.c
+++ b/drivers/media/rc/rc-main.c
@@ -18,17 +18,15 @@
 #include linux/input.h
 #include linux/leds.h
 #include linux/slab.h
+#include linux/idr.h
 #include linux/device.h
 #include linux/module.h
 #include rc-core-priv.h
 
-/* Bitmap to store allocated device numbers from 0 to IRRCV_NUM_DEVICES - 1 */
-#define IRRCV_NUM_DEVICES  256
-static DECLARE_BITMAP(ir_core_dev_number, IRRCV_NUM_DEVICES);
-
 /* Sizes are in bytes, 256 bytes allows for 32 entries on x64 */
 #define IR_TAB_MIN_SIZE256
 #define IR_TAB_MAX_SIZE8192
+#define RC_DEV_MAX 256
 
 /* FIXME: IR_KEYPRESS_TIMEOUT should be protocol specific */
 #define IR_KEYPRESS_TIMEOUT 250
@@ -38,6 +36,9 @@ static LIST_HEAD(rc_map_list);
 static DEFINE_SPINLOCK(rc_map_lock);
 static struct led_trigger *led_feedback;
 
+/* Used to keep track of rc devices */
+static DEFINE_IDA(rc_ida);
+
 static struct rc_map_list *seek_rc_map(const char *name)
 {
struct rc_map_list *map = NULL;
@@ -1312,7 +1313,9 @@ int rc_register_device(struct rc_dev *dev)
static bool raw_init = false; /* raw decoders loaded? */
struct rc_map *rc_map;
const char *path;
-   int rc, devno, attr = 0;
+   int attr = 0;
+   int minor;
+   int rc;
 
if (!dev || !dev-map_name)
return -EINVAL;
@@ -1332,13 +1335,13 @@ int rc_register_device(struct rc_dev *dev)
if (dev-close)
dev-input_dev-close = ir_close;
 
-   do {
-   devno = find_first_zero_bit(ir_core_dev_number,
-   IRRCV_NUM_DEVICES);
-   /* No free device slots */
-   if (devno = IRRCV_NUM_DEVICES)
-   return -ENOMEM;
-   } while (test_and_set_bit(devno, ir_core_dev_number));
+   minor = ida_simple_get(rc_ida, 0, RC_DEV_MAX, GFP_KERNEL);
+   if (minor  0)
+   return minor;
+
+   dev-minor = minor;
+   dev_set_name(dev-dev, rc%u, dev-minor);
+   dev_set_drvdata(dev-dev, dev);
 
dev-dev.groups = dev-sysfs_groups;
dev-sysfs_groups[attr++] = rc_dev_protocol_attr_grp;
@@ -1358,9 +1361,6 @@ int rc_register_device(struct rc_dev *dev)
 */
mutex_lock(dev-lock);
 
-   dev-devno = devno;
-   dev_set_name(dev-dev, rc%ld, dev-devno);
-   dev_set_drvdata(dev-dev, dev);
rc = device_add(dev-dev);
if (rc)
goto out_unlock;
@@ -1433,8 +1433,8 @@ int rc_register_device(struct rc_dev *dev)
 
mutex_unlock(dev-lock);
 
-   IR_dprintk(1, Registered rc%ld (driver: %s, remote: %s, mode %s)\n,
-  dev-devno,
+   IR_dprintk(1, Registered rc%u (driver: %s, remote: %s, mode %s)\n,
+  dev-minor,
   dev-driver_name ? dev-driver_name : unknown,
   rc_map-name ? rc_map-name : unknown,
   dev-driver_type == RC_DRIVER_IR_RAW ? raw : cooked);
@@ -1453,7 +1453,7 @@ out_dev:
device_del(dev-dev);
 out_unlock:
mutex_unlock(dev-lock);
-   clear_bit(dev-devno, ir_core_dev_number);
+   ida_simple_remove(rc_ida, minor);
return rc;
 }
 EXPORT_SYMBOL_GPL(rc_register_device);
@@ -1465,8 +1465,6 @@ void rc_unregister_device(struct rc_dev *dev)
 
del_timer_sync(dev-timer_keyup);
 
-   clear_bit(dev-devno, ir_core_dev_number);
-
if (dev-driver_type == RC_DRIVER_IR_RAW)
ir_raw_event_unregister(dev);
 
@@ -1479,6 +1477,8 @@ void rc_unregister_device(struct rc_dev *dev)
 
device_del(dev-dev);
 
+   ida_simple_remove(rc_ida, dev-minor);
+
rc_free_device(dev);
 }
 
diff --git a/include/media/rc-core.h b/include/media/rc-core.h
index 2c7fbca..6b4400c 100644
--- a/include/media/rc-core.h
+++ b/include/media/rc-core.h
@@ -69,7 +69,7 @@ enum rc_filter_type {
  * @rc_map: current scan/key 

[PATCH 1/3] cx18: add support for control events

2015-04-02 Thread Hans Verkuil
From: Hans Verkuil hans.verk...@cisco.com

v4l2-compliance failed due to missing control event support in cx18.
Add this to the driver.

Signed-off-by: Hans Verkuil hans.verk...@cisco.com
Cc: Andy Walls awa...@md.metrocast.net
---
 drivers/media/pci/cx18/cx18-fileops.c | 25 +
 drivers/media/pci/cx18/cx18-ioctl.c   |  3 +++
 2 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/drivers/media/pci/cx18/cx18-fileops.c 
b/drivers/media/pci/cx18/cx18-fileops.c
index d245445..df83740 100644
--- a/drivers/media/pci/cx18/cx18-fileops.c
+++ b/drivers/media/pci/cx18/cx18-fileops.c
@@ -34,6 +34,7 @@
 #include cx18-controls.h
 #include cx18-ioctl.h
 #include cx18-cards.h
+#include media/v4l2-event.h
 
 /* This function tries to claim the stream for a specific file descriptor.
If no one else is using this stream then the stream is claimed and
@@ -609,13 +610,16 @@ ssize_t cx18_v4l2_read(struct file *filp, char __user 
*buf, size_t count,
 
 unsigned int cx18_v4l2_enc_poll(struct file *filp, poll_table *wait)
 {
+   unsigned long req_events = poll_requested_events(wait);
struct cx18_open_id *id = file2id(filp);
struct cx18 *cx = id-cx;
struct cx18_stream *s = cx-streams[id-type];
int eof = test_bit(CX18_F_S_STREAMOFF, s-s_flags);
+   unsigned res = 0;
 
/* Start a capture if there is none */
-   if (!eof  !test_bit(CX18_F_S_STREAMING, s-s_flags)) {
+   if (!eof  !test_bit(CX18_F_S_STREAMING, s-s_flags) 
+   (req_events  (POLLIN | POLLRDNORM))) {
int rc;
 
mutex_lock(cx-serialize_lock);
@@ -632,21 +636,26 @@ unsigned int cx18_v4l2_enc_poll(struct file *filp, 
poll_table *wait)
if ((s-vb_type == V4L2_BUF_TYPE_VIDEO_CAPTURE) 
(id-type == CX18_ENC_STREAM_TYPE_YUV)) {
int videobuf_poll = videobuf_poll_stream(filp, s-vbuf_q, 
wait);
+
+   if (v4l2_event_pending(id-fh))
+   res |= POLLPRI;
 if (eof  videobuf_poll == POLLERR)
-return POLLHUP;
-else
-return videobuf_poll;
+   return res | POLLHUP;
+   return res | videobuf_poll;
}
 
/* add stream's waitq to the poll list */
CX18_DEBUG_HI_FILE(Encoder poll\n);
-   poll_wait(filp, s-waitq, wait);
+   if (v4l2_event_pending(id-fh))
+   res |= POLLPRI;
+   else
+   poll_wait(filp, s-waitq, wait);
 
if (atomic_read(s-q_full.depth))
-   return POLLIN | POLLRDNORM;
+   return res | POLLIN | POLLRDNORM;
if (eof)
-   return POLLHUP;
-   return 0;
+   return res | POLLHUP;
+   return res;
 }
 
 int cx18_v4l2_mmap(struct file *file, struct vm_area_struct *vma)
diff --git a/drivers/media/pci/cx18/cx18-ioctl.c 
b/drivers/media/pci/cx18/cx18-ioctl.c
index 0230b0f..6f8324d 100644
--- a/drivers/media/pci/cx18/cx18-ioctl.c
+++ b/drivers/media/pci/cx18/cx18-ioctl.c
@@ -39,6 +39,7 @@
 #include cx18-cards.h
 #include cx18-av-core.h
 #include media/tveeprom.h
+#include media/v4l2-event.h
 
 u16 cx18_service2vbi(int type)
 {
@@ -1117,6 +1118,8 @@ static const struct v4l2_ioctl_ops cx18_ioctl_ops = {
.vidioc_querybuf= cx18_querybuf,
.vidioc_qbuf= cx18_qbuf,
.vidioc_dqbuf   = cx18_dqbuf,
+   .vidioc_subscribe_event = v4l2_ctrl_subscribe_event,
+   .vidioc_unsubscribe_event   = v4l2_event_unsubscribe,
 };
 
 void cx18_set_funcs(struct video_device *vdev)
-- 
2.1.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


[PATCH 0/3] cx18: v4l2_compliance fixes

2015-04-02 Thread Hans Verkuil
From: Hans Verkuil hans.verk...@cisco.com

Various cx18 v4l2_compliance fixes. Note that this patch series relies
on https://patchwork.linuxtv.org/patch/29045/ being merged first.

Regards,

Hans

Hans Verkuil (3):
  cx18: add support for control events
  cx18: fix VIDIOC_ENUMINPUT: wrong std value
  cx18: replace cropping ioctls by selection ioctls.

 drivers/media/pci/cx18/cx18-fileops.c | 25 +--
 drivers/media/pci/cx18/cx18-ioctl.c   | 47 +++
 drivers/media/pci/cx18/cx18-streams.c |  6 -
 3 files changed, 48 insertions(+), 30 deletions(-)

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


[PATCH 3/3] cx18: replace cropping ioctls by selection ioctls.

2015-04-02 Thread Hans Verkuil
From: Hans Verkuil hans.verk...@cisco.com

Signed-off-by: Hans Verkuil hans.verk...@cisco.com
Cc: Andy Walls awa...@md.metrocast.net
---
 drivers/media/pci/cx18/cx18-ioctl.c | 36 +++-
 1 file changed, 15 insertions(+), 21 deletions(-)

diff --git a/drivers/media/pci/cx18/cx18-ioctl.c 
b/drivers/media/pci/cx18/cx18-ioctl.c
index 35d75311..79aee30 100644
--- a/drivers/media/pci/cx18/cx18-ioctl.c
+++ b/drivers/media/pci/cx18/cx18-ioctl.c
@@ -451,34 +451,29 @@ static int cx18_cropcap(struct file *file, void *fh,
 
if (cropcap-type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
return -EINVAL;
-   cropcap-bounds.top = cropcap-bounds.left = 0;
-   cropcap-bounds.width = 720;
-   cropcap-bounds.height = cx-is_50hz ? 576 : 480;
cropcap-pixelaspect.numerator = cx-is_50hz ? 59 : 10;
cropcap-pixelaspect.denominator = cx-is_50hz ? 54 : 11;
-   cropcap-defrect = cropcap-bounds;
return 0;
 }
 
-static int cx18_s_crop(struct file *file, void *fh, const struct v4l2_crop 
*crop)
-{
-   struct cx18_open_id *id = fh2id(fh);
-   struct cx18 *cx = id-cx;
-
-   if (crop-type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
-   return -EINVAL;
-   CX18_DEBUG_WARN(VIDIOC_S_CROP not implemented\n);
-   return -EINVAL;
-}
-
-static int cx18_g_crop(struct file *file, void *fh, struct v4l2_crop *crop)
+static int cx18_g_selection(struct file *file, void *fh,
+   struct v4l2_selection *sel)
 {
struct cx18 *cx = fh2id(fh)-cx;
 
-   if (crop-type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
+   if (sel-type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
+   return -EINVAL;
+   switch (sel-target) {
+   case V4L2_SEL_TGT_CROP_BOUNDS:
+   case V4L2_SEL_TGT_CROP_DEFAULT:
+   sel-r.top = sel-r.left = 0;
+   sel-r.width = 720;
+   sel-r.height = cx-is_50hz ? 576 : 480;
+   break;
+   default:
return -EINVAL;
-   CX18_DEBUG_WARN(VIDIOC_G_CROP not implemented\n);
-   return -EINVAL;
+   }
+   return 0;
 }
 
 static int cx18_enum_fmt_vid_cap(struct file *file, void *fh,
@@ -1090,8 +1085,7 @@ static const struct v4l2_ioctl_ops cx18_ioctl_ops = {
.vidioc_enumaudio   = cx18_enumaudio,
.vidioc_enum_input  = cx18_enum_input,
.vidioc_cropcap = cx18_cropcap,
-   .vidioc_s_crop  = cx18_s_crop,
-   .vidioc_g_crop  = cx18_g_crop,
+   .vidioc_g_selection = cx18_g_selection,
.vidioc_g_input = cx18_g_input,
.vidioc_s_input = cx18_s_input,
.vidioc_g_frequency = cx18_g_frequency,
-- 
2.1.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


[PATCH 2/3] cx18: fix VIDIOC_ENUMINPUT: wrong std value

2015-04-02 Thread Hans Verkuil
From: Hans Verkuil hans.verk...@cisco.com

The std field of v4l2_input is always V4L2_STD_ALL. For tuner inputs
this should be cx-tuner_std.

This fixes a v4l2-compliance failure.

Signed-off-by: Hans Verkuil hans.verk...@cisco.com
Cc: Andy Walls awa...@md.metrocast.net
---
 drivers/media/pci/cx18/cx18-ioctl.c   | 8 
 drivers/media/pci/cx18/cx18-streams.c | 6 +-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/drivers/media/pci/cx18/cx18-ioctl.c 
b/drivers/media/pci/cx18/cx18-ioctl.c
index 6f8324d..35d75311 100644
--- a/drivers/media/pci/cx18/cx18-ioctl.c
+++ b/drivers/media/pci/cx18/cx18-ioctl.c
@@ -514,6 +514,9 @@ int cx18_s_input(struct file *file, void *fh, unsigned int 
inp)
 {
struct cx18_open_id *id = fh2id(fh);
struct cx18 *cx = id-cx;
+   v4l2_std_id std = V4L2_STD_ALL;
+   const struct cx18_card_video_input *card_input =
+   cx-card-video_inputs + inp;
 
if (inp = cx-nof_inputs)
return -EINVAL;
@@ -529,6 +532,11 @@ int cx18_s_input(struct file *file, void *fh, unsigned int 
inp)
cx-active_input = inp;
/* Set the audio input to whatever is appropriate for the input type. */
cx-audio_input = cx-card-video_inputs[inp].audio_index;
+   if (card_input-video_type == V4L2_INPUT_TYPE_TUNER)
+   std = cx-tuner_std;
+   cx-streams[CX18_ENC_STREAM_TYPE_MPG].video_dev.tvnorms = std;
+   cx-streams[CX18_ENC_STREAM_TYPE_YUV].video_dev.tvnorms = std;
+   cx-streams[CX18_ENC_STREAM_TYPE_VBI].video_dev.tvnorms = std;
 
/* prevent others from messing with the streams until
   we're finished changing inputs. */
diff --git a/drivers/media/pci/cx18/cx18-streams.c 
b/drivers/media/pci/cx18/cx18-streams.c
index cf7ddaf..c82d25d 100644
--- a/drivers/media/pci/cx18/cx18-streams.c
+++ b/drivers/media/pci/cx18/cx18-streams.c
@@ -304,6 +304,7 @@ static void cx18_stream_init(struct cx18 *cx, int type)
/* Assume the previous pixel default */
s-pixelformat = V4L2_PIX_FMT_HM12;
s-vb_bytes_per_frame = cx-cxhdl.height * 720 * 3 / 2;
+   s-vb_bytes_per_line = 720;
}
 }
 
@@ -372,7 +373,10 @@ static int cx18_prep_dev(struct cx18 *cx, int type)
s-video_dev.v4l2_dev = cx-v4l2_dev;
s-video_dev.fops = cx18_v4l2_enc_fops;
s-video_dev.release = video_device_release_empty;
-   s-video_dev.tvnorms = V4L2_STD_ALL;
+   if (cx-card-video_inputs-video_type == CX18_CARD_INPUT_VID_TUNER)
+   s-video_dev.tvnorms = cx-tuner_std;
+   else
+   s-video_dev.tvnorms = V4L2_STD_ALL;
s-video_dev.lock = cx-serialize_lock;
cx18_set_funcs(s-video_dev);
return 0;
-- 
2.1.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


[PATCHv2] v4l2-ioctl: fill in the description for VIDIOC_ENUM_FMT

2015-04-02 Thread Hans Verkuil
The descriptions used in drivers for the formats returned with ENUM_FMT
are all over the place.

So instead allow the core to fill them in if the driver didn't. This
allows drivers to drop the description and flags.

Based on an earlier patch from Philipp Zabel:
http://comments.gmane.org/gmane.linux.drivers.video-input-infrastructure/81411

Signed-off-by: Hans Verkuil hans.verk...@cisco.com
Acked-by: Philipp Zabel p.za...@pengutronix.de
Acked-by: Laurent Pinchart laurent.pinch...@ideasonboard.com
Acked-by: Sakari Ailus sakari.ai...@linux.intel.com
---
Changes since v1:
- Fix NV61 and NV42 descriptions.
- Merge the switch for the compressed flag into the main switch.
- In the default case add a -BE suffix instead of a BE- prefix.
- Verified that gcc compiles this using O(log N) comparisons.
- Add comments why the coding style isn't followed here.
---
 drivers/media/v4l2-core/v4l2-ioctl.c | 199 +--
 1 file changed, 192 insertions(+), 7 deletions(-)

diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c 
b/drivers/media/v4l2-core/v4l2-ioctl.c
index 09ad8dd..2b3fdf6 100644
--- a/drivers/media/v4l2-core/v4l2-ioctl.c
+++ b/drivers/media/v4l2-core/v4l2-ioctl.c
@@ -1101,6 +1101,182 @@ static int v4l_enumoutput(const struct v4l2_ioctl_ops 
*ops,
return ops-vidioc_enum_output(file, fh, p);
 }
 
+static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
+{
+   const unsigned sz = sizeof(fmt-description);
+   const char *descr = NULL;
+   u32 flags = 0;
+
+   /*
+* We depart from the normal coding style here since the descriptions
+* should be aligned so it is easy to see which descriptions will be
+* longer than 31 characters (the max length for a description).
+* And frankly, this is easier to read anyway.
+*
+* Note that gcc will use O(log N) comparisons to find the right case.
+*/
+   switch (fmt-pixelformat) {
+   /* Max description length mask: descr = 
0123456789012345678901234567890 */
+   case V4L2_PIX_FMT_RGB332:   descr = 8-bit RGB 3-3-2; break;
+   case V4L2_PIX_FMT_RGB444:   descr = 16-bit A/XRGB 4-4-4-4; break;
+   case V4L2_PIX_FMT_ARGB444:  descr = 16-bit ARGB 4-4-4-4; break;
+   case V4L2_PIX_FMT_XRGB444:  descr = 16-bit XRGB 4-4-4-4; break;
+   case V4L2_PIX_FMT_RGB555:   descr = 16-bit A/XRGB 1-5-5-5; break;
+   case V4L2_PIX_FMT_ARGB555:  descr = 16-bit ARGB 1-5-5-5; break;
+   case V4L2_PIX_FMT_XRGB555:  descr = 16-bit XRGB 1-5-5-5; break;
+   case V4L2_PIX_FMT_RGB565:   descr = 16-bit RGB 5-6-5; break;
+   case V4L2_PIX_FMT_RGB555X:  descr = 16-bit A/XRGB 1-5-5-5 BE; 
break;
+   case V4L2_PIX_FMT_ARGB555X: descr = 16-bit ARGB 1-5-5-5 BE; break;
+   case V4L2_PIX_FMT_XRGB555X: descr = 16-bit XRGB 1-5-5-5 BE; break;
+   case V4L2_PIX_FMT_RGB565X:  descr = 16-bit RGB 5-6-5 BE; break;
+   case V4L2_PIX_FMT_BGR666:   descr = 18-bit BGRX 6-6-6-14; break;
+   case V4L2_PIX_FMT_BGR24:descr = 24-bit BGR 8-8-8; break;
+   case V4L2_PIX_FMT_RGB24:descr = 24-bit RGB 8-8-8; break;
+   case V4L2_PIX_FMT_BGR32:descr = 32-bit BGRA/X 8-8-8-8; break;
+   case V4L2_PIX_FMT_ABGR32:   descr = 32-bit BGRA 8-8-8-8; break;
+   case V4L2_PIX_FMT_XBGR32:   descr = 32-bit BGRX 8-8-8-8; break;
+   case V4L2_PIX_FMT_RGB32:descr = 32-bit A/XRGB 8-8-8-8; break;
+   case V4L2_PIX_FMT_ARGB32:   descr = 32-bit ARGB 8-8-8-8; break;
+   case V4L2_PIX_FMT_XRGB32:   descr = 32-bit XRGB 8-8-8-8; break;
+   case V4L2_PIX_FMT_GREY: descr = 8-bit Greyscale; break;
+   case V4L2_PIX_FMT_Y4:   descr = 4-bit Greyscale; break;
+   case V4L2_PIX_FMT_Y6:   descr = 6-bit Greyscale; break;
+   case V4L2_PIX_FMT_Y10:  descr = 10-bit Greyscale; break;
+   case V4L2_PIX_FMT_Y12:  descr = 12-bit Greyscale; break;
+   case V4L2_PIX_FMT_Y16:  descr = 16-bit Greyscale; break;
+   case V4L2_PIX_FMT_Y10BPACK: descr = 10-bit Greyscale (Packed); 
break;
+   case V4L2_PIX_FMT_PAL8: descr = 8-bit Palette; break;
+   case V4L2_PIX_FMT_UV8:  descr = 8-bit Chrominance UV 4-4; 
break;
+   case V4L2_PIX_FMT_YVU410:   descr = Planar YVU 4:1:0; break;
+   case V4L2_PIX_FMT_YVU420:   descr = Planar YVU 4:2:0; break;
+   case V4L2_PIX_FMT_YUYV: descr = YUYV 4:2:2; break;
+   case V4L2_PIX_FMT_YYUV: descr = YYUV 4:2:2; break;
+   case V4L2_PIX_FMT_YVYU: descr = YVYU 4:2:2; break;
+   case V4L2_PIX_FMT_UYVY: descr = UYVY 4:2:2; break;
+   case V4L2_PIX_FMT_VYUY: descr = VYUY 4:2:2; break;
+   case V4L2_PIX_FMT_YUV422P:  descr = Planar YVU 4:2:2; break;
+   case V4L2_PIX_FMT_YUV411P:  descr = Planar YUV 4:1:1; break;
+   case V4L2_PIX_FMT_Y41P: descr = YUV 4:1:1 (Packed); 

Re: [PATCH v4] v4l: mt9v032: Add OF support

2015-04-02 Thread Laurent Pinchart
Hi Philipp,

Thank you for the review.

On Tuesday 31 March 2015 17:08:53 Philipp Zabel wrote:
 Am Mittwoch, den 18.03.2015, 15:38 +0200 schrieb Laurent Pinchart:
  Parse DT properties into a platform data structure when a DT node is
  available.
  
  Signed-off-by: Laurent Pinchart laurent.pinch...@ideasonboard.com
  
  ---
  
  Changes since v3:
  
  - Use /bits/ 64 in the DT bindings example
  - Remove the parent I2C master node from the DT bindings example
  - Use devm_kcalloc() to allocate array
  
  Changes since v2:
  
  - Use of_graph_get_next_endpoint()
  
  Changes since v1:
  
  - Add MT9V02[24] compatible strings
  - Prefix all compatible strings with aptina,
  - Use link-frequencies instead of link-freqs
  ---
  
   .../devicetree/bindings/media/i2c/mt9v032.txt  | 39 
   MAINTAINERS|  1 +
   drivers/media/i2c/mt9v032.c| 69 -
   3 files changed, 108 insertions(+), 1 deletion(-)
   create mode 100644
   Documentation/devicetree/bindings/media/i2c/mt9v032.txt

[snip]

  diff --git a/drivers/media/i2c/mt9v032.c b/drivers/media/i2c/mt9v032.c
  index 255ea91..697be25 100644
  --- a/drivers/media/i2c/mt9v032.c
  +++ b/drivers/media/i2c/mt9v032.c
  @@ -17,6 +17,8 @@
   #include linux/i2c.h
   #include linux/log2.h
   #include linux/mutex.h
  +#include linux/of.h
  +#include linux/of_gpio.h
 
 I think of_gpio is not needed in mt9v032.c. Otherwise,
 Acked-by: Philipp Zabel p.za...@pengutronix.de

You're right. The bad news is that the patch has been merged already. The good 
news is that you can submit a patch to fix this ;-) I can also fix it myself 
if you prefer.

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


[linuxtv-media:master 421/653] drivers/media/dvb-frontends/lgdt3306a.c:1468:4: error: 'ret' undeclared

2015-04-02 Thread kbuild test robot
tree:   git://linuxtv.org/media_tree.git master
head:   a5562f65b1371a0988b707c10c44fcc2bba56990
commit: ee0133eea0238067dab19587de7d88e4a3ea77e4 [421/653] [media] lgdt3306a: 
properly handle I/O errors
config: i386-randconfig-r2-0402 (attached as .config)
reproduce:
  git checkout ee0133eea0238067dab19587de7d88e4a3ea77e4
  # save the attached .config to linux build tree
  make ARCH=i386 

Note: the linuxtv-media/master HEAD a5562f65b1371a0988b707c10c44fcc2bba56990 
builds fine.
  It only hurts bisectibility.

All error/warnings:

   drivers/media/dvb-frontends/lgdt3306a.c: In function 
'lgdt3306a_vsb_lock_poll':
 drivers/media/dvb-frontends/lgdt3306a.c:1468:4: error: 'ret' undeclared 
 (first use in this function)
   ret = lgdt3306a_pre_monitoring(state);
   ^
   drivers/media/dvb-frontends/lgdt3306a.c:1468:4: note: each undeclared 
identifier is reported only once for each function it appears in

vim +/ret +1468 drivers/media/dvb-frontends/lgdt3306a.c

  1462  while (1) {
  1463  if (lgdt3306a_sync_lock_poll(state) == LG3306_UNLOCK) {
  1464  lg_dbg(no sync lock!\n);
  1465  return LG3306_UNLOCK;
  1466  } else {
  1467  msleep(20);
 1468  ret = lgdt3306a_pre_monitoring(state);
  1469  if (ret)
  1470  return LG3306_UNLOCK;
  1471  

---
0-DAY kernel test infrastructureOpen Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild Intel Corporation
#
# Automatically generated file; DO NOT EDIT.
# Linux/i386 4.0.0-rc1 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_PERF_EVENTS_INTEL_UNCORE=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_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_BROKEN_ON_SMP=y
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=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_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 is not set

#
# IRQ subsystem
#
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=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_MIN_ADJUST=y
CONFIG_GENERIC_CMOS_UPDATE=y

#
# Timers subsystem
#
CONFIG_HZ_PERIODIC=y
# CONFIG_NO_HZ_IDLE 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_IRQ_TIME_ACCOUNTING is not set
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
# CONFIG_TASK_XACCT is not set

#
# RCU Subsystem
#
CONFIG_PREEMPT_RCU=y
CONFIG_SRCU=y
# CONFIG_TASKS_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_TREE_RCU_TRACE is not set
CONFIG_RCU_BOOST=y
CONFIG_RCU_KTHREAD_PRIO=1
CONFIG_RCU_BOOST_DELAY=500
# CONFIG_RCU_NOCB_CPU is not set
CONFIG_BUILD_BIN2C=y
CONFIG_IKCONFIG=y
# CONFIG_IKCONFIG_PROC is not set
CONFIG_LOG_BUF_SHIFT=17
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG 

Re: [PATCH] rc-core: use an IDA rather than a bitmap

2015-04-02 Thread Stefan Lippers-Hollmann
Hi

On 2015-04-02, David Härdeman wrote:
 This patch changes rc-core to use the kernel facilities that are already
 available for handling unique numbers instead of rolling its own bitmap
 stuff.
 
 Stefan, this should apply cleanly to the media git tree...could you test it?

Thanks, I've applied this patch to my kernel and have started testing 
it. As the race conditions between both (well, three, the TeVii s480 v2.1
exposes two rc_core devices) doesn't trigger all the time, it might take
a while before I can report back.

Thanks a lot
Stefan Lippers-Hollmann


pgpoSevqeY_Li.pgp
Description: Digitale Signatur von OpenPGP


Re: [PATCH 0/9 v2] Helper to abstract vma handling in media layer

2015-04-02 Thread Jan Kara
  Hello,

On Tue 17-03-15 12:56:30, Jan Kara wrote:
   After a long pause I'm sending second version of my patch series to abstract
 vma handling from the various media drivers. After this patch set drivers have
 to know much less details about vmas, their types, and locking. My motivation
 for the series is that I want to change get_user_pages() locking and I want to
 handle subtle locking details in as few places as possible.
 
 The core of the series is the new helper get_vaddr_pfns() which is given a
 virtual address and it fills in PFNs into provided array. If PFNs correspond 
 to
 normal pages it also grabs references to these pages. The difference from
 get_user_pages() is that this function can also deal with pfnmap, mixed, and 
 io
 mappings which is what the media drivers need.
 
 I have tested the patches with vivid driver so at least vb2 code got some
 exposure. Conversion of other drivers was just compile-tested so I'd like to
 ask respective maintainers if they could have a look.  Also I'd like to ask mm
 folks to check patch 2/9 implementing the helper. Thanks!
  Ping? Any reactions?

Honza

-- 
Jan Kara j...@suse.cz
SUSE Labs, CR
--
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 v2] Helper to abstract vma handling in media layer

2015-04-02 Thread Hans Verkuil
On 04/02/2015 05:02 PM, Jan Kara wrote:
   Hello,
 
 On Tue 17-03-15 12:56:30, Jan Kara wrote:
   After a long pause I'm sending second version of my patch series to 
 abstract
 vma handling from the various media drivers. After this patch set drivers 
 have
 to know much less details about vmas, their types, and locking. My motivation
 for the series is that I want to change get_user_pages() locking and I want 
 to
 handle subtle locking details in as few places as possible.

 The core of the series is the new helper get_vaddr_pfns() which is given a
 virtual address and it fills in PFNs into provided array. If PFNs correspond 
 to
 normal pages it also grabs references to these pages. The difference from
 get_user_pages() is that this function can also deal with pfnmap, mixed, and 
 io
 mappings which is what the media drivers need.

 I have tested the patches with vivid driver so at least vb2 code got some
 exposure. Conversion of other drivers was just compile-tested so I'd like to
 ask respective maintainers if they could have a look.  Also I'd like to ask 
 mm
 folks to check patch 2/9 implementing the helper. Thanks!
   Ping? Any reactions?

For patch 1/9:

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

For the other patches I do not feel qualified to give Acks. I've Cc-ed Pawel and
Marek who have a better understanding of the mm internals than I do. Hopefully
they can review the code.

It definitely looks like a good idea, and if nobody else will comment on the vb2
patches in the next 2 weeks, then I'll try to review it myself (for whatever 
that's
worth).

Regards,

Hans
--
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 00/17] media: blackfin: bfin_capture enhancements

2015-04-02 Thread Hans Verkuil
On 03/26/2015 10:18 AM, Scott Jiang wrote:
 Hi Lad and Hans,
 
 2015-03-08 22:40 GMT+08:00 Lad Prabhakar prabhakar.cse...@gmail.com:
 From: Lad, Prabhakar prabhakar.cse...@gmail.com

 This patch series, enhances blackfin capture driver with
 vb2 helpers.

 Changes for v4:
 1: Improved commit message for path 4/17 and 5/17.
 2: Added Ack's from Scott to patches 1-15
 3: Two new patches 16/17 and 17/17

 Lad, Prabhakar (17):
   media: blackfin: bfin_capture: drop buf_init() callback
   media: blackfin: bfin_capture: release buffers in case
 start_streaming() call back fails
   media: blackfin: bfin_capture: set min_buffers_needed
   media: blackfin: bfin_capture: set vb2 buffer field
   media: blackfin: bfin_capture: improve queue_setup() callback
   media: blackfin: bfin_capture: use vb2_fop_mmap/poll
   media: blackfin: bfin_capture: use v4l2_fh_open and vb2_fop_release
   media: blackfin: bfin_capture: use vb2_ioctl_* helpers
   media: blackfin: bfin_capture: make sure all buffers are returned on
 stop_streaming() callback
   media: blackfin: bfin_capture: return -ENODATA for *std calls
   media: blackfin: bfin_capture: return -ENODATA for *dv_timings calls
   media: blackfin: bfin_capture: add support for vidioc_create_bufs
   media: blackfin: bfin_capture: add support for VB2_DMABUF
   media: blackfin: bfin_capture: add support for VIDIOC_EXPBUF
   media: blackfin: bfin_capture: set v4l2 buffer sequence
   media: blackfin: bfin_capture: drop bcap_get_unmapped_area()
   media: blackfin: bfin_capture: embed video_device struct in
 bcap_device

  drivers/media/platform/blackfin/bfin_capture.c | 348 
 -
  1 file changed, 103 insertions(+), 245 deletions(-)

 
 for patch 16/17,
 Acked-by: Scott Jiang scott.jiang.li...@gmail.com
 Tested-by: Scott Jiang scott.jiang.li...@gmail.com
 
 Hans, I tried to use v4l2-compliance but it failed to compile. Sorry
 for telling you it have passed compilation because I forgot to use
 blackfin toolchain.
 ./configure --without-jpeg  --host=bfin-linux-uclibc --disable-libv4l
 
 The main problem is there is no argp.h in uClibc, how to disable checking 
 this?
 
 checking for argp.h... no
 configure: error: Cannot continue: argp.h not found
 
 Scott
 

Hi Scott,

Can you try this patch for v4l-utils? It makes argp optional, and it should
allow v4l2-compliance to compile with uclibc (unless there are more problems).

I'm no autoconf guru, so I'm not certain if everything is correct, but it
seemed to do its job when I remove argp.h from my system.

Regards,

Hans

Signed-off-by: Hans Verkuil hans.verk...@cisco.com

---
diff --git a/configure.ac b/configure.ac
index 330479c..0bf9154 100644
--- a/configure.ac
+++ b/configure.ac
@@ -253,14 +253,17 @@ dl_saved_libs=$LIBS
   AC_SUBST([DLOPEN_LIBS])
 LIBS=$dl_saved_libs
 
-AC_CHECK_HEADER([argp.h],,AC_MSG_ERROR(Cannot continue: argp.h not found))
+#AC_CHECK_HEADER([argp.h],,AC_MSG_ERROR(Cannot continue: argp.h not found))
+AC_CHECK_HEADER([argp.h], [argp=yes], [argp=no])
+AS_IF([test x$argp = xyes],
 argp_saved_libs=$LIBS
   AC_SEARCH_LIBS([argp_parse],
  [argp],
  [test $ac_cv_search_argp_parse = none required || 
ARGP_LIBS=$ac_cv_search_argp_parse],
  [AC_MSG_ERROR([unable to find the argp_parse() function])])
   AC_SUBST([ARGP_LIBS])
-LIBS=$argp_saved_libs
+LIBS=$argp_saved_libs)
+AM_CONDITIONAL([HAVE_ARGP], [test x$argp = xyes])
 
 AC_CHECK_HEADER([linux/i2c-dev.h], [linux_i2c_dev=yes], [linux_i2c_dev=no])
 AM_CONDITIONAL([HAVE_LINUX_I2C_DEV], [test x$linux_i2c_dev = xyes])
diff --git a/contrib/test/Makefile.am b/contrib/test/Makefile.am
index 0bfa33e..f87ed3e 100644
--- a/contrib/test/Makefile.am
+++ b/contrib/test/Makefile.am
@@ -2,7 +2,6 @@ noinst_PROGRAMS = \
ioctl-test  \
sliced-vbi-test \
sliced-vbi-detect   \
-   v4l2grab\
driver-test \
stress-buffer   \
capture-example
@@ -11,9 +10,12 @@ if HAVE_X11
 noinst_PROGRAMS += pixfmt-test
 endif
 
+if HAVE_ARGP
+noinst_PROGRAMS += v4l2grab
 if HAVE_GLU
 noinst_PROGRAMS += v4l2gl
 endif
+endif
 
 driver_test_SOURCES = driver-test.c
 driver_test_LDADD = ../../utils/libv4l2util/libv4l2util.la
diff --git a/utils/decode_tm6000/Makefile.am b/utils/decode_tm6000/Makefile.am
index ac4e85e..845e35e 100644
--- a/utils/decode_tm6000/Makefile.am
+++ b/utils/decode_tm6000/Makefile.am
@@ -1,4 +1,6 @@
+if HAVE_ARGP
 bin_PROGRAMS = decode_tm6000
 decode_tm6000_SOURCES = decode_tm6000.c
 decode_tm6000_LDADD = ../libv4l2util/libv4l2util.la
 decode_tm6000_LDFLAGS = $(ARGP_LIBS)
+endif
diff --git a/utils/dvb/Makefile.am b/utils/dvb/Makefile.am
index 6aae408..32c9fb9 100644
--- a/utils/dvb/Makefile.am
+++ b/utils/dvb/Makefile.am
@@ -1,3 +1,4 @@
+if HAVE_ARGP
 bin_PROGRAMS = dvb-fe-tool dvbv5-zap dvbv5-scan dvb-format-convert
 man_MANS = dvb-fe-tool.1 dvbv5-zap.1 dvbv5-scan.1 dvb-format-convert.1
 
@@ 

Re: [PATCH v4 01/12] DT: leds: Improve description of flash LEDs related properties

2015-04-02 Thread Pavel Machek
On Tue 2015-03-31 15:52:37, Jacek Anaszewski wrote:
 Description of flash LEDs related properties was not precise regarding
 the state of corresponding settings in case a property is missing.
 Add relevant statements.
 Removed is also the requirement making the flash-max-microamp
 property obligatory for flash LEDs. It was inconsistent as the property
 is defined as optional. Devices which require the property will have
 to assert this in their DT bindings.
 
 Signed-off-by: Jacek Anaszewski j.anaszew...@samsung.com
 Acked-by: Kyungmin Park kyungmin.p...@samsung.com
 Cc: Bryan Wu coolo...@gmail.com
 Cc: Richard Purdie rpur...@rpsys.net

Acked-by: Pavel Machek pa...@ucw.cz

 diff --git a/Documentation/devicetree/bindings/leds/common.txt 
 b/Documentation/devicetree/bindings/leds/common.txt
 index 747c538..21a25e4 100644
 --- a/Documentation/devicetree/bindings/leds/common.txt
 +++ b/Documentation/devicetree/bindings/leds/common.txt
 @@ -29,13 +29,15 @@ Optional properties for child nodes:
   ide-disk - LED indicates disk activity
   timer - LED flashes at a fixed, configurable rate
  
 -- max-microamp : maximum intensity in microamperes of the LED
 -  (torch LED for flash devices)
 -- flash-max-microamp : maximum intensity in microamperes of the
 -   flash LED; it is mandatory if the LED should
 -support the flash mode
 -- flash-timeout-us : timeout in microseconds after which the flash
 - LED is turned off
 +- max-microamp : Maximum intensity in microamperes of the LED
 +  (torch LED for flash devices). If omitted this will default
 +  to the maximum current allowed by the device.
 +- flash-max-microamp : Maximum intensity in microamperes of the flash LED.
 +If omitted this will default to the maximum
 +current allowed by the device.
 +- flash-timeout-us : Timeout in microseconds after which the flash
 + LED is turned off. If omitted this will default to the
 +  maximum timeout allowed by the device.


-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.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/RFC v13 04/13] DT: Add documentation for the mfd Maxim max77693

2015-04-02 Thread Pavel Machek
On Mon 2015-03-23 15:59:37, Lee Jones wrote:
 On Mon, 23 Mar 2015, Pavel Machek wrote:
 
  On Mon 2015-03-23 15:02:13, Lee Jones wrote:
   On Mon, 23 Mar 2015, Pavel Machek wrote:
On Mon 2015-03-23 12:07:43, Lee Jones wrote:
 This patch requires a DT Ack.

No, it requires DT people to be notified -- and they were, few times
by now.

They clearly don't care.
   
   Well fortunately for the Kernel community, I do care.  And as this
   patch adds 3 new DT properties, has been through many iterations
   already with vast changes made over that period and there is still
   some controversy looming, I'm saying that it _does_ require a DT
   Ack.
  
  Can you help get that ack, then? As a maintainer, you have better
  chance getting reply from DT people than patch submitter.
 
 Hopefully they will see my plea a couple of replies back.
 
 If that fails I'll go poke them via other means.  Failing that I'll go
 see them in person and continually hit them with wet fish until one of
 them relents.

Can I request footage of the last steps on the youtube? (IOW ping, I
don't think I seen any replies from DT maintainers...)
Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.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: [PATCHv2] v4l2-ioctl: fill in the description for VIDIOC_ENUM_FMT

2015-04-02 Thread Ricardo Ribalda Delgado
Hello Hans

On Thu, Apr 2, 2015 at 2:40 PM, Hans Verkuil hverk...@xs4all.nl wrote:

 +   case V4L2_PIX_FMT_Y16:  descr = 16-bit Greyscale; break;

What about  16-bit Greyscale LE ?


Regards!


-- 
Ricardo Ribalda
--
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/2] NEC scancodes and protocols in keymaps

2015-04-02 Thread Mauro Carvalho Chehab
Em Thu, 02 Apr 2015 14:02:57 +0200
David Härdeman da...@hardeman.nu escreveu:

 The following two patches should show more clearly what I mean by
 adding protocols to the keytables (and letting userspace add
 keytable entries with explicit protocol information). Consider
 it a basis for discussion.
 
 Each patch has a separate description, please refer to those for
 more information.

Interesting approach. It would be good to also have a patch for
v4l-utils rc-keycode userspace, for it to use the new way when
available. An option to fallback to the old way would also be
useful, in order to allow testing the backward compatibility.

 
 ---
 
 David Härdeman (2):
   rc-core: use the full 32 bits for NEC scancodes
   rc-core: don't throw away protocol information
 
 
  drivers/media/rc/ati_remote.c|1 
  drivers/media/rc/imon.c  |7 +
  drivers/media/rc/ir-nec-decoder.c|   26 ---
  drivers/media/rc/rc-main.c   |  233 
 --
  drivers/media/usb/dvb-usb-v2/af9015.c|   22 +--
  drivers/media/usb/dvb-usb-v2/af9035.c|   23 +--
  drivers/media/usb/dvb-usb-v2/az6007.c|   16 +-
  drivers/media/usb/dvb-usb-v2/rtl28xxu.c  |   20 +--
  drivers/media/usb/dvb-usb/dib0700_core.c |   24 +--
  drivers/media/usb/em28xx/em28xx-input.c  |   37 +
  include/media/rc-core.h  |   26 +++
  include/media/rc-map.h   |   23 ++-
  12 files changed, 264 insertions(+), 194 deletions(-)
 
 --
 David Härdeman
--
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: [PATCHv2] v4l2-ioctl: fill in the description for VIDIOC_ENUM_FMT

2015-04-02 Thread Hans Verkuil
On 04/02/2015 07:02 PM, Ricardo Ribalda Delgado wrote:
 Hello Hans
 
 On Thu, Apr 2, 2015 at 2:40 PM, Hans Verkuil hverk...@xs4all.nl wrote:
 
 +   case V4L2_PIX_FMT_Y16:  descr = 16-bit Greyscale; break;
 
 What about  16-bit Greyscale LE ?

LE is the default, so that's not mentioned. Only if it is BE will I mention
it in the description. It's the way drivers do this today as well, and I
think it makes sense.

Regards,

Hans

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