~
> >
> > Can you rebase this series?
>
> Thanks for letting me know, I'll look into this for the next iteration.
>
> > I also need Acked-by's for patches 1-3 from one of the PHY maintainers, but
> > as
> > you mentioned this mig
Hi Deepak,
On Fri, Apr 30, 2021 at 10:34:37PM +0530, Deepak R Varma wrote:
> On Fri, Apr 30, 2021 at 07:33:27PM +0300, Sakari Ailus wrote:
> > Hi Deepak,
> >
> > If you're touching all these lines, I might do a little more. Please see
> > the comments below.
&
>
> @@ -393,7 +389,8 @@ static bool buffers_needed(struct ia_css_pipe *pipe)
>
> int
> allocate_mipi_frames(struct ia_css_pipe *pipe,
> - struct ia_css_stream_info *info) {
> + struct ia_css_stream_info *info)
> +{
> int err = -EINVAL;
;
> +
> +mipi_csi2_in: port@0 {
> +reg = <0>;
> +
> +mipi_csi2_in_ov8865: endpoint {
> + bus-type = <4>; /* MIPI CSI-2 D-PHY */
> +clock-lanes = <0>;
> +data-lanes = <1 2 3 4>;
SUN6I_MIPI_CSI2_CH_INT_EN_FRAME_SYNC_ERR BIT(24)
> +#define SUN6I_MIPI_CSI2_CH_INT_EN_EMB_DATA BIT(18)
> +#define SUN6I_MIPI_CSI2_CH_INT_EN_PF BIT(17)
> +#define SUN6I_MIPI_CSI2_CH_INT_EN_PH_UPDATE BIT(16)
> +#define SUN6I_MIPI_CSI2_CH_INT_EN_LINE_START_SYNCBIT(11)
> +#define SUN6I_MIPI_CSI2_CH_INT_EN_LINE_END_SYNC BIT(10)
> +#define SUN6I_MIPI_CSI2_CH_INT_EN_FRAME_START_SYNC BIT(9)
> +#define SUN6I_MIPI_CSI2_CH_INT_EN_FRAME_END_SYNC BIT(8)
> +#define SUN6I_MIPI_CSI2_CH_INT_EN_FIFO_OVER BIT(0)
> +
> +#define SUN6I_MIPI_CSI2_CH_INT_PD_REG0x58
> +#define SUN6I_MIPI_CSI2_CH_INT_PD_EOT_ERRBIT(29)
> +#define SUN6I_MIPI_CSI2_CH_INT_PD_CHKSUM_ERR BIT(28)
> +#define SUN6I_MIPI_CSI2_CH_INT_PD_ECC_WRNBIT(27)
> +#define SUN6I_MIPI_CSI2_CH_INT_PD_ECC_ERRBIT(26)
> +#define SUN6I_MIPI_CSI2_CH_INT_PD_LINE_SYNC_ERR BIT(25)
> +#define SUN6I_MIPI_CSI2_CH_INT_PD_FRAME_SYNC_ERR BIT(24)
> +#define SUN6I_MIPI_CSI2_CH_INT_PD_EMB_DATA BIT(18)
> +#define SUN6I_MIPI_CSI2_CH_INT_PD_PF BIT(17)
> +#define SUN6I_MIPI_CSI2_CH_INT_PD_PH_UPDATE BIT(16)
> +#define SUN6I_MIPI_CSI2_CH_INT_PD_LINE_START_SYNCBIT(11)
> +#define SUN6I_MIPI_CSI2_CH_INT_PD_LINE_END_SYNC BIT(10)
> +#define SUN6I_MIPI_CSI2_CH_INT_PD_FRAME_START_SYNC BIT(9)
> +#define SUN6I_MIPI_CSI2_CH_INT_PD_FRAME_END_SYNC BIT(8)
> +#define SUN6I_MIPI_CSI2_CH_INT_PD_FIFO_OVER BIT(0)
> +
> +#define SUN6I_MIPI_CSI2_CH_DT_TRIGGER_REG0x60
> +#define SUN6I_MIPI_CSI2_CH_CUR_PH_REG0x70
> +#define SUN6I_MIPI_CSI2_CH_ECC_REG 0x74
> +#define SUN6I_MIPI_CSI2_CH_CKS_REG 0x78
> +#define SUN6I_MIPI_CSI2_CH_FRAME_NUM_REG 0x7c
> +#define SUN6I_MIPI_CSI2_CH_LINE_NUM_REG 0x80
> +
> +#define SUN6I_MIPI_CSI2_CH_REG(reg, ch) \
> + (SUN6I_MIPI_CSI2_CH_BASE + SUN6I_MIPI_CSI2_CH_OFFSET * (ch) + (reg))
> +
> +enum mipi_csi2_data_type {
> + MIPI_CSI2_DATA_TYPE_RAW8= 0x2a,
> + MIPI_CSI2_DATA_TYPE_RAW10 = 0x2b,
> + MIPI_CSI2_DATA_TYPE_RAW12 = 0x2c,
> +};
> +
> +struct sun6i_mipi_csi2_video {
> + struct v4l2_fwnode_endpoint endpoint;
> + struct v4l2_subdev subdev;
> + struct media_pad pads[2];
> +
> + struct v4l2_async_subdev subdev_async;
> + struct v4l2_async_notifier notifier;
> +
> + struct v4l2_subdev *remote_subdev;
> + u32 remote_pad_index;
> + u32 mbus_code;
> +};
> +
> +struct sun6i_mipi_csi2_dev {
> + struct device *dev;
> +
> + struct regmap *regmap;
> + struct clk *clk_mod;
> + struct reset_control *reset;
> + struct phy *dphy;
> +
> + struct sun6i_mipi_csi2_video video;
> +};
> +
> +#define sun6i_mipi_csi2_subdev_video(subdev) \
> + container_of(subdev, struct sun6i_mipi_csi2_video, subdev)
> +
> +#define sun6i_mipi_csi2_video_dev(video) \
> + container_of(video, struct sun6i_mipi_csi2_dev, video)
> +
> +#endif /* __SUN6I_MIPI_CSI2_H__ */
--
Regards,
Sakari Ailus
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
#size-cells = <0>;
> +
> +mipi_csi2_in: port@0 {
> +reg = <0>;
> +
> +mipi_csi2_in_ov5648: endpoint {
> + bus-type = <4>; /* MIPI CSI-2 D-PHY */
> +clock-lanes =
markups should use this format:
> identifier - description
>
> Signed-off-by: Mauro Carvalho Chehab
On IPU3 and V4L2 bits:
Acked-by: Sakari Ailus
--
Regards,
Sakari Ailus
___
devel mailing list
de...@lin
Hi Andy,
On Thu, Sep 17, 2020 at 03:45:14PM +0300, Andy Shevchenko wrote:
> On Thu, Sep 17, 2020 at 11:52:28AM +0100, Dan Scally wrote:
> > On 17/09/2020 11:33, Sakari Ailus wrote:
> > > a module and not enlarge everyone's kernel, and the initialisation would
> > >
Hi Dan,
On Thu, Sep 17, 2020 at 01:49:41PM +0300, Dan Carpenter wrote:
> On Thu, Sep 17, 2020 at 01:33:43PM +0300, Sakari Ailus wrote:
> > > +static int connect_supported_devices(void)
> > > +{
> > > + struct acpi_device *adev;
> > > + struct device *de
iled to connect any devices\n");
> + goto out;
> + } else {
> + pr_info("Found %d supported devices\n", bridge.n_sensors);
> + }
> +
> + bridge.cio2 = pci_get_device(PCI_VENDOR_ID_INTEL, CIO2_PCI_ID, NULL);
> + if (!bridge.cio2) {
> + ret = -ENODEV;
> + goto out;
> + }
> +
> + fwnode = software_node_fwnode(_hid_node);
> + if (!fwnode) {
> + pr_err("Error getting fwnode from cio2 software_node\n");
> + ret = -ENODEV;
> + goto out;
> + }
> +
> + /*
> + * We store the pci_dev's existing fwnode, beccause in the event we
> + * want to reload (I.E. rmmod and insmod) this module we need to give
> + * the device its original fwnode back to prevent problems down the
> + * line
> + */
> +
> + bridge.cio2_fwnode = fwnode_handle_get(bridge.cio2->dev.fwnode);
> +
> + fwnode->secondary = ERR_PTR(-ENODEV);
> + bridge.cio2->dev.fwnode = fwnode;
> +
> + return 0;
> +out:
> + cio2_bridge_exit();
> + return ret;
> +}
> +
> +static int cio2_bridge_unregister_sensors(void)
> +{
> + int i, j;
> + struct sensor *sensor;
> +
> + for (i = 0; i < bridge.n_sensors; i++) {
> + sensor = [i];
> +
> + /* give the sensor its original fwnode back */
> + sensor->dev->fwnode = sensor->fwnode;
> + fwnode_handle_put(sensor->fwnode);
> + put_device(sensor->dev);
> +
> + for (j = 4; j >= 0; j--)
> + software_node_unregister(>swnodes[j]);
> + }
> +
> + return 0;
> +}
> +
> +static void cio2_bridge_exit(void)
> +{
> + int ret;
> +
> + /* Give the pci_dev its original fwnode back */
> + if (bridge.cio2) {
> + bridge.cio2->dev.fwnode = bridge.cio2_fwnode;
> + fwnode_handle_put(bridge.cio2_fwnode);
> + pci_dev_put(bridge.cio2);
> + }
> +
> + ret = cio2_bridge_unregister_sensors();
> +
> + if (ret)
> + pr_err("An error occurred unregistering the sensors\n");
> +
> + software_node_unregister(_hid_node);
> +}
> +
> +module_init(cio2_bridge_init);
> +module_exit(cio2_bridge_exit);
> +
> +MODULE_DESCRIPTION("A bridge driver to connect sensors to CIO2
> infrastructure.");
> +MODULE_LICENSE("GPL v2");
> +MODULE_ALIAS("acpi*:INT343E:*");
--
Kind regards,
Sakari Ailus
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
, 1, PCI_IRQ_MSI);
>
> - if (r) {
> + if (r < 0) {
> dev_err(>dev, "failed to enable MSI (%d)\n", r);
> return r;
> }
I believe fixing this requires also releasing it, i.e. a call to
pci_free_irq_vectors(). This seems to have been miss
("media: atomisp: get rid of an iomem abstraction layer")
> Signed-off-by: Dan Carpenter
Acked-by: Sakari Ailus
--
Sakari Ailus
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
ace where we're commenting the code out, in order
> to avoid the warning.
>
> Fixes: 95d1f398c4dc ("media: atomisp: keep the ISP powered on when setting
> it")
> Signed-off-by: Mauro Carvalho Chehab
Acked-by: Sakari Ailus
Note that some of this may be needed to pow
On Thu, May 21, 2020 at 08:44:32PM +0100, Colin King wrote:
> From: Colin Ian King
>
> There are several spelling mistakes in various messages and literal
> strings. Fix these.
>
> Signed-off-by: Colin Ian King
Acked-by: Sakari Ailus
On Mon, May 25, 2020 at 08:55:59AM +0200, Mauro Carvalho Chehab wrote:
> The atomisp driver has lots of issues. This series get rid of a few of
> them and updates the TODO list to reflect the current status and
> provide more details aboug some items.
Acked-by: Sakari Ailus
--
Sak
uAPI structs of this
driver use. I'd prefer atomisp_something, ia_css has been used internally,
and that probably has been there in later firmware versions (vs. just css).
At this point removing the duplication makes sense though, so I'm not
proposing changes here.
--
ile the driver probes the hardware and reports itself as a
> -V4L2 driver, there are still some issues preventing it to
> -stream (at least it doesn't with the standard V4L2 applications.
> -Didn't test yet with some custom-made app for this driver).
> -Solving the related bugs and issues preventing it to work is
> -needed.
> -
> -Limitations:
> +Limitations
> +===
>
> 1. To test the patches, you also need the ISP firmware
>
> @@ -84,6 +178,8 @@ Limitations:
> It will not detect those devices enumerated via ACPI as a field of the
> i915 GPU driver.
>
> + There are some patches adding i915 GPU support floating at the Yocto's
> + Aero repository (so far, untested upstream).
> +
> 4. The driver supports only v2 of the IPU/Camera. It will not work with the
> versions of the hardware in other SoCs.
> -
> --
> 2.26.2
>
--
Sakari Ailus
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Hi Mauro,
On Wed, May 20, 2020 at 09:44:00AM +0200, Mauro Carvalho Chehab wrote:
> Hi Sakari,
>
> Em Sun, 17 May 2020 13:36:59 +0300
> Sakari Ailus escreveu:
>
> > Hi Mauro,
> >
> > Thanks for the patch.
>
> Thanks for reviewing it.
>
> >
>
NT3479"},
> + {"INT347A"},
> + {"INT347B"},
> + {"OVTI9234"},
> + {"OVTI9734"},
> + {"OVTI8856"},
> + {"OVTIF860"},
> + {},
> +};
> +MODULE_DEVICE_TABLE(acpi, ipu3_acpi_acpi_mat
Hi Steve,
Btw. I think probably a smaller list of recipients would be just fine on the
next version.
On Fri, Feb 28, 2020 at 10:16:06AM -0800, Steve Longerbeam wrote:
> Hi Sakari,
>
> On 2/25/20 7:07 AM, Sakari Ailus wrote:
> > Hi Steve,
> >
> > On Sat, Feb 15, 2020
On Wed, Feb 26, 2020 at 03:50:04PM -0800, Steve Longerbeam wrote:
> Hi Sakari,
>
> Thanks for the feedback.
>
>
> On 2/25/20 7:07 AM, Sakari Ailus wrote:
> > Hi Steve,
> >
> > On Sat, Feb 15, 2020 at 11:41:21AM -0800, Steve Longerbeam wrote:
&g
c | 7 ++-
> drivers/staging/media/imx/imx7-media-csi.c | 7 ++-
> drivers/staging/media/imx/imx7-mipi-csis.c | 9 -
> include/media/v4l2-fwnode.h| 12
> 6 files changed, 36 insertions(+), 18 deletions(-)
--
Kind regards,
Sakari Ailus
_
names = "mclk";
> + status = "disabled";
> + };
> +
> lcdif: lcdif@21c8000 {
> compatible = "fsl,imx6ul-lcdif",
> "fsl,imx28-lcd
s is part a tree-wide conversion, as described in commit fc1d8e7cca2d
> ("mm: introduce put_user_page*(), placeholder versions").
>
> Cc: Mauro Carvalho Chehab
> Cc: Kees Cook
> Cc: Hans Verkuil
> Cc: Sakari Ailus
> Cc: Jan Kara
> Cc: Robin Murphy
>
UPPORT but that's not
declared in its Kconfig entry. I wonder if adding that would be the right
way to fix this.
Cc'ing the IOMMU list.
> select VIDEOBUF2_DMA_SG
> help
> This is the Video4Linux2 driver for Intel IPU3 image processing unit,
--
Regards,
Sakari Ailus
ng about the type mismatch
> first, especially since find_format doesn't appear to be used anywhere else.
> However, now I won't remove check_format and replace it with find_format as
> I'd originally planned, since you've said that isn't necessary here. That
> leaves the return type issue.
>
>
> > So in the end, I think we should keep the !! and drop the (bool) cast if
> > there's
> > no particular warning about it.
>
> Should I send a version 3 that does this?
bool was introduced in C99. Converting a non-zero value to boolean will
yield true as a result. Please keep the code as-is; it's much easier to
read that way.
--
Kind regards,
Sakari Ailus
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
; and do give them a rejuvenation shower in order to address the
> isues pointed on their TODO lists, be our guest!
>
> Signed-off-by: Mauro Carvalho Chehab
Acked-by: Sakari Ailus
--
Sakari Ailus
sakari.ai...@linux.intel.com
__
On Sat, Apr 20, 2019 at 11:04:07AM +, MosesChristopher wrote:
> From: Moses Christopher
>
> - Resolve the following warning from the Kconfig,
> "WARNING: prefer 'help' over '---help---' for new help texts"
>
> Signed-off-by: Moses Christopher
Reviewed-b
: staging/intel-ipu3: Add css pipeline
> programming")
> Signed-off-by: Arnd Bergmann
> ---
> v2: restructure to use 'return -ENOMEM' instead of goto for failed
> allocation.
Thanks, Arnd! All three applied.
--
Sakari Ailus
sakari.ai...@linux.intel.com
___
On Tue, Mar 05, 2019 at 09:40:24AM +0100, Arnd Bergmann wrote:
> On Tue, Mar 5, 2019 at 8:53 AM Sakari Ailus
> wrote:
> > On Tue, Mar 05, 2019 at 12:25:18AM +, Cao, Bingbu wrote:
>
> > > > struct v4
; - return -EINVAL;
> > + ret = -EINVAL;
> > + goto out;
> > }
> > *fmts[i] = q[i].fmt.mpix;
> > }
> > @@ -1859,7 +1869
On Tue, Feb 19, 2019 at 09:00:30AM -0500, Mauro Carvalho Chehab wrote:
> Some kernel-doc markups are wrong. fix them.
>
> Signed-off-by: Mauro Carvalho Chehab
Acked-by: Sakari Ailus
--
Sakari Ailus
sakari.ai...@linux.intel.com
___
deve
pe-limits)
> +ccflags-y += $(call cc-disable-warning, unused-const-variable)
I'm preparing patches to address these. Could you wait a little bit more,
please?
Thanks.
--
Kind regards,
Sakari Ailus
sakari.ai...@linux.intel.com
___
devel maili
ce unregister before ctrl_handler_free
> - GPL => GPL v2
> - Fix squash of CSI patches, issue on v11
> - add Acked-by: Sakari Ailus 10--13
> - mipi_s_stream check for ret < 0 and call pm_runtime_put_noidle
> - use __maybe_unused in pm function
+ if (ret < 0) {
> > dev_err(css->dev, "failed to find suitable binary\n");
> > return -EINVAL;
> > }
> > + css->pipes[pipe].bindex = ret;
> >
> > dev_dbg(css->dev, "Binary index %d for pipe %d found.",
> > css->pipes[pipe].bindex, pipe);
> >
>
--
Sakari Ailus
sakari.ai...@linux.intel.com
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Hi Raj,
On Wed, Jan 30, 2019 at 05:17:15PM +, Mani, Rajmohan wrote:
> Hi Sakari,
>
> > -Original Message-
> > From: Sakari Ailus [mailto:sakari.ai...@linux.intel.com]
> > Sent: Wednesday, January 30, 2019 12:59 AM
> > To: Mani, Rajmohan
> > Cc
ad;
>
> spin_lock(_pipe->qlock);
> list_add_tail(>list, _pipe->queue[b->queue].bufs);
> @@ -2071,7 +2078,8 @@ struct ipu3_css_buffer *ipu3_css_buf_dequeue(struct
> ipu3_css *css)
> return ERR_PTR(-EIO);
>
Hi Raj,
On Wed, Jan 30, 2019 at 05:17:15PM +, Mani, Rajmohan wrote:
> Hi Sakari,
>
> > -Original Message-
> > From: Sakari Ailus [mailto:sakari.ai...@linux.intel.com]
> > Sent: Wednesday, January 30, 2019 12:59 AM
> > To: Mani, Rajmohan
> > Cc
goto unregister_subdev;
> +
> + memcpy(state->events, mipi_csis_events, sizeof(state->events));
> +
> + mipi_csis_debugfs_init(state);
> + pm_runtime_enable(dev);
> + if (!pm_runtime_enabled(dev)) {
> + ret = mipi_csis_pm_resume(dev, true);
>
> The csi and mipi-csi entities pass all compliance tests.
For patches 1, 4 and 10--13:
Acked-by: Sakari Ailus
--
Sakari Ailus
sakari.ai...@linux.intel.com
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
si_clk_id[i];
> +
> + return devm_clk_bulk_get(dev, csi->num_clks, csi->clks);
> +}
> +
> +static int imx7_csi_probe(struct platform_device *pdev)
> +{
> + struct device *dev = >dev;
> + struct device_node *node = dev->of_node;
> + struct imx_media_dev *imxmd;
> + struct imx7_csi *csi;
> + struct resource *res;
> + int ret;
> +
> + csi = devm_kzalloc(>dev, sizeof(*csi), GFP_KERNEL);
> + if (!csi)
> + return -ENOMEM;
> +
> + platform_set_drvdata(pdev, >sd);
> + csi->dev = dev;
> +
> + ret = imx7_csi_clocks_get(csi);
> + if (ret < 0) {
> + dev_err(dev, "Failed to get clocks");
> + return -ENODEV;
> + }
> +
> + res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> + csi->irq = platform_get_irq(pdev, 0);
> + if (!res || csi->irq < 0) {
> + dev_err(dev, "Missing platform resources data\n");
> + return -ENODEV;
> + }
> +
> + csi->regbase = devm_ioremap_resource(dev, res);
> + if (IS_ERR(csi->regbase)) {
> + dev_err(dev, "Failed platform resources map\n");
> + return -ENODEV;
> + }
> +
> + spin_lock_init(>irqlock);
> + mutex_init(>lock);
> +
> + /* install interrupt handler */
> + ret = devm_request_irq(dev, csi->irq, imx7_csi_irq_handler, 0, "csi",
> +(void *)csi);
> + if (ret < 0) {
> + dev_err(dev, "Request CSI IRQ failed.\n");
> + ret = -ENODEV;
> + goto destroy_mutex;
> + }
> +
> + /* add media device */
> + imxmd = imx_media_dev_init(dev);
> + if (IS_ERR(imxmd)) {
> + ret = PTR_ERR(imxmd);
> + goto destroy_mutex;
> + }
> +
> + ret = imx_media_of_add_csi(imxmd, node);
> + if (ret < 0)
> + goto cleanup;
> +
> + ret = imx_media_dev_notifier_register(imxmd);
> + if (ret < 0)
> + goto cleanup;
> +
> + csi->imxmd = imxmd;
> + v4l2_subdev_init(>sd, _csi_subdev_ops);
> + v4l2_set_subdevdata(>sd, csi);
> + csi->sd.internal_ops = _csi_internal_ops;
> + csi->sd.entity.ops = _csi_entity_ops;
> + csi->sd.entity.function = MEDIA_ENT_F_VID_IF_BRIDGE;
> + csi->sd.dev = >dev;
> + csi->sd.owner = THIS_MODULE;
> + csi->sd.flags = V4L2_SUBDEV_FL_HAS_DEVNODE;
> + csi->sd.grp_id = IMX_MEDIA_GRP_ID_CSI;
> + snprintf(csi->sd.name, sizeof(csi->sd.name), "csi");
> +
> + csi->vdev = imx_media_capture_device_init(>sd, IMX7_CSI_PAD_SRC);
> + if (IS_ERR(csi->vdev))
> + return PTR_ERR(csi->vdev);
> +
> + v4l2_ctrl_handler_init(>ctrl_hdlr, 0);
> + csi->sd.ctrl_handler = >ctrl_hdlr;
> +
> + ret = v4l2_async_register_fwnode_subdev(>sd,
> + sizeof(struct v4l2_async_subdev),
> + NULL, 0, imx7_csi_parse_endpoint);
> + if (ret)
> + goto free;
> +
> + return 0;
> +
> +free:
> + v4l2_ctrl_handler_free(>ctrl_hdlr);
> + imx_media_capture_device_remove(csi->vdev);
> +
> +cleanup:
> + v4l2_async_notifier_cleanup(>notifier);
> + v4l2_device_unregister(>v4l2_dev);
> + media_device_cleanup(>md);
> +
> +destroy_mutex:
> + mutex_destroy(>lock);
> +
> + return ret;
> +}
> +
> +static int imx7_csi_remove(struct platform_device *pdev)
> +{
> + struct v4l2_subdev *sd = platform_get_drvdata(pdev);
> + struct imx7_csi *csi = v4l2_get_subdevdata(sd);
> + struct imx_media_dev *imxmd = csi->imxmd;
> +
> + imx_media_capture_device_remove(csi->vdev);
I think you're missing v4l2_async_notifier_unregister() here.
> + v4l2_async_notifier_cleanup(>notifier);
> + v4l2_device_unregister(>v4l2_dev);
Where is the media device unregistered? That should come before freeing
control handlers --- the same for unregistering video devices.
> + media_device_cleanup(>md);
> + media_entity_cleanup(>entity);
> + v4l2_async_unregister_subdev(sd);
> + v4l2_ctrl_handler_free(>ctrl_hdlr);
> + mutex_destroy(>lock);
> +
> + return 0;
> +}
> +
> +static const struct of_device_id imx7_csi_of_match[] = {
> + { .compatible = "fsl,imx7-csi" },
> + { },
> +};
> +MODULE_DEVICE_TABLE(of, imx7_csi_of_match);
> +
> +static struct platform_driver imx7_csi_driver = {
> + .probe = imx7_csi_probe,
> + .remove = imx7_csi_remove,
> + .driver = {
> + .of_match_table = imx7_csi_of_match,
> + .name = "imx7-csi",
> + },
> +};
> +module_platform_driver(imx7_csi_driver);
> +
> +MODULE_DESCRIPTION("i.MX7 CSI subdev driver");
> +MODULE_AUTHOR("Rui Miguel Silva ");
> +MODULE_LICENSE("GPL");
"GPL" or "GPL v2"?
> +MODULE_ALIAS("platform:imx7-csi");
--
Sakari Ailus
sakari.ai...@linux.intel.com
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
taging/media/ipu3/ipu3.h
> index 04fc99f47ebb..f732315f0701 100644
> --- a/drivers/staging/media/ipu3/ipu3.h
> +++ b/drivers/staging/media/ipu3/ipu3.h
> @@ -146,6 +146,10 @@ struct imgu_device {
>* vid_buf.list and css->queue
>*/
> struct mutex lock;
> +
&g
ruct imx_media_dev
> *imxmd,
> struct fwnode_handle *fwnode,
> struct platform_device *pdev);
>
> +int imx_media_subdev_bound(struct v4l2_async_notifier *notifier,
> +struct v4l2_subdev *sd,
> +struct v4l2_async_subdev *asd);
> +int imx_media_link_notify(struct media_link *link, u32 flags,
> + unsigned int notification);
> +int imx_media_probe_complete(struct v4l2_async_notifier *notifier);
> +
> +struct imx_media_dev *imx_media_dev_init(struct device *dev);
> +int imx_media_dev_notifier_register(struct imx_media_dev *imxmd);
> +
> +void imx_media_dev_cleanup(struct imx_media_dev *imxmd);
> +void imx_media_dev_notifier_unregister(struct imx_media_dev *imxmd);
> +
> /* imx-media-fim.c */
> struct imx_media_fim;
> void imx_media_fim_eof_monitor(struct imx_media_fim *fim, ktime_t timestamp);
> @@ -249,6 +262,8 @@ int imx_media_create_of_links(struct imx_media_dev *imxmd,
> struct v4l2_subdev *sd);
> int imx_media_create_csi_of_links(struct imx_media_dev *imxmd,
> struct v4l2_subdev *csi);
> +int imx_media_of_add_csi(struct imx_media_dev *imxmd,
> + struct device_node *csi_np);
>
> /* imx-media-capture.c */
> struct imx_media_video_dev *
--
Kind regards,
Sakari Ailus
sakari.ai...@linux.intel.com
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
tch with equivalent content; it was there first.
Thanks!
--
Sakari Ailus
sakari.ai...@linux.intel.com
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
y_pads_init(>mipi_sd.entity, CSIS_PADS_NUM,
> + state->pads);
> + if (ret < 0)
> + goto unregister_subdev;
> +
> + memcpy(state->events, mipi_csis_events, sizeof(state->events));
> +
> + pm_runtim
struct device *dev = csi->dev;
> +
> + csi->clk_disp_axi = devm_clk_get(dev, "axi");
> + if (IS_ERR(csi->clk_disp_axi)) {
> + dev_err(dev, "Could not get csi axi clock\n");
> + return -ENODEV;
> + }
>
Hi Rui,
On Wed, Nov 21, 2018 at 11:15:51AM +, Rui Miguel Silva wrote:
> Add bindings documentation for i.MX7 media drivers.
> The imx7 MIPI CSI2 and imx7 CMOS Sensor Interface.
>
> Signed-off-by: Rui Miguel Silva
> Reviewed-by: Rob Herring
> Acked-by: Sakari Ailus
>
On Fri, Aug 10, 2018 at 03:20:38PM +0100, Rui Miguel Silva wrote:
> Add bindings documentation for i.MX7 media drivers.
> The imx7 MIPI CSI2 and imx7 CMOS Sensor Interface.
>
> Reviewed-by: Rob Herring
> Signed-off-by: Rui Miguel Silva
Acked-by: Sakari Ailus -
--
Sakari
-names = "pclk", "wrap", "phy";
> +clock-frequency = <16600>;
> +power-domains = <_mipi_phy>;
> +phy-supply = <_1p0d>;
> +resets = < IMX7_RESET_MIPI_PHY_MRST>;
> +
ipe_binarydesc.c | 3 ++-
> .../staging/media/atomisp/pci/atomisp2/css2400/sh_css.c| 7 +--
> 5 files changed, 7 insertions(+), 27 deletions(-)
>
I'm sorry to tell you that the atomisp driver was removed from the staging
tree some time
On Tue, May 22, 2018 at 02:19:21PM +0100, Rui Miguel Silva wrote:
> Hi Sakari,
> On Fri 18 May 2018 at 22:13, Sakari Ailus wrote:
> > On Fri, May 18, 2018 at 09:27:58AM +0100, Rui Miguel Silva wrote:
> > > > > +endpoint node
> > > > > +---
> table in [0], can you point me out the formula for imx7 in the
> documentation?
I don't know imx7 but the other CSI-2 drivers need no such system specific
configuration.
--
Sakari Ailus
sakari.ai...@linux.intel.com
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
#address-cells = <1>;
> +#size-cells = <0>;
> +
> + compatible = "fsl,imx7-csi";
> +reg = <0x3071 0x1>;
> +interrupts = ;
> +clocks = < IMX7D_CLK_DUMMY>,
> +< IMX7D_CSI_MCLK_ROOT_CLK>,
> +< IMX7D_CLK_DUMMY>;
> +clock-names = "axi", "mclk", "dcic";
> +
> +port {
> +csi_from_csi_mux: endpoint {
> +remote-endpoint = <_mux_to_csi>;
> +};
> +};
> +};
> --
> 2.17.0
>
--
Sakari Ailus
sakari.ai...@linux.intel.com
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
contain "axi", "mclk" and "dcic" entries, matching
> + entries in the clock property;
> +
> +example:
> +
> +csi: csi@3071 {
> +#address-cells = <1>;
> +
lity or static checker fix so that's
> > fine.
>
> Thanks for your response. From the performance perspective, this bug
> should also be fixed, as the second invocation is redundant if it is
> expected to return a same pointer as the first one.
The arg
m, one should start
> getting rid of the several abstraction layers at the driver and have
> hardware for test.
>
> As I don't have any hardware to test, nor any reason why
> dedicating myself to such task, I'll just leave this task for others
> to do.
Thanks. Feel free to add
please add:
Acked-by: Sakari Ailus <sakari.ai...@linux.intel.com>
--
Sakari Ailus
sakari.ai...@linux.intel.com
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
rstand Andy's
patches address problems with functionality, let's make error handling
fixes separately.
So I'm applying these now.
Thanks!
--
Kind regards,
Sakari Ailus
sakari.ai...@linux.intel.com
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
DEVICE_ATTR_RO(dynamic_pool);
>
> static struct attribute *sysfs_attrs_ctrl[] = {
> _attr_active_bo.attr,
I have the exact same changes queued up in my tree. As there seem to be no
dependencies to other patches in your set, how about dropping this c
On Sat, Dec 02, 2017 at 10:12:01PM +, Jeremy Sowden wrote:
> Removing zero-valued struct-members left a number of the default
> struct-values empty. These values have now been removed.
>
> Signed-off-by: Jeremy Sowden <jer...@azazel.net>
This one should be squashed as
in an assignment expression.
>
> Signed-off-by: Jeremy Sowden <jer...@azazel.net>
I don't think it's useful to change the struct definition macros only to
remove a large number of assigned fields in the next patch. How about
merging the two patches?
Please also start a new thread when re-post
rocki <s.nawro...@samsung.com>
> Signed-off-by: Mauro Carvalho Chehab <mche...@s-opensource.com>
I'm not sure this is needed but it doesn't break anything either.
Feel free to add:
Acked-by: Sakari Ailus <sakari.ai...@linux.intel.com>
--
Sakari Ailus
e-mail: sakari.ai...@
On Wed, Nov 29, 2017 at 10:28:26AM -0200, Mauro Carvalho Chehab wrote:
> Em Wed, 29 Nov 2017 10:24:57 -0200
> Mauro Carvalho Chehab <mche...@s-opensource.com> escreveu:
>
> > Em Wed, 29 Nov 2017 14:14:54 +0200
> > Sakari Ailus <sakari.ai...@linux.intel.com&
moving lesser
than-characaters.
It'd be good to mention how it's been generated.
--
Kind regards,
Sakari Ailus
sakari.ai...@linux.intel.com
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
On Wed, Nov 29, 2017 at 10:15:06AM +0100, Greg KH wrote:
> On Wed, Nov 29, 2017 at 11:08:17AM +0200, Sakari Ailus wrote:
> > Hi Greg,
> >
> > On Mon, Nov 27, 2017 at 01:21:25PM +0100, Greg KH wrote:
> > > On Mon, Nov 27, 2017 at 11:30:53AM +, Jeremy Sowden wrote:
merged via the media tree. To avoid
conflicts, I suggest to avoid merging them via the staging tree.
Thanks.
--
Kind regards,
Sakari Ailus
e-mail: sakari.ai...@iki.fi
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
> .../isp/kernels/eed1_8/ia_css_eed1_8.host.c| 24
> +++---
> .../isp_param/interface/ia_css_isp_param_types.h | 2 +-
> 2 files changed, 13 insertions(+), 13 deletions(-)
Thanks, applied!
--
Sakari Ailus
e-mail: sakari.ai...@iki.fi
On Mon, Nov 27, 2017 at 11:30:54AM +, Jeremy Sowden wrote:
> Signed-off-by: Jeremy Sowden <jer...@azazel.net>
I'd just leave it as-is, int16_t is a standard type. The commit message
would be needed, too.
--
Sakari Ailus
e-mail: sakari.ai.
lying the rest of the patch.
Please use the media tree as the base in the future. Thanks.
--
Sakari Ailus
e-mail: sakari.ai...@iki.fi
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
On Tue, Oct 17, 2017 at 08:16:03AM -0700, Kees Cook wrote:
> On Tue, Oct 17, 2017 at 1:23 AM, Sakari Ailus <sakari.ai...@iki.fi> wrote:
> > On Mon, Oct 16, 2017 at 04:24:56PM -0700, Kees Cook wrote:
> >> In preparation for unconditionally passing the struct timer_list p
e branch.
Could you rebase your patches on this branch, please?
<URL:https://git.linuxtv.org/sailus/media_tree.git/log/?h=atomisp-next>
Normally it'll be "atomisp".
--
Kind regards,
Sakari Ailus
e-mail: sakari.ai...@iki.fi
___
deve
> > +
> > if (on) {
> > ret = clk_set_rate(gs->pmc_clk, gs->clock_src);
>
> Which tree [and branch] are you working off please? In the staging-next
> branch of Greg's staging
> tree this function does not appear as it is in this patch.
Media
ev.osuosl.org
> Signed-off-by: Kees Cook <keesc...@chromium.org>
This appears to be the same as the patch I've applied previously.
--
Sakari Ailus
e-mail: sakari.ai...@iki.fi
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
?h=atomisp>
--
Kind regards,
Sakari Ailus
e-mail: sakari.ai...@iki.fi
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
mework or
sensor driver changes to support atomisp, which currently is a staging
driver.
--
Sakari Ailus
sakari.ai...@linux.intel.com
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
g this patch at least until
the other drivers are available.
Andy, Alan; any opinion?
--
Kind regards,
Sakari Ailus
sakari.ai...@linux.intel.com
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Hi Mauro,
(Removing the non-list recipients.)
On Fri, Sep 29, 2017 at 06:27:13AM -0300, Mauro Carvalho Chehab wrote:
> Em Thu, 28 Sep 2017 15:09:21 +0300
> Sakari Ailus <sakari.ai...@iki.fi> escreveu:
>
> > Hi Mauro,
> >
> > On Wed, Sep 27, 2017 at 06:46:56PM -
roperty API is just an API.
--
Kind regards,
Sakari Ailus
e-mail: sakari.ai...@iki.fi
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
roperty API is just an API.
--
Kind regards,
Sakari Ailus
e-mail: sakari.ai...@iki.fi
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
roperty API is just an API.
--
Kind regards,
Sakari Ailus
e-mail: sakari.ai...@iki.fi
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
.intel.com>
> Signed-off-by: Pierre-Louis Bossart <pierre-louis.boss...@linux.intel.com>
I've applied the patch with small changes, there were other patches
changing the deleted files.
The tree is here:
<URL:https://git.linuxtv.org/sailus/media_tree.git/log/?h=atomi
ommit message (subject line) at least. This case is a bit
special because the other driver is also specific to the atomisp staging
driver.
Thanks.
--
Sakari Ailus
e-mail: sakari.ai...@iki.fi
___
devel mailing list
de...@linuxdriverproject.org
http://d
GFP_KERNEL);
> if (parambuf == NULL)
> return IA_CSS_ERR_CANNOT_ALLOCATE_MEMORY;
--
Sakari Ailus
e-mail: sakari.ai...@iki.fi
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Hi Devid,
Please see my comments below.
Andy: please look for "INT5648".
On Sun, Sep 10, 2017 at 02:23:07PM +0200, Devid Antonio Floni wrote:
> The ov5680 5-megapixel camera sensor from OmniVision supports up to 2592x1944
> resolution and MIPI CSI-2 interface. Output format is raw sRGB/Bayer
;julia.law...@lip6.fr>
Signed-off-by: Mauro Carvalho Chehab <mche...@s-opensource.com>
--
Sakari Ailus
e-mail: sakari.ai...@iki.fi
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
driver chip that drives a single flash LED and an indicator LED is no
longer valid.
Address the matter by registering one sub-device per LED.
Signed-off-by: Sakari Ailus <sakari.ai...@linux.intel.com>
Reviewed-by: Jacek Anaszewski <jacek.anaszew...@gmail.com>
Acked-by: Pavel Machek &
driver chip that drives a single flash LED and an indicator LED is no
longer valid.
Address the matter by registering one sub-device per LED.
Signed-off-by: Sakari Ailus <sakari.ai...@linux.intel.com>
Reviewed-by: Jacek Anaszewski <jacek.anaszew...@gmail.com>
Acked-by: Pavel Machek &
e from
v4l2_flash_init() for it never returns NULL.
Fixes: 2870b52bae4c ("greybus: lights: add lights implementation")
Reported-by: Sakari Ailus <sakari.ai...@linux.intel.com>
Signed-off-by: Rui Miguel Silva <rmf...@gmail.com>
Reviewed-by: Viresh Kumar <viresh.ku...@linaro.o
tor" already in mediatree.
- Add "v4l2-flash-led-class: Document v4l2_flash_init() references" to the
set.
Rui Miguel Silva (1):
staging: greybus: light: fix memory leak in v4l2 register
Sakari Ailus (2):
v4l2-flash-led-class: Create separate sub-devices for indicators
The v4l2_flash_init() keeps a reference to the ops struct but not to the
config struct (nor anything it contains). Document this.
Signed-off-by: Sakari Ailus <sakari.ai...@linux.intel.com>
Acked-by: Pavel Machek <pa...@ucw.cz>
Acked-by: Hans Verkuil <hans.verk...@cisco.com>
driver chip that drives a single flash LED and an indicator LED is no
longer valid.
Address the matter by registering one sub-device per LED.
Signed-off-by: Sakari Ailus <sakari.ai...@linux.intel.com>
Reviewed-by: Jacek Anaszewski <jacek.anaszew...@gmail.com>
Acked-by: Pavel Machek &
_flash_ops, _cfg);
> > + if (IS_ERR_OR_NULL(light->v4l2_flash))
>
> Just IS_ERR since v4l2_flash_init() never returns NULL.
Will fix.
>
> > + return PTR_ERR(light->v4l2_flash);
> >
> > - return ret;
> >
ver, please
submit them as a single patch instead. And do continue paying attention to
commit message subject and body.
Thanks.
--
Sakari Ailus
e-mail: sakari.ai...@iki.fi XMPP: sai...@retiisi.org.uk
___
devel mailing list
de...@linuxdriv
* The metadata contains exposure settings and face
> + * detection results.
> + */
/*
* Multi-line comments
* look like this.
*/
> static u16 ap1302_ss_list[] = {
> 0xb01c, /* From 0x0186 with size 0x1C are exposure settings. */
> 0x0186,
> --
>
ady includes a copy of the GPL.
Applied, with the subject line changed to "staging: media: atomisp: ap1302:
Remove FSF postal address" and "CHECK: " removed. Please look e.g. git log
on the atomisp driver for subject examples in the future.
Thanks.
--
Sakari Ailus
e-mail: s
Hi Rui,
On Wed, Aug 09, 2017 at 02:20:02PM +0100, Rui Miguel Silva wrote:
> Hi Sakari,
> On Wed, Aug 09, 2017 at 02:15:53PM +0300, Sakari Ailus wrote:
> > From: Rui Miguel Silva <rmf...@gmail.com>
> >
> > We are allocating memory for the v4l2 flash config
4l2-flash-led-class: Document v4l2_flash_init() references" to the
set.
Rui Miguel Silva (1):
staging: greybus: light: fix memory leak in v4l2 register
Sakari Ailus (2):
v4l2-flash-led-class: Create separate sub-devices for indicators
v4l2-flash-led-class: Document v4l2_fla
")
Reported-by: Sakari Ailus <sakari.ai...@linux.intel.com>
Signed-off-by: Rui Miguel Silva <rmf...@gmail.com>
Reviewed-by: Viresh Kumar <viresh.ku...@linaro.org>
---
drivers/staging/greybus/light.c | 29 +
1 file changed, 9 insertions(+), 20 deletion
The v4l2_flash_init() keeps a reference to the ops struct but not to the
config struct (nor anything it contains). Document this.
Signed-off-by: Sakari Ailus <sakari.ai...@linux.intel.com>
Acked-by: Pavel Machek <pa...@ucw.cz>
---
include/media/v4l2-flash-led-class.h | 6 ++
1
: lights: add lights implementation")
> Reported-by: Sakari Ailus <sakari.ai...@linux.intel.com>
> Signed-off-by: Rui Miguel Silva <rmf...@gmail.com>
My apologies for missing sending the original patch to the appropriate
recipients the first time.
Could I take t
1 - 100 of 163 matches
Mail list logo