From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 69E97C7EE23 for ; Wed, 7 Jun 2023 20:26:48 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 392C810E103; Wed, 7 Jun 2023 20:26:48 +0000 (UTC) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 375A810E103 for ; Wed, 7 Jun 2023 20:26:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1686169607; x=1717705607; h=date:message-id:from:to:cc:subject:in-reply-to: references:mime-version:content-transfer-encoding; bh=9Xkw8LPwUQm5Pguoaq4FCae0H6/4jrmIEIiEGFLkaQA=; b=IvLKJxLfpsUmx5Rl8V9UmhA2ArKLh7pmISbiqqd3JUqS/MLRuJe1sbpC PhlxgFZdt0n0KTldPoLP+ivuTgN5kAg+rmgbx5DBOFVgcu7n2RN6SZA2+ xhxmIPKQoa/nivcF0mD5NxK8elFXK4SP9YgwSzgXX9qLIAsWhxUsE1VQo K+dk8NxEPyUKE0kZdXD0U/zC2UtEMFzvQdZfDKgmkM8Hl+EUgxPMyUabe ye0VzE3otTLJv26hisXx88grErLv3O7FAzr+Xx5yE+uojTjr2sr/s30UV hYL+QvMW9vsw4s1Iff0sulk0gA/WnmlXL2tpDH0nhb1Bsmwq1hQ+XxnH7 g==; X-IronPort-AV: E=McAfee;i="6600,9927,10734"; a="346712509" X-IronPort-AV: E=Sophos;i="6.00,225,1681196400"; d="scan'208";a="346712509" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jun 2023 13:26:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10734"; a="742840486" X-IronPort-AV: E=Sophos;i="6.00,225,1681196400"; d="scan'208";a="742840486" Received: from adixit-mobl.amr.corp.intel.com (HELO adixit-arch.intel.com) ([10.209.85.43]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jun 2023 13:26:46 -0700 Date: Wed, 07 Jun 2023 13:26:43 -0700 Message-ID: <87cz27m324.wl-ashutosh.dixit@intel.com> From: "Dixit, Ashutosh" To: "Sundaresan, Sujaritha" In-Reply-To: <01542752-02A7-4368-BF36-F4B568F63AD8@intel.com> References: <20230606082142.7846-1-sujaritha.sundaresan@intel.com> <87h6rkmvoa.wl-ashutosh.dixit@intel.com> <01542752-02A7-4368-BF36-F4B568F63AD8@intel.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/28.2 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Intel-xe] [PATCH] [RFC]drm/xe: Sysfs entries to query fused min, max frequency of lmem X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "intel-xe@lists.freedesktop.org" Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" On Tue, 06 Jun 2023 20:38:34 -0700, Sundaresan, Sujaritha wrote: > > > On Jun 6, 2023, at 9:27 PM, Dixit, Ashutosh = wrote: > > > > =EF=BB=BFOn Tue, 06 Jun 2023 01:21:42 -0700, Sujaritha Sundaresan wrote: > >> > > > > Hi Suja, > > > > Once again sysfs_create_files is missing from the patch. > > > > Also xe calls lmem vram, so sysfs file names should something like > > vram_rp0/rpn_freq_mhz, "mem" is too general. > > > > Ashutosh > > Hi Ashutosh, > > Yeah this is not the complete patch. I was hoping to get some feedback on > the naming and placing of the code. > > Thanks for the review. I will rename the attributes to reflect the vram. > > Is it okay to leave the code in the current file ? Should the PCODE > definitions be here or another regs file ? Not sure whether the vram sysfs functions belong in xe_guc_pc.c, but the pcode definitions should be in xe_pcode_api.h. > > Regards, > Suja > > > > > >> Signed-off-by: Sujaritha Sundaresan > >> --- > >> drivers/gpu/drm/xe/regs/xe_regs.h | 7 +++++ > >> drivers/gpu/drm/xe/xe_guc_pc.c | 44 +++++++++++++++++++++++++++++++ > >> 2 files changed, 51 insertions(+) > >> > >> diff --git a/drivers/gpu/drm/xe/regs/xe_regs.h b/drivers/gpu/drm/xe/re= gs/xe_regs.h > >> index 8be616a1bd51..bd7b26296402 100644 > >> --- a/drivers/gpu/drm/xe/regs/xe_regs.h > >> +++ b/drivers/gpu/drm/xe/regs/xe_regs.h > >> @@ -101,4 +101,11 @@ > >> #define DSMBASE XE_REG(0x1080C0) > >> #define BDSM_MASK REG_GENMASK64(63, 20) > >> > >> +#define XEHP_PCODE_FREQUENCY_CONFIG 0x6e > >> +/* XEHP_PCODE_FREQUENCY_CONFIG sub-commands (param1) */ > >> +#define PCODE_MBOX_FC_SC_READ_FUSED_P0 0x0 > >> +#define PCODE_MBOX_FC_SC_READ_FUSED_PN 0x1 > >> +/* PCODE_MBOX_DOMAIN_* - mailbox domain IDs */ > >> +#define PCODE_MBOX_DOMAIN_HBM 0x2 > >> + > >> #endif > >> diff --git a/drivers/gpu/drm/xe/xe_guc_pc.c b/drivers/gpu/drm/xe/xe_gu= c_pc.c > >> index 67faa9ee0006..1b349ce74c3d 100644 > >> --- a/drivers/gpu/drm/xe/xe_guc_pc.c > >> +++ b/drivers/gpu/drm/xe/xe_guc_pc.c > >> @@ -453,6 +453,48 @@ static ssize_t freq_rpn_show(struct device *dev, > >> } > >> static DEVICE_ATTR_RO(freq_rpn); > >> > >> +static ssize_t freq_mem_rp0_show(struct device *dev, > >> + struct device_attribute *attr, char *buff) > >> +{ > >> + struct kobject *kobj =3D &dev->kobj; > >> + struct xe_gt *gt =3D kobj_to_gt(kobj); > >> + u32 val; > >> + int err; > >> + > >> + err =3D xe_pcode_read(dev, XEHPSDV_PCODE_FREQUENCY_CONFIG, > >> + PCODE_MBOX_FC_SC_READ_FUSED_P0, > >> + PCODE_MBOX_DOMAIN_HBM, &val); > >> + if (err) > >> + return err; > >> + > >> + /* data_out - Fused P0 for domain ID in units of 50 MHz */ > >> + val *=3D GT_FREQUENCY_MULTIPLIER; > >> + > >> + return sysfs_emit(buff, "%u\n", val); > >> +} > >> +static DEVICE_ATTR_RO(freq_mem_rp0); > >> + > >> +static ssize_t freq_mem_rpn_show(struct device *dev, > >> + struct device_attribute *attr, char *buff) > >> +{ > >> + struct kobject *kobj =3D &dev->kobj; > >> + struct xe_gt *gt =3D kobj_to_gt(kobj); > >> + u32 val; > >> + int err; > >> + > >> + err =3D xe_pcode_read(dev, XEHPSDV_PCODE_FREQUENCY_CONFIG, > >> + PCODE_MBOX_FC_SC_READ_FUSED_PN, > >> + PCODE_MBOX_DOMAIN_HBM, &val); > >> + if (err) > >> + return err; > >> + > >> + /* data_out - Fused P0 for domain ID in units of 50 MHz */ > >> + val *=3D GT_FREQUENCY_MULTIPLIER; > >> + > >> + return sysfs_emit(buff, "%u\n", val); > >> +} > >> +static DEVICE_ATTR_RO(freq_mem_rpn); > >> + > >> static ssize_t freq_min_show(struct device *dev, > >> struct device_attribute *attr, char *buf) > >> { > >> @@ -631,6 +673,8 @@ static const struct attribute *pc_attrs[] =3D { > >> &dev_attr_freq_rp0.attr, > >> &dev_attr_freq_rpe.attr, > >> &dev_attr_freq_rpn.attr, > >> + &dev_attr_freq_mem_rp0.attr, > >> + &dev_attr_freq_mem_rpn.attr, > >> &dev_attr_freq_min.attr, > >> &dev_attr_freq_max.attr, > >> &dev_attr_rc_status.attr, > >> -- > >> 2.39.1 > >>