From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751576AbdBWFv6 (ORCPT ); Thu, 23 Feb 2017 00:51:58 -0500 Received: from mga14.intel.com ([192.55.52.115]:36317 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751049AbdBWFv5 (ORCPT ); Thu, 23 Feb 2017 00:51:57 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.35,197,1484035200"; d="scan'208";a="51631936" From: "Loh, Tien Hock" To: "gregkh@linuxfoundation.org" CC: "linux-kernel@vger.kernel.org" , "Nguyen, Dinh" , "thloh85@gmail.com" , "arnd@arndb.de" , "Gerlach, Matthew" Subject: Re: [PATCH 1/1] drivers/misc: Add Intel System ID driver Thread-Topic: [PATCH 1/1] drivers/misc: Add Intel System ID driver Thread-Index: AQHSh3xEV1UiWY2US02NwdEQuVXhNaFpybMAgAvSqQA= Date: Thu, 23 Feb 2017 05:50:24 +0000 Message-ID: <1487829022.2961.1.camel@intel.com> References: <1487156981-4550-1-git-send-email-user@thloh-VirtualBox> <20170215171732.GA4548@kroah.com> In-Reply-To: <20170215171732.GA4548@kroah.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.226.241.119] Content-Type: text/plain; charset="utf-8" Content-ID: MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id v1N5q88h009874 Sorry for the late reply. I'll add the Documentation/ABI description, use DEVICE_ATTR_RO and update ATTRIBUTE_GROUP.  Thanks Tien Hock On Rab, 2017-02-15 at 09:17 -0800, Greg KH wrote: > On Wed, Feb 15, 2017 at 07:09:41PM +0800, thloh wrote: > > > > From: "Loh, Tien Hock" > > > > This patch is to add Altera System ID driver. > > User can obtain the system ID and timestamp of the system by > > reading the sysfs entry. > > > > Usage: > > cat /sys/bus/platform/devices/[addr].sysid/sysid/id > > cat /sys/bus/platform/devices/[addr].sysid/sysid/timestamp > If you add new sysfs attributes, you need to also add a > Documentation/ABI/ description as well. > > > > > > > Signed-off-by: Loh, Tien Hock > > --- > >  drivers/misc/Kconfig       |    5 ++ > >  drivers/misc/Makefile      |    1 + > >  drivers/misc/intel_sysid.c |  142 > > ++++++++++++++++++++++++++++++++++++++++++++ > >  3 files changed, 148 insertions(+), 0 deletions(-) > >  create mode 100644 drivers/misc/intel_sysid.c > > > > diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig > > index b4d6aac..e5552fa 100644 > > --- a/drivers/misc/Kconfig > > +++ b/drivers/misc/Kconfig > > @@ -139,6 +139,11 @@ config INTEL_MID_PTI > >     an Intel Atom (non-netbook) mobile device containing a > > MIPI > >     P1149.7 standard implementation. > >   > > +config INTEL_SYSID > > +        tristate "Intel System ID" > > +        help > > +        This enables Intel System ID soft core driver. > > + > >  config SGI_IOC4 > >   tristate "SGI IOC4 Base IO support" > >   depends on PCI > > diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile > > index 7a3ea89..24fe724 100644 > > --- a/drivers/misc/Makefile > > +++ b/drivers/misc/Makefile > > @@ -43,6 +43,7 @@ obj-y += ti-st/ > >  obj-y += lis3lv02d/ > >  obj-$(CONFIG_USB_SWITCH_FSA9480) += fsa9480.o > >  obj-$(CONFIG_ALTERA_STAPL) +=altera-stapl/ > > +obj-$(CONFIG_INTEL_SYSID)       += intel_sysid.o > >  obj-$(CONFIG_INTEL_MEI) += mei/ > >  obj-$(CONFIG_VMWARE_VMCI) += vmw_vmci/ > >  obj-$(CONFIG_LATTICE_ECP3_CONFIG) += lattice-ecp3-config.o > > diff --git a/drivers/misc/intel_sysid.c > > b/drivers/misc/intel_sysid.c > > new file mode 100644 > > index 0000000..1ef72b8 > > --- /dev/null > > +++ b/drivers/misc/intel_sysid.c > > @@ -0,0 +1,142 @@ > > +/* > > + * Copyright Intel Corporation (C) 2017. > > + * > > + * This program is free software; you can redistribute it and/or > > modify it > > + * under the terms and conditions of the GNU General Public > > License, > > + * version 2, as published by the Free Software Foundation. > > + * > > + * This program is distributed in the hope it will be useful, but > > WITHOUT > > + * ANY WARRANTY; without even the implied warranty of > > MERCHANTABILITY or > > + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public > > License for > > + * more details. > > + * > > + * You should have received a copy of the GNU General Public > > License along with > > + * this program.  If not, see . > > + * > > + * Credit: > > + * Walter Goossens > > + */ > > + > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > + > > +#define DRV_NAME "intel_sysid" > > + > > +struct intel_sysid { > > + void __iomem *regs; > > +}; > > + > > +/* System ID Registers*/ > > +#define SYSID_REG_ID (0x0) > > +#define SYSID_REG_TIMESTAMP (0x4) > > + > > +static ssize_t intel_sysid_show_id(struct device *dev, > > + struct device_attribute *attr, char *buf) > > +{ > > + struct intel_sysid *sysid = dev_get_drvdata(dev); > > + > > + return sprintf(buf, "%u\n", readl(sysid->regs + > > SYSID_REG_ID)); > > +} > > + > > +static ssize_t intel_sysid_show_timestamp(struct device *dev, > > + struct device_attribute *attr, char *buf) > > +{ > > + unsigned int reg; > > + struct tm timestamp; > > + struct intel_sysid *sysid = dev_get_drvdata(dev); > > + > > + reg = readl(sysid->regs + SYSID_REG_TIMESTAMP); > > + > > + time_to_tm(reg, 0, ×tamp); > > + > > + return sprintf(buf, "%u (%u-%u-%u %u:%u:%u UTC)\n", reg, > > + (unsigned int)(timestamp.tm_year + 1900), > > + timestamp.tm_mon + 1, timestamp.tm_mday, > > timestamp.tm_hour, > > + timestamp.tm_min, timestamp.tm_sec); > > +} > > + > > +static DEVICE_ATTR(id, S_IRUGO, intel_sysid_show_id, NULL); > > +static DEVICE_ATTR(timestamp, S_IRUGO, intel_sysid_show_timestamp, > > NULL); > DEVICE_ATTR_RO()? > > > > > +static struct attribute *intel_sysid_attrs[] = { > > + &dev_attr_id.attr, > > + &dev_attr_timestamp.attr, > > + NULL, > > +}; > > + > > +struct attribute_group intel_sysid_attr_group = { > > + .name = "sysid", > > + .attrs = intel_sysid_attrs, > > +}; > ATTRIBUTE_GROUP()? > > thanks, > > greg k-h