aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h3
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-hdw.c17
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-hdw.h10
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-sysfs.c4
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-v4l2.c12
5 files changed, 31 insertions, 15 deletions
diff --git a/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h b/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h
index e6d546f56d31..746d174d0b0d 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h
+++ b/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h
@@ -283,7 +283,8 @@ struct pvr2_hdw {
283 283
284 /* Minor numbers used by v4l logic (yes, this is a hack, as there 284 /* Minor numbers used by v4l logic (yes, this is a hack, as there
285 should be no v4l junk here). Probably a better way to do this. */ 285 should be no v4l junk here). Probably a better way to do this. */
286 int v4l_minor_number_mpeg; 286 int v4l_minor_number_video;
287 int v4l_minor_number_vbi;
287 int v4l_minor_number_radio; 288 int v4l_minor_number_radio;
288 289
289 /* Location of eeprom or a negative number if none */ 290 /* Location of eeprom or a negative number if none */
diff --git a/drivers/media/video/pvrusb2/pvrusb2-hdw.c b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
index 6acd73ca9ed3..39d04d8644a8 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-hdw.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
@@ -1898,7 +1898,8 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf,
1898 1898
1899 hdw->eeprom_addr = -1; 1899 hdw->eeprom_addr = -1;
1900 hdw->unit_number = -1; 1900 hdw->unit_number = -1;
1901 hdw->v4l_minor_number_mpeg = -1; 1901 hdw->v4l_minor_number_video = -1;
1902 hdw->v4l_minor_number_vbi = -1;
1902 hdw->v4l_minor_number_radio = -1; 1903 hdw->v4l_minor_number_radio = -1;
1903 hdw->ctl_write_buffer = kmalloc(PVR2_CTL_BUFFSIZE,GFP_KERNEL); 1904 hdw->ctl_write_buffer = kmalloc(PVR2_CTL_BUFFSIZE,GFP_KERNEL);
1904 if (!hdw->ctl_write_buffer) goto fail; 1905 if (!hdw->ctl_write_buffer) goto fail;
@@ -2548,11 +2549,12 @@ int pvr2_hdw_cpufw_get(struct pvr2_hdw *hdw,unsigned int offs,
2548 2549
2549 2550
2550int pvr2_hdw_v4l_get_minor_number(struct pvr2_hdw *hdw, 2551int pvr2_hdw_v4l_get_minor_number(struct pvr2_hdw *hdw,
2551 enum pvr2_config index) 2552 enum pvr2_v4l_type index)
2552{ 2553{
2553 switch (index) { 2554 switch (index) {
2554 case pvr2_config_mpeg: return hdw->v4l_minor_number_mpeg; 2555 case pvr2_v4l_type_video: return hdw->v4l_minor_number_video;
2555 case pvr2_config_radio: return hdw->v4l_minor_number_radio; 2556 case pvr2_v4l_type_vbi: return hdw->v4l_minor_number_vbi;
2557 case pvr2_v4l_type_radio: return hdw->v4l_minor_number_radio;
2556 default: return -1; 2558 default: return -1;
2557 } 2559 }
2558} 2560}
@@ -2560,11 +2562,12 @@ int pvr2_hdw_v4l_get_minor_number(struct pvr2_hdw *hdw,
2560 2562
2561/* Store a v4l minor device number */ 2563/* Store a v4l minor device number */
2562void pvr2_hdw_v4l_store_minor_number(struct pvr2_hdw *hdw, 2564void pvr2_hdw_v4l_store_minor_number(struct pvr2_hdw *hdw,
2563 enum pvr2_config index,int v) 2565 enum pvr2_v4l_type index,int v)
2564{ 2566{
2565 switch (index) { 2567 switch (index) {
2566 case pvr2_config_mpeg: hdw->v4l_minor_number_mpeg = v; 2568 case pvr2_v4l_type_video: hdw->v4l_minor_number_video = v;
2567 case pvr2_config_radio: hdw->v4l_minor_number_radio = v; 2569 case pvr2_v4l_type_vbi: hdw->v4l_minor_number_vbi = v;
2570 case pvr2_v4l_type_radio: hdw->v4l_minor_number_radio = v;
2568 default: break; 2571 default: break;
2569 } 2572 }
2570} 2573}
diff --git a/drivers/media/video/pvrusb2/pvrusb2-hdw.h b/drivers/media/video/pvrusb2/pvrusb2-hdw.h
index fa3769a244a1..19af4d636c3f 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-hdw.h
+++ b/drivers/media/video/pvrusb2/pvrusb2-hdw.h
@@ -78,6 +78,12 @@ enum pvr2_config {
78 pvr2_config_radio, 78 pvr2_config_radio,
79}; 79};
80 80
81enum pvr2_v4l_type {
82 pvr2_v4l_type_video,
83 pvr2_v4l_type_vbi,
84 pvr2_v4l_type_radio,
85};
86
81const char *pvr2_config_get_name(enum pvr2_config); 87const char *pvr2_config_get_name(enum pvr2_config);
82 88
83struct pvr2_hdw; 89struct pvr2_hdw;
@@ -206,11 +212,11 @@ int pvr2_hdw_cpufw_get(struct pvr2_hdw *,unsigned int offs,
206 char *buf,unsigned int cnt); 212 char *buf,unsigned int cnt);
207 213
208/* Retrieve a previously stored v4l minor device number */ 214/* Retrieve a previously stored v4l minor device number */
209int pvr2_hdw_v4l_get_minor_number(struct pvr2_hdw *,enum pvr2_config index); 215int pvr2_hdw_v4l_get_minor_number(struct pvr2_hdw *,enum pvr2_v4l_type index);
210 216
211/* Store a v4l minor device number */ 217/* Store a v4l minor device number */
212void pvr2_hdw_v4l_store_minor_number(struct pvr2_hdw *, 218void pvr2_hdw_v4l_store_minor_number(struct pvr2_hdw *,
213 enum pvr2_config index,int); 219 enum pvr2_v4l_type index,int);
214 220
215/* Direct read/write access to chip's registers: 221/* Direct read/write access to chip's registers:
216 chip_id - unique id of chip (e.g. I2C_DRIVERD_xxxx) 222 chip_id - unique id of chip (e.g. I2C_DRIVERD_xxxx)
diff --git a/drivers/media/video/pvrusb2/pvrusb2-sysfs.c b/drivers/media/video/pvrusb2/pvrusb2-sysfs.c
index 0f8021e2dd06..a3af24320e73 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-sysfs.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-sysfs.c
@@ -733,7 +733,7 @@ static ssize_t v4l_minor_number_show(struct class_device *class_dev,char *buf)
733 if (!sfp) return -EINVAL; 733 if (!sfp) return -EINVAL;
734 return scnprintf(buf,PAGE_SIZE,"%d\n", 734 return scnprintf(buf,PAGE_SIZE,"%d\n",
735 pvr2_hdw_v4l_get_minor_number(sfp->channel.hdw, 735 pvr2_hdw_v4l_get_minor_number(sfp->channel.hdw,
736 pvr2_config_mpeg)); 736 pvr2_v4l_type_video));
737} 737}
738 738
739 739
@@ -745,7 +745,7 @@ static ssize_t v4l_radio_minor_number_show(struct class_device *class_dev,
745 if (!sfp) return -EINVAL; 745 if (!sfp) return -EINVAL;
746 return scnprintf(buf,PAGE_SIZE,"%d\n", 746 return scnprintf(buf,PAGE_SIZE,"%d\n",
747 pvr2_hdw_v4l_get_minor_number(sfp->channel.hdw, 747 pvr2_hdw_v4l_get_minor_number(sfp->channel.hdw,
748 pvr2_config_radio)); 748 pvr2_v4l_type_radio));
749} 749}
750 750
751 751
diff --git a/drivers/media/video/pvrusb2/pvrusb2-v4l2.c b/drivers/media/video/pvrusb2/pvrusb2-v4l2.c
index 4acbbc71f7e0..3a2a0ca33e90 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-v4l2.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-v4l2.c
@@ -725,9 +725,11 @@ static void pvr2_v4l2_dev_destroy(struct pvr2_v4l2_dev *dip)
725static void pvr2_v4l2_destroy_no_lock(struct pvr2_v4l2 *vp) 725static void pvr2_v4l2_destroy_no_lock(struct pvr2_v4l2 *vp)
726{ 726{
727 pvr2_hdw_v4l_store_minor_number(vp->channel.mc_head->hdw, 727 pvr2_hdw_v4l_store_minor_number(vp->channel.mc_head->hdw,
728 pvr2_config_mpeg,-1); 728 pvr2_v4l_type_video,-1);
729 pvr2_hdw_v4l_store_minor_number(vp->channel.mc_head->hdw, 729 pvr2_hdw_v4l_store_minor_number(vp->channel.mc_head->hdw,
730 pvr2_config_radio,-1); 730 pvr2_v4l_type_vbi,-1);
731 pvr2_hdw_v4l_store_minor_number(vp->channel.mc_head->hdw,
732 pvr2_v4l_type_radio,-1);
731 pvr2_v4l2_dev_destroy(vp->vdev); 733 pvr2_v4l2_dev_destroy(vp->vdev);
732 734
733 pvr2_trace(PVR2_TRACE_STRUCT,"Destroying pvr2_v4l2 id=%p",vp); 735 pvr2_trace(PVR2_TRACE_STRUCT,"Destroying pvr2_v4l2 id=%p",vp);
@@ -1072,6 +1074,7 @@ static void pvr2_v4l2_dev_init(struct pvr2_v4l2_dev *dip,
1072 int mindevnum; 1074 int mindevnum;
1073 int unit_number; 1075 int unit_number;
1074 int v4l_type; 1076 int v4l_type;
1077 enum pvr2_v4l_type pvt;
1075 dip->v4lp = vp; 1078 dip->v4lp = vp;
1076 dip->config = cfg; 1079 dip->config = cfg;
1077 1080
@@ -1079,13 +1082,16 @@ static void pvr2_v4l2_dev_init(struct pvr2_v4l2_dev *dip,
1079 switch (cfg) { 1082 switch (cfg) {
1080 case pvr2_config_mpeg: 1083 case pvr2_config_mpeg:
1081 v4l_type = VFL_TYPE_GRABBER; 1084 v4l_type = VFL_TYPE_GRABBER;
1085 pvt = pvr2_v4l_type_video;
1082 dip->stream = &vp->channel.mc_head->video_stream; 1086 dip->stream = &vp->channel.mc_head->video_stream;
1083 break; 1087 break;
1084 case pvr2_config_vbi: 1088 case pvr2_config_vbi:
1085 v4l_type = VFL_TYPE_VBI; 1089 v4l_type = VFL_TYPE_VBI;
1090 pvt = pvr2_v4l_type_vbi;
1086 break; 1091 break;
1087 case pvr2_config_radio: 1092 case pvr2_config_radio:
1088 v4l_type = VFL_TYPE_RADIO; 1093 v4l_type = VFL_TYPE_RADIO;
1094 pvt = pvr2_v4l_type_radio;
1089 break; 1095 break;
1090 default: 1096 default:
1091 /* Bail out (this should be impossible) */ 1097 /* Bail out (this should be impossible) */
@@ -1133,7 +1139,7 @@ static void pvr2_v4l2_dev_init(struct pvr2_v4l2_dev *dip,
1133 } 1139 }
1134 1140
1135 pvr2_hdw_v4l_store_minor_number(vp->channel.mc_head->hdw, 1141 pvr2_hdw_v4l_store_minor_number(vp->channel.mc_head->hdw,
1136 cfg,dip->devbase.minor); 1142 pvt,dip->devbase.minor);
1137} 1143}
1138 1144
1139 1145