Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp3312011pxj; Tue, 1 Jun 2021 02:16:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwJMiyVibuZlXnUmEFvO0D1FiuTdbXxrw/RPNWUHSzOFxo1MFaNYF2ECnau2Sbjkncq0Mq6 X-Received: by 2002:a92:6809:: with SMTP id d9mr21542711ilc.87.1622539007873; Tue, 01 Jun 2021 02:16:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1622539007; cv=none; d=google.com; s=arc-20160816; b=fyPIi8wJyhueSMkMXIhrgk9Ed3yKYnDfzjmSaMnf1/MIAALLV0DoH7AtPmbWVup47N m9kCGDrOmsCwc+ureFdeNgomP30bESWP6vsZ4U8v7rx1cTAKTtfsUtyRW83gSdQyMqxf a/2I4bjiNPFrl/EgUpTfA9QEziCnadNBLD7NvOLBOEJfKNiVCI3Xptt0Eh5KTeHJxuz0 BloE0I1B2e8btx3EdqfAkoupkxUZyUI4yGNwv2mirxSAdPtYFjxIEsKAH7udAnDCXmSK 2juXGr+yE0972NO6q3V65MncEnSY6Uh8VC0BAfV/VZLM4V4eeA2QGnpLfmThJtWwPKrE EpQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:organization :from:references:cc:to:subject:ironport-sdr:ironport-sdr; bh=PD4rZ/ErTdOJjJyCz2lYw5rzNG44Z/v54OfAzqMl0lc=; b=DIFUPJPco4St+FwWbjTnNWSsOoJSTs7FmlQyNdHQ9WqmzJVg7rPfAAviw7V6kzGKhY H9T2b6V20RbClnLa/9UOAnl4ziLTYCKH2FzKJpiJRGrD//DJw6QPLlSaEFyQb+CAQijf CjGDT/7eluOrxvsD72/EroV8jbL0NvrDlBFQhuOZm/TtN1fuUBICyaZ+0IEsfxKHynbG CH66Sn9RvcSK4bEk0TvesMzWB8euDfpdxqCxhrANMCdNCav2A07OAgdGRSvdd1LNIt07 mc2CTzsc96k9Kc+FZRpALFipbqV2DK+jqr7V5U9V/ypiKwnvhTD0EyHFJiWlJwOW2icc pHXA== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b26si17294720jap.85.2021.06.01.02.16.34; Tue, 01 Jun 2021 02:16:47 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233299AbhFAJRg (ORCPT + 99 others); Tue, 1 Jun 2021 05:17:36 -0400 Received: from mga03.intel.com ([134.134.136.65]:63288 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231139AbhFAJRe (ORCPT ); Tue, 1 Jun 2021 05:17:34 -0400 IronPort-SDR: n/O5j2G822giEhSf58PoeGvby5D8hBcqNTmZQx3xBa3H2akwE/Te5zhl+wZTQfmEmVkFh8kjMt /PnybT8vQ1OQ== X-IronPort-AV: E=McAfee;i="6200,9189,10001"; a="203542540" X-IronPort-AV: E=Sophos;i="5.83,239,1616482800"; d="scan'208";a="203542540" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Jun 2021 02:15:52 -0700 IronPort-SDR: Bw0tk3C7d1eONPubV8f1kyR9bZ+TSKu8KpyNrFseCA1eadASP2wH92/dAbzFseIm9hc6Hhv/pw A19f5nJPi4nw== X-IronPort-AV: E=Sophos;i="5.83,239,1616482800"; d="scan'208";a="416411726" Received: from deancarp-mobl.ger.corp.intel.com (HELO [10.213.232.28]) ([10.213.232.28]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Jun 2021 02:15:50 -0700 Subject: Re: [Intel-gfx] [PATCH -next] drm/i915: use DEVICE_ATTR_RO macro To: YueHaibing , jani.nikula@linux.intel.com, joonas.lahtinen@linux.intel.com, rodrigo.vivi@intel.com, airlied@linux.ie, daniel@ffwll.ch, chris@chris-wilson.co.uk, tvrtko.ursulin@intel.com Cc: intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org References: <20210528100403.21548-1-yuehaibing@huawei.com> From: Tvrtko Ursulin Organization: Intel Corporation UK Plc Message-ID: <7e60320b-3a1b-0cdc-136d-29c139b27af7@linux.intel.com> Date: Tue, 1 Jun 2021 10:15:48 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: <20210528100403.21548-1-yuehaibing@huawei.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 28/05/2021 11:04, YueHaibing wrote: > Use DEVICE_ATTR_RO() helper instead of plain DEVICE_ATTR(), > which makes the code a bit shorter and easier to read. > > Signed-off-by: YueHaibing > --- > drivers/gpu/drm/i915/i915_pmu.c | 8 +++----- > drivers/gpu/drm/i915/i915_sysfs.c | 30 +++++++++++++++--------------- > 2 files changed, 18 insertions(+), 20 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_pmu.c b/drivers/gpu/drm/i915/i915_pmu.c > index 41651ac255fa..fb215929b05b 100644 > --- a/drivers/gpu/drm/i915/i915_pmu.c > +++ b/drivers/gpu/drm/i915/i915_pmu.c > @@ -834,15 +834,13 @@ static ssize_t i915_pmu_event_show(struct device *dev, > return sprintf(buf, "config=0x%lx\n", eattr->val); > } > > -static ssize_t > -i915_pmu_get_attr_cpumask(struct device *dev, > - struct device_attribute *attr, > - char *buf) > +static ssize_t cpumask_show(struct device *dev, > + struct device_attribute *attr, char *buf) > { > return cpumap_print_to_pagebuf(true, buf, &i915_pmu_cpumask); > } > > -static DEVICE_ATTR(cpumask, 0444, i915_pmu_get_attr_cpumask, NULL); > +static DEVICE_ATTR_RO(cpumask); > > static struct attribute *i915_cpumask_attrs[] = { > &dev_attr_cpumask.attr, > diff --git a/drivers/gpu/drm/i915/i915_sysfs.c b/drivers/gpu/drm/i915/i915_sysfs.c > index 4c6b5d52b5ca..183517d1a73d 100644 > --- a/drivers/gpu/drm/i915/i915_sysfs.c > +++ b/drivers/gpu/drm/i915/i915_sysfs.c > @@ -58,8 +58,8 @@ static u32 calc_residency(struct drm_i915_private *dev_priv, > return DIV_ROUND_CLOSEST_ULL(res, 1000); > } > > -static ssize_t > -show_rc6_mask(struct device *kdev, struct device_attribute *attr, char *buf) > +static ssize_t rc6_enable_show(struct device *kdev, > + struct device_attribute *attr, char *buf) > { > struct drm_i915_private *dev_priv = kdev_minor_to_i915(kdev); > unsigned int mask; > @@ -75,43 +75,43 @@ show_rc6_mask(struct device *kdev, struct device_attribute *attr, char *buf) > return sysfs_emit(buf, "%x\n", mask); > } > > -static ssize_t > -show_rc6_ms(struct device *kdev, struct device_attribute *attr, char *buf) > +static ssize_t rc6_residency_ms_show(struct device *kdev, > + struct device_attribute *attr, char *buf) > { > struct drm_i915_private *dev_priv = kdev_minor_to_i915(kdev); > u32 rc6_residency = calc_residency(dev_priv, GEN6_GT_GFX_RC6); > return sysfs_emit(buf, "%u\n", rc6_residency); > } > > -static ssize_t > -show_rc6p_ms(struct device *kdev, struct device_attribute *attr, char *buf) > +static ssize_t rc6p_residency_ms_show(struct device *kdev, > + struct device_attribute *attr, char *buf) > { > struct drm_i915_private *dev_priv = kdev_minor_to_i915(kdev); > u32 rc6p_residency = calc_residency(dev_priv, GEN6_GT_GFX_RC6p); > return sysfs_emit(buf, "%u\n", rc6p_residency); > } > > -static ssize_t > -show_rc6pp_ms(struct device *kdev, struct device_attribute *attr, char *buf) > +static ssize_t rc6pp_residency_ms_show(struct device *kdev, > + struct device_attribute *attr, char *buf) > { > struct drm_i915_private *dev_priv = kdev_minor_to_i915(kdev); > u32 rc6pp_residency = calc_residency(dev_priv, GEN6_GT_GFX_RC6pp); > return sysfs_emit(buf, "%u\n", rc6pp_residency); > } > > -static ssize_t > -show_media_rc6_ms(struct device *kdev, struct device_attribute *attr, char *buf) > +static ssize_t media_rc6_residency_ms_show(struct device *kdev, > + struct device_attribute *attr, char *buf) > { > struct drm_i915_private *dev_priv = kdev_minor_to_i915(kdev); > u32 rc6_residency = calc_residency(dev_priv, VLV_GT_MEDIA_RC6); > return sysfs_emit(buf, "%u\n", rc6_residency); > } > > -static DEVICE_ATTR(rc6_enable, S_IRUGO, show_rc6_mask, NULL); > -static DEVICE_ATTR(rc6_residency_ms, S_IRUGO, show_rc6_ms, NULL); > -static DEVICE_ATTR(rc6p_residency_ms, S_IRUGO, show_rc6p_ms, NULL); > -static DEVICE_ATTR(rc6pp_residency_ms, S_IRUGO, show_rc6pp_ms, NULL); > -static DEVICE_ATTR(media_rc6_residency_ms, S_IRUGO, show_media_rc6_ms, NULL); > +static DEVICE_ATTR_RO(rc6_enable); > +static DEVICE_ATTR_RO(rc6_residency_ms); > +static DEVICE_ATTR_RO(rc6p_residency_ms); > +static DEVICE_ATTR_RO(rc6pp_residency_ms); > +static DEVICE_ATTR_RO(media_rc6_residency_ms); > > static struct attribute *rc6_attrs[] = { > &dev_attr_rc6_enable.attr, > Reviewed-by: Tvrtko Ursulin Regards, Tvrtko