From patchwork Mon Jul 1 01:33:24 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Torokhov X-Patchwork-Id: 2804801 Return-Path: X-Original-To: patchwork-linux-input@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 5F4659F96C for ; Mon, 1 Jul 2013 01:33:34 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 8192420115 for ; Mon, 1 Jul 2013 01:33:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9CBFC2010B for ; Mon, 1 Jul 2013 01:33:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751642Ab3GABd3 (ORCPT ); Sun, 30 Jun 2013 21:33:29 -0400 Received: from mail-pa0-f41.google.com ([209.85.220.41]:47136 "EHLO mail-pa0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751386Ab3GABd2 (ORCPT ); Sun, 30 Jun 2013 21:33:28 -0400 Received: by mail-pa0-f41.google.com with SMTP id bj3so4432952pad.0 for ; Sun, 30 Jun 2013 18:33:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=FguiGQnC7Cb3JpAOSiy/Fg3n0Aak48EcrN+a1iVSQiQ=; b=Foxx3Z8ubnJOK4u03LXK6DtmqAu//0R/NHGEyw7JLV21iVYZ87wKUc3Pdrys+5xUA2 NQa2D483N00dvIYZZXDiqP4NoeugnpRu7Cxlnc+4zwpuvtLb7R0/6Jy+Zb4Ijaf2XGAa 4mFSPQeD+KnQZ6h5tqgyMZAMPm/ZmM/wzAVEIMHYWRBvxLRuWM3oIRf4rd3lJQtWuRuC /gFVf/UBPZxfugZdzDHAgzBYGrz/gA5wR+vir+GvI07Tp7rW4W1SJqScknD3BNCQpAFQ JcR0jr1TgjsJRslp8c3Z8SO+l+GrLEV7PfdAAUl3UMQI2BizsUtL96ItT5D3IqiXrO9u DfmQ== X-Received: by 10.66.6.10 with SMTP id w10mr18669669paw.130.1372642407991; Sun, 30 Jun 2013 18:33:27 -0700 (PDT) Received: from mailhub.coreip.homeip.net (c-67-188-112-76.hsd1.ca.comcast.net. [67.188.112.76]) by mx.google.com with ESMTPSA id tq8sm19448754pbc.30.2013.06.30.18.33.26 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Sun, 30 Jun 2013 18:33:26 -0700 (PDT) Date: Sun, 30 Jun 2013 18:33:24 -0700 From: Dmitry Torokhov To: Daniel Mack Cc: linux-input@vger.kernel.org, broonie@kernel.org, grant.likely@linaro.org, agust@denx.de, imre.deak@nokia.com, chf@fritzc.com Subject: Re: [PATCH RESEND v2 1/2] Input: touchscreen: ads7846: keep copy of pdata in private struct Message-ID: <20130701013324.GA10755@core.coreip.homeip.net> References: <1372626555-29479-1-git-send-email-zonque@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1372626555-29479-1-git-send-email-zonque@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-input-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Hi Daniel, On Sun, Jun 30, 2013 at 11:09:14PM +0200, Daniel Mack wrote: > + > + if (!pdata->model) > + pdata->model = 7846; > + > + if (!pdata->vref_delay_usecs) > + pdata->vref_delay_usecs = 100; > + > + if (!pdata->x_plate_ohms) > + pdata->x_plate_ohms = 400; > + > + if (!pdata->pressure_max) > + pdata->pressure_max = ~0; We should not be changing the platform data as the device does not own it and it may well be declared as a constant structure. In fact, I have a patch that declares pdata pointer as const. diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c index 84ccf14..5ff0419 100644 --- a/drivers/input/touchscreen/ads7846.c +++ b/drivers/input/touchscreen/ads7846.c @@ -961,9 +961,9 @@ static int ads7846_resume(struct device *dev) static SIMPLE_DEV_PM_OPS(ads7846_pm, ads7846_suspend, ads7846_resume); static int ads7846_setup_pendown(struct spi_device *spi, - struct ads7846 *ts) + struct ads7846 *ts, + const struct ads7846_platform_data *pdata) { - struct ads7846_platform_data *pdata = spi->dev.platform_data; int err; /* @@ -1003,7 +1003,7 @@ static int ads7846_setup_pendown(struct spi_device *spi, * use formula #2 for pressure, not #3. */ static void ads7846_setup_spi_msg(struct ads7846 *ts, - const struct ads7846_platform_data *pdata) + const struct ads7846_platform_data *pdata) { struct spi_message *m = &ts->msg[0]; struct spi_transfer *x = ts->xfer; @@ -1203,10 +1203,10 @@ static void ads7846_setup_spi_msg(struct ads7846 *ts, static int ads7846_probe(struct spi_device *spi) { + const struct ads7846_platform_data *pdata = dev_get_platdata(&spi->dev); struct ads7846 *ts; struct ads7846_packet *packet; struct input_dev *input_dev; - struct ads7846_platform_data *pdata = spi->dev.platform_data; unsigned long irq_flags; int err; @@ -1281,7 +1281,7 @@ static int ads7846_probe(struct spi_device *spi) ts->filter = ads7846_no_filter; } - err = ads7846_setup_pendown(spi, ts); + err = ads7846_setup_pendown(spi, ts, pdata); if (err) goto err_cleanup_filter;