Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3414016imu; Mon, 7 Jan 2019 03:00:08 -0800 (PST) X-Google-Smtp-Source: ALg8bN7PP9uEOPDi5zuJeABYDB2vuAhOIevm5sABIiY53vJCKMWannxrNG/AS89D+Lqm7Ej0Cn+3 X-Received: by 2002:a17:902:f20b:: with SMTP id gn11mr58534929plb.274.1546858808212; Mon, 07 Jan 2019 03:00:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1546858808; cv=none; d=google.com; s=arc-20160816; b=Op2JGQyY3OFpVuYw05SbMoCC7kIYNMt7mYRlLil3sYrpjLckpAWLUh3MBrBc/LIM1B 5ycLETptzYK1Y+4yaRZCdcHKV2JmZwl2QQuCHvF/ARNb99UKaJaikr0rDA8puGuD5vkY s8Ul09z0tyYtR2orZJsDDDUfE5oU03ZTB8YhMph6iqKXEegcie8OuBahO6IvxtmnEYVI 2pj+Xy8SZqLAxCcukCXwhnY4x32X1bSXXvAxfJwU0UjSFMK4QpEdMYUOkNYUGKd5TQMY wpT8ls/HgjtXzcQdrv69EvrZwBD5VhPE5vW444TnEF3+Yo2gOwWzy+nhyQnjm8Sjsrzs kUJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=g91MOvf58Ls0t7TS9UJiJbJSjUbta2Lbe+UvUJQoDz0=; b=O7R3fDr0PNwpMMdXQNl2o2HKa63eA6dfFxJ8AO9FY6qCf41po80ZnbNPkCF5/0NYKi edWZ94EzX1DyBLGzI1tsKWpfodqrU/dXgDGhfnsaQqk8+KBpsWLUZ1QuCFFa5beo77+1 co+GeuldyFYzvaa9Rtg1rnUqcgfsjzcFZ1udB8ZFZlTPCT6LtIxNCs/T1utgwHT/HBmI a2Ylwjf19CLp1wmj0nVAtUVHlnWCzh2ZbhENJcQ+mCh814iaORMWrd9me6s7GmFDyIS3 O8It8iHwaRXZrJJFyk4FMthWpDkZH7QZ14EYWYwCCDEABHOLY1ZfNVDsUcp9IcJTnGDj ttSA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 128si41450515pfe.4.2019.01.07.02.59.52; Mon, 07 Jan 2019 03:00:08 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726854AbfAGK5w convert rfc822-to-8bit (ORCPT + 99 others); Mon, 7 Jan 2019 05:57:52 -0500 Received: from [38.106.11.25] ([38.106.11.25]:36240 "EHLO barracuda02.hxt-semitech.com" rhost-flags-FAIL-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726667AbfAGK5w (ORCPT ); Mon, 7 Jan 2019 05:57:52 -0500 X-ASG-Debug-ID: 1546858667-107606139f139e60001-xx1T2L Received: from HXTBJIDCEMVIW02.hxtcorp.net ([10.128.0.15]) by barracuda02.hxt-semitech.com with ESMTP id rBwp6DpdWE2escEX (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NO); Mon, 07 Jan 2019 18:57:47 +0800 (CST) X-Barracuda-Envelope-From: xiaoting.liu@hxt-semitech.com Received: from openbmc001.localdomain (10.5.21.169) by HXTBJIDCEMVIW02.hxtcorp.net (10.128.0.15) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Mon, 7 Jan 2019 18:57:41 +0800 From: Xiaoting Liu To: , CC: , , , , , Xiaoting Liu Subject: [PATCH v2 1/4] pmbus: associate PMBUS_SKIP_STATUS_CHECK with driver_data Date: Mon, 7 Jan 2019 18:57:42 +0800 X-ASG-Orig-Subj: [PATCH v2 1/4] pmbus: associate PMBUS_SKIP_STATUS_CHECK with driver_data Message-ID: X-Mailer: git-send-email 1.8.3.1 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.5.21.169] X-ClientProxiedBy: HXTBJIDCEMVIW01.hxtcorp.net (10.128.0.14) To HXTBJIDCEMVIW02.hxtcorp.net (10.128.0.15) Content-Transfer-Encoding: 8BIT X-Barracuda-Connect: UNKNOWN[10.128.0.15] X-Barracuda-Start-Time: 1546858667 X-Barracuda-Encrypted: ECDHE-RSA-AES256-SHA384 X-Barracuda-URL: https://192.168.50.102:443/cgi-mod/mark.cgi X-Barracuda-Scan-Msg-Size: 5038 X-Virus-Scanned: by bsmtpd at hxt-semitech.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5000 1.0000 0.7500 X-Barracuda-Spam-Score: 0.75 X-Barracuda-Spam-Status: No, SCORE=0.75 using global scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=9.0 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.65266 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Current code compares device name with name in i2c_device_id to decide whether PMBUS_SKIP_STATUS_CHECK should be set in pmbus_platform_data, which makes adding new devices with PMBUS_SKIP_STATUS_CHECK should also modify code in pmbus_probe(). This patch adds pmbus_device_info to save pages and flags. Its pointer is put in driver_data of i2c_device_id, which makes adding new device more straightforward. Signed-off-by: Shunyong Yang Signed-off-by: Xiaoting Liu --- v2: Move struct pmbus_device_info definition location from pmbus.h to pmbus.c. Change struct name from default_pmbus_info to pmbus_info_one. Change struct name from pmbus_info to pmbus_info_zero. Replace struct name dps460_pmbus_info and sgd009_pmbus_info with pmbus_info_one_skip. --- drivers/hwmon/pmbus/pmbus.c | 55 +++++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 22 deletions(-) diff --git a/drivers/hwmon/pmbus/pmbus.c b/drivers/hwmon/pmbus/pmbus.c index 7688dab32f6e..e38dd97cc49a 100644 --- a/drivers/hwmon/pmbus/pmbus.c +++ b/drivers/hwmon/pmbus/pmbus.c @@ -28,6 +28,11 @@ #include #include "pmbus.h" +struct pmbus_device_info { + int pages; + u32 flags; +}; + /* * Find sensor groups and status registers on each page. */ @@ -172,13 +177,15 @@ static int pmbus_probe(struct i2c_client *client, struct pmbus_driver_info *info; struct pmbus_platform_data *pdata = NULL; struct device *dev = &client->dev; + struct pmbus_device_info *device_info; info = devm_kzalloc(dev, sizeof(struct pmbus_driver_info), GFP_KERNEL); if (!info) return -ENOMEM; - if (!strcmp(id->name, "dps460") || !strcmp(id->name, "dps800") || - !strcmp(id->name, "sgd009")) { + device_info = (struct pmbus_device_info *)id->driver_data; + + if (device_info->flags & PMBUS_SKIP_STATUS_CHECK) { pdata = devm_kzalloc(dev, sizeof(struct pmbus_platform_data), GFP_KERNEL); if (!pdata) @@ -187,36 +194,40 @@ static int pmbus_probe(struct i2c_client *client, pdata->flags = PMBUS_SKIP_STATUS_CHECK; } - info->pages = id->driver_data; + info->pages = device_info->pages; info->identify = pmbus_identify; dev->platform_data = pdata; return pmbus_do_probe(client, id, info); } +static const struct pmbus_device_info pmbus_info_one = {1, 0}; +static const struct pmbus_device_info pmbus_info_zero = {0, 0}; +static const struct pmbus_device_info pmbus_info_one_skip = { + 1, PMBUS_SKIP_STATUS_CHECK}; /* * Use driver_data to set the number of pages supported by the chip. */ static const struct i2c_device_id pmbus_id[] = { - {"adp4000", 1}, - {"bmr453", 1}, - {"bmr454", 1}, - {"dps460", 1}, - {"dps800", 1}, - {"mdt040", 1}, - {"ncp4200", 1}, - {"ncp4208", 1}, - {"pdt003", 1}, - {"pdt006", 1}, - {"pdt012", 1}, - {"pmbus", 0}, - {"sgd009", 1}, - {"tps40400", 1}, - {"tps544b20", 1}, - {"tps544b25", 1}, - {"tps544c20", 1}, - {"tps544c25", 1}, - {"udt020", 1}, + {"adp4000", (kernel_ulong_t)&pmbus_info_one}, + {"bmr453", (kernel_ulong_t)&pmbus_info_one}, + {"bmr454", (kernel_ulong_t)&pmbus_info_one}, + {"dps460", (kernel_ulong_t)&pmbus_info_one_skip}, + {"dps800", (kernel_ulong_t)&pmbus_info_one_skip}, + {"mdt040", (kernel_ulong_t)&pmbus_info_one}, + {"ncp4200", (kernel_ulong_t)&pmbus_info_one}, + {"ncp4208", (kernel_ulong_t)&pmbus_info_one}, + {"pdt003", (kernel_ulong_t)&pmbus_info_one}, + {"pdt006", (kernel_ulong_t)&pmbus_info_one}, + {"pdt012", (kernel_ulong_t)&pmbus_info_one}, + {"pmbus", (kernel_ulong_t)&pmbus_info_zero}, + {"sgd009", (kernel_ulong_t)&pmbus_info_one_skip}, + {"tps40400", (kernel_ulong_t)&pmbus_info_one}, + {"tps544b20", (kernel_ulong_t)&pmbus_info_one}, + {"tps544b25", (kernel_ulong_t)&pmbus_info_one}, + {"tps544c20", (kernel_ulong_t)&pmbus_info_one}, + {"tps544c25", (kernel_ulong_t)&pmbus_info_one}, + {"udt020", (kernel_ulong_t)&pmbus_info_one}, {} }; -- 1.8.3.1 This email is intended only for the named addressee. It may contain information that is confidential/private, legally privileged, or copyright-protected, and you should handle it accordingly. If you are not the intended recipient, you do not have legal rights to retain, copy, or distribute this email or its contents, and should promptly delete the email and all electronic copies in your system; do not retain copies in any media. If you have received this email in error, please notify the sender promptly. Thank you.