Received: by 2002:a25:b794:0:0:0:0:0 with SMTP id n20csp5668638ybh; Wed, 7 Aug 2019 09:28:13 -0700 (PDT) X-Google-Smtp-Source: APXvYqy6VlLpBIVOtclITzet1kEo8Qw8OkD7OsCc8GqLoEZdEvLunPSsfQmAqYaIlgS8c7SDCS20 X-Received: by 2002:a63:6f41:: with SMTP id k62mr8475134pgc.32.1565195293370; Wed, 07 Aug 2019 09:28:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565195293; cv=none; d=google.com; s=arc-20160816; b=YOog0xWgaEfMKakEzQGEGExSdSFTA1vR5o7SMrtcnotgIxzyiccZJGm8ZALBOUpGMg UJ3rXqHhQvcis5/2m+iBH0ZhH1ck4a8NgIwDs6iBUywaKwq1rtNB2hsyR+Um2PYWGhIE 0Lzzl8A6F/hcD1zOpgp3ScYQt2A6ww8INcfIjURne8uUwfDXls5BYVNxzA4R1nBVK54W ZlsX42KQDXD9Sf2FK5Pxz1eYGFFqHWdk/zVCASBa3JTeurL+dYAOqTsY/wyND7mJilXu yuItmL6npO388F2fWssUKGLbHka0Emcx31zBVg1kxeYzxZOi2ZKiqUCzMfu2ZsaqpKn4 y4SA== 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 :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from; bh=eVujA6pvgH+0O/hIoaSeD4ZOkx3lUGu2502bsyh2qcg=; b=b5/tvAV8/+WFqAasGoQu1b4PYZevNKxF6XJMOXL2rRhz/acE/ol1LvHZ4xAVQc0rde S3aUimuhU99RFEkVmPg8XK9kyWpiRnAdpxAeLWHn/+8shcsBAejy+U48VPzW12ZV+DGy IO13ozjHot0hanvwjjiX0VmgQkXxKSsAv9/yXuZa0UUKJbUZzAh4rdDVc/hl55DyITN5 nSKfs86tjD9gYVEsAYvDIgtHFGY2Lu1o2EAgDTGoKwBZAM4Jccq11hYE4G7Xj+UkatFw gXnc7/kkBHoIkrOgkcoUDGSrkIT/+5i/O3DsHREEkywKnMLDYHzuaqht/J/fVDjY0a57 h0yQ== 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 d11si38786253pga.407.2019.08.07.09.27.57; Wed, 07 Aug 2019 09:28:13 -0700 (PDT) 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 S2388829AbfHGQWd convert rfc822-to-8bit (ORCPT + 99 others); Wed, 7 Aug 2019 12:22:33 -0400 Received: from eu-smtp-delivery-151.mimecast.com ([207.82.80.151]:52517 "EHLO eu-smtp-delivery-151.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387922AbfHGQWc (ORCPT ); Wed, 7 Aug 2019 12:22:32 -0400 Received: from AcuMS.aculab.com (156.67.243.126 [156.67.243.126]) (Using TLS) by relay.mimecast.com with ESMTP id uk-mta-190-jOEo8AM4MeKjlt6Gfd49KQ-1; Wed, 07 Aug 2019 17:22:27 +0100 Received: from AcuMS.Aculab.com (fd9f:af1c:a25b:0:43c:695e:880f:8750) by AcuMS.aculab.com (fd9f:af1c:a25b:0:43c:695e:880f:8750) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Wed, 7 Aug 2019 17:22:26 +0100 Received: from AcuMS.Aculab.com ([fe80::43c:695e:880f:8750]) by AcuMS.aculab.com ([fe80::43c:695e:880f:8750%12]) with mapi id 15.00.1347.000; Wed, 7 Aug 2019 17:22:26 +0100 From: David Laight To: 'Mika Westerberg' CC: 'Yehezkel Bernat' , LKML , Andreas Noever , Michael Jamet , "Rafael J . Wysocki" , Len Brown , Lukas Wunner , Mario Limonciello , "Anthony Wong" , "linux-acpi@vger.kernel.org" Subject: RE: [PATCH 3/8] thunderbolt: Use 32-bit writes when writing ring producer/consumer Thread-Topic: [PATCH 3/8] thunderbolt: Use 32-bit writes when writing ring producer/consumer Thread-Index: AQHVMyIznn3HI+p3CEuvWWeqi0Ulhqa8L0swgDPP6oCAABFywA== Date: Wed, 7 Aug 2019 16:22:26 +0000 Message-ID: <79616dd147864771b0b74901e77f2607@AcuMS.aculab.com> References: <20190705095800.43534-1-mika.westerberg@linux.intel.com> <20190705095800.43534-4-mika.westerberg@linux.intel.com> <0f3a47d8133945b181d623ea6e0d53f2@AcuMS.aculab.com> <20190807161359.GT2716@lahna.fi.intel.com> In-Reply-To: <20190807161359.GT2716@lahna.fi.intel.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.202.205.107] MIME-Version: 1.0 X-MC-Unique: jOEo8AM4MeKjlt6Gfd49KQ-1 X-Mimecast-Spam-Score: 0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mika Westerberg > Sent: 07 August 2019 17:14 > To: David Laight > > On Fri, Jul 05, 2019 at 04:04:19PM +0000, David Laight wrote: > > > Really a matter of taste, but maybe you want to consider having a single > > > function, with a 3rd parameter, bool is_tx. > > > The calls here will be unified to: > > > ring_iowrite(ring, ring->head, ring->is_tx); > > > (No condition is needed here). > > > > > > The implementation uses the new parameter to decide which part of the register > > > to mask, reducing the code duplication (in my eyes): > > > > > > val = ioread32(ring_desc_base(ring) + 8); > > > if (is_tx) { > > > val &= 0x0000ffff; > > > val |= value << 16; > > > } else { > > > val &= 0xffff0000; > > > val |= value; > > > } > > > iowrite32(val, ring_desc_base(ring) + 8); > > > > > > I'm not sure if it improves the readability or makes it worse. Your call. > > > > Gah, that is all horrid beyond belief. > > If a 32bit write is valid then the hardware must not be updating > > the other 16 bits. > > In which case the driver knows what they should be. > > So it can do a single 32bit write of the required value. > > I'm not entirely sure I understand what you say above. Can you shed some > light on this by a concrete example how it should look like? :-) The driver must know both the tx and rx ring values, so: iowrite32(tx_val << 16 | rx_val, ring_desc_base(ring) + 8); The ioread32() is likely to be very slow - you only want to do them if absolutely necessary. The speed of the iowrite32() doesn't matter (much) since it is almost certainly 'posted' and execution continues while the bus cycle is in progress. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)