From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9C8B8C433E0 for ; Thu, 14 May 2020 13:18:00 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 70D18206DA for ; Thu, 14 May 2020 13:18:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727944AbgENNR7 (ORCPT ); Thu, 14 May 2020 09:17:59 -0400 Received: from mx0a-00128a01.pphosted.com ([148.163.135.77]:2428 "EHLO mx0a-00128a01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727893AbgENNR5 (ORCPT ); Thu, 14 May 2020 09:17:57 -0400 Received: from pps.filterd (m0167088.ppops.net [127.0.0.1]) by mx0a-00128a01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 04ED9cC4020505; Thu, 14 May 2020 09:17:38 -0400 Received: from nwd2mta3.analog.com ([137.71.173.56]) by mx0a-00128a01.pphosted.com with ESMTP id 3100x5yeav-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 14 May 2020 09:17:38 -0400 Received: from SCSQMBX10.ad.analog.com (scsqmbx10.ad.analog.com [10.77.17.5]) by nwd2mta3.analog.com (8.14.7/8.14.7) with ESMTP id 04EDHadV059571 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=FAIL); Thu, 14 May 2020 09:17:36 -0400 Received: from SCSQCASHYB6.ad.analog.com (10.77.17.132) by SCSQMBX10.ad.analog.com (10.77.17.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1779.2; Thu, 14 May 2020 06:17:35 -0700 Received: from SCSQMBX10.ad.analog.com (10.77.17.5) by SCSQCASHYB6.ad.analog.com (10.77.17.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1779.2; Thu, 14 May 2020 06:17:19 -0700 Received: from zeus.spd.analog.com (10.64.82.11) by SCSQMBX10.ad.analog.com (10.77.17.5) with Microsoft SMTP Server id 15.1.1779.2 via Frontend Transport; Thu, 14 May 2020 06:17:34 -0700 Received: from localhost.localdomain ([10.48.65.12]) by zeus.spd.analog.com (8.15.1/8.15.1) with ESMTP id 04EDHUaj017033; Thu, 14 May 2020 09:17:30 -0400 From: Alexandru Ardelean To: , , , CC: , , , , , , , , Alexandru Ardelean Subject: [PATCH v2 0/8] iio: core: wrap IIO device into an iio_dev_opaque object Date: Thu, 14 May 2020 16:17:02 +0300 Message-ID: <20200514131710.84201-1-alexandru.ardelean@analog.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Content-Type: text/plain X-ADIRoutedOnPrem: True X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216,18.0.676 definitions=2020-05-14_03:2020-05-14,2020-05-14 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 malwarescore=0 suspectscore=0 cotscore=-2147483648 mlxscore=0 spamscore=0 lowpriorityscore=0 mlxlogscore=999 phishscore=0 priorityscore=1501 clxscore=1015 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000 definitions=main-2005140117 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This change starts to hide some internal fields of the IIO device into the framework. Because the iio_priv_to_dev() will be hidden some pre-work is done to try to remove it from some interrupt handlers. iio_priv_to_dev() will become a function call and won't be expandable into place (as-is now as an inline function). Changelog v1 -> v2: - add pre-work patches that remove some calls to iio_priv_to_dev() from interrupt handlers - renamed iio_dev_priv -> iio_dev_opaque - moved the iio_dev_opaque to 'include/linux/iio/iio-opaque.h' this way it should be usable for debugging - the iio_priv() call, is still an inline function that returns an 'indio_dev->priv' reference; this field is added to 'struct iio_dev'; the reference is computed in iio_device_alloc() and should be cacheline aligned - the to_iio_dev_opaque() container is in the 'include/linux/iio/iio-opaque.h' header; it's still implemented with some pointer arithmetic; one idea was to do it via an 'indio_dev->opaque' field; that may still be an optionif there are some opinions in that direction Alexandru Ardelean (8): iio: proximity: ping: pass reference to IIO device via call-stack iio: at91-sama5d2_adc: pass ref to IIO device via param for int function iio: at91_adc: pass ref to IIO device via param for int function iio: stm32-dfsdm-adc: pass iio device as arg for the interrupt handler iio: stm32-adc: pass iio device as arg for the interrupt handler iio: core: wrap IIO device into an iio_dev_opaque object iio: core: simplify alloc alignment code iio: core: move debugfs data on the private iio dev info drivers/iio/adc/at91-sama5d2_adc.c | 7 ++- drivers/iio/adc/at91_adc.c | 5 +- drivers/iio/adc/stm32-adc.c | 10 ++-- drivers/iio/adc/stm32-dfsdm-adc.c | 6 +-- drivers/iio/industrialio-core.c | 75 ++++++++++++++++++++---------- drivers/iio/proximity/ping.c | 5 +- include/linux/iio/iio-opaque.h | 27 +++++++++++ include/linux/iio/iio.h | 24 +++------- 8 files changed, 99 insertions(+), 60 deletions(-) create mode 100644 include/linux/iio/iio-opaque.h -- 2.17.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 62CF9C433E2 for ; Thu, 14 May 2020 13:18:02 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 12A4A206DA for ; Thu, 14 May 2020 13:18:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="VkY1Gow2" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 12A4A206DA Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=analog.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=3EQgvQ/t67nKShFpa/d/d/kcUU+dg+iujlD4BQaxToI=; b=VkY1Gow2xflUWz B83skS7fqcxgAR3c90Rvpq5wr/cVuqvjmQQyhq068UNumUizHWG8iuDVQyODKxXOEsbvt7CAK1OYU Kmh5u+woRHbXteOxDgloWyL8ZQdlbHVliolEw4lsAgj6XjkcD1vF6T7ofU8WR6tcfqCY1d1DEtaf1 Av+Pg8RPpxzHeaPu7pstMJQ+IfJSFMktFIv2wtXYTijlVCxf/rgtXiE0Mu3rAXCQgdEtXnEzqj/vd hCH0XPCdha+xsm9Fy8kC4zbEFsTL41QP5tqzdPUW7rSC2IwScL/LQLANErcC3OOBjnXZJxF39O7vG SqCTT8btWNvdEcMtv7hg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jZDkO-0001bO-IO; Thu, 14 May 2020 13:18:00 +0000 Received: from mx0a-00128a01.pphosted.com ([148.163.135.77]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jZDkA-0001Qk-3L for linux-arm-kernel@lists.infradead.org; Thu, 14 May 2020 13:17:47 +0000 Received: from pps.filterd (m0167088.ppops.net [127.0.0.1]) by mx0a-00128a01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 04ED9cC4020505; Thu, 14 May 2020 09:17:38 -0400 Received: from nwd2mta3.analog.com ([137.71.173.56]) by mx0a-00128a01.pphosted.com with ESMTP id 3100x5yeav-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 14 May 2020 09:17:38 -0400 Received: from SCSQMBX10.ad.analog.com (scsqmbx10.ad.analog.com [10.77.17.5]) by nwd2mta3.analog.com (8.14.7/8.14.7) with ESMTP id 04EDHadV059571 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=FAIL); Thu, 14 May 2020 09:17:36 -0400 Received: from SCSQCASHYB6.ad.analog.com (10.77.17.132) by SCSQMBX10.ad.analog.com (10.77.17.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1779.2; Thu, 14 May 2020 06:17:35 -0700 Received: from SCSQMBX10.ad.analog.com (10.77.17.5) by SCSQCASHYB6.ad.analog.com (10.77.17.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1779.2; Thu, 14 May 2020 06:17:19 -0700 Received: from zeus.spd.analog.com (10.64.82.11) by SCSQMBX10.ad.analog.com (10.77.17.5) with Microsoft SMTP Server id 15.1.1779.2 via Frontend Transport; Thu, 14 May 2020 06:17:34 -0700 Received: from localhost.localdomain ([10.48.65.12]) by zeus.spd.analog.com (8.15.1/8.15.1) with ESMTP id 04EDHUaj017033; Thu, 14 May 2020 09:17:30 -0400 From: Alexandru Ardelean To: , , , Subject: [PATCH v2 0/8] iio: core: wrap IIO device into an iio_dev_opaque object Date: Thu, 14 May 2020 16:17:02 +0300 Message-ID: <20200514131710.84201-1-alexandru.ardelean@analog.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 X-ADIRoutedOnPrem: True X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216, 18.0.676 definitions=2020-05-14_03:2020-05-14, 2020-05-14 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 malwarescore=0 suspectscore=0 cotscore=-2147483648 mlxscore=0 spamscore=0 lowpriorityscore=0 mlxlogscore=999 phishscore=0 priorityscore=1501 clxscore=1015 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000 definitions=main-2005140117 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200514_061746_143091_2140CE95 X-CRM114-Status: GOOD ( 10.42 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alexandre.belloni@bootlin.com, alexandre.torgue@st.com, ludovic.desroches@microchip.com, ak@it-klinger.de, mcoquelin.stm32@gmail.com, eugen.hristev@microchip.com, Alexandru Ardelean , jic23@kernel.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org This change starts to hide some internal fields of the IIO device into the framework. Because the iio_priv_to_dev() will be hidden some pre-work is done to try to remove it from some interrupt handlers. iio_priv_to_dev() will become a function call and won't be expandable into place (as-is now as an inline function). Changelog v1 -> v2: - add pre-work patches that remove some calls to iio_priv_to_dev() from interrupt handlers - renamed iio_dev_priv -> iio_dev_opaque - moved the iio_dev_opaque to 'include/linux/iio/iio-opaque.h' this way it should be usable for debugging - the iio_priv() call, is still an inline function that returns an 'indio_dev->priv' reference; this field is added to 'struct iio_dev'; the reference is computed in iio_device_alloc() and should be cacheline aligned - the to_iio_dev_opaque() container is in the 'include/linux/iio/iio-opaque.h' header; it's still implemented with some pointer arithmetic; one idea was to do it via an 'indio_dev->opaque' field; that may still be an optionif there are some opinions in that direction Alexandru Ardelean (8): iio: proximity: ping: pass reference to IIO device via call-stack iio: at91-sama5d2_adc: pass ref to IIO device via param for int function iio: at91_adc: pass ref to IIO device via param for int function iio: stm32-dfsdm-adc: pass iio device as arg for the interrupt handler iio: stm32-adc: pass iio device as arg for the interrupt handler iio: core: wrap IIO device into an iio_dev_opaque object iio: core: simplify alloc alignment code iio: core: move debugfs data on the private iio dev info drivers/iio/adc/at91-sama5d2_adc.c | 7 ++- drivers/iio/adc/at91_adc.c | 5 +- drivers/iio/adc/stm32-adc.c | 10 ++-- drivers/iio/adc/stm32-dfsdm-adc.c | 6 +-- drivers/iio/industrialio-core.c | 75 ++++++++++++++++++++---------- drivers/iio/proximity/ping.c | 5 +- include/linux/iio/iio-opaque.h | 27 +++++++++++ include/linux/iio/iio.h | 24 +++------- 8 files changed, 99 insertions(+), 60 deletions(-) create mode 100644 include/linux/iio/iio-opaque.h -- 2.17.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel