From mboxrd@z Thu Jan 1 00:00:00 1970 From: bbrezillon@kernel.org (Boris Brezillon) Date: Tue, 11 Dec 2018 13:21:03 +0100 Subject: i3c_master_add_i3c_dev_locked() accept PID, BCR, DCR In-Reply-To: References: <20181210204330.76e6b615@bbrezillon> <20181210211411.7f64f5cb@bbrezillon> <3f21dc46-97e1-1a64-a91b-07e623d82184@synopsys.com> <20181211125832.7a7b224f@bbrezillon> Message-ID: <20181211132103.34ae80c8@bbrezillon> To: linux-i3c@lists.infradead.org List-Id: linux-i3c.lists.infradead.org On Tue, 11 Dec 2018 12:07:16 +0000 vitor wrote: > On 11/12/18 11:58, Boris Brezillon wrote: > >> I just want to skip GETBCR/DCR/PID operations since those data are > >> already available in the controller. There's advantages but they > >> only have relevance depending of use case. > > Can you detail those use cases please? > > If the bus has a lot of devices and you want to decrease the > initialization time this could be the first step. > Did you quantify the boot-time/perf improvement? The clk should be running at 12.5MHz, GETPID takes 9bytes and GETBCR/DCR take 4 bytes each. Let's add one byte per command to account for the start/stop bits. That makes a total of 20bytes per device, with a maximum of 11 devices per bus: max_time_to_query_pid_bcr_dcr_per_bus = 20 * 10 / 12500000 = 17.6 usec. Let's assume we have a huge overhead caused by the OS (and all the scheduling involved), and make it 100usec. So we're talking about saving a maximum of ~100 usec per bus. Sorry, but I think you'll have plenty of other things to optimize before this becomes a boot-time issue.