tea575x: allow multiple opens
Subsystems (2)
PATCH 1/1 tea575x: allow multiple opens
Change locking to allow tea575x-radio device to be opened multiple times.
include/sound/tea575x-tuner.h +1 -1
@@ -49,7 +49,7 @@ struct snd_tea575x {bool tuned;/* tuned to a station */ unsigned int val;/* hw value */ unsigned long freq;/* frequency */ -unsigned long in_use;/* set if the device is in use */ +struct mutex mutex;struct snd_tea575x_ops *ops;void *private_data;u8 card[32 ];
sound/i2c/other/tea575x-tuner.c +3 -19
@@ -282,26 +282,9 @@ static int vidioc_s_input(struct file *freturn 0 ; } -static int snd_tea575x_exclusive_open (struct file *file) -{ -struct snd_tea575x *tea =video_drvdata (file); - -return test_and_set_bit (0 , &tea->in_use) ? -EBUSY :0 ; -} - -static int snd_tea575x_exclusive_release (struct file *file) -{ -struct snd_tea575x *tea =video_drvdata (file); - -clear_bit (0 , &tea->in_use); -return 0 ; -} -static const struct v4l2_file_operations tea575x_fops = { .owner =THIS_MODULE , - .open = snd_tea575x_exclusive_open, - .release = snd_tea575x_exclusive_release, - .ioctl = video_ioctl2, + .unlocked_ioctl = video_ioctl2, };static const struct v4l2_ioctl_ops tea575x_ioctl_ops = {
@@ -340,13 +323,14 @@ int snd_tea575x_init(struct snd_tea575xif (snd_tea575x_read (tea) !=0x55AA )return -ENODEV ; - tea->in_use =0 ; tea->val =TEA575X_BIT_BAND_FM |TEA575X_BIT_SEARCH_10_40 ; tea->freq =90500 *16 ;/* 90.5Mhz default */ snd_tea575x_set_freq (tea); tea->vd = tea575x_radio;video_set_drvdata (&tea->vd, tea); +mutex_init (&tea->mutex); + tea->vd.lock = &tea->mutex;v4l2_ctrl_handler_init (&tea->ctrl_handler,1 ); tea->vd.ctrl_handler = &tea->ctrl_handler;
Signature · 1 line
Ondrej Zary
Quoted 1 line · On Saturday, June 11, 2011 15:28:59 Ondrej Zary wrote:
Change locking to allow tea575x-radio device to be opened multiple times.
Very nice!
Regards,
Hans
Quoted 62 lines
Signed-off-by Ondrej Zary <[email protected]>include/sound/tea575x-tuner.h +1
-1@@ -49,7 +49,7 @@ struct snd_tea575x {bool tuned;/* tuned to a station */ unsigned int val;/* hw value */ unsigned long freq;/* frequency */ -unsigned long in_use;/* set if the device is in use */ +struct mutex mutex;struct snd_tea575x_ops *ops;void *private_data;u8 card[32 ];sound/i2c/other/tea575x-tuner.c +3
-19@@ -282,26 +282,9 @@ static int vidioc_s_input(struct file *freturn 0 ; } -static int snd_tea575x_exclusive_open (struct file *file) -{ -struct snd_tea575x *tea =video_drvdata (file); - -return test_and_set_bit (0 , &tea->in_use) ? -EBUSY :0 ; -} - -static int snd_tea575x_exclusive_release (struct file *file) -{ -struct snd_tea575x *tea =video_drvdata (file); - -clear_bit (0 , &tea->in_use); -return 0 ; -} -static const struct v4l2_file_operations tea575x_fops = { .owner =THIS_MODULE , - .open = snd_tea575x_exclusive_open, - .release = snd_tea575x_exclusive_release, - .ioctl = video_ioctl2, + .unlocked_ioctl = video_ioctl2, };static const struct v4l2_ioctl_ops tea575x_ioctl_ops = {@@ -340,13 +323,14 @@ int snd_tea575x_init(struct snd_tea575xif (snd_tea575x_read (tea) !=0x55AA )return -ENODEV ; - tea->in_use =0 ; tea->val =TEA575X_BIT_BAND_FM |TEA575X_BIT_SEARCH_10_40 ; tea->freq =90500 *16 ;/* 90.5Mhz default */ snd_tea575x_set_freq (tea); tea->vd = tea575x_radio;video_set_drvdata (&tea->vd, tea); +mutex_init (&tea->mutex); + tea->vd.lock = &tea->mutex;v4l2_ctrl_handler_init (&tea->ctrl_handler,1 ); tea->vd.ctrl_handler = &tea->ctrl_handler;
At Sat, 11 Jun 2011 15:36:39 +0200,
Quoted 7 lines · Hans Verkuil
Quoted 1 line · On Saturday, June 11, 2011 15:28:59 Ondrej Zary wrote:
Change locking to allow tea575x-radio device to be opened multiple times.
Very nice!
Signed-off-by Hans Verkuil <[email protected]>
Hans, would you apply this and another one via v4l tree or shall I apply them via sound tree?
Takashi
Quoted 72 lines
Regards,
Hans
Quoted 52 lines
Signed-off-by Ondrej Zary <[email protected]>include/sound/tea575x-tuner.h +1
-1@@ -49,7 +49,7 @@ struct snd_tea575x {bool tuned;/* tuned to a station */ unsigned int val;/* hw value */ unsigned long freq;/* frequency */ -unsigned long in_use;/* set if the device is in use */ +struct mutex mutex;struct snd_tea575x_ops *ops;void *private_data;u8 card[32 ];sound/i2c/other/tea575x-tuner.c +1
-19@@ -282,26 +282,9 @@ static int vidioc_s_input(struct file *freturn 0 ; } -static int snd_tea575x_exclusive_open (struct file *file) -{ -struct snd_tea575x *tea =video_drvdata (file); - -return test_and_set_bit (0 , &tea->in_use) ? -EBUSY :0 ; -} - -static int snd_tea575x_exclusive_release (struct file *file) -{ -struct snd_tea575x *tea =video_drvdata (file); - -clear_bit (0 , &tea->in_use); -return 0 ; -} -static const struct v4l2_file_operations tea575x_fops = { .owner =THIS_MODULE , - .open = snd_tea575x_exclusive_open, - .release = snd_tea575x_exclusive_release, - .ioctl = video_ioctl2, + .unlocked_ioctl = video_ioctl2, };static const struct v4l2_ioctl_ops tea575x_ioctl_ops = {@@ -340,13 +323,14 @@ int snd_tea575x_init(struct snd_tea575xif (snd_tea575x_read (tea) !=0x55AA )return -ENODEV ; - tea->in_use =0 ; tea->val =TEA575X_BIT_BAND_FM |TEA575X_BIT_SEARCH_10_40 ;sound/i2c/other/tea575x-tuner.c int snd_tea575x_init(struct snd_tea575x · line 336
Quoted 10 lines
sound/i2c/other/tea575x-tuner.c +2
-0tea->freq =90500 *16 ;/* 90.5Mhz default */ snd_tea575x_set_freq (tea); tea->vd = tea575x_radio;video_set_drvdata (&tea->vd, tea); +mutex_init (&tea->mutex); + tea->vd.lock = &tea->mutex;v4l2_ctrl_handler_init (&tea->ctrl_handler,1 ); tea->vd.ctrl_handler = &tea->ctrl_handler;_______________________________________________
Alsa-devel mailing list
[email protected]
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Quoted 4 lines · On Sunday, June 12, 2011 18:52:56 Takashi Iwai wrote:
At Sat, 11 Jun 2011 15:36:39 +0200,
Quoted 2 lines · Hans Verkuil
On Saturday, June 11, 2011 15:28:59 Ondrej Zary wrote:
Quoted 8 lines
Quoted 5 lines
Quoted 1 line
Change locking to allow tea575x-radio device to be opened multiple times.
Very nice!
Signed-off-by Hans Verkuil <[email protected]>Hans, would you apply this and another one via v4l tree or shall I apply them via sound tree?
This is all V4L related, so I think Mauro can apply this patch and the other patch for v3.1. No need to go through an intermediate tree of mine.
Regards,
Hans
Quoted 77 lines
Takashi
Quoted 72 lines
Regards,
Hans
Quoted 52 lines
Signed-off-by Ondrej Zary <[email protected]>include/sound/tea575x-tuner.h +1
-1@@ -49,7 +49,7 @@ struct snd_tea575x {bool tuned;/* tuned to a station */ unsigned int val;/* hw value */ unsigned long freq;/* frequency */ -unsigned long in_use;/* set if the device is in use */ +struct mutex mutex;struct snd_tea575x_ops *ops;void *private_data;u8 card[32 ];sound/i2c/other/tea575x-tuner.c +1
-19@@ -282,26 +282,9 @@ static int vidioc_s_input(struct file *freturn 0 ; } -static int snd_tea575x_exclusive_open (struct file *file) -{ -struct snd_tea575x *tea =video_drvdata (file); - -return test_and_set_bit (0 , &tea->in_use) ? -EBUSY :0 ; -} - -static int snd_tea575x_exclusive_release (struct file *file) -{ -struct snd_tea575x *tea =video_drvdata (file); - -clear_bit (0 , &tea->in_use); -return 0 ; -} -static const struct v4l2_file_operations tea575x_fops = { .owner =THIS_MODULE , - .open = snd_tea575x_exclusive_open, - .release = snd_tea575x_exclusive_release, - .ioctl = video_ioctl2, + .unlocked_ioctl = video_ioctl2, };static const struct v4l2_ioctl_ops tea575x_ioctl_ops = {@@ -340,13 +323,14 @@ int snd_tea575x_init(struct snd_tea575xif (snd_tea575x_read (tea) !=0x55AA )return -ENODEV ; - tea->in_use =0 ; tea->val =TEA575X_BIT_BAND_FM |TEA575X_BIT_SEARCH_10_40 ;sound/i2c/other/tea575x-tuner.c int snd_tea575x_init(struct snd_tea575x · line 336
Quoted 10 lines
sound/i2c/other/tea575x-tuner.c +2
-0tea->freq =90500 *16 ;/* 90.5Mhz default */ snd_tea575x_set_freq (tea); tea->vd = tea575x_radio;video_set_drvdata (&tea->vd, tea); +mutex_init (&tea->mutex); + tea->vd.lock = &tea->mutex;v4l2_ctrl_handler_init (&tea->ctrl_handler,1 ); tea->vd.ctrl_handler = &tea->ctrl_handler;_______________________________________________
Alsa-devel mailing list
[email protected]
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
At Sun, 12 Jun 2011 19:48:47 +0200,
Quoted 10 lines · Hans Verkuil
Quoted 8 lines · On Sunday, June 12, 2011 18:52:56 Takashi Iwai wrote:
At Sat, 11 Jun 2011 15:36:39 +0200,
Quoted 6 lines · Hans Verkuil
Quoted 1 line · On Saturday, June 11, 2011 15:28:59 Ondrej Zary wrote:
Change locking to allow tea575x-radio device to be opened multiple times.
Very nice!
Quoted 7 lines
Quoted 4 lines
Quoted 1 line
Signed-off-by Hans Verkuil <[email protected]>Hans, would you apply this and another one via v4l tree or shall I apply them via sound tree?
This is all V4L related, so I think Mauro can apply this patch and the other patch for v3.1. No need to go through an intermediate tree of mine.
OK, good to know my work is shortened :)
thanks,
Takashi
Quoted 83 lines
Regards,
Hans
Quoted 77 lines
Takashi
Quoted 72 lines
Regards,
Hans
Quoted 52 lines
Signed-off-by Ondrej Zary <[email protected]>include/sound/tea575x-tuner.h +1
-1@@ -49,7 +49,7 @@ struct snd_tea575x {bool tuned;/* tuned to a station */ unsigned int val;/* hw value */ unsigned long freq;/* frequency */ -unsigned long in_use;/* set if the device is in use */ +struct mutex mutex;struct snd_tea575x_ops *ops;void *private_data;u8 card[32 ];sound/i2c/other/tea575x-tuner.c +1
-19@@ -282,26 +282,9 @@ static int vidioc_s_input(struct file *freturn 0 ; } -static int snd_tea575x_exclusive_open (struct file *file) -{ -struct snd_tea575x *tea =video_drvdata (file); - -return test_and_set_bit (0 , &tea->in_use) ? -EBUSY :0 ; -} - -static int snd_tea575x_exclusive_release (struct file *file) -{ -struct snd_tea575x *tea =video_drvdata (file); - -clear_bit (0 , &tea->in_use); -return 0 ; -} -static const struct v4l2_file_operations tea575x_fops = { .owner =THIS_MODULE , - .open = snd_tea575x_exclusive_open, - .release = snd_tea575x_exclusive_release, - .ioctl = video_ioctl2, + .unlocked_ioctl = video_ioctl2, };static const struct v4l2_ioctl_ops tea575x_ioctl_ops = {@@ -340,13 +323,14 @@ int snd_tea575x_init(struct snd_tea575xif (snd_tea575x_read (tea) !=0x55AA )return -ENODEV ; - tea->in_use =0 ; tea->val =TEA575X_BIT_BAND_FM |TEA575X_BIT_SEARCH_10_40 ;sound/i2c/other/tea575x-tuner.c int snd_tea575x_init(struct snd_tea575x · line 336
Quoted 10 lines
sound/i2c/other/tea575x-tuner.c +2
-0tea->freq =90500 *16 ;/* 90.5Mhz default */ snd_tea575x_set_freq (tea); tea->vd = tea575x_radio;video_set_drvdata (&tea->vd, tea); +mutex_init (&tea->mutex); + tea->vd.lock = &tea->mutex;v4l2_ctrl_handler_init (&tea->ctrl_handler,1 ); tea->vd.ctrl_handler = &tea->ctrl_handler;_______________________________________________
Alsa-devel mailing list
[email protected]
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel