Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp1259957pxb; Wed, 20 Oct 2021 01:14:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyt1oVedU3Pezp0eflFV/2yU1eBVjBOT1C1F0+nSK/KrqNhlTbHM6u+cSxIWM4sJrd/3maV X-Received: by 2002:a17:906:4f13:: with SMTP id t19mr44813831eju.53.1634717670788; Wed, 20 Oct 2021 01:14:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1634717670; cv=none; d=google.com; s=arc-20160816; b=sxfcG2V9hb2giEckDNkvgb4brKpHEnesSyZHeIY1dzbYB0BHJbdrFefhWMt/FVcn64 q+tPjRuI8qgTJe6rmJOdFDcIF7RZDLzyZSENqT8/6mcGEOx7hBBhJReftkOETHzHXoOT sZVQ314yGuxh84l4Tel0rbE7Ai2niQ0ONtKuBmj/42Jz43T1NEtlrgfdzQUlYEUmyjFt g/U7Bwuz67ILy0DSgTNc1gucNoVhk3pzjO540l+zOc4oM+noUhrPih8wt2KXolcbxzl0 S7Nw3mFvhyBhTNSdaFT0wYc/ulIZJqusuLSI27d/hwPleZpRwnSvn1OLiEs9+uMHiXBD ffhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id; bh=+c0xDoaYrmI9ZHEtcFPB/Fqwb7l+7FjRyDitLxBvM/E=; b=nqv1dNg2vdDV1x4mG6SExjEHMfell3ukjfcw/3WY5FObL9RI+tzkhmPuzHXCc0HqtR SB7OjC/pYmTXkooMKcKPS043YEGFr1QfRgNNOU+aunD1kOpZfjl/pJzSkwMrtdl30Q94 F2PjHchVbIv20jdjr+z7SBzMRyqdH0Bhqp2DCCGc82q0sVBrEmtv0bm00y9V0671aDAN QAbTCJUXjK7+ksLkR0sf+Ym65/HDhiX8XBZIdcLf7HaodkLdKh7Gg16fDuTYPPB1UMlC tK1Io73Ztw9VIy+f4z9xqV+CbdhEfWeOvxKh0yLvHcjDhfo5b9CyX16CGbFVLiOVu2Or cfyw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c10si2039157edn.368.2021.10.20.01.14.07; Wed, 20 Oct 2021 01:14:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229683AbhJTIMF (ORCPT + 99 others); Wed, 20 Oct 2021 04:12:05 -0400 Received: from twspam01.aspeedtech.com ([211.20.114.71]:52955 "EHLO twspam01.aspeedtech.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229503AbhJTIME (ORCPT ); Wed, 20 Oct 2021 04:12:04 -0400 Received: from mail.aspeedtech.com ([192.168.0.24]) by twspam01.aspeedtech.com with ESMTP id 19K7krTu028983; Wed, 20 Oct 2021 15:46:53 +0800 (GMT-8) (envelope-from jammy_huang@aspeedtech.com) Received: from [192.168.2.115] (192.168.2.115) by TWMBX02.aspeed.com (192.168.0.24) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 20 Oct 2021 16:08:55 +0800 Message-ID: <62496b13-bd5b-6a4c-d426-bf332d0335c4@aspeedtech.com> Date: Wed, 20 Oct 2021 16:08:56 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0 Subject: Re: [PATCH v2 2/7] media: aspeed: use v4l2_info/v4l2_warn/v4l2_dbg for log Content-Language: en-US To: Paul Menzel CC: "eajames@linux.ibm.com" , "mchehab@kernel.org" , "joel@jms.id.au" , "andrew@aj.id.au" , "linux-media@vger.kernel.org" , "openbmc@lists.ozlabs.org" , "linux-arm-kernel@lists.infradead.org" , "linux-aspeed@lists.ozlabs.org" , "linux-kernel@vger.kernel.org" References: <20211018092207.13336-1-jammy_huang@aspeedtech.com> <20211018092207.13336-3-jammy_huang@aspeedtech.com> <24ee2592-c62e-8108-58ff-56e648bdf445@molgen.mpg.de> From: Jammy Huang In-Reply-To: <24ee2592-c62e-8108-58ff-56e648bdf445@molgen.mpg.de> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [192.168.2.115] X-ClientProxiedBy: TWMBX02.aspeed.com (192.168.0.24) To TWMBX02.aspeed.com (192.168.0.24) X-DNSRBL: X-MAIL: twspam01.aspeedtech.com 19K7krTu028983 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Dear Paul, On 2021/10/18 下午 05:58, Paul Menzel wrote: > Dear Jammy, > > > Am 18.10.21 um 11:22 schrieb Jammy Huang: >> The debug log level, 0~3, is controlled by module_param, debug. >> Higher the value, more the information. > Nit: *The* higher … > > Please mention your “conversion heuristic”? For example, level 3 is for > register operations (read, update, write)? Maybe that could also be > added to the module parameter description. OK, it will be updated as below:     The debug log level, 0~3, is controlled by module_param, debug.     The higher the value, the more the information.       0: off       1: info       2: debug       3: register operations > > > Kind regards, > > Paul > > >> Signed-off-by: Jammy Huang >> --- >> drivers/media/platform/aspeed-video.c | 40 +++++++++++++++------------ >> 1 file changed, 23 insertions(+), 17 deletions(-) >> >> diff --git a/drivers/media/platform/aspeed-video.c b/drivers/media/platform/aspeed-video.c >> index 6259cf17a7cc..642ca96c8c52 100644 >> --- a/drivers/media/platform/aspeed-video.c >> +++ b/drivers/media/platform/aspeed-video.c >> @@ -30,6 +30,7 @@ >> #include >> #include >> #include >> +#include >> >> #define DEVICE_NAME "aspeed-video" >> >> @@ -390,6 +391,8 @@ static const struct v4l2_dv_timings_cap aspeed_video_timings_cap = { >> }, >> }; >> >> +static unsigned int debug; >> + >> static void aspeed_video_init_jpeg_table(u32 *table, bool yuv420) >> { >> int i; >> @@ -437,23 +440,23 @@ static void aspeed_video_update(struct aspeed_video *video, u32 reg, u32 clear, >> t &= ~clear; >> t |= bits; >> writel(t, video->base + reg); >> - dev_dbg(video->dev, "update %03x[%08x -> %08x]\n", reg, before, >> - readl(video->base + reg)); >> + v4l2_dbg(3, debug, &video->v4l2_dev, "update %03x[%08x -> %08x]\n", >> + reg, before, readl(video->base + reg)); >> } >> >> static u32 aspeed_video_read(struct aspeed_video *video, u32 reg) >> { >> u32 t = readl(video->base + reg); >> >> - dev_dbg(video->dev, "read %03x[%08x]\n", reg, t); >> + v4l2_dbg(3, debug, &video->v4l2_dev, "read %03x[%08x]\n", reg, t); >> return t; >> } >> >> static void aspeed_video_write(struct aspeed_video *video, u32 reg, u32 val) >> { >> writel(val, video->base + reg); >> - dev_dbg(video->dev, "write %03x[%08x]\n", reg, >> - readl(video->base + reg)); >> + v4l2_dbg(3, debug, &video->v4l2_dev, "write %03x[%08x]\n", reg, >> + readl(video->base + reg)); >> } >> >> static void update_perf(struct aspeed_video_perf *p) >> @@ -474,13 +477,13 @@ static int aspeed_video_start_frame(struct aspeed_video *video) >> u32 seq_ctrl = aspeed_video_read(video, VE_SEQ_CTRL); >> >> if (video->v4l2_input_status) { >> - dev_dbg(video->dev, "No signal; don't start frame\n"); >> + v4l2_warn(&video->v4l2_dev, "No signal; don't start frame\n"); >> return 0; >> } >> >> if (!(seq_ctrl & VE_SEQ_CTRL_COMP_BUSY) || >> !(seq_ctrl & VE_SEQ_CTRL_CAP_BUSY)) { >> - dev_dbg(video->dev, "Engine busy; don't start frame\n"); >> + v4l2_warn(&video->v4l2_dev, "Engine busy; don't start frame\n"); >> return -EBUSY; >> } >> >> @@ -489,7 +492,7 @@ static int aspeed_video_start_frame(struct aspeed_video *video) >> struct aspeed_video_buffer, link); >> if (!buf) { >> spin_unlock_irqrestore(&video->lock, flags); >> - dev_dbg(video->dev, "No buffers; don't start frame\n"); >> + v4l2_warn(&video->v4l2_dev, "No buffers; don't start frame\n"); >> return -EPROTO; >> } >> >> @@ -565,7 +568,7 @@ static void aspeed_video_bufs_done(struct aspeed_video *video, >> >> static void aspeed_video_irq_res_change(struct aspeed_video *video, ulong delay) >> { >> - dev_dbg(video->dev, "Resolution changed; resetting\n"); >> + v4l2_dbg(1, debug, &video->v4l2_dev, "Resolution changed; resetting\n"); >> >> set_bit(VIDEO_RES_CHANGE, &video->flags); >> clear_bit(VIDEO_FRAME_INPRG, &video->flags); >> @@ -766,8 +769,8 @@ static void aspeed_video_calc_compressed_size(struct aspeed_video *video, >> aspeed_video_write(video, VE_STREAM_BUF_SIZE, >> compression_buffer_size_reg); >> >> - dev_dbg(video->dev, "Max compressed size: %x\n", >> - video->max_compressed_size); >> + v4l2_dbg(1, debug, &video->v4l2_dev, "Max compressed size: %#x\n", >> + video->max_compressed_size); >> } >> >> #define res_check(v) test_and_clear_bit(VIDEO_MODE_DETECT_DONE, &(v)->flags) >> @@ -804,7 +807,7 @@ static void aspeed_video_get_resolution(struct aspeed_video *video) >> res_check(video), >> MODE_DETECT_TIMEOUT); >> if (!rc) { >> - dev_dbg(video->dev, "Timed out; first mode detect\n"); >> + v4l2_warn(&video->v4l2_dev, "Timed out; first mode detect\n"); >> clear_bit(VIDEO_RES_DETECT, &video->flags); >> return; >> } >> @@ -822,7 +825,7 @@ static void aspeed_video_get_resolution(struct aspeed_video *video) >> MODE_DETECT_TIMEOUT); >> clear_bit(VIDEO_RES_DETECT, &video->flags); >> if (!rc) { >> - dev_dbg(video->dev, "Timed out; second mode detect\n"); >> + v4l2_warn(&video->v4l2_dev, "Timed out; second mode detect\n"); >> return; >> } >> >> @@ -856,7 +859,7 @@ static void aspeed_video_get_resolution(struct aspeed_video *video) >> } while (invalid_resolution && (tries++ < INVALID_RESOLUTION_RETRIES)); >> >> if (invalid_resolution) { >> - dev_dbg(video->dev, "Invalid resolution detected\n"); >> + v4l2_warn(&video->v4l2_dev, "Invalid resolution detected\n"); >> return; >> } >> >> @@ -873,8 +876,8 @@ static void aspeed_video_get_resolution(struct aspeed_video *video) >> aspeed_video_update(video, VE_SEQ_CTRL, 0, >> VE_SEQ_CTRL_AUTO_COMP | VE_SEQ_CTRL_EN_WATCHDOG); >> >> - dev_dbg(video->dev, "Got resolution: %dx%d\n", det->width, >> - det->height); >> + v4l2_dbg(1, debug, &video->v4l2_dev, "Got resolution: %dx%d\n", >> + det->width, det->height); >> } >> >> static void aspeed_video_set_resolution(struct aspeed_video *video) >> @@ -1501,7 +1504,7 @@ static void aspeed_video_stop_streaming(struct vb2_queue *q) >> !test_bit(VIDEO_FRAME_INPRG, &video->flags), >> STOP_TIMEOUT); >> if (!rc) { >> - dev_dbg(video->dev, "Timed out when stopping streaming\n"); >> + v4l2_warn(&video->v4l2_dev, "Timed out when stopping streaming\n"); >> >> /* >> * Need to force stop any DMA and try and get HW into a good >> @@ -1856,6 +1859,9 @@ static struct platform_driver aspeed_video_driver = { >> >> module_platform_driver(aspeed_video_driver); >> >> +module_param(debug, int, 0644); >> +MODULE_PARM_DESC(debug, "Debug level (0-3)"); >> + >> MODULE_DESCRIPTION("ASPEED Video Engine Driver"); >> MODULE_AUTHOR("Eddie James"); >> MODULE_LICENSE("GPL v2"); >>