aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-07-30 22:03:41 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-07-30 22:03:41 -0400
commit6df419e45d71b8d9a0de8e92a1212bbea460f0e0 (patch)
treec0902a96353391400818fe8b7adf11493b56935a /drivers/staging
parent27c1ee3f929555b71fa39ec0d81a7e7185de1b16 (diff)
parentc893e7c64e36087dceb4662917976a81d1754fc0 (diff)
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab: "This is the first part of the media patches for v3.6. This patch series contain: - new DVB frontend: rtl2832 - new video drivers: adv7393 - some unused files got removed - a selection API cleanup between V4L2 and V4L2 subdev API's - a major redesign at v4l-ioctl2, in order to clean it up - several driver fixes and improvements." * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (174 commits) v4l: Export v4l2-common.h in include/linux/Kbuild media: Revert "[media] Terratec Cinergy S2 USB HD Rev.2" [media] media: Use pr_info not homegrown pr_reg macro [media] Terratec Cinergy S2 USB HD Rev.2 [media] v4l: Correct conflicting V4L2 subdev selection API documentation [media] Feature removal: V4L2 selections API target and flag definitions [media] v4l: Unify selection flags documentation [media] v4l: Unify selection flags [media] v4l: Common documentation for selection targets [media] v4l: Unify selection targets across V4L2 and V4L2 subdev interfaces [media] v4l: Remove "_ACTUAL" from subdev selection API target definition names [media] V4L: Remove "_ACTIVE" from the selection target name definitions [media] media: dvb-usb: print mac address via native %pM [media] s5p-tv: Use module_i2c_driver in sii9234_drv.c file [media] media: gpio-ir-recv: add allowed_protos for platform data [media] s5p-jpeg: Use module_platform_driver in jpeg-core.c file [media] saa7134: fix spelling of detach in label [media] cx88-blackbird: replace ioctl by unlocked_ioctl [media] cx88: don't use current_norm [media] cx88: fix a number of v4l2-compliance violations ...
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/media/lirc/lirc_sir.c60
-rw-r--r--drivers/staging/media/solo6x10/TODO2
-rw-r--r--drivers/staging/media/solo6x10/i2c.c2
3 files changed, 60 insertions, 4 deletions
diff --git a/drivers/staging/media/lirc/lirc_sir.c b/drivers/staging/media/lirc/lirc_sir.c
index 945d9623550b..4afc3b419738 100644
--- a/drivers/staging/media/lirc/lirc_sir.c
+++ b/drivers/staging/media/lirc/lirc_sir.c
@@ -52,6 +52,7 @@
52#include <linux/io.h> 52#include <linux/io.h>
53#include <asm/irq.h> 53#include <asm/irq.h>
54#include <linux/fcntl.h> 54#include <linux/fcntl.h>
55#include <linux/platform_device.h>
55#ifdef LIRC_ON_SA1100 56#ifdef LIRC_ON_SA1100
56#include <asm/hardware.h> 57#include <asm/hardware.h>
57#ifdef CONFIG_SA1100_COLLIE 58#ifdef CONFIG_SA1100_COLLIE
@@ -487,9 +488,11 @@ static struct lirc_driver driver = {
487 .owner = THIS_MODULE, 488 .owner = THIS_MODULE,
488}; 489};
489 490
491static struct platform_device *lirc_sir_dev;
490 492
491static int init_chrdev(void) 493static int init_chrdev(void)
492{ 494{
495 driver.dev = &lirc_sir_dev->dev;
493 driver.minor = lirc_register_driver(&driver); 496 driver.minor = lirc_register_driver(&driver);
494 if (driver.minor < 0) { 497 if (driver.minor < 0) {
495 printk(KERN_ERR LIRC_DRIVER_NAME ": init_chrdev() failed.\n"); 498 printk(KERN_ERR LIRC_DRIVER_NAME ": init_chrdev() failed.\n");
@@ -1215,20 +1218,71 @@ static int init_lirc_sir(void)
1215 return 0; 1218 return 0;
1216} 1219}
1217 1220
1221static int __devinit lirc_sir_probe(struct platform_device *dev)
1222{
1223 return 0;
1224}
1225
1226static int __devexit lirc_sir_remove(struct platform_device *dev)
1227{
1228 return 0;
1229}
1230
1231static struct platform_driver lirc_sir_driver = {
1232 .probe = lirc_sir_probe,
1233 .remove = __devexit_p(lirc_sir_remove),
1234 .driver = {
1235 .name = "lirc_sir",
1236 .owner = THIS_MODULE,
1237 },
1238};
1218 1239
1219static int __init lirc_sir_init(void) 1240static int __init lirc_sir_init(void)
1220{ 1241{
1221 int retval; 1242 int retval;
1222 1243
1244 retval = platform_driver_register(&lirc_sir_driver);
1245 if (retval) {
1246 printk(KERN_ERR LIRC_DRIVER_NAME ": Platform driver register "
1247 "failed!\n");
1248 return -ENODEV;
1249 }
1250
1251 lirc_sir_dev = platform_device_alloc("lirc_dev", 0);
1252 if (!lirc_sir_dev) {
1253 printk(KERN_ERR LIRC_DRIVER_NAME ": Platform device alloc "
1254 "failed!\n");
1255 retval = -ENOMEM;
1256 goto pdev_alloc_fail;
1257 }
1258
1259 retval = platform_device_add(lirc_sir_dev);
1260 if (retval) {
1261 printk(KERN_ERR LIRC_DRIVER_NAME ": Platform device add "
1262 "failed!\n");
1263 retval = -ENODEV;
1264 goto pdev_add_fail;
1265 }
1266
1223 retval = init_chrdev(); 1267 retval = init_chrdev();
1224 if (retval < 0) 1268 if (retval < 0)
1225 return retval; 1269 goto fail;
1270
1226 retval = init_lirc_sir(); 1271 retval = init_lirc_sir();
1227 if (retval) { 1272 if (retval) {
1228 drop_chrdev(); 1273 drop_chrdev();
1229 return retval; 1274 goto fail;
1230 } 1275 }
1276
1231 return 0; 1277 return 0;
1278
1279fail:
1280 platform_device_del(lirc_sir_dev);
1281pdev_add_fail:
1282 platform_device_put(lirc_sir_dev);
1283pdev_alloc_fail:
1284 platform_driver_unregister(&lirc_sir_driver);
1285 return retval;
1232} 1286}
1233 1287
1234static void __exit lirc_sir_exit(void) 1288static void __exit lirc_sir_exit(void)
@@ -1236,6 +1290,8 @@ static void __exit lirc_sir_exit(void)
1236 drop_hardware(); 1290 drop_hardware();
1237 drop_chrdev(); 1291 drop_chrdev();
1238 drop_port(); 1292 drop_port();
1293 platform_device_unregister(lirc_sir_dev);
1294 platform_driver_unregister(&lirc_sir_driver);
1239 printk(KERN_INFO LIRC_DRIVER_NAME ": Uninstalled.\n"); 1295 printk(KERN_INFO LIRC_DRIVER_NAME ": Uninstalled.\n");
1240} 1296}
1241 1297
diff --git a/drivers/staging/media/solo6x10/TODO b/drivers/staging/media/solo6x10/TODO
index 7e6c4fa130df..539f739fe9e6 100644
--- a/drivers/staging/media/solo6x10/TODO
+++ b/drivers/staging/media/solo6x10/TODO
@@ -20,5 +20,5 @@ TODO (general):
20 - implement loopback of external sound jack with incoming audio? 20 - implement loopback of external sound jack with incoming audio?
21 - implement pause/resume 21 - implement pause/resume
22 22
23Plase send patches to Greg Kroah-Hartman <greg@kroah.com> and Cc Ben Collins 23Plase send patches to Mauro Carvalho Chehab <mchehab@redhat.com> and Cc Ben Collins
24<bcollins@bluecherry.net> 24<bcollins@bluecherry.net>
diff --git a/drivers/staging/media/solo6x10/i2c.c b/drivers/staging/media/solo6x10/i2c.c
index ef95a500b4da..398070a3d293 100644
--- a/drivers/staging/media/solo6x10/i2c.c
+++ b/drivers/staging/media/solo6x10/i2c.c
@@ -175,7 +175,7 @@ int solo_i2c_isr(struct solo_dev *solo_dev)
175 175
176 solo_reg_write(solo_dev, SOLO_IRQ_STAT, SOLO_IRQ_IIC); 176 solo_reg_write(solo_dev, SOLO_IRQ_STAT, SOLO_IRQ_IIC);
177 177
178 if (status & (SOLO_IIC_STATE_TRNS & SOLO_IIC_STATE_SIG_ERR) || 178 if (status & (SOLO_IIC_STATE_TRNS | SOLO_IIC_STATE_SIG_ERR) ||
179 solo_dev->i2c_id < 0) { 179 solo_dev->i2c_id < 0) {
180 solo_i2c_stop(solo_dev); 180 solo_i2c_stop(solo_dev);
181 return -ENXIO; 181 return -ENXIO;