Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 241995
b: refs/heads/master
c: 0cd301f
h: refs/heads/master
i:
  241993: 94d8b51
  241991: 750455d
v: v3
  • Loading branch information
Arnd Bergmann authored and Mauro Carvalho Chehab committed Mar 21, 2011
1 parent c7db6d1 commit b047975
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 17 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: dc46b8c8e3d7e6c7c7ddb78fc2137a5462e98679
refs/heads/master: 0cd301f19a91b3e1fb4130dcd9106777003ed4ed
1 change: 0 additions & 1 deletion trunk/drivers/staging/cx25821/Kconfig
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
config VIDEO_CX25821
tristate "Conexant cx25821 support"
depends on DVB_CORE && VIDEO_DEV && PCI && I2C
depends on BKL # please fix
select I2C_ALGOBIT
select VIDEO_BTCX
select VIDEO_TVEEPROM
Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/staging/cx25821/cx25821-alsa.c
Original file line number Diff line number Diff line change
Expand Up @@ -770,10 +770,12 @@ static int cx25821_alsa_init(void)
struct cx25821_dev *dev = NULL;
struct list_head *list;

mutex_lock(&cx25821_devlist_mutex);
list_for_each(list, &cx25821_devlist) {
dev = list_entry(list, struct cx25821_dev, devlist);
cx25821_audio_initdev(dev);
}
mutex_unlock(&cx25821_devlist_mutex);

if (dev == NULL)
pr_info("ERROR ALSA: no cx25821 cards found\n");
Expand Down
16 changes: 7 additions & 9 deletions trunk/drivers/staging/cx25821/cx25821-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,6 @@ MODULE_DESCRIPTION("Driver for Athena cards");
MODULE_AUTHOR("Shu Lin - Hiep Huynh");
MODULE_LICENSE("GPL");

struct list_head cx25821_devlist;
EXPORT_SYMBOL(cx25821_devlist);

static unsigned int debug;
module_param(debug, int, 0644);
MODULE_PARM_DESC(debug, "enable debug messages");
Expand All @@ -46,8 +43,10 @@ MODULE_PARM_DESC(card, "card type");

static unsigned int cx25821_devcount;

static DEFINE_MUTEX(devlist);
DEFINE_MUTEX(cx25821_devlist_mutex);
EXPORT_SYMBOL(cx25821_devlist_mutex);
LIST_HEAD(cx25821_devlist);
EXPORT_SYMBOL(cx25821_devlist);

struct sram_channel cx25821_sram_channels[] = {
[SRAM_CH00] = {
Expand Down Expand Up @@ -911,9 +910,9 @@ static int cx25821_dev_setup(struct cx25821_dev *dev)
dev->nr = ++cx25821_devcount;
sprintf(dev->name, "cx25821[%d]", dev->nr);

mutex_lock(&devlist);
mutex_lock(&cx25821_devlist_mutex);
list_add_tail(&dev->devlist, &cx25821_devlist);
mutex_unlock(&devlist);
mutex_unlock(&cx25821_devlist_mutex);

strcpy(cx25821_boards[UNKNOWN_BOARD].name, "unknown");
strcpy(cx25821_boards[CX25821_BOARD].name, "cx25821");
Expand Down Expand Up @@ -1465,9 +1464,9 @@ static void __devexit cx25821_finidev(struct pci_dev *pci_dev)
if (pci_dev->irq)
free_irq(pci_dev->irq, dev);

mutex_lock(&devlist);
mutex_lock(&cx25821_devlist_mutex);
list_del(&dev->devlist);
mutex_unlock(&devlist);
mutex_unlock(&cx25821_devlist_mutex);

cx25821_dev_unregister(dev);
v4l2_device_unregister(v4l2_dev);
Expand Down Expand Up @@ -1501,7 +1500,6 @@ static struct pci_driver cx25821_pci_driver = {

static int __init cx25821_init(void)
{
INIT_LIST_HEAD(&cx25821_devlist);
pr_info("driver version %d.%d.%d loaded\n",
(CX25821_VERSION_CODE >> 16) & 0xff,
(CX25821_VERSION_CODE >> 8) & 0xff,
Expand Down
9 changes: 4 additions & 5 deletions trunk/drivers/staging/cx25821/cx25821-video.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt

#include "cx25821-video.h"
#include <linux/smp_lock.h>

MODULE_DESCRIPTION("v4l2 driver module for cx25821 based TV cards");
MODULE_AUTHOR("Hiep Huynh <hiep.huynh@conexant.com>");
Expand Down Expand Up @@ -815,7 +814,7 @@ static int video_open(struct file *file)
if (NULL == fh)
return -ENOMEM;

lock_kernel();
mutex_lock(&cx25821_devlist_mutex);

list_for_each(list, &cx25821_devlist)
{
Expand All @@ -832,8 +831,8 @@ static int video_open(struct file *file)
}

if (NULL == dev) {
unlock_kernel();
return -ENODEV;
mutex_unlock(&cx25821_devlist_mutex);
return -ENODEV;
}

file->private_data = fh;
Expand Down Expand Up @@ -862,7 +861,7 @@ static int video_open(struct file *file)
sizeof(struct cx25821_buffer), fh, NULL);

dprintk(1, "post videobuf_queue_init()\n");
unlock_kernel();
mutex_unlock(&cx25821_devlist_mutex);

return 0;
}
Expand Down
3 changes: 2 additions & 1 deletion trunk/drivers/staging/cx25821/cx25821.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
#include <linux/delay.h>
#include <linux/sched.h>
#include <linux/kdev_t.h>
#include <linux/smp_lock.h>

#include <media/v4l2-common.h>
#include <media/v4l2-device.h>
Expand Down Expand Up @@ -445,6 +444,8 @@ static inline struct cx25821_dev *get_cx25821(struct v4l2_device *v4l2_dev)
v4l2_device_call_all(&dev->v4l2_dev, 0, o, f, ##args)

extern struct list_head cx25821_devlist;
extern struct mutex cx25821_devlist_mutex;

extern struct cx25821_board cx25821_boards[];
extern struct cx25821_subid cx25821_subids[];

Expand Down

0 comments on commit b047975

Please sign in to comment.