From: <Eugen.Hristev@microchip.com> To: <Jonathan.Cameron@Huawei.com>, <mchehab+huawei@kernel.org> Cc: <linuxarm@huawei.com>, <mauro.chehab@huawei.com>, <alexandre.belloni@bootlin.com>, <Ludovic.Desroches@microchip.com>, <mchehab@kernel.org>, <Nicolas.Ferre@microchip.com>, <linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>, <linux-media@vger.kernel.org>, <Claudiu.Beznea@microchip.com> Subject: Re: [PATCH 08/25] media: atmel: properly get pm_runtime Date: Thu, 10 Jun 2021 09:04:07 +0000 [thread overview] Message-ID: <cd524923-93f0-e15c-816f-595a80184206@microchip.com> (raw) In-Reply-To: <20210505130835.000006b7@Huawei.com> On 5/5/21 3:08 PM, Jonathan Cameron wrote: > On Wed, 5 May 2021 11:41:58 +0200 > Mauro Carvalho Chehab <mchehab+huawei@kernel.org> wrote: > >> There are several issues in the way the atmel driver handles >> pm_runtime_get_sync(): >> >> - it doesn't check return codes; >> - it doesn't properly decrement the usage_count on all places; >> - it starts streaming even if pm_runtime_get_sync() fails. >> - while it tries to get pm_runtime at the clock enable logic, >> it doesn't check if the operation was suceeded. >> >> Replace all occurrences of it to use the new kAPI: >> pm_runtime_resume_and_get(), which ensures that, if the >> return code is not negative, the usage_count was incremented. >> >> With that, add additional checks when this is called, in order >> to ensure that errors will be properly addressed. >> >> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> > > Hi Mauro, I don't know media enough to know what is the right answer > but in some of this series, a failure in > pm_runtime_resume_and_get() leads to a bunch of buffer cleanup > (patch 22 being an example) and in others return happens without doing > that cleanup. > > It might be both are safe, or I'm missing something else, but I'm > certainly not confident enough to give any tags on this one as a result > of that mismatch. > >> --- >> drivers/media/platform/atmel/atmel-isc-base.c | 30 ++++++++++++++----- >> drivers/media/platform/atmel/atmel-isi.c | 19 +++++++++--- >> 2 files changed, 38 insertions(+), 11 deletions(-) >> >> diff --git a/drivers/media/platform/atmel/atmel-isc-base.c b/drivers/media/platform/atmel/atmel-isc-base.c >> index fe3ec8d0eaee..ce8e1351fa53 100644 >> --- a/drivers/media/platform/atmel/atmel-isc-base.c >> +++ b/drivers/media/platform/atmel/atmel-isc-base.c >> @@ -294,9 +294,13 @@ static int isc_wait_clk_stable(struct clk_hw *hw) >> static int isc_clk_prepare(struct clk_hw *hw) >> { >> struct isc_clk *isc_clk = to_isc_clk(hw); >> + int ret; >> >> - if (isc_clk->id == ISC_ISPCK) >> - pm_runtime_get_sync(isc_clk->dev); >> + if (isc_clk->id == ISC_ISPCK) { >> + ret = pm_runtime_resume_and_get(isc_clk->dev); >> + if (ret < 0) >> + return ret; >> + } Hi Mauro, With this patch, the ISC is broken on latest media tree. It looks like pm_runtime_resume_and_get for the ISC_ISPCK clock returns -ENOACCESS and thus, the probe of the driver fails: atmel-sama5d2-isc f0008000.isc: failed to enable ispck: -13 atmel-sama5d2-isc: probe of f0008000.isc failed with error -13 Could you point out how I could fix this ? Maybe the isc_clk->dev is not properly handled/initialized in some other part of the code ? Thanks ! Eugen >> >> return isc_wait_clk_stable(hw); >> } >> @@ -353,9 +357,13 @@ static int isc_clk_is_enabled(struct clk_hw *hw) >> { >> struct isc_clk *isc_clk = to_isc_clk(hw); >> u32 status; >> + int ret; >> >> - if (isc_clk->id == ISC_ISPCK) >> - pm_runtime_get_sync(isc_clk->dev); >> + if (isc_clk->id == ISC_ISPCK) { >> + ret = pm_runtime_resume_and_get(isc_clk->dev); >> + if (ret < 0) >> + return 0; >> + } >> >> regmap_read(isc_clk->regmap, ISC_CLKSR, &status); >> >> @@ -807,7 +815,12 @@ static int isc_start_streaming(struct vb2_queue *vq, unsigned int count) >> goto err_start_stream; >> } >> >> - pm_runtime_get_sync(isc->dev); >> + ret = pm_runtime_resume_and_get(isc->dev); >> + if (ret < 0) { >> + v4l2_err(&isc->v4l2_dev, "RPM resume failed in subdev %d\n", >> + ret); >> + goto err_pm_get; >> + } >> >> ret = isc_configure(isc); >> if (unlikely(ret)) >> @@ -838,7 +851,7 @@ static int isc_start_streaming(struct vb2_queue *vq, unsigned int count) >> >> err_configure: >> pm_runtime_put_sync(isc->dev); >> - >> +err_pm_get: >> v4l2_subdev_call(isc->current_subdev->sd, video, s_stream, 0); >> >> err_start_stream: >> @@ -1809,6 +1822,7 @@ static void isc_awb_work(struct work_struct *w) >> u32 baysel; >> unsigned long flags; >> u32 min, max; >> + int ret; >> >> /* streaming is not active anymore */ >> if (isc->stop) >> @@ -1831,7 +1845,9 @@ static void isc_awb_work(struct work_struct *w) >> ctrls->hist_id = hist_id; >> baysel = isc->config.sd_format->cfa_baycfg << ISC_HIS_CFG_BAYSEL_SHIFT; >> >> - pm_runtime_get_sync(isc->dev); >> + ret = pm_runtime_resume_and_get(isc->dev); >> + if (ret < 0) >> + return; >> >> /* >> * only update if we have all the required histograms and controls >> diff --git a/drivers/media/platform/atmel/atmel-isi.c b/drivers/media/platform/atmel/atmel-isi.c >> index e392b3efe363..5b1dd358f2e6 100644 >> --- a/drivers/media/platform/atmel/atmel-isi.c >> +++ b/drivers/media/platform/atmel/atmel-isi.c >> @@ -422,7 +422,9 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count) >> struct frame_buffer *buf, *node; >> int ret; >> >> - pm_runtime_get_sync(isi->dev); >> + ret = pm_runtime_resume_and_get(isi->dev); >> + if (ret < 0) >> + return ret; > This is the case I'm referring to above. > >> >> /* Enable stream on the sub device */ >> ret = v4l2_subdev_call(isi->entity.subdev, video, s_stream, 1); >> @@ -782,9 +784,10 @@ static int isi_enum_frameintervals(struct file *file, void *fh, >> return 0; >> } >> >> -static void isi_camera_set_bus_param(struct atmel_isi *isi) >> +static int isi_camera_set_bus_param(struct atmel_isi *isi) >> { >> u32 cfg1 = 0; >> + int ret; >> >> /* set bus param for ISI */ >> if (isi->pdata.hsync_act_low) >> @@ -801,12 +804,16 @@ static void isi_camera_set_bus_param(struct atmel_isi *isi) >> cfg1 |= ISI_CFG1_THMASK_BEATS_16; >> >> /* Enable PM and peripheral clock before operate isi registers */ >> - pm_runtime_get_sync(isi->dev); >> + ret = pm_runtime_resume_and_get(isi->dev); >> + if (ret < 0) >> + return ret; >> >> isi_writel(isi, ISI_CTRL, ISI_CTRL_DIS); >> isi_writel(isi, ISI_CFG1, cfg1); >> >> pm_runtime_put(isi->dev); >> + >> + return 0; >> } >> >> /* -----------------------------------------------------------------------*/ >> @@ -1085,7 +1092,11 @@ static int isi_graph_notify_complete(struct v4l2_async_notifier *notifier) >> dev_err(isi->dev, "No supported mediabus format found\n"); >> return ret; >> } >> - isi_camera_set_bus_param(isi); >> + ret = isi_camera_set_bus_param(isi); >> + if (ret) { >> + dev_err(isi->dev, "Can't wake up device\n"); >> + return ret; >> + } >> >> ret = isi_set_default_fmt(isi); >> if (ret) { >
WARNING: multiple messages have this Message-ID (diff)
From: <Eugen.Hristev@microchip.com> To: <Jonathan.Cameron@Huawei.com>, <mchehab+huawei@kernel.org> Cc: alexandre.belloni@bootlin.com, linux-kernel@vger.kernel.org, linuxarm@huawei.com, Ludovic.Desroches@microchip.com, mauro.chehab@huawei.com, mchehab@kernel.org, Claudiu.Beznea@microchip.com, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Subject: Re: [PATCH 08/25] media: atmel: properly get pm_runtime Date: Thu, 10 Jun 2021 09:04:07 +0000 [thread overview] Message-ID: <cd524923-93f0-e15c-816f-595a80184206@microchip.com> (raw) In-Reply-To: <20210505130835.000006b7@Huawei.com> On 5/5/21 3:08 PM, Jonathan Cameron wrote: > On Wed, 5 May 2021 11:41:58 +0200 > Mauro Carvalho Chehab <mchehab+huawei@kernel.org> wrote: > >> There are several issues in the way the atmel driver handles >> pm_runtime_get_sync(): >> >> - it doesn't check return codes; >> - it doesn't properly decrement the usage_count on all places; >> - it starts streaming even if pm_runtime_get_sync() fails. >> - while it tries to get pm_runtime at the clock enable logic, >> it doesn't check if the operation was suceeded. >> >> Replace all occurrences of it to use the new kAPI: >> pm_runtime_resume_and_get(), which ensures that, if the >> return code is not negative, the usage_count was incremented. >> >> With that, add additional checks when this is called, in order >> to ensure that errors will be properly addressed. >> >> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> > > Hi Mauro, I don't know media enough to know what is the right answer > but in some of this series, a failure in > pm_runtime_resume_and_get() leads to a bunch of buffer cleanup > (patch 22 being an example) and in others return happens without doing > that cleanup. > > It might be both are safe, or I'm missing something else, but I'm > certainly not confident enough to give any tags on this one as a result > of that mismatch. > >> --- >> drivers/media/platform/atmel/atmel-isc-base.c | 30 ++++++++++++++----- >> drivers/media/platform/atmel/atmel-isi.c | 19 +++++++++--- >> 2 files changed, 38 insertions(+), 11 deletions(-) >> >> diff --git a/drivers/media/platform/atmel/atmel-isc-base.c b/drivers/media/platform/atmel/atmel-isc-base.c >> index fe3ec8d0eaee..ce8e1351fa53 100644 >> --- a/drivers/media/platform/atmel/atmel-isc-base.c >> +++ b/drivers/media/platform/atmel/atmel-isc-base.c >> @@ -294,9 +294,13 @@ static int isc_wait_clk_stable(struct clk_hw *hw) >> static int isc_clk_prepare(struct clk_hw *hw) >> { >> struct isc_clk *isc_clk = to_isc_clk(hw); >> + int ret; >> >> - if (isc_clk->id == ISC_ISPCK) >> - pm_runtime_get_sync(isc_clk->dev); >> + if (isc_clk->id == ISC_ISPCK) { >> + ret = pm_runtime_resume_and_get(isc_clk->dev); >> + if (ret < 0) >> + return ret; >> + } Hi Mauro, With this patch, the ISC is broken on latest media tree. It looks like pm_runtime_resume_and_get for the ISC_ISPCK clock returns -ENOACCESS and thus, the probe of the driver fails: atmel-sama5d2-isc f0008000.isc: failed to enable ispck: -13 atmel-sama5d2-isc: probe of f0008000.isc failed with error -13 Could you point out how I could fix this ? Maybe the isc_clk->dev is not properly handled/initialized in some other part of the code ? Thanks ! Eugen >> >> return isc_wait_clk_stable(hw); >> } >> @@ -353,9 +357,13 @@ static int isc_clk_is_enabled(struct clk_hw *hw) >> { >> struct isc_clk *isc_clk = to_isc_clk(hw); >> u32 status; >> + int ret; >> >> - if (isc_clk->id == ISC_ISPCK) >> - pm_runtime_get_sync(isc_clk->dev); >> + if (isc_clk->id == ISC_ISPCK) { >> + ret = pm_runtime_resume_and_get(isc_clk->dev); >> + if (ret < 0) >> + return 0; >> + } >> >> regmap_read(isc_clk->regmap, ISC_CLKSR, &status); >> >> @@ -807,7 +815,12 @@ static int isc_start_streaming(struct vb2_queue *vq, unsigned int count) >> goto err_start_stream; >> } >> >> - pm_runtime_get_sync(isc->dev); >> + ret = pm_runtime_resume_and_get(isc->dev); >> + if (ret < 0) { >> + v4l2_err(&isc->v4l2_dev, "RPM resume failed in subdev %d\n", >> + ret); >> + goto err_pm_get; >> + } >> >> ret = isc_configure(isc); >> if (unlikely(ret)) >> @@ -838,7 +851,7 @@ static int isc_start_streaming(struct vb2_queue *vq, unsigned int count) >> >> err_configure: >> pm_runtime_put_sync(isc->dev); >> - >> +err_pm_get: >> v4l2_subdev_call(isc->current_subdev->sd, video, s_stream, 0); >> >> err_start_stream: >> @@ -1809,6 +1822,7 @@ static void isc_awb_work(struct work_struct *w) >> u32 baysel; >> unsigned long flags; >> u32 min, max; >> + int ret; >> >> /* streaming is not active anymore */ >> if (isc->stop) >> @@ -1831,7 +1845,9 @@ static void isc_awb_work(struct work_struct *w) >> ctrls->hist_id = hist_id; >> baysel = isc->config.sd_format->cfa_baycfg << ISC_HIS_CFG_BAYSEL_SHIFT; >> >> - pm_runtime_get_sync(isc->dev); >> + ret = pm_runtime_resume_and_get(isc->dev); >> + if (ret < 0) >> + return; >> >> /* >> * only update if we have all the required histograms and controls >> diff --git a/drivers/media/platform/atmel/atmel-isi.c b/drivers/media/platform/atmel/atmel-isi.c >> index e392b3efe363..5b1dd358f2e6 100644 >> --- a/drivers/media/platform/atmel/atmel-isi.c >> +++ b/drivers/media/platform/atmel/atmel-isi.c >> @@ -422,7 +422,9 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count) >> struct frame_buffer *buf, *node; >> int ret; >> >> - pm_runtime_get_sync(isi->dev); >> + ret = pm_runtime_resume_and_get(isi->dev); >> + if (ret < 0) >> + return ret; > This is the case I'm referring to above. > >> >> /* Enable stream on the sub device */ >> ret = v4l2_subdev_call(isi->entity.subdev, video, s_stream, 1); >> @@ -782,9 +784,10 @@ static int isi_enum_frameintervals(struct file *file, void *fh, >> return 0; >> } >> >> -static void isi_camera_set_bus_param(struct atmel_isi *isi) >> +static int isi_camera_set_bus_param(struct atmel_isi *isi) >> { >> u32 cfg1 = 0; >> + int ret; >> >> /* set bus param for ISI */ >> if (isi->pdata.hsync_act_low) >> @@ -801,12 +804,16 @@ static void isi_camera_set_bus_param(struct atmel_isi *isi) >> cfg1 |= ISI_CFG1_THMASK_BEATS_16; >> >> /* Enable PM and peripheral clock before operate isi registers */ >> - pm_runtime_get_sync(isi->dev); >> + ret = pm_runtime_resume_and_get(isi->dev); >> + if (ret < 0) >> + return ret; >> >> isi_writel(isi, ISI_CTRL, ISI_CTRL_DIS); >> isi_writel(isi, ISI_CFG1, cfg1); >> >> pm_runtime_put(isi->dev); >> + >> + return 0; >> } >> >> /* -----------------------------------------------------------------------*/ >> @@ -1085,7 +1092,11 @@ static int isi_graph_notify_complete(struct v4l2_async_notifier *notifier) >> dev_err(isi->dev, "No supported mediabus format found\n"); >> return ret; >> } >> - isi_camera_set_bus_param(isi); >> + ret = isi_camera_set_bus_param(isi); >> + if (ret) { >> + dev_err(isi->dev, "Can't wake up device\n"); >> + return ret; >> + } >> >> ret = isi_set_default_fmt(isi); >> if (ret) { > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-06-10 9:04 UTC|newest] Thread overview: 124+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-05 9:41 [PATCH 00/25] Fix some PM runtime issues at the media subsystem Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 9:41 ` [PATCH 01/25] staging: media: rkvdec: fix pm_runtime_get_sync() usage count Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 12:23 ` Jonathan Cameron 2021-05-05 12:23 ` Jonathan Cameron 2021-05-05 9:41 ` [PATCH 02/25] staging: media: imx7-mipi-csis: " Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 11:06 ` Jonathan Cameron 2021-05-05 11:06 ` Jonathan Cameron 2021-05-05 11:17 ` Mauro Carvalho Chehab 2021-05-05 11:17 ` Mauro Carvalho Chehab 2021-05-05 13:56 ` Rui Miguel Silva 2021-05-05 13:56 ` Rui Miguel Silva 2021-05-05 14:23 ` Mauro Carvalho Chehab 2021-05-05 14:23 ` Mauro Carvalho Chehab 2021-05-05 9:41 ` [PATCH 03/25] media: venus: Rework error fail recover logic Mauro Carvalho Chehab 2021-05-05 11:05 ` Jonathan Cameron 2021-05-05 9:41 ` [PATCH 04/25] media: s5p_cec: decrement usage count if disabled Mauro Carvalho Chehab 2021-05-05 12:24 ` Jonathan Cameron 2021-05-05 9:41 ` [PATCH 05/25] media: i2c: ccs-core: return the right error code at suspend Mauro Carvalho Chehab 2021-05-05 12:24 ` Jonathan Cameron 2021-05-05 12:51 ` Sakari Ailus 2021-05-05 9:41 ` [PATCH 06/25] media: i2c: imx334: fix the pm runtime get logic Mauro Carvalho Chehab 2021-05-05 11:10 ` Jonathan Cameron 2021-05-05 11:24 ` Mauro Carvalho Chehab 2021-05-05 12:26 ` Jonathan Cameron 2021-05-05 9:41 ` [PATCH 07/25] media: exynos-gsc: don't resume at remove time Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 12:27 ` Jonathan Cameron 2021-05-05 12:27 ` Jonathan Cameron 2021-05-05 9:41 ` [PATCH 08/25] media: atmel: properly get pm_runtime Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 12:08 ` Jonathan Cameron 2021-05-05 12:08 ` Jonathan Cameron 2021-06-10 9:04 ` Eugen.Hristev [this message] 2021-06-10 9:04 ` Eugen.Hristev 2021-06-10 9:38 ` Mauro Carvalho Chehab 2021-06-10 9:38 ` Mauro Carvalho Chehab 2021-06-10 12:00 ` Eugen.Hristev 2021-06-10 12:00 ` Eugen.Hristev 2021-06-16 8:03 ` Mauro Carvalho Chehab 2021-06-16 8:03 ` Mauro Carvalho Chehab 2021-09-06 8:03 ` Mauro Carvalho Chehab 2021-09-06 8:03 ` Mauro Carvalho Chehab 2021-09-06 8:13 ` Eugen.Hristev 2021-09-06 8:13 ` Eugen.Hristev 2021-09-13 10:26 ` Eugen.Hristev 2021-09-13 10:26 ` Eugen.Hristev 2021-05-05 9:41 ` [PATCH 09/25] media: hantro: do a PM resume earlier Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 11:34 ` Jonathan Cameron 2021-05-05 11:34 ` Jonathan Cameron 2021-05-05 13:22 ` Ezequiel Garcia 2021-05-05 13:22 ` Ezequiel Garcia 2021-05-05 13:22 ` Ezequiel Garcia 2021-05-05 13:46 ` Mauro Carvalho Chehab 2021-05-05 13:46 ` Mauro Carvalho Chehab 2021-05-05 14:01 ` Ezequiel Garcia 2021-05-05 14:01 ` Ezequiel Garcia 2021-05-05 14:01 ` Ezequiel Garcia 2021-05-05 14:15 ` Mauro Carvalho Chehab 2021-05-05 14:15 ` Mauro Carvalho Chehab 2021-05-05 9:42 ` [PATCH 10/25] media: marvel-ccic: fix some issues when getting pm_runtime Mauro Carvalho Chehab 2021-05-05 9:42 ` [PATCH 11/25] media: mdk-mdp: fix pm_runtime_get_sync() usage count Mauro Carvalho Chehab 2021-05-05 9:42 ` Mauro Carvalho Chehab 2021-05-05 9:42 ` Mauro Carvalho Chehab 2021-05-05 9:42 ` [PATCH 12/25] media: rcar_fdp1: simplify error check logic at fdp_open() Mauro Carvalho Chehab 2021-05-05 9:48 ` Sergei Shtylyov 2021-05-05 9:42 ` [PATCH 13/25] media: rcar_fdp1: fix pm_runtime_get_sync() usage count Mauro Carvalho Chehab 2021-05-05 12:31 ` Jonathan Cameron 2021-05-05 9:42 ` [PATCH 14/25] media: renesas-ceu: Properly check for PM errors Mauro Carvalho Chehab 2021-05-05 9:56 ` Jacopo Mondi 2021-05-05 9:42 ` [PATCH 15/25] media: s5p: fix pm_runtime_get_sync() usage count Mauro Carvalho Chehab 2021-05-05 12:31 ` Jonathan Cameron 2021-05-05 9:42 ` [PATCH 16/25] media: am437x: " Mauro Carvalho Chehab 2021-05-05 12:32 ` Jonathan Cameron 2021-05-08 13:01 ` Lad, Prabhakar 2021-05-05 9:42 ` [PATCH 17/25] media: sh_vou: " Mauro Carvalho Chehab 2021-05-05 9:42 ` [PATCH 18/25] media: mtk-vcodec: fix PM runtime get logic Mauro Carvalho Chehab 2021-05-05 9:42 ` Mauro Carvalho Chehab 2021-05-05 9:42 ` Mauro Carvalho Chehab 2021-05-05 12:32 ` Jonathan Cameron 2021-05-05 12:32 ` Jonathan Cameron 2021-05-05 12:32 ` Jonathan Cameron 2021-05-05 9:42 ` [PATCH 19/25] media: s5p-jpeg: fix pm_runtime_get_sync() usage count Mauro Carvalho Chehab 2021-05-05 9:42 ` Mauro Carvalho Chehab 2021-05-05 12:33 ` Jonathan Cameron 2021-05-05 12:33 ` Jonathan Cameron 2021-05-05 9:42 ` [PATCH 20/25] media: sti/delta: use pm_runtime_resume_and_get() Mauro Carvalho Chehab 2021-05-05 12:01 ` Jonathan Cameron 2021-05-05 12:33 ` Jonathan Cameron 2021-05-05 9:42 ` [PATCH 21/25] media: sunxi: fix pm_runtime_get_sync() usage count Mauro Carvalho Chehab 2021-05-05 9:42 ` Mauro Carvalho Chehab 2021-05-05 9:42 ` Mauro Carvalho Chehab 2021-05-05 9:42 ` [PATCH 22/25] media: sti/bdisp: " Mauro Carvalho Chehab 2021-05-05 12:34 ` Jonathan Cameron 2021-05-05 9:42 ` [PATCH 23/25] media: exynos4-is: " Mauro Carvalho Chehab 2021-05-05 9:42 ` Mauro Carvalho Chehab 2021-05-05 12:20 ` Jonathan Cameron 2021-05-05 12:20 ` Jonathan Cameron 2021-05-05 9:42 ` [PATCH 24/25] media: exynos-gsc: " Mauro Carvalho Chehab 2021-05-05 9:42 ` Mauro Carvalho Chehab 2021-05-05 12:34 ` Jonathan Cameron 2021-05-05 12:34 ` Jonathan Cameron 2021-05-05 9:42 ` [PATCH 25/25] media: i2c: ccs-core: " Mauro Carvalho Chehab 2021-05-05 10:34 ` Sakari Ailus 2021-05-05 10:57 ` Mauro Carvalho Chehab 2021-05-05 10:58 ` Mauro Carvalho Chehab 2021-05-05 12:35 ` Jonathan Cameron 2021-05-05 14:06 ` Mauro Carvalho Chehab 2021-05-05 16:36 ` Jonathan Cameron 2021-05-05 11:02 ` Sakari Ailus 2021-05-06 15:11 ` [PATCH 00/25] Fix some PM runtime issues at the media subsystem Mauro Carvalho Chehab 2021-05-06 15:11 ` Mauro Carvalho Chehab 2021-05-06 15:11 ` Mauro Carvalho Chehab 2021-05-06 15:11 ` Mauro Carvalho Chehab 2021-05-06 15:11 ` Mauro Carvalho Chehab
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=cd524923-93f0-e15c-816f-595a80184206@microchip.com \ --to=eugen.hristev@microchip.com \ --cc=Claudiu.Beznea@microchip.com \ --cc=Jonathan.Cameron@Huawei.com \ --cc=Ludovic.Desroches@microchip.com \ --cc=Nicolas.Ferre@microchip.com \ --cc=alexandre.belloni@bootlin.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=linuxarm@huawei.com \ --cc=mauro.chehab@huawei.com \ --cc=mchehab+huawei@kernel.org \ --cc=mchehab@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.