Message ID | 20250429180828.950219-4-krzysztof.kozlowski@linaro.org |
---|---|
State | New |
Headers | show |
Series | [1/3] media: qcom: camss: vfe: Stop spamming logs with version | expand |
On 29/04/2025 20:08, Krzysztof Kozlowski wrote: > Camss drivers spam kernel dmesg with 64 useless messages during boot: > > qcom-camss acb7000.isp: VFE:1 HW Version = 3.0.2 > qcom-camss acb7000.isp: VFE:2 HW Version = 2.4.0 > > All of these messages are the same, so it makes no sense to print same > information 32 times. > > The driver does not use read version at all, so if it was needed for any > real debugging purpose it would be provided via debugfs interface. > However even then printing this is pointless, because version of > hardware block is deducible from the compatible. This is how the dmesg looks after camss: qcom-camss acb7000.isp: VFE:2 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:2 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:2 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:2 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:1 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:1 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:1 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:1 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:1 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:1 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:1 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:1 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:2 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:2 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:0 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:0 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:2 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:2 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:0 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:0 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:1 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:1 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:1 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:1 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:3 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:3 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:1 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:1 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:3 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:3 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:1 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:1 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:3 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:3 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:0 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:0 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:3 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:3 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:0 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:0 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:2 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:2 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:2 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:2 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:0 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:0 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:3 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:3 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:0 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:0 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:3 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:3 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:3 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:3 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:2 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:2 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:2 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:2 HW Version = 2.4.0 qcom-camss acb7000.isp: VFE:0 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:0 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:0 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:0 HW Version = 3.0.2 Best regards, Krzysztof
On 29/04/2025 19:08, Krzysztof Kozlowski wrote: > - dev_dbg(vfe->camss->dev, "VFE:%d HW Version = %u.%u.%u\n", > - vfe->id, gen, rev, step); Please just change to dev_dbg_once() instead of entirely removing. Same comment with the other patches. --- bod
On 29/04/2025 21:40, Bryan O'Donoghue wrote: > On 29/04/2025 19:08, Krzysztof Kozlowski wrote: >> - dev_dbg(vfe->camss->dev, "VFE:%d HW Version = %u.%u.%u\n", >> - vfe->id, gen, rev, step); > > Please just change to dev_dbg_once() instead of entirely removing. Why? This is entirely useless message, isn't it? Version is deducible from the compatible. > > Same comment with the other patches. > > --- > bod Best regards, Krzysztof
On Tue, Apr 29, 2025 at 08:08:29PM +0200, Krzysztof Kozlowski wrote: > Camss drivers spam kernel dmesg with 64 useless messages during boot: > > qcom-camss acb7000.isp: VFE:1 HW Version = 3.0.2 > qcom-camss acb7000.isp: VFE:2 HW Version = 2.4.0 > > All of these messages are the same, so it makes no sense to print same > information 32 times. It's even worse then that (several hundred messages during use) and I sent fixes for these regressions a few weeks ago: https://lore.kernel.org/lkml/20250407104828.3833-1-johan+linaro@kernel.org/ https://lore.kernel.org/lkml/20250407085125.21325-1-johan+linaro@kernel.org/ Unfortunately, it seems Bryan missed that this was a regression that should be fixed in 6.15 and only included them in a pull request for 6.16: https://lore.kernel.org/all/20250410233039.77093-1-bod@kernel.org/ Bryan, has your PR been merged? Can you try to get my fixes into 6.15 since this is a regression in 6.15-rc1? Johan
On 30/04/2025 09:19, Krzysztof Kozlowski wrote: > If anyone wants to know it and cannot deduce from compatible, then add > debugfs interface. dev_dbg(); isn't too offensive really IMO but if it really bothers you switching to debugfs would be fine. https://git.codelinaro.org/bryan.odonoghue/kernel/-/commit/e62825fc2ed737ab88085567f0947306a2a0da9b https://git.codelinaro.org/bryan.odonoghue/kernel/-/commit/ff0d7d980ec8192b459b5926b85a105917746d91 https://git.codelinaro.org/bryan.odonoghue/kernel/-/commit/3580ffcbe507036c35e8f21e293f018fbb62d8bf https://git.codelinaro.org/bryan.odonoghue/kernel/-/commit/cd88d924eb55f5dfeb2283e6e0eef37d5bd4c1c4 --- bod
diff --git a/drivers/media/platform/qcom/camss/camss-vfe-17x.c b/drivers/media/platform/qcom/camss/camss-vfe-17x.c index e5ee7e717b3b..e0d12c3f6015 100644 --- a/drivers/media/platform/qcom/camss/camss-vfe-17x.c +++ b/drivers/media/platform/qcom/camss/camss-vfe-17x.c @@ -577,7 +577,6 @@ static void vfe_subdev_init(struct device *dev, struct vfe_device *vfe) const struct vfe_hw_ops vfe_ops_170 = { .global_reset = vfe_global_reset, - .hw_version = vfe_hw_version, .isr_read = vfe_isr_read, .isr = vfe_isr, .pm_domain_off = vfe_pm_domain_off, diff --git a/drivers/media/platform/qcom/camss/camss-vfe-4-1.c b/drivers/media/platform/qcom/camss/camss-vfe-4-1.c index 901677293d97..7620ce42b49b 100644 --- a/drivers/media/platform/qcom/camss/camss-vfe-4-1.c +++ b/drivers/media/platform/qcom/camss/camss-vfe-4-1.c @@ -993,7 +993,6 @@ static void vfe_subdev_init(struct device *dev, struct vfe_device *vfe) const struct vfe_hw_ops vfe_ops_4_1 = { .global_reset = vfe_global_reset, - .hw_version = vfe_hw_version, .isr_read = vfe_isr_read, .isr = vfe_isr, .pm_domain_off = vfe_4_1_pm_domain_off, diff --git a/drivers/media/platform/qcom/camss/camss-vfe-4-7.c b/drivers/media/platform/qcom/camss/camss-vfe-4-7.c index 76729607db02..b3b6ccb4748e 100644 --- a/drivers/media/platform/qcom/camss/camss-vfe-4-7.c +++ b/drivers/media/platform/qcom/camss/camss-vfe-4-7.c @@ -1145,7 +1145,6 @@ static void vfe_subdev_init(struct device *dev, struct vfe_device *vfe) const struct vfe_hw_ops vfe_ops_4_7 = { .global_reset = vfe_global_reset, - .hw_version = vfe_hw_version, .isr_read = vfe_isr_read, .isr = vfe_isr, .pm_domain_off = vfe_pm_domain_off, diff --git a/drivers/media/platform/qcom/camss/camss-vfe-4-8.c b/drivers/media/platform/qcom/camss/camss-vfe-4-8.c index b2f7d855d8dd..5a4b4f486aca 100644 --- a/drivers/media/platform/qcom/camss/camss-vfe-4-8.c +++ b/drivers/media/platform/qcom/camss/camss-vfe-4-8.c @@ -1135,7 +1135,6 @@ static void vfe_subdev_init(struct device *dev, struct vfe_device *vfe) const struct vfe_hw_ops vfe_ops_4_8 = { .global_reset = vfe_global_reset, - .hw_version = vfe_hw_version, .isr_read = vfe_isr_read, .isr = vfe_isr, .pm_domain_off = vfe_pm_domain_off, diff --git a/drivers/media/platform/qcom/camss/camss-vfe-480.c b/drivers/media/platform/qcom/camss/camss-vfe-480.c index 4feea590a47b..edd92308af62 100644 --- a/drivers/media/platform/qcom/camss/camss-vfe-480.c +++ b/drivers/media/platform/qcom/camss/camss-vfe-480.c @@ -278,7 +278,6 @@ static void vfe_buf_done_480(struct vfe_device *vfe, int port_id) const struct vfe_hw_ops vfe_ops_480 = { .enable_irq = vfe_enable_irq, .global_reset = vfe_global_reset, - .hw_version = vfe_hw_version, .isr = vfe_isr, .isr_read = vfe_isr_read, .reg_update = vfe_reg_update, diff --git a/drivers/media/platform/qcom/camss/camss-vfe-680.c b/drivers/media/platform/qcom/camss/camss-vfe-680.c index 99036e7c1e76..96a927acc6bb 100644 --- a/drivers/media/platform/qcom/camss/camss-vfe-680.c +++ b/drivers/media/platform/qcom/camss/camss-vfe-680.c @@ -227,7 +227,6 @@ static inline void vfe_reg_update_clear(struct vfe_device *vfe, const struct vfe_hw_ops vfe_ops_680 = { .global_reset = vfe_global_reset, - .hw_version = vfe_hw_version, .isr = vfe_isr, .pm_domain_off = vfe_pm_domain_off, .pm_domain_on = vfe_pm_domain_on, diff --git a/drivers/media/platform/qcom/camss/camss-vfe-780.c b/drivers/media/platform/qcom/camss/camss-vfe-780.c index b9812d70f91b..e5023eb7ad60 100644 --- a/drivers/media/platform/qcom/camss/camss-vfe-780.c +++ b/drivers/media/platform/qcom/camss/camss-vfe-780.c @@ -142,7 +142,6 @@ static int vfe_halt(struct vfe_device *vfe) const struct vfe_hw_ops vfe_ops_780 = { .global_reset = vfe_global_reset, - .hw_version = vfe_hw_version, .isr = vfe_isr, .pm_domain_off = vfe_pm_domain_off, .pm_domain_on = vfe_pm_domain_on, diff --git a/drivers/media/platform/qcom/camss/camss-vfe.c b/drivers/media/platform/qcom/camss/camss-vfe.c index 4bca6c3abaff..1ae523219525 100644 --- a/drivers/media/platform/qcom/camss/camss-vfe.c +++ b/drivers/media/platform/qcom/camss/camss-vfe.c @@ -415,26 +415,6 @@ static u32 vfe_src_pad_code(struct vfe_line *line, u32 sink_code, return 0; } -/* - * vfe_hw_version - Process write master done interrupt - * @vfe: VFE Device - * - * Return vfe hw version - */ -u32 vfe_hw_version(struct vfe_device *vfe) -{ - u32 hw_version = readl_relaxed(vfe->base + VFE_HW_VERSION); - - u32 gen = (hw_version >> HW_VERSION_GENERATION) & 0xF; - u32 rev = (hw_version >> HW_VERSION_REVISION) & 0xFFF; - u32 step = (hw_version >> HW_VERSION_STEPPING) & 0xFFFF; - - dev_dbg(vfe->camss->dev, "VFE:%d HW Version = %u.%u.%u\n", - vfe->id, gen, rev, step); - - return hw_version; -} - /* * vfe_buf_done - Process write master done interrupt * @vfe: VFE Device @@ -1088,8 +1068,6 @@ int vfe_get(struct vfe_device *vfe) vfe_reset_output_maps(vfe); vfe_init_outputs(vfe); - - vfe->res->hw_ops->hw_version(vfe); } else { ret = vfe_check_clock_rates(vfe); if (ret < 0) diff --git a/drivers/media/platform/qcom/camss/camss-vfe.h b/drivers/media/platform/qcom/camss/camss-vfe.h index a23f666be753..1553ca89bd86 100644 --- a/drivers/media/platform/qcom/camss/camss-vfe.h +++ b/drivers/media/platform/qcom/camss/camss-vfe.h @@ -101,7 +101,6 @@ struct vfe_device; struct vfe_hw_ops { void (*enable_irq)(struct vfe_device *vfe); void (*global_reset)(struct vfe_device *vfe); - u32 (*hw_version)(struct vfe_device *vfe); irqreturn_t (*isr)(int irq, void *dev); void (*isr_read)(struct vfe_device *vfe, u32 *value0, u32 *value1); void (*pm_domain_off)(struct vfe_device *vfe); @@ -259,13 +258,6 @@ void vfe_put(struct vfe_device *vfe); */ bool vfe_is_lite(struct vfe_device *vfe); -/* - * vfe_hw_version - Process write master done interrupt - * @vfe: VFE Device - * - * Return vfe hw version - */ -u32 vfe_hw_version(struct vfe_device *vfe); /* * vfe_enable - Enable streaming on VFE line * @line: VFE line
Camss drivers spam kernel dmesg with 64 useless messages during boot: qcom-camss acb7000.isp: VFE:1 HW Version = 3.0.2 qcom-camss acb7000.isp: VFE:2 HW Version = 2.4.0 All of these messages are the same, so it makes no sense to print same information 32 times. The driver does not use read version at all, so if it was needed for any real debugging purpose it would be provided via debugfs interface. However even then printing this is pointless, because version of hardware block is deducible from the compatible. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- .../media/platform/qcom/camss/camss-vfe-17x.c | 1 - .../media/platform/qcom/camss/camss-vfe-4-1.c | 1 - .../media/platform/qcom/camss/camss-vfe-4-7.c | 1 - .../media/platform/qcom/camss/camss-vfe-4-8.c | 1 - .../media/platform/qcom/camss/camss-vfe-480.c | 1 - .../media/platform/qcom/camss/camss-vfe-680.c | 1 - .../media/platform/qcom/camss/camss-vfe-780.c | 1 - drivers/media/platform/qcom/camss/camss-vfe.c | 22 ------------------- drivers/media/platform/qcom/camss/camss-vfe.h | 8 ------- 9 files changed, 37 deletions(-)