Message ID | 8d43a2cfe4dcdf843d2e587e35a4bd4681eebe36.1454557589.git.shuahkh@osg.samsung.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Em Wed, 03 Feb 2016 21:03:44 -0700 Shuah Khan <shuahkh@osg.samsung.com> escreveu: > Remove au0828_enable_analog_tuner() as it is > no longer needed because v4l2-core implements > common interfaces to check for media source > availability. I didn't see such code at v4l2-core yet. Missing patch? > > In addition, queue_setup() no longer needs the > tuner availability check since v4l2-core does it. > > Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com> > --- > drivers/media/usb/au0828/au0828-video.c | 61 --------------------------------- > 1 file changed, 61 deletions(-) > > diff --git a/drivers/media/usb/au0828/au0828-video.c b/drivers/media/usb/au0828/au0828-video.c > index 8c54fd2..81952c8 100644 > --- a/drivers/media/usb/au0828/au0828-video.c > +++ b/drivers/media/usb/au0828/au0828-video.c > @@ -638,64 +638,6 @@ static inline int au0828_isoc_copy(struct au0828_dev *dev, struct urb *urb) > return rc; > } > > -static int au0828_enable_analog_tuner(struct au0828_dev *dev) > -{ > -#ifdef CONFIG_MEDIA_CONTROLLER > - struct media_device *mdev = dev->media_dev; > - struct media_entity *source; > - struct media_link *link, *found_link = NULL; > - int ret, active_links = 0; > - > - if (!mdev || !dev->decoder) > - return 0; > - > - /* > - * This will find the tuner that is connected into the decoder. > - * Technically, this is not 100% correct, as the device may be > - * using an analog input instead of the tuner. However, as we can't > - * do DVB streaming while the DMA engine is being used for V4L2, > - * this should be enough for the actual needs. > - */ > - list_for_each_entry(link, &dev->decoder->links, list) { > - if (link->sink->entity == dev->decoder) { > - found_link = link; > - if (link->flags & MEDIA_LNK_FL_ENABLED) > - active_links++; > - break; > - } > - } > - > - if (active_links == 1 || !found_link) > - return 0; > - > - source = found_link->source->entity; > - list_for_each_entry(link, &source->links, list) { > - struct media_entity *sink; > - int flags = 0; > - > - sink = link->sink->entity; > - > - if (sink == dev->decoder) > - flags = MEDIA_LNK_FL_ENABLED; > - > - ret = media_entity_setup_link(link, flags); > - if (ret) { > - pr_err( > - "Couldn't change link %s->%s to %s. Error %d\n", > - source->name, sink->name, > - flags ? "enabled" : "disabled", > - ret); > - return ret; > - } else > - au0828_isocdbg( > - "link %s->%s was %s\n", > - source->name, sink->name, > - flags ? "ENABLED" : "disabled"); > - } > -#endif > - return 0; > -} > - > static int queue_setup(struct vb2_queue *vq, > unsigned int *nbuffers, unsigned int *nplanes, > unsigned int sizes[], void *alloc_ctxs[]) > @@ -707,9 +649,6 @@ static int queue_setup(struct vb2_queue *vq, > return sizes[0] < size ? -EINVAL : 0; > *nplanes = 1; > sizes[0] = size; > - > - au0828_enable_analog_tuner(dev); > - > return 0; > } > -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 02/04/2016 02:37 AM, Mauro Carvalho Chehab wrote: > Em Wed, 03 Feb 2016 21:03:44 -0700 > Shuah Khan <shuahkh@osg.samsung.com> escreveu: > >> Remove au0828_enable_analog_tuner() as it is >> no longer needed because v4l2-core implements >> common interfaces to check for media source >> availability. > > I didn't see such code at v4l2-core yet. Missing patch? Removed linux-api from cc: Please see Patch 10/22 for v4l2-core changes. [PATCH v2 10/22] media: Change v4l-core to check if source is free thanks, -- Shuah > >> >> In addition, queue_setup() no longer needs the >> tuner availability check since v4l2-core does it. >> >> Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com> >> --- >> drivers/media/usb/au0828/au0828-video.c | 61 --------------------------------- >> 1 file changed, 61 deletions(-) >> >> diff --git a/drivers/media/usb/au0828/au0828-video.c b/drivers/media/usb/au0828/au0828-video.c >> index 8c54fd2..81952c8 100644 >> --- a/drivers/media/usb/au0828/au0828-video.c >> +++ b/drivers/media/usb/au0828/au0828-video.c >> @@ -638,64 +638,6 @@ static inline int au0828_isoc_copy(struct au0828_dev *dev, struct urb *urb) >> return rc; >> } >> >> -static int au0828_enable_analog_tuner(struct au0828_dev *dev) >> -{ >> -#ifdef CONFIG_MEDIA_CONTROLLER >> - struct media_device *mdev = dev->media_dev; >> - struct media_entity *source; >> - struct media_link *link, *found_link = NULL; >> - int ret, active_links = 0; >> - >> - if (!mdev || !dev->decoder) >> - return 0; >> - >> - /* >> - * This will find the tuner that is connected into the decoder. >> - * Technically, this is not 100% correct, as the device may be >> - * using an analog input instead of the tuner. However, as we can't >> - * do DVB streaming while the DMA engine is being used for V4L2, >> - * this should be enough for the actual needs. >> - */ >> - list_for_each_entry(link, &dev->decoder->links, list) { >> - if (link->sink->entity == dev->decoder) { >> - found_link = link; >> - if (link->flags & MEDIA_LNK_FL_ENABLED) >> - active_links++; >> - break; >> - } >> - } >> - >> - if (active_links == 1 || !found_link) >> - return 0; >> - >> - source = found_link->source->entity; >> - list_for_each_entry(link, &source->links, list) { >> - struct media_entity *sink; >> - int flags = 0; >> - >> - sink = link->sink->entity; >> - >> - if (sink == dev->decoder) >> - flags = MEDIA_LNK_FL_ENABLED; >> - >> - ret = media_entity_setup_link(link, flags); >> - if (ret) { >> - pr_err( >> - "Couldn't change link %s->%s to %s. Error %d\n", >> - source->name, sink->name, >> - flags ? "enabled" : "disabled", >> - ret); >> - return ret; >> - } else >> - au0828_isocdbg( >> - "link %s->%s was %s\n", >> - source->name, sink->name, >> - flags ? "ENABLED" : "disabled"); >> - } >> -#endif >> - return 0; >> -} >> - >> static int queue_setup(struct vb2_queue *vq, >> unsigned int *nbuffers, unsigned int *nplanes, >> unsigned int sizes[], void *alloc_ctxs[]) >> @@ -707,9 +649,6 @@ static int queue_setup(struct vb2_queue *vq, >> return sizes[0] < size ? -EINVAL : 0; >> *nplanes = 1; >> sizes[0] = size; >> - >> - au0828_enable_analog_tuner(dev); >> - >> return 0; >> } >> > -- > To unsubscribe from this list: send the line "unsubscribe linux-media" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >
diff --git a/drivers/media/usb/au0828/au0828-video.c b/drivers/media/usb/au0828/au0828-video.c index 8c54fd2..81952c8 100644 --- a/drivers/media/usb/au0828/au0828-video.c +++ b/drivers/media/usb/au0828/au0828-video.c @@ -638,64 +638,6 @@ static inline int au0828_isoc_copy(struct au0828_dev *dev, struct urb *urb) return rc; } -static int au0828_enable_analog_tuner(struct au0828_dev *dev) -{ -#ifdef CONFIG_MEDIA_CONTROLLER - struct media_device *mdev = dev->media_dev; - struct media_entity *source; - struct media_link *link, *found_link = NULL; - int ret, active_links = 0; - - if (!mdev || !dev->decoder) - return 0; - - /* - * This will find the tuner that is connected into the decoder. - * Technically, this is not 100% correct, as the device may be - * using an analog input instead of the tuner. However, as we can't - * do DVB streaming while the DMA engine is being used for V4L2, - * this should be enough for the actual needs. - */ - list_for_each_entry(link, &dev->decoder->links, list) { - if (link->sink->entity == dev->decoder) { - found_link = link; - if (link->flags & MEDIA_LNK_FL_ENABLED) - active_links++; - break; - } - } - - if (active_links == 1 || !found_link) - return 0; - - source = found_link->source->entity; - list_for_each_entry(link, &source->links, list) { - struct media_entity *sink; - int flags = 0; - - sink = link->sink->entity; - - if (sink == dev->decoder) - flags = MEDIA_LNK_FL_ENABLED; - - ret = media_entity_setup_link(link, flags); - if (ret) { - pr_err( - "Couldn't change link %s->%s to %s. Error %d\n", - source->name, sink->name, - flags ? "enabled" : "disabled", - ret); - return ret; - } else - au0828_isocdbg( - "link %s->%s was %s\n", - source->name, sink->name, - flags ? "ENABLED" : "disabled"); - } -#endif - return 0; -} - static int queue_setup(struct vb2_queue *vq, unsigned int *nbuffers, unsigned int *nplanes, unsigned int sizes[], void *alloc_ctxs[]) @@ -707,9 +649,6 @@ static int queue_setup(struct vb2_queue *vq, return sizes[0] < size ? -EINVAL : 0; *nplanes = 1; sizes[0] = size; - - au0828_enable_analog_tuner(dev); - return 0; }
Remove au0828_enable_analog_tuner() as it is no longer needed because v4l2-core implements common interfaces to check for media source availability. In addition, queue_setup() no longer needs the tuner availability check since v4l2-core does it. Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com> --- drivers/media/usb/au0828/au0828-video.c | 61 --------------------------------- 1 file changed, 61 deletions(-)