Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp4908746pxb; Mon, 15 Feb 2021 04:41:43 -0800 (PST) X-Google-Smtp-Source: ABdhPJxt5s6nXjlEGp3KZhfR7I7t0NqPH8fJyvbmaEeBBpVWEkkpJ4fphU4q7GgBvUUJenwjOfT8 X-Received: by 2002:a17:906:1613:: with SMTP id m19mr15640845ejd.344.1613392902871; Mon, 15 Feb 2021 04:41:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613392902; cv=none; d=google.com; s=arc-20160816; b=TRd3R6YsP21X4c+wQ87HjTouwTXoTKI6A0CGvEg0BYiMYvyG+6SQ7vBAKwY4CAKHrM ZjIFoPeqib6jZqoVZRyGOJoWnzwGZQUeqshIO/4SoNReTz0sTXBQbQ94y3+I9RaGRAZI /RszY6sn0qSDB4fmWTL9R6lMJKHGHpWMTF+aOwjIUDQ4bluiosIEvFcF5QmeNmwYzUet //AYftzFywUm/Gi3uDji0MYwCTD1EJhbiWt8bMkUUDemLBmkccblfbdKiVRk9tBUZYzN lQyefz738UvmVlRKdyI5gvCWzBpDQWIHCuhkkXky2KqlcFt06F420VQl+Wpc1tita09V 56XA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version; bh=YakQtSEFQoUcp92B7pBu7SXNAlj7zK9R9/BYJta3QcY=; b=KgR4sSNH2zFgewcPOr+ZD8S+6n1SD2MbwZE5aROdZvbvnKqbHFYg4PMAMRoxHCPyb4 iEjN17A2wQKJQS/DHS+LcxJqGN8DR/CL92aSpulru433DZJocOAcIDhxVTGEshwup8hp rNQr/wzzpfr3RyfnCeLQveFyxsfgSy13UWgv8B2YbrGlDt1it67+5bYXSHHe19OKOIBc SNXqEQRZF/hvwN8qrObbkedGCksn1n6kp9L+HCMu2/9UX3rS1Cz8x7Dylr1Tvxo9+B18 4ni17J7cKxvXEHPvdE2EuYiNFZ7lItwHd2c/aRDwiHxwERNvJH5gYIOtySCnRospPTmf BxWQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h18si13963107eds.493.2021.02.15.04.41.20; Mon, 15 Feb 2021 04:41:42 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229666AbhBOMjX (ORCPT + 99 others); Mon, 15 Feb 2021 07:39:23 -0500 Received: from mail-oo1-f41.google.com ([209.85.161.41]:36915 "EHLO mail-oo1-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230101AbhBOMjK (ORCPT ); Mon, 15 Feb 2021 07:39:10 -0500 Received: by mail-oo1-f41.google.com with SMTP id e17so1495390oow.4; Mon, 15 Feb 2021 04:38:53 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=YakQtSEFQoUcp92B7pBu7SXNAlj7zK9R9/BYJta3QcY=; b=fYzbxOmHBPssdE8OpfNAVvZ3nwkzRi9LWYn9izc/3vUMrd9JZ8p7LCkghwoYcqPAlx eokqIYxdKOagYeI6opI6H2zeaesDNM3N/VjHWTjHrKa39bouU0CN433W5wJjanxWZuG2 8AhqtSAIl7UUTFwpEdktYtl1H9myKKoCjNZWTvjYGmQfLndwRnJNtuU2I/Xs81V4eSH3 jOYhbzlmmhrU2qG+MO3UWLcIdBhBJzakASxvBFccF33L5aU82lSK78RAXxIG25toDC8T /8QL8HfQmNuItwC2J5BxOFUpHAQ0KPeWDxDHx6PvPVPttUmQHDbsvSyZiE8RlEUL3GmN ZTmQ== X-Gm-Message-State: AOAM532S1139ilrF6reLvhj065dwYkR+goL0YUZDverx1DeoRXhtUexg DVJAzcaGXNZ4hKNmQE7vJ9ETuXyo3LhVfODmohY= X-Received: by 2002:a4a:3bcb:: with SMTP id s194mr10782339oos.1.1613392708214; Mon, 15 Feb 2021 04:38:28 -0800 (PST) MIME-Version: 1.0 References: <20210205222644.2357303-1-saravanak@google.com> In-Reply-To: From: Geert Uytterhoeven Date: Mon, 15 Feb 2021 13:38:16 +0100 Message-ID: Subject: Re: [PATCH v4 0/8] Make fw_devlink=on more forgiving To: Saravana Kannan Cc: Jonathan Corbet , Greg Kroah-Hartman , "Rafael J. Wysocki" , Kevin Hilman , Ulf Hansson , Len Brown , Len Brown , Pavel Machek , Michael Turquette , Stephen Boyd , Rob Herring , Frank Rowand , Marc Zyngier , Thomas Gleixner , "open list:DOCUMENTATION" , Linux Kernel Mailing List , Linux PM list , linux-clk , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , ACPI Devel Maling List , Marek Szyprowski , Android Kernel Team , Linux-Renesas Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Saravana, On Fri, Feb 12, 2021 at 4:00 AM Saravana Kannan wrote: > On Thu, Feb 11, 2021 at 5:00 AM Geert Uytterhoeven wrote: > > - I2C on R-Car Gen3 does not seem to use DMA, according to > > /sys/kernel/debug/dmaengine/summary: > > > > -dma4chan0 | e66d8000.i2c:tx > > -dma4chan1 | e66d8000.i2c:rx > > -dma5chan0 | e6510000.i2c:tx > > I think I need more context on the problem before I can try to fix it. > I'm also very unfamiliar with that file. With fw_devlink=permissive, > I2C was using DMA? If so, the next step is to see if the I2C relative > probe order with DMA is getting changed and if so, why. More detailed log: platform e66d8000.i2c: Linked as a consumer to e6150000.clock-controller platform e66d8000.i2c: Linked as a sync state only consumer to e6055400.gpio Why is e66d8000.i2c not linked as a consumer to e6700000.dma-controller? platform e6700000.dma-controller: Linked as a consumer to e6150000.clock-controller platform e66d8000.i2c: Added to deferred list platform e6700000.dma-controller: Added to deferred list bus: 'platform': driver_probe_device: matched device e6700000.dma-controller with driver rcar-dmac bus: 'platform': really_probe: probing driver rcar-dmac with device e6700000.dma-controller platform e6700000.dma-controller: Driver rcar-dmac requests probe deferral bus: 'platform': driver_probe_device: matched device e66d8000.i2c with driver i2c-rcar bus: 'platform': really_probe: probing driver i2c-rcar with device e66d8000.i2c I2C becomes available... i2c-rcar e66d8000.i2c: request_channel failed for tx (-517) [...] but DMA is not available yet, so the driver falls back to PIO. driver: 'i2c-rcar': driver_bound: bound to device 'e66d8000.i2c' bus: 'platform': really_probe: bound device e66d8000.i2c to driver i2c-rcar platform e6700000.dma-controller: Retrying from deferred list bus: 'platform': driver_probe_device: matched device e6700000.dma-controller with driver rcar-dmac bus: 'platform': really_probe: probing driver rcar-dmac with device e6700000.dma-controller platform e6700000.dma-controller: Driver rcar-dmac requests probe deferral platform e6700000.dma-controller: Added to deferred list platform e6700000.dma-controller: Retrying from deferred list bus: 'platform': driver_probe_device: matched device e6700000.dma-controller with driver rcar-dmac bus: 'platform': really_probe: probing driver rcar-dmac with device e6700000.dma-controller driver: 'rcar-dmac': driver_bound: bound to device 'e6700000.dma-controller' bus: 'platform': really_probe: bound device e6700000.dma-controller to driver rcar-dmac DMA becomes available. Here userspace is entered. /sys/kernel/debug/dmaengine/summary shows that the I2C controllers do not have DMA channels allocated, as the kernel has performed no more I2C transfers after DMA became available. Using i2cdetect shows that DMA is used, which is good: i2c-rcar e66d8000.i2c: got DMA channel for rx With permissive devlinks, the clock controller consumers are not added to the deferred probing list, and probe order is slightly different. The I2C controllers are still probed before the DMA controllers. But DMA becomes available a bit earlier, before the probing of the last I2C slave driver. Hence /sys/kernel/debug/dmaengine/summary shows that some I2C transfers did use DMA. So the real issue is that e66d8000.i2c not linked as a consumer to e6700000.dma-controller. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds