From patchwork Tue Mar 31 18:38:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 185121 Delivered-To: patches@linaro.org Received: by 2002:a92:de47:0:0:0:0:0 with SMTP id e7csp4007178ilr; Tue, 31 Mar 2020 11:38:53 -0700 (PDT) X-Received: by 2002:ac2:5ede:: with SMTP id d30mr12140435lfq.157.1585679932827; Tue, 31 Mar 2020 11:38:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585679932; cv=none; d=google.com; s=arc-20160816; b=MdDvDTcUywZA6htMdV0DYpDdDLfhrOXfVK1TfcTbpctn11YuPI/3OQ/G5AxMO0YOcC Djf0zizEVViuqsxegLt1CY9ucsDslrBHLsEvJjd+QFpvaaVPcDMjAfDKz0FMUFxshs/A /Hh8jkBqeUQ1b3WYk1cR4Ikl+ZCQsLe/UUy4M133YRJVWQg9Q6D7E0fdltD9y6NGyqCb Y5NAwtW+PtBlQ7pVdajrZeEfdGFjw4GaEORVwlTLwvXmmLxCQ5ViiifMclAlANwXHsvq iuH7GjU9Vs6PMsRy+GU0K6WDy7dD88DnbuNx5d7+6aAm4+cfSIDbBqX1csm+RDmp4Pvs D6bg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=KW3Lbde0NrLlMFOPBVL9VFr/xqlRRv5C9s8T2uV/EC8=; b=X4iOrolso5PRPX++Eb9jumpUQ+pBGnBh5aRZRcdvSW1MnB7MAE/nOFi4/50mRPbsdH 82Tn4BBwuMtwBqmrJ5LyE/GSWdAQS3vMp3sENLoMmKbDaWgXpJDagIz5c+rZua8lK5m+ n/KTP4OgPexOnOOZJY/k5NwG0c3wpkiEVUCf/VAuFQXZX4uGT7zqHaogr8C9pqKqABfl XlXoOutQblxVZqaKHbumq80sYTAVipS+mShbbO2Ep2p/WhvDyHMo01mcxZh/wY9w0zwd jiPttAoxc8s5ROo8np1UWTCaVE0MD4ndu9qR40i7zXUvbaEn92cv9qXwhFbnuIKRewVU whoA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=YAzpmToC; spf=pass (google.com: domain of ulf.hansson@linaro.org designates 209.85.220.65 as permitted sender) smtp.mailfrom=ulf.hansson@linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id t6sor6566841lff.11.2020.03.31.11.38.52 for (Google Transport Security); Tue, 31 Mar 2020 11:38:52 -0700 (PDT) Received-SPF: pass (google.com: domain of ulf.hansson@linaro.org designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=YAzpmToC; spf=pass (google.com: domain of ulf.hansson@linaro.org designates 209.85.220.65 as permitted sender) smtp.mailfrom=ulf.hansson@linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KW3Lbde0NrLlMFOPBVL9VFr/xqlRRv5C9s8T2uV/EC8=; b=YAzpmToCHjPKwhVBcWenpASCnFKvzdesYgGqqYMRCP6llJmlm7Y0lj5BXG7cxcVRIl 1fQhsBHrIpdVSutqQJVbpCEti0sA06lsT2dwQTcMRT/nIwMMC4O94hZhauz+WI9GJO6p 12WAtAAApshg2SASKYHsA3S/db71nblcaq3R52IYHCxiGj7rIDzrt1M+tKgLtq7iTSFU aODeaHftNj89LL0xeI0W+Hei2+iJIAT2joCgO2P38SQDfWP6+Ktk5uEgbg+CJVvx4E49 ZrGqhnUVONAeEWgjWrVaZ3BhXiqrh+R/IFaUyAlqH2Zjkgh2qY9Z0AkIAL6AblS6MrhU Y3sQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=KW3Lbde0NrLlMFOPBVL9VFr/xqlRRv5C9s8T2uV/EC8=; b=HoehrEtAenIzppqJgTotgSHXLiCqHocxJS05prcJ4yzj4dZX9E+VZAMAMgTj6QeaWE 5xuJgHz6rL/AMOGtStbRjnnzAVca4Vmd1hDs3AHUWiEi2m7iA0nu0o8b4nT7ZqdvYT0V 1ZmGVPq0w7ONJJT2oYcnoREKJEBDY4rYpyX3us0RchczagdKJobSPvvUuo4ltHyv4LHU JQ5ShNBUyWguJiqZ8rWCUmbPV+aOCaKN1gxinO11OYzCj4/RBTIpHWsUoxTvtFTgAceM 8b3XtPTOTz/I8Jr1FTgMu8rSHwBMl8JIUwG5Jy8OaqCZN9N9UnLUsVIglgVbJgUi3MFm mT0w== X-Gm-Message-State: AGi0PuZFN0aU8qUT2HND41vps0Wq/7d35aPPbftzHUB735jKPeyZ/kvj UhE5X65MH0Lq5d0BMZTSy6zXZlZSm3Yj1A== X-Google-Smtp-Source: APiQypJ8E6I5iZxeoPH0TWIB8ALP7NCLvCUGTgJRpQtCJG/xvf6AdHVA3ceds7R25cl2FPBp6aBIHA== X-Received: by 2002:a05:6512:3091:: with SMTP id z17mr12711035lfd.42.1585679932325; Tue, 31 Mar 2020 11:38:52 -0700 (PDT) Return-Path: Received: from localhost.localdomain (h-158-174-22-210.NA.cust.bahnhof.se. [158.174.22.210]) by smtp.gmail.com with ESMTPSA id b28sm10331849ljp.90.2020.03.31.11.38.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Mar 2020 11:38:51 -0700 (PDT) From: Ulf Hansson To: Greg Kroah-Hartman , "Rafael J . Wysocki" , linux-kernel@vger.kernel.org Cc: Arnd Bergmann , Christoph Hellwig , Russell King , Linus Walleij , Robin Murphy , Vinod Koul , Haibo Chen , Ludovic Barre , linux-arm-kernel@lists.infradead.org, dmaengine@vger.kernel.org, Ulf Hansson , stable@vger.kernel.org Subject: [PATCH v2 2/2] amba: Initialize dma_parms for amba devices Date: Tue, 31 Mar 2020 20:38:44 +0200 Message-Id: <20200331183844.30488-3-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200331183844.30488-1-ulf.hansson@linaro.org> References: <20200331183844.30488-1-ulf.hansson@linaro.org> MIME-Version: 1.0 It's currently the amba driver's responsibility to initialize the pointer, dma_parms, for its corresponding struct device. The benefit with this approach allows us to avoid the initialization and to not waste memory for the struct device_dma_parameters, as this can be decided on a case by case basis. However, it has turned out that this approach is not very practical. Not only does it lead to open coding, but also to real errors. In principle callers of dma_set_max_seg_size() doesn't check the error code, but just assumes it succeeds. For these reasons, let's do the initialization from the common amba bus at the device registration point. This also follows the way the PCI devices are being managed, see pci_device_add(). Suggested-by: Christoph Hellwig Cc: Russell King Cc: Signed-off-by: Ulf Hansson --- Changes in v2: - Move initialization to amba_device_initialize() to be more consistent with how we manage platform devices. --- drivers/amba/bus.c | 1 + include/linux/amba/bus.h | 1 + 2 files changed, 2 insertions(+) -- 2.20.1 diff --git a/drivers/amba/bus.c b/drivers/amba/bus.c index fe1523664816..8558b629880b 100644 --- a/drivers/amba/bus.c +++ b/drivers/amba/bus.c @@ -645,6 +645,7 @@ static void amba_device_initialize(struct amba_device *dev, const char *name) dev->dev.release = amba_device_release; dev->dev.bus = &amba_bustype; dev->dev.dma_mask = &dev->dev.coherent_dma_mask; + dev->dev.dma_parms = &dev->dma_parms; dev->res.name = dev_name(&dev->dev); } diff --git a/include/linux/amba/bus.h b/include/linux/amba/bus.h index 26f0ecf401ea..0bbfd647f5c6 100644 --- a/include/linux/amba/bus.h +++ b/include/linux/amba/bus.h @@ -65,6 +65,7 @@ struct amba_device { struct device dev; struct resource res; struct clk *pclk; + struct device_dma_parameters dma_parms; unsigned int periphid; unsigned int cid; struct amba_cs_uci_id uci;