From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id 616081BF2FD for ; Mon, 20 May 2019 19:52:54 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 4CC6586E2C for ; Mon, 20 May 2019 19:52:54 +0000 (UTC) Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XDGgRP8NhJET for ; Mon, 20 May 2019 19:52:48 +0000 (UTC) Received: from kadath.azazel.net (kadath.azazel.net [81.187.231.250]) by hemlock.osuosl.org (Postfix) with ESMTPS id 10771858EE for ; Mon, 20 May 2019 19:52:48 +0000 (UTC) From: Jeremy Sowden Subject: [PATCH 5/8] staging: kpc2000: added separate show functions for readable kp device attributes, defined them as read-only, and declared them static. Date: Mon, 20 May 2019 20:52:31 +0100 Message-Id: <20190520195243.917-5-jeremy@azazel.net> In-Reply-To: <20190520195243.917-1-jeremy@azazel.net> References: <20190517110315.10646-1-jeremy@azazel.net> <20190520195243.917-1-jeremy@azazel.net> MIME-Version: 1.0 List-Id: Linux Driver Project Developer List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" To: Linux Driver Project Developer List Cc: Greg KH Defineed separate simple show functions for each attribute instead of having a one big one containing a chain of conditionals. Replaced calls to scnprintf with sprintf since all the outputs are single integers. All the readable device attributes are read-only, so used DEVICE_ATTR_RO to define them. The definitions are only used to populate the kp_attr_list attribute array, so declared them as static. Fixes the following sparse warnings: drivers/staging/kpc2000/kpc2000/core.c:152:1: warning: symbol 'dev_attr_ssid' was not declared. Should it be static? drivers/staging/kpc2000/kpc2000/core.c:153:1: warning: symbol 'dev_attr_ddna' was not declared. Should it be static? drivers/staging/kpc2000/kpc2000/core.c:154:1: warning: symbol 'dev_attr_card_id' was not declared. Should it be static? drivers/staging/kpc2000/kpc2000/core.c:155:1: warning: symbol 'dev_attr_hw_rev' was not declared. Should it be static? drivers/staging/kpc2000/kpc2000/core.c:156:1: warning: symbol 'dev_attr_build' was not declared. Should it be static? drivers/staging/kpc2000/kpc2000/core.c:157:1: warning: symbol 'dev_attr_build_date' was not declared. Should it be static? drivers/staging/kpc2000/kpc2000/core.c:158:1: warning: symbol 'dev_attr_build_time' was not declared. Should it be static? drivers/staging/kpc2000/kpc2000/core.c:159:1: warning: symbol 'dev_attr_cpld_reg' was not declared. Should it be static? drivers/staging/kpc2000/kpc2000/core.c:161:1: warning: symbol 'dev_attr_cpld_reconfigure' was not declared. Should it be static? Signed-off-by: Jeremy Sowden --- drivers/staging/kpc2000/kpc2000/core.c | 106 +++++++++++++++++-------- 1 file changed, 73 insertions(+), 33 deletions(-) diff --git a/drivers/staging/kpc2000/kpc2000/core.c b/drivers/staging/kpc2000/kpc2000/core.c index c33595cc1332..38de7e7a824d 100644 --- a/drivers/staging/kpc2000/kpc2000/core.c +++ b/drivers/staging/kpc2000/kpc2000/core.c @@ -32,7 +32,7 @@ static struct kp2000_device *get_pcard(struct device *dev) return pci_get_drvdata(pdev); } -static ssize_t show_attr(struct device *dev, struct device_attribute *attr, +static ssize_t ssid_show(struct device *dev, struct device_attribute *attr, char *buf) { struct kp2000_device *pcard = get_pcard(dev); @@ -40,36 +40,84 @@ static ssize_t show_attr(struct device *dev, struct device_attribute *attr, if (!pcard) return -ENXIO; - if (strcmp("ssid", attr->attr.name) == 0) - return scnprintf(buf, PAGE_SIZE, "%016llx\n", pcard->ssid); + return sprintf(buf, "%016llx\n", pcard->ssid); +} +static DEVICE_ATTR_RO(ssid); - if (strcmp("ddna", attr->attr.name) == 0) - return scnprintf(buf, PAGE_SIZE, "%016llx\n", pcard->ddna); +static ssize_t ddna_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + struct kp2000_device *pcard = get_pcard(dev); - if (strcmp("card_id", attr->attr.name) == 0) - return scnprintf(buf, PAGE_SIZE, "%08x\n", pcard->card_id); + if (!pcard) + return -ENXIO; + + return sprintf(buf, "%016llx\n", pcard->ddna); +} +static DEVICE_ATTR_RO(ddna); + +static ssize_t card_id_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + struct kp2000_device *pcard = get_pcard(dev); - if (strcmp("hw_rev", attr->attr.name) == 0) - return scnprintf(buf, PAGE_SIZE, "%08x\n", - pcard->hardware_revision); + if (!pcard) + return -ENXIO; - if (strcmp("build", attr->attr.name) == 0) - return scnprintf(buf, PAGE_SIZE, "%08x\n", - pcard->build_version); + return sprintf(buf, "%08x\n", pcard->card_id); +} +static DEVICE_ATTR_RO(card_id); - if (strcmp("build_date", attr->attr.name) == 0) - return scnprintf(buf, PAGE_SIZE, "%08x\n", - pcard->build_datestamp); +static ssize_t hw_rev_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + struct kp2000_device *pcard = get_pcard(dev); - if (strcmp("build_time", attr->attr.name) == 0) - return scnprintf(buf, PAGE_SIZE, "%08x\n", - pcard->build_timestamp); + if (!pcard) + return -ENXIO; - return -ENXIO; + return sprintf(buf, "%08x\n", pcard->hardware_revision); } +static DEVICE_ATTR_RO(hw_rev); -static ssize_t show_cpld_config_reg(struct device *dev, - struct device_attribute *attr, char *buf) +static ssize_t build_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + struct kp2000_device *pcard = get_pcard(dev); + + if (!pcard) + return -ENXIO; + + return sprintf(buf, "%08x\n", pcard->build_version); +} +static DEVICE_ATTR_RO(build); + +static ssize_t build_date_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct kp2000_device *pcard = get_pcard(dev); + + if (!pcard) + return -ENXIO; + + return sprintf(buf, "%08x\n", pcard->build_datestamp); +} +static DEVICE_ATTR_RO(build_date); + +static ssize_t build_time_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct kp2000_device *pcard = get_pcard(dev); + + if (!pcard) + return -ENXIO; + + return sprintf(buf, "%08x\n", pcard->build_timestamp); +} +static DEVICE_ATTR_RO(build_time); + +static ssize_t cpld_reg_show(struct device *dev, struct device_attribute *attr, + char *buf) { struct kp2000_device *pcard = get_pcard(dev); u64 val; @@ -78,8 +126,9 @@ static ssize_t show_cpld_config_reg(struct device *dev, return -ENXIO; val = readq(pcard->sysinfo_regs_base + REG_CPLD_CONFIG); - return scnprintf(buf, PAGE_SIZE, "%016llx\n", val); + return sprintf(buf, "%016llx\n", val); } +static DEVICE_ATTR_RO(cpld_reg); static ssize_t cpld_reconfigure(struct device *dev, struct device_attribute *attr, @@ -103,16 +152,7 @@ static ssize_t cpld_reconfigure(struct device *dev, writeq(wr_val, pcard->sysinfo_regs_base + REG_CPLD_CONFIG); return count; } - -DEVICE_ATTR(ssid, 0444, show_attr, NULL); -DEVICE_ATTR(ddna, 0444, show_attr, NULL); -DEVICE_ATTR(card_id, 0444, show_attr, NULL); -DEVICE_ATTR(hw_rev, 0444, show_attr, NULL); -DEVICE_ATTR(build, 0444, show_attr, NULL); -DEVICE_ATTR(build_date, 0444, show_attr, NULL); -DEVICE_ATTR(build_time, 0444, show_attr, NULL); -DEVICE_ATTR(cpld_reg, 0444, show_cpld_config_reg, NULL); -DEVICE_ATTR(cpld_reconfigure, 0220, NULL, cpld_reconfigure); +static DEVICE_ATTR(cpld_reconfigure, 0220, NULL, cpld_reconfigure); static const struct attribute *kp_attr_list[] = { &dev_attr_ssid.attr, -- 2.20.1 _______________________________________________ devel mailing list devel@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel