From patchwork Mon May 10 10:34:02 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oskar Schirmer X-Patchwork-Id: 98130 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter.kernel.org (8.14.3/8.14.3) with ESMTP id o4AAYFvs005814 for ; Mon, 10 May 2010 10:34:15 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756495Ab0EJKeO (ORCPT ); Mon, 10 May 2010 06:34:14 -0400 Received: from mx1.emlix.com ([193.175.82.87]:55169 "EHLO mx1.emlix.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752650Ab0EJKeN (ORCPT ); Mon, 10 May 2010 06:34:13 -0400 Received: from gate.emlix.com ([193.175.27.217]:35066 helo=mailer.emlix.com) by mx1.emlix.com with esmtp (Exim 4.69) (envelope-from ) id 1OBQJI-0003SP-7x; Mon, 10 May 2010 12:34:04 +0200 Received: by mailer.emlix.com id 1OBQJH-0005Z7-1o; Mon, 10 May 2010 12:34:04 +0200 Received: by mango (sSMTP sendmail emulation); Mon, 10 May 2010 12:34:02 +0200 From: "Oskar Schirmer" To: Michael Hennerich , Dmitry Torokhov Cc: Mike Frysinger , Andrew Morton , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, Oskar Schirmer , =?utf-8?q?Daniel=20Gl=C3=B6ckner?= , Oliver Schneidewind , Johannes Weiner Subject: [PATCH v2] ad7877: keep dma rx buffers in seperate cache lines Date: Mon, 10 May 2010 12:34:02 +0200 Message-Id: <1273487642-2169-1-git-send-email-os@emlix.com> In-Reply-To: <1273142265-11929-2-git-send-email-os@emlix.com> References: <1273142265-11929-2-git-send-email-os@emlix.com> MIME-Version: 1.0 Organization: emlix gmbh, Goettingen, Germany 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.3 (demeter.kernel.org [140.211.167.41]); Mon, 10 May 2010 10:34:16 +0000 (UTC) diff --git a/drivers/input/touchscreen/ad7877.c b/drivers/input/touchscreen/ad7877.c index 9cfc8b5..69ebacf 100644 --- a/drivers/input/touchscreen/ad7877.c +++ b/drivers/input/touchscreen/ad7877.c @@ -153,15 +153,29 @@ enum { */ struct ser_req { + u16 sample; + /* + * DMA (thus cache coherency maintainance) requires the + * transfer buffers to live in their own cache lines. + */ + char __padalign[L1_CACHE_BYTES - sizeof(u16)]; + u16 reset; u16 ref_on; u16 command; - u16 sample; struct spi_message msg; struct spi_transfer xfer[6]; }; struct ad7877 { + u16 conversion_data[AD7877_NR_SENSE]; + /* + * DMA (thus cache coherency maintainance) requires the + * transfer buffers to live in their own cache lines. + */ + char __padalign[L1_CACHE_BYTES + - AD7877_NR_SENSE * sizeof(u16)]; + struct input_dev *input; char phys[32]; @@ -182,8 +196,6 @@ struct ad7877 { u8 averaging; u8 pen_down_acc_interval; - u16 conversion_data[AD7877_NR_SENSE]; - struct spi_transfer xfer[AD7877_NR_SENSE + 2]; struct spi_message msg;