From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752436AbdLKIa0 (ORCPT ); Mon, 11 Dec 2017 03:30:26 -0500 Received: from mail-he1eur01on0108.outbound.protection.outlook.com ([104.47.0.108]:11708 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751356AbdLKI35 (ORCPT ); Mon, 11 Dec 2017 03:29:57 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peda@axentia.se; From: Peter Rosin To: linux-kernel@vger.kernel.org Cc: Peter Rosin , Jonathan Corbet , linux-doc@vger.kernel.org Subject: [PATCH 1/2] mux: core: add a brief overview of the subsystem Date: Mon, 11 Dec 2017 09:29:42 +0100 Message-Id: <20171211082943.5796-2-peda@axentia.se> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171211082943.5796-1-peda@axentia.se> References: <20171211082943.5796-1-peda@axentia.se> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [85.226.244.23] X-ClientProxiedBy: DB6PR06CA0015.eurprd06.prod.outlook.com (2603:10a6:6:1::28) To HE1PR0202MB2553.eurprd02.prod.outlook.com (2603:10a6:3:8f::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 00491f25-f4dd-43ef-162e-08d540715b07 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(5600026)(4604075)(4534020)(4602075)(4603075)(4627115)(201702281549075)(2017052603307);SRVR:HE1PR0202MB2553; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2553;3:fb191IcYVNcNJtO59eA/4A7r+0sE7L3wa3/eo6B4Tlm+tOYDtIrcHSbzWqVlsyduJBTxT6NnnhWLbyssgMSuSUb0a6vIdpc4SzV1ed4i7WJ9BjcggcmIxUdHss9QWFG0fx5Wn+a0kkWRKNIzlDYMOhkxGtz+7hGhjqLBClw/jU1nlQ8i8siY23t7cPYV/PwFzuTUbApRn8w9Cs2XadjRNwQnQWqStzHmVH6CgjYUrk4lNwKioY56uCVx5v12cZ0N;25:07P3DXnE4DdiBabPhdJoJ8QQUi4cbCISz6BRE8jKPhH4GP53F7duNSPwfoHPHHi0Mzz1bxdvaoc9lRr0xMlC078ngc9JF40QV9LVcw0C2sPJhDZD1ZGKJF0NN1zysdR48diMxngp1zMnGtPmWJeuergu4alPozGB/7OSmVpHb+h61cgAtM/cfB2wlFQJbQPpw+oE4Qj0vrd++xHYUdmwpau9sSkUI8CRwMjcxwydPlhX0cO3R//X0sH0Ixag/8RRuqDCa67FkZhZMOTD7jH+s6j40spwDKGbWt1W9HZcprr+oINzi5Ii149jzA6nHtdZ+DkMVgyZmADwTh35LqtW2Q==;31:Z1VMuXAPg3QEhdwCBCWsOTRq9ch1S519HSaiFpYv6IwL5ugeR6I1N7/vt3o47a7XAe5bJcSSjqr+Gm8KbDhOGSWjt77fRe3cwqPXMB/Hu8C5GPBsAw/Nr9CTY+oYgoBmnOki/7ERzR0ddv3aQwdZpM/3wBOn1aEkvYadUADRk8PU57O+O1T/4mgPYqcUlpewvtVBn+0eF7NzfhwQbVqEf2ucPx4k9e7g4/ur8NBBIcw= X-MS-TrafficTypeDiagnostic: HE1PR0202MB2553: X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(2401047)(8121501046)(5005006)(10201501046)(3231022)(3002001)(93006095)(93001095)(6041248)(20161123564025)(20161123560025)(2016111802025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123558100)(6072148)(6043046)(201708071742011);SRVR:HE1PR0202MB2553;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:HE1PR0202MB2553; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2553;4:Z1XvPvCwn6PuxPBvS5A3mr6Zi4vzruW2/de+QN32QFbl2CPFSfBj5dVICb4fRh+wZ5TGyxUn1ONmDOehmQenUZZExM8pPd5f5jARJhaJNpb8vkA1ekRwBU+6zD2BsKOibCn35h73rIN1VwMEfrU95vkO3HJJbLbr9UkCqb+scic0ciAi43pfNBf3F5IaomX+6bromEu2p/OO/bpNjAzruB787l7lgyJ23ivem4wFSnDAy9IP06VUgbCgIiE69MnMnolGBCAgZafHkGbFbzIPHw== X-Forefront-PRVS: 0518EEFB48 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(346002)(376002)(366004)(39830400002)(199004)(189003)(6486002)(8676002)(86362001)(2950100002)(5660300001)(478600001)(2361001)(305945005)(1076002)(6506006)(106356001)(4326008)(33646002)(6666003)(7736002)(6916009)(6116002)(3846002)(6512007)(2906002)(25786009)(2351001)(36756003)(81166006)(81156014)(16526018)(47776003)(52116002)(97736004)(8936002)(105586002)(66066001)(51416003)(16586007)(54906003)(74482002)(316002)(68736007)(53936002)(50466002)(76176011)(50226002)(48376002)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0202MB2553;H:orc.pedanet;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR0202MB2553;23:Ds8EuZSsO1dKnlOtu58e4ZpCiFcVXXfD5Qj8qg3?= =?us-ascii?Q?szInUVPLiQApivvyHVlPdPih5SoFDxXaZwicJtGCkitG8iMfTSXZ+k3LQeBE?= =?us-ascii?Q?8/j5S8s+8tsaW/ulV67wHwtkx18lBy9O7c9HwEKE+yYSa7EMVk2yFPJbHSqY?= =?us-ascii?Q?EXWtXUpfscMDQryVsbrw8WcyzK+/j6Av8SEloDblNMNsO3Dk7t1S/dtVO6x+?= =?us-ascii?Q?AhY0wQC0gdbUewf7jwOZFJa9xMVnEVLwfHHc7dujaSN2r2Xa7nI4YRkbliVs?= =?us-ascii?Q?7wd33YBsu1DFT9HociMMjJ+52T0NPi5G6ek5xpZzf75oyrLwHLaCytDuwXW8?= =?us-ascii?Q?/XjvQvrpK5giSPKpFybclUIseSvw/XKF+IzNrAfXLyC/kN2hxmQT3JESTO1F?= =?us-ascii?Q?mvykF1ydE2f4tIytGyw6qFQFwg3Xufp2BlN2VImc72gUoScZtLCxjAuZfsoM?= =?us-ascii?Q?pZh2mUD3uTqMUxFNPp+mIJP0KCvLjYHJ7lxqITBCaIuXl2VUswMJ+jWfi07b?= =?us-ascii?Q?ofUrySB3ISs4aCOa0F28GyUJkdl2SZzqH4l7Fu5LLRibJ1HGScnN8MywoVyA?= =?us-ascii?Q?uryg/54BNocc7HrgTbNX1Yy3rkkyVFuo0jAfH5ZXzH1JrpKExFftsa6C+2DS?= =?us-ascii?Q?PGJt8X7q16qr0k4cp0eyFP7CS+ZD86z8q4HPf+DE9xSw5l03JevCRrKEd3hT?= =?us-ascii?Q?WGCruFw84pkWhWfZXlUpydsOFxb+wLlOmGasYe5ZRkXEMdDgZvnMvPP39tpR?= =?us-ascii?Q?yPChpPsYAxn8inzG/nLLi+WoGtQpaHMJKCU2VD/Ok/Zb/Zb3ZnMZE6JMwOdZ?= =?us-ascii?Q?5X7vp67hqHPmfvO0X+gLjWiAwLePRCPIA/t+kEYF/Vm+r6FKYnn4Hte3pq+8?= =?us-ascii?Q?KEvreEQEgWOYKrz53aMiNEHjzHzC83Q04sWb+sznBfXY85bIl6giCx88u6nq?= =?us-ascii?Q?MvU2rASIchy4DGIWP8BOoB30p+05/27gvusAKBrVu6U30MMgo2yYqmKoZRMs?= =?us-ascii?Q?4Bhdq5lHzUh/z5q9e90MQlqKZ+X3aSV+ETSRysnDqgfdsFVZPav5ziC4L8Kr?= =?us-ascii?Q?xdM1lfIwnVTIB1cFdQTAlYOjKgxUb73w3wOOWrUn2KA4n3pw10ymvyIUI/I4?= =?us-ascii?Q?nBW18yGh56qUXPBnh95h7wgvk7/TLoKWCa+6MUqwN3xu9f3lDY4xMig=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2553;6:Gk+oCGAWnmyXfrpM8xUhPwlN0WIOXcn0m5g9c8mFvo5gb7lLtBP55iCGe6Gznsov+BgFnCXDM6541DF2On4VgE679nLo1FI6aYrfeA7gRBiALC3qYY8ru30s84oC5c+wiiN9Brvo+xTDwy35Ai+GCCsUdHTENgpuhdeTCDgadvJesbVSAXUbtIfslp7kEZAuK25jK2feGIyy9hy9q87v9n9fD7giGf7qDoStf2+A4mwEGP7qJdwMTledMjl8uoGYorGiUutduN+GjaHDwyR/zO0AJ3CJUL3cNJnH6VqtRlwg4adrqtJ9YBAAaH0x+I/SJnzDvyJOMuKnds1WGaYFYqintWjcZaeLif5p0qCfWZg=;5:MfLIXfZlcFgGzkxq5u0uDZQpDSZVRaSYfy0g/jUV6vm42av6Vmh5S314+qg8e/qLaZ89ru9XRNVjqa79/0CpPDY/lsz60gCnmWQhti8ilHgwjdwm2B7SRMUccqnt89P/c3EtLmRyEc6jp/4d+L/ehPja4MZ/4UEPyh3N/2WJ08c=;24:QwiQa1TXsMxoEBa0RQqVCqayGKQQ0PH0VJ0rImPAVMyQK/usc/gHEx8fnzUo16SJrRMpekPqJU3o7O3HVBoITJKFSPvOXJ/XkYHR69P2LGI=;7:MMdOXEHupsz/VJ1A11tFQdIhkSu/Xkt5RUC/Y6hMS+BCl1OEcIwP0E/0h2oD494eApdflkaDGlSh45HyPAbaAOC0R2sAKmirmzfXaA/wc1b4o6h2Cis89iYdXdi3KS+Fgmzf3iKAbXpUmw2kdEwziapv80WYPKG4gsi9dnza0sJT7k+/h4PKzvSF+SQ1DUUA7lJU05+LhkCk6r2X0HEHPlNm5BannadMvqUTl9SX1kWoDf8CtYJriWEoQQQuyoUx SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2017 08:29:53.9841 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 00491f25-f4dd-43ef-162e-08d540715b07 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4ee68585-03e1-4785-942a-df9c1871a234 X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0202MB2553 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Preparation for adding the mux subsystem to the driver-api documenation. Signed-off-by: Peter Rosin --- drivers/mux/core.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/drivers/mux/core.c b/drivers/mux/core.c index d1271c1ee23c..ccb5479f8a39 100644 --- a/drivers/mux/core.c +++ b/drivers/mux/core.c @@ -7,6 +7,43 @@ * Author: Peter Rosin */ +/** + * DOC: overview + * + * The multiplexer subsystem uses the following naming: + * + * - Multiplexer controller: the piece of hardware that changes the + * state of a hardware multiplexer (or indeed, several parallel + * multiplexers). + * + * - Multiplexer chip: a collection of multiplexer controllers, in a chip. + * + * - Multiplexer driver: the device driver that interacts with and handles the + * above hardware. The driver has structures representing a mux chip and mux + * controllers. + * + * - Multiplexer consumer: the driver that needs to manipulate the hardware + * multiplexer. + * + * The mux subsystem provides a framework for multiplexer drivers that can + * be used by other consumer drivers. It has two primary purposes. + * + * First, when a consumer driver can be used with one of several multiplexers, + * depending on hardware configuration, the actual multiplexer is abstracted + * away in the mux drivers. The multiplexer consumer driver can be neater + * this way. + * + * Second, when two consumers -- possibly from different subsystems -- compete + * for the same mux controller, i.e. when one mux controller muxes more than + * one signal, the mux framework provides locking. + * + * If the mux driver is so special that it will only ever have a single + * consumer, and that consumer can really only work with that one mux driver, + * the mux framework is not really providing much benefit. It might be a better + * idea to simply manipulate the mux hardware directly from the consumer + * driver. + */ + #define pr_fmt(fmt) "mux-core: " fmt #include -- 2.11.0