diff options
-rw-r--r-- | drivers/media/video/saa7134/saa7134-core.c | 20 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-empress.c | 15 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-oss.c | 42 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-video.c | 22 |
4 files changed, 35 insertions, 64 deletions
diff --git a/drivers/media/video/saa7134/saa7134-core.c b/drivers/media/video/saa7134/saa7134-core.c index 80f04f252fce..1a4a24471f20 100644 --- a/drivers/media/video/saa7134/saa7134-core.c +++ b/drivers/media/video/saa7134/saa7134-core.c | |||
@@ -890,7 +890,6 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev, | |||
890 | const struct pci_device_id *pci_id) | 890 | const struct pci_device_id *pci_id) |
891 | { | 891 | { |
892 | struct saa7134_dev *dev; | 892 | struct saa7134_dev *dev; |
893 | struct list_head *item; | ||
894 | struct saa7134_mpeg_ops *mops; | 893 | struct saa7134_mpeg_ops *mops; |
895 | int err; | 894 | int err; |
896 | 895 | ||
@@ -1072,10 +1071,8 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev, | |||
1072 | saa7134_devcount++; | 1071 | saa7134_devcount++; |
1073 | 1072 | ||
1074 | mutex_lock(&devlist_lock); | 1073 | mutex_lock(&devlist_lock); |
1075 | list_for_each(item,&mops_list) { | 1074 | list_for_each_entry(mops, &mops_list, next) |
1076 | mops = list_entry(item, struct saa7134_mpeg_ops, next); | ||
1077 | mpeg_ops_attach(mops, dev); | 1075 | mpeg_ops_attach(mops, dev); |
1078 | } | ||
1079 | list_add_tail(&dev->devlist,&saa7134_devlist); | 1076 | list_add_tail(&dev->devlist,&saa7134_devlist); |
1080 | mutex_unlock(&devlist_lock); | 1077 | mutex_unlock(&devlist_lock); |
1081 | 1078 | ||
@@ -1109,7 +1106,6 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev, | |||
1109 | static void __devexit saa7134_finidev(struct pci_dev *pci_dev) | 1106 | static void __devexit saa7134_finidev(struct pci_dev *pci_dev) |
1110 | { | 1107 | { |
1111 | struct saa7134_dev *dev = pci_get_drvdata(pci_dev); | 1108 | struct saa7134_dev *dev = pci_get_drvdata(pci_dev); |
1112 | struct list_head *item; | ||
1113 | struct saa7134_mpeg_ops *mops; | 1109 | struct saa7134_mpeg_ops *mops; |
1114 | 1110 | ||
1115 | /* Release DMA sound modules if present */ | 1111 | /* Release DMA sound modules if present */ |
@@ -1138,10 +1134,8 @@ static void __devexit saa7134_finidev(struct pci_dev *pci_dev) | |||
1138 | /* unregister */ | 1134 | /* unregister */ |
1139 | mutex_lock(&devlist_lock); | 1135 | mutex_lock(&devlist_lock); |
1140 | list_del(&dev->devlist); | 1136 | list_del(&dev->devlist); |
1141 | list_for_each(item,&mops_list) { | 1137 | list_for_each_entry(mops, &mops_list, next) |
1142 | mops = list_entry(item, struct saa7134_mpeg_ops, next); | ||
1143 | mpeg_ops_detach(mops, dev); | 1138 | mpeg_ops_detach(mops, dev); |
1144 | } | ||
1145 | mutex_unlock(&devlist_lock); | 1139 | mutex_unlock(&devlist_lock); |
1146 | saa7134_devcount--; | 1140 | saa7134_devcount--; |
1147 | 1141 | ||
@@ -1237,14 +1231,11 @@ static int saa7134_resume(struct pci_dev *pci_dev) | |||
1237 | 1231 | ||
1238 | int saa7134_ts_register(struct saa7134_mpeg_ops *ops) | 1232 | int saa7134_ts_register(struct saa7134_mpeg_ops *ops) |
1239 | { | 1233 | { |
1240 | struct list_head *item; | ||
1241 | struct saa7134_dev *dev; | 1234 | struct saa7134_dev *dev; |
1242 | 1235 | ||
1243 | mutex_lock(&devlist_lock); | 1236 | mutex_lock(&devlist_lock); |
1244 | list_for_each(item,&saa7134_devlist) { | 1237 | list_for_each_entry(dev, &saa7134_devlist, devlist) |
1245 | dev = list_entry(item, struct saa7134_dev, devlist); | ||
1246 | mpeg_ops_attach(ops, dev); | 1238 | mpeg_ops_attach(ops, dev); |
1247 | } | ||
1248 | list_add_tail(&ops->next,&mops_list); | 1239 | list_add_tail(&ops->next,&mops_list); |
1249 | mutex_unlock(&devlist_lock); | 1240 | mutex_unlock(&devlist_lock); |
1250 | return 0; | 1241 | return 0; |
@@ -1252,15 +1243,12 @@ int saa7134_ts_register(struct saa7134_mpeg_ops *ops) | |||
1252 | 1243 | ||
1253 | void saa7134_ts_unregister(struct saa7134_mpeg_ops *ops) | 1244 | void saa7134_ts_unregister(struct saa7134_mpeg_ops *ops) |
1254 | { | 1245 | { |
1255 | struct list_head *item; | ||
1256 | struct saa7134_dev *dev; | 1246 | struct saa7134_dev *dev; |
1257 | 1247 | ||
1258 | mutex_lock(&devlist_lock); | 1248 | mutex_lock(&devlist_lock); |
1259 | list_del(&ops->next); | 1249 | list_del(&ops->next); |
1260 | list_for_each(item,&saa7134_devlist) { | 1250 | list_for_each_entry(dev, &saa7134_devlist, devlist) |
1261 | dev = list_entry(item, struct saa7134_dev, devlist); | ||
1262 | mpeg_ops_detach(ops, dev); | 1251 | mpeg_ops_detach(ops, dev); |
1263 | } | ||
1264 | mutex_unlock(&devlist_lock); | 1252 | mutex_unlock(&devlist_lock); |
1265 | } | 1253 | } |
1266 | 1254 | ||
diff --git a/drivers/media/video/saa7134/saa7134-empress.c b/drivers/media/video/saa7134/saa7134-empress.c index a16df57af63a..34ca874dd7fe 100644 --- a/drivers/media/video/saa7134/saa7134-empress.c +++ b/drivers/media/video/saa7134/saa7134-empress.c | |||
@@ -76,17 +76,14 @@ static int ts_init_encoder(struct saa7134_dev* dev) | |||
76 | static int ts_open(struct inode *inode, struct file *file) | 76 | static int ts_open(struct inode *inode, struct file *file) |
77 | { | 77 | { |
78 | int minor = iminor(inode); | 78 | int minor = iminor(inode); |
79 | struct saa7134_dev *h,*dev = NULL; | 79 | struct saa7134_dev *dev; |
80 | struct list_head *list; | ||
81 | int err; | 80 | int err; |
82 | 81 | ||
83 | list_for_each(list,&saa7134_devlist) { | 82 | list_for_each_entry(dev, &saa7134_devlist, devlist) |
84 | h = list_entry(list, struct saa7134_dev, devlist); | 83 | if (dev->empress_dev && dev->empress_dev->minor == minor) |
85 | if (h->empress_dev && h->empress_dev->minor == minor) | 84 | goto found; |
86 | dev = h; | 85 | return -ENODEV; |
87 | } | 86 | found: |
88 | if (NULL == dev) | ||
89 | return -ENODEV; | ||
90 | 87 | ||
91 | dprintk("open minor=%d\n",minor); | 88 | dprintk("open minor=%d\n",minor); |
92 | err = -EBUSY; | 89 | err = -EBUSY; |
diff --git a/drivers/media/video/saa7134/saa7134-oss.c b/drivers/media/video/saa7134/saa7134-oss.c index 1a737b647366..aedf04653e0e 100644 --- a/drivers/media/video/saa7134/saa7134-oss.c +++ b/drivers/media/video/saa7134/saa7134-oss.c | |||
@@ -239,17 +239,14 @@ static int dsp_rec_stop(struct saa7134_dev *dev) | |||
239 | static int dsp_open(struct inode *inode, struct file *file) | 239 | static int dsp_open(struct inode *inode, struct file *file) |
240 | { | 240 | { |
241 | int minor = iminor(inode); | 241 | int minor = iminor(inode); |
242 | struct saa7134_dev *h,*dev = NULL; | 242 | struct saa7134_dev *dev; |
243 | struct list_head *list; | ||
244 | int err; | 243 | int err; |
245 | 244 | ||
246 | list_for_each(list,&saa7134_devlist) { | 245 | list_for_each_entry(dev, &saa7134_devlist, devlist) |
247 | h = list_entry(list, struct saa7134_dev, devlist); | 246 | if (dev->dmasound.minor_dsp == minor) |
248 | if (h->dmasound.minor_dsp == minor) | 247 | goto found; |
249 | dev = h; | 248 | return -ENODEV; |
250 | } | 249 | found: |
251 | if (NULL == dev) | ||
252 | return -ENODEV; | ||
253 | 250 | ||
254 | mutex_lock(&dev->dmasound.lock); | 251 | mutex_lock(&dev->dmasound.lock); |
255 | err = -EBUSY; | 252 | err = -EBUSY; |
@@ -680,19 +677,14 @@ mixer_level(struct saa7134_dev *dev, enum saa7134_audio_in src, int level) | |||
680 | static int mixer_open(struct inode *inode, struct file *file) | 677 | static int mixer_open(struct inode *inode, struct file *file) |
681 | { | 678 | { |
682 | int minor = iminor(inode); | 679 | int minor = iminor(inode); |
683 | struct saa7134_dev *h,*dev = NULL; | 680 | struct saa7134_dev *dev; |
684 | struct list_head *list; | ||
685 | 681 | ||
686 | list_for_each(list,&saa7134_devlist) { | 682 | list_for_each_entry(dev, &saa7134_devlist, devlist) |
687 | h = list_entry(list, struct saa7134_dev, devlist); | 683 | if (dev->dmasound.minor_mixer == minor) { |
688 | if (h->dmasound.minor_mixer == minor) | 684 | file->private_data = dev; |
689 | dev = h; | 685 | return 0; |
690 | } | 686 | } |
691 | if (NULL == dev) | 687 | return -ENODEV; |
692 | return -ENODEV; | ||
693 | |||
694 | file->private_data = dev; | ||
695 | return 0; | ||
696 | } | 688 | } |
697 | 689 | ||
698 | static int mixer_release(struct inode *inode, struct file *file) | 690 | static int mixer_release(struct inode *inode, struct file *file) |
@@ -1022,18 +1014,14 @@ static int saa7134_oss_init(void) | |||
1022 | 1014 | ||
1023 | static void saa7134_oss_exit(void) | 1015 | static void saa7134_oss_exit(void) |
1024 | { | 1016 | { |
1025 | struct saa7134_dev *dev = NULL; | 1017 | struct saa7134_dev *dev; |
1026 | struct list_head *list; | ||
1027 | |||
1028 | list_for_each(list,&saa7134_devlist) { | ||
1029 | dev = list_entry(list, struct saa7134_dev, devlist); | ||
1030 | 1018 | ||
1019 | list_for_each_entry(dev, &saa7134_devlist, devlist) { | ||
1031 | /* Device isn't registered by OSS, probably ALSA's */ | 1020 | /* Device isn't registered by OSS, probably ALSA's */ |
1032 | if (!dev->dmasound.minor_dsp) | 1021 | if (!dev->dmasound.minor_dsp) |
1033 | continue; | 1022 | continue; |
1034 | 1023 | ||
1035 | oss_device_exit(dev); | 1024 | oss_device_exit(dev); |
1036 | |||
1037 | } | 1025 | } |
1038 | 1026 | ||
1039 | saa7134_dmasound_init = NULL; | 1027 | saa7134_dmasound_init = NULL; |
diff --git a/drivers/media/video/saa7134/saa7134-video.c b/drivers/media/video/saa7134/saa7134-video.c index 7c97ac15e665..471b92793c12 100644 --- a/drivers/media/video/saa7134/saa7134-video.c +++ b/drivers/media/video/saa7134/saa7134-video.c | |||
@@ -1285,26 +1285,24 @@ static int saa7134_resource(struct saa7134_fh *fh) | |||
1285 | static int video_open(struct inode *inode, struct file *file) | 1285 | static int video_open(struct inode *inode, struct file *file) |
1286 | { | 1286 | { |
1287 | int minor = iminor(inode); | 1287 | int minor = iminor(inode); |
1288 | struct saa7134_dev *h,*dev = NULL; | 1288 | struct saa7134_dev *dev; |
1289 | struct saa7134_fh *fh; | 1289 | struct saa7134_fh *fh; |
1290 | struct list_head *list; | ||
1291 | enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE; | 1290 | enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE; |
1292 | int radio = 0; | 1291 | int radio = 0; |
1293 | list_for_each(list,&saa7134_devlist) { | 1292 | list_for_each_entry(dev, &saa7134_devlist, devlist) { |
1294 | h = list_entry(list, struct saa7134_dev, devlist); | 1293 | if (dev->video_dev && (dev->video_dev->minor == minor)) |
1295 | if (h->video_dev && (h->video_dev->minor == minor)) | 1294 | goto found; |
1296 | dev = h; | 1295 | if (dev->radio_dev && (dev->radio_dev->minor == minor)) { |
1297 | if (h->radio_dev && (h->radio_dev->minor == minor)) { | ||
1298 | radio = 1; | 1296 | radio = 1; |
1299 | dev = h; | 1297 | goto found; |
1300 | } | 1298 | } |
1301 | if (h->vbi_dev && (h->vbi_dev->minor == minor)) { | 1299 | if (dev->vbi_dev && (dev->vbi_dev->minor == minor)) { |
1302 | type = V4L2_BUF_TYPE_VBI_CAPTURE; | 1300 | type = V4L2_BUF_TYPE_VBI_CAPTURE; |
1303 | dev = h; | 1301 | goto found; |
1304 | } | 1302 | } |
1305 | } | 1303 | } |
1306 | if (NULL == dev) | 1304 | return -ENODEV; |
1307 | return -ENODEV; | 1305 | found: |
1308 | 1306 | ||
1309 | dprintk("open minor=%d radio=%d type=%s\n",minor,radio, | 1307 | dprintk("open minor=%d radio=%d type=%s\n",minor,radio, |
1310 | v4l2_type_names[type]); | 1308 | v4l2_type_names[type]); |