From patchwork Wed Mar 16 07:18:51 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Torokhov X-Patchwork-Id: 638751 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id p2G7I6O0002081 for ; Wed, 16 Mar 2011 07:18:57 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752061Ab1CPHS5 (ORCPT ); Wed, 16 Mar 2011 03:18:57 -0400 Received: from mail-yx0-f174.google.com ([209.85.213.174]:43936 "EHLO mail-yx0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752037Ab1CPHS4 (ORCPT ); Wed, 16 Mar 2011 03:18:56 -0400 Received: by yxs7 with SMTP id 7so546881yxs.19 for ; Wed, 16 Mar 2011 00:18:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:subject:to:cc:date:message-id:in-reply-to :references:user-agent:mime-version:content-type :content-transfer-encoding; bh=aOzo3d3SJ/tU6a5h4eUORYoqOIHd5mi3wTOBhBpxgWY=; b=w46HwKwwwhy0YSildzX+3YdNTqTF2C9n+sJfFdNuYl8OBCTNuMj+wk6AkBa+XAd+ng f2/k4zMmY1FPpm8mUUxEHuqb6HYh6rxdWeLPAl2x7SvHdGxGacqubGfeS7e+5xSv42F0 effH1NUmqgIqz4u/yMyVbzV3oQ4ERuXGSYjz4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:subject:to:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-type:content-transfer-encoding; b=PIVy3KJVfK5yIOHdKfFwh3NTSLPlMH/aYwfnxh9NoqT3SpDT23Y6+phsQyxhu6kmA3 WMTiSYpKPMPCjEuGu3XnhlntkoXPWMmi7QdwOZ574WERlWimUvESLMhg6V8bmQYU2uB8 0mYnwEbkBbTonzsXW9XbsGlbIV7H9e8yuxBYI= Received: by 10.150.67.3 with SMTP id p3mr966374yba.153.1300259935984; Wed, 16 Mar 2011 00:18:55 -0700 (PDT) Received: from mailhub.coreip.homeip.net (c-98-234-113-65.hsd1.ca.comcast.net [98.234.113.65]) by mx.google.com with ESMTPS id v35sm3376291yba.4.2011.03.16.00.18.53 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 16 Mar 2011 00:18:55 -0700 (PDT) From: Dmitry Torokhov Subject: [PATCH 10/17] Input: tsc2005 - hide selftest attribute if we can't reset To: Srikar , Phil Carmody , Aaro Koskinen Cc: linux-input@vger.kernel.org, lauri.leukkunen@nokia.com, David Brownell , Imre Deak , Hiroshi DOYU , Ari Kauppi , Tony Lindgren , Jarkko Nikula , Eero Nurkkala , Roman Tereshonkov Date: Wed, 16 Mar 2011 00:18:51 -0700 Message-ID: <20110316071851.25664.73652.stgit@hammer.corenet.prv> In-Reply-To: <20110316071503.25664.55116.stgit@hammer.corenet.prv> References: <20110316071503.25664.55116.stgit@hammer.corenet.prv> User-Agent: StGIT/0.14.3 MIME-Version: 1.0 Sender: linux-input-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Wed, 16 Mar 2011 07:18:58 +0000 (UTC) diff --git a/drivers/input/touchscreen/tsc2005.c b/drivers/input/touchscreen/tsc2005.c index d7ea906..4f1c041 100644 --- a/drivers/input/touchscreen/tsc2005.c +++ b/drivers/input/touchscreen/tsc2005.c @@ -411,13 +411,6 @@ static ssize_t tsc2005_selftest_show(struct device *dev, u16 temp_high_test; unsigned int result; - if (!ts->set_reset) { - dev_warn(&ts->spi->dev, - "unable to selftest: no reset function\n"); - result = 0; - goto out; - } - mutex_lock(&ts->mutex); /* @@ -451,11 +444,38 @@ static ssize_t tsc2005_selftest_show(struct device *dev, mutex_unlock(&ts->mutex); -out: return sprintf(buf, "%u\n", result); } + static DEVICE_ATTR(selftest, S_IRUGO, tsc2005_selftest_show, NULL); +static struct attribute *tsc2005_attrs[] = { + &dev_attr_disable.attr, + &dev_attr_selftest.attr, + NULL +}; + +static mode_t tsc2005_attr_is_visible(struct kobject *kobj, + struct attribute *attr, int n) +{ + struct device *dev = container_of(kobj, struct device, kobj); + struct spi_device *spi = to_spi_device(dev); + struct tsc2005 *ts = spi_get_drvdata(spi); + mode_t mode = attr->mode; + + if (attr == &dev_attr_selftest.attr) { + if (!ts->set_reset) + mode = 0; + } + + return mode; +} + +static const struct attribute_group tsc2005_attr_group = { + .is_visible = tsc2005_attr_is_visible, + .attrs = tsc2005_attrs, +}; + static void tsc2005_esd_timer(unsigned long data) { struct tsc2005 *ts = (struct tsc2005 *)data; @@ -495,16 +515,6 @@ out: mutex_unlock(&ts->mutex); } -static struct attribute *tsc2005_attrs[] = { - &dev_attr_disable.attr, - &dev_attr_selftest.attr, - NULL -}; - -static struct attribute_group tsc2005_attr_group = { - .attrs = tsc2005_attrs, -}; - static void __devinit tsc2005_setup_spi_xfer(struct tsc2005 *ts) { tsc2005_setup_read(&ts->spi_x, TSC2005_REG_X, 0);