vibrator-gb: add vibrator driver

This driver implements the Greybus vibrator protocol, as defined in the
Greybus protocol specification.  It interacts to userspace with a single
sysfs file, "timeout", and a separate "class" called "vibrator".  That
interface can/should be changed in the future depending on what Android
wants for its HAL, but for now should be good enough to test with.

There are some changes needed to kernel_ver.h to support some
sysfs/driver core changes that happened after the 3.10 kernel was
released to try to make the code simpler.  Even with those changes,
there are #ifdefs in the code to do different things depending on the
kernel version to implement the same userspace api.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
vibrator-gb: fixes based on Marti's review comments.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
vibrator-gb: proper allocate minor numbers

Change the driver to allocate minors in a proper manner, using the idr
interface.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Merge branch 'master' into vibrator-gb
vibrator-gb: fix up api changes

responses changed in 'master' so fix up things so that the vibrator
driver works properly.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Merge branch 'master' into vibrator-gb