Message ID | 20220415152811.636419-13-paul.kocialkowski@bootlin.com |
---|---|
State | Superseded |
Headers | show |
Series | Allwinner A31/A83T MIPI CSI-2 and A31 ISP / CSI Rework | expand |
Dne petek, 15. april 2022 ob 17:27:38 CEST je Paul Kocialkowski napisal(a): > In order to keep the power use count fields balanced when link changes > happen between v4l2_pipeline_pm_get/set calls (in open/close), > the link_notify media operation callback needs to be registered. > > Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com> Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com> Best regards, Jernej > --- > drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c > b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c index > e59ee3e3f372..578714606c2f 100644 > --- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c > +++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c > @@ -23,6 +23,7 @@ > #include <linux/sched.h> > #include <linux/sizes.h> > #include <linux/slab.h> > +#include <media/v4l2-mc.h> > > #include "sun6i_csi.h" > #include "sun6i_csi_reg.h" > @@ -574,6 +575,12 @@ void sun6i_csi_set_stream(struct sun6i_csi_device > *csi_dev, bool enable) CSI_CAP_CH0_VCAP_ON); > } > > +/* Media */ > + > +static const struct media_device_ops sun6i_csi_media_ops = { > + .link_notify = v4l2_pipeline_link_notify, > +}; > + > /* V4L2 */ > > static int sun6i_csi_link_entity(struct sun6i_csi_device *csi_dev, > @@ -683,6 +690,7 @@ static int sun6i_csi_v4l2_setup(struct sun6i_csi_device > *csi_dev) snprintf(media_dev->bus_info, sizeof(media_dev->bus_info), > "platform:%s", dev_name(dev)); > media_dev->hw_revision = 0; > + media_dev->ops = &sun6i_csi_media_ops; > media_dev->dev = dev; > > media_device_init(media_dev);
diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c index e59ee3e3f372..578714606c2f 100644 --- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c +++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c @@ -23,6 +23,7 @@ #include <linux/sched.h> #include <linux/sizes.h> #include <linux/slab.h> +#include <media/v4l2-mc.h> #include "sun6i_csi.h" #include "sun6i_csi_reg.h" @@ -574,6 +575,12 @@ void sun6i_csi_set_stream(struct sun6i_csi_device *csi_dev, bool enable) CSI_CAP_CH0_VCAP_ON); } +/* Media */ + +static const struct media_device_ops sun6i_csi_media_ops = { + .link_notify = v4l2_pipeline_link_notify, +}; + /* V4L2 */ static int sun6i_csi_link_entity(struct sun6i_csi_device *csi_dev, @@ -683,6 +690,7 @@ static int sun6i_csi_v4l2_setup(struct sun6i_csi_device *csi_dev) snprintf(media_dev->bus_info, sizeof(media_dev->bus_info), "platform:%s", dev_name(dev)); media_dev->hw_revision = 0; + media_dev->ops = &sun6i_csi_media_ops; media_dev->dev = dev; media_device_init(media_dev);
In order to keep the power use count fields balanced when link changes happen between v4l2_pipeline_pm_get/set calls (in open/close), the link_notify media operation callback needs to be registered. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com> --- drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c | 8 ++++++++ 1 file changed, 8 insertions(+)