From patchwork Sun Jan 12 19:05:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221833 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=ctnCKRC/; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmS12WZ2z9s4Y for ; Mon, 13 Jan 2020 06:07:09 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 7BB9C803D4; Sun, 12 Jan 2020 20:06:57 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="ctnCKRC/"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 10C9F80246; Sun, 12 Jan 2020 20:06:56 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,T_FILL_THIS_FORM_SHORT, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd43.google.com (mail-io1-xd43.google.com [IPv6:2607:f8b0:4864:20::d43]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 23AEC801A6 for ; Sun, 12 Jan 2020 20:06:53 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd43.google.com with SMTP id z8so7299524ioh.0 for ; Sun, 12 Jan 2020 11:06:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=7OhM9KQvJts73A4hWgujwNKT6vldgPJz1QI3XYH+qp4=; b=ctnCKRC/z7DvpNHzsnhRCYYu5uUP+zGyf2FMvcnF7UW5LN2JBp0fuK8H/cEGZh1NDx McY3BhRAFMN1RV4iPSHxHvyJST6cnhT+IRe5zObYDIh+FueloZTBNmyOKaYTXB7ZmSw+ J4v8/YB9qIWMYe5j66Pu/hbDYVbV7m/gtk3ac= 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=7OhM9KQvJts73A4hWgujwNKT6vldgPJz1QI3XYH+qp4=; b=qV4uTTOh6d2fv3u1tQryLCTq8TnkfRCAR9MAMED+FEVxTYiUNVgT3LFf89WIZeJvlJ ST1F0Q9115KB5tU+p0aykCIy7sJF8Aec9qQQDhY8fjifq7SX6vj+Hv24WN9Atqm8OSK0 iy25p5qJsBvfVpwoAJS1L7FRWhrOTC0BWP6RNOht8rwB1uYyHdcDHAmaC1tqdqqMsvnA m3Ji07nLXhgUouC9dvVp1wB3R6F0ebxaAZpTKtP66bwCytgCukam3eLVx0bJ5RsGaByZ Bol7DfEDQs59n/eEljeOekyYqnCHQSxxkTgtrM7qVtqjxJfwe6ByBtiV5h9d0DPiRnDe qUCg== X-Gm-Message-State: APjAAAUWiQmkX+qxB43q1ILOumxZlyNDwF1kgc+re44MUMq8Wr+nVioj sGQUfo5X8OE8LTqp9rZiO746MWLyFPc= X-Google-Smtp-Source: APXvYqwVZOAdyUQIgF1f9sNNQKYGqSna4zCEgBRQHB9I7A2Z89ZmfbbxPkPjjWQJJfUSY9tBQ2VVaA== X-Received: by 2002:a6b:c9c6:: with SMTP id z189mr9843890iof.285.1578856011900; Sun, 12 Jan 2020 11:06:51 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.06.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:06:51 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 01/33] sandbox: Sort the help options Date: Sun, 12 Jan 2020 12:05:52 -0700 Message-Id: <20200112120216.1.Ia614e51f23d2db29603dc516a3413c4855c93eb7@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean At present options are presented in essentially random order. It is easier to browse them if they are sorted into alphabetical order. Adjust the help function to handle this. Signed-off-by: Simon Glass --- arch/sandbox/cpu/start.c | 46 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/arch/sandbox/cpu/start.c b/arch/sandbox/cpu/start.c index fff9cbdd79..d3ce61856e 100644 --- a/arch/sandbox/cpu/start.c +++ b/arch/sandbox/cpu/start.c @@ -9,13 +9,45 @@ #include #include #include +#include #include #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; +/* Compare two options so that they can be sorted into alphabetical order */ +static int h_compare_opt(const void *p1, const void *p2) +{ + const struct sandbox_cmdline_option *opt1 = p1; + const struct sandbox_cmdline_option *opt2 = p2; + const char *str1, *str2; + char flag1[2], flag2[2]; + + opt1 = *(struct sandbox_cmdline_option **)p1; + opt2 = *(struct sandbox_cmdline_option **)p2; + flag1[1] = '\0'; + flag2[1] = '\0'; + + *flag1 = opt1->flag_short < 0x100 ? opt1->flag_short : '\0'; + *flag2 = opt2->flag_short < 0x100 ? opt2->flag_short : '\0'; + + str1 = *flag1 ? flag1 : opt1->flag; + str2 = *flag2 ? flag2 : opt2->flag; + + /* + * Force lower-case flags to come before upper-case ones. We only + * support upper-case for short flags. + */ + if (isalpha(*str1) && isalpha(*str2) && + tolower(*str1) == tolower(*str2)) + return isupper(*str1) - isupper(*str2); + + return strcasecmp(str1, str2); +} + int sandbox_early_getopt_check(void) { struct sandbox_state *state = state_get_current(); @@ -23,6 +55,8 @@ int sandbox_early_getopt_check(void) size_t num_options = __u_boot_sandbox_option_count(); size_t i; int max_arg_len, max_noarg_len; + struct sandbox_cmdline_option **sorted_opt; + int size; /* parse_err will be a string of the faulting option */ if (!state->parse_err) @@ -45,8 +79,18 @@ int sandbox_early_getopt_check(void) max_arg_len = max((int)strlen(sb_opt[i]->flag), max_arg_len); max_noarg_len = max_arg_len + 7; + /* Sort the options */ + size = sizeof(*sorted_opt) * num_options; + sorted_opt = malloc(size); + if (!sorted_opt) { + printf("No memory to sort options\n"); + os_exit(1); + } + memcpy(sorted_opt, sb_opt, size); + qsort(sorted_opt, num_options, sizeof(*sorted_opt), h_compare_opt); + for (i = 0; i < num_options; ++i) { - struct sandbox_cmdline_option *opt = sb_opt[i]; + struct sandbox_cmdline_option *opt = sorted_opt[i]; /* first output the short flag if it has one */ if (opt->flag_short >= 0x100) From patchwork Sun Jan 12 19:05:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221834 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=KBV+/eTQ; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmS33bFMz9sPW for ; Mon, 13 Jan 2020 06:07:15 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 19226801F1; Sun, 12 Jan 2020 20:07:00 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="KBV+/eTQ"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 98F97801F1; Sun, 12 Jan 2020 20:06:57 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd43.google.com (mail-io1-xd43.google.com [IPv6:2607:f8b0:4864:20::d43]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id EF0D4801F1 for ; Sun, 12 Jan 2020 20:06:54 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd43.google.com with SMTP id k24so7266383ioc.4 for ; Sun, 12 Jan 2020 11:06:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Ii63zqEpOo+8idlkBLjiLki4L11nFN3SsvQd8beL5y0=; b=KBV+/eTQ4F8CpETTrQB61I6PGrJkcrZgm8jRn27UJZnGsr9uL7iHoi2gttgOIMz4qJ oSCWEk4FOQQhF61lk9LOrEPv4qsJqYmqWy2WAlgBGx14ccxFxhcLkC0wtalI376pLhxK mkZqhPg1hKxJKKG+m5MGTb/H14i2HxCVE1o3k= 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=Ii63zqEpOo+8idlkBLjiLki4L11nFN3SsvQd8beL5y0=; b=EADPV1CoDsrBrT4BJCr5A+5CBspeKWZ8rZgl/y+0urBiVTS2RXkg2pZs/5cKmiEoJP 0qf/htYed4Frgh004PEzg/YN7RHjphjyhU1w4ffRqGw1cqqW6yb3u5ShDNnuGJfzLbkQ aoeizcDA7RWcawh5LJO7HQ9UnCpD72cwrUR0SzXwCMQNu+HrcEUjRR8SWwXM58D6IFAJ I+a5eYC27FeuXLEmYGxtanEMWdaJB2FArukqkvHeQgg4lfHhdv6RpPp1eyQLO17swaoE 3Nv/RvyJFDbDxXSn82IowxbU+XHn3QsxuOgJfldXr4RMjdWvueNtkzMUgq2HWn1b1lVZ OIBA== X-Gm-Message-State: APjAAAU/q3lbz7YMWeriEbI5iVq9UHtnn1wG6+WVXSfJ5MkWHLRu+Qpa nGz6wAF8qLtCi4tLlMd3jfNFmpJWnvQ= X-Google-Smtp-Source: APXvYqyw8Gmiz7zFKEahqGd6UlQgQ2eNnYdOCaPGBuCawt75G13l5GpD7YsWXQJdGxWvMeHqGVF32g== X-Received: by 2002:a6b:c986:: with SMTP id z128mr10258925iof.8.1578856013831; Sun, 12 Jan 2020 11:06:53 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.06.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:06:53 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 02/33] video: Support truetype fonts on a 32-bit display Date: Sun, 12 Jan 2020 12:05:53 -0700 Message-Id: <20200112120216.2.I25364ae19a2d5679c51aa1cdeebea29d805fbe68@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean At present only a 16bpp display is supported for Truetype fonts. Add support for 32bpp also since this is quite common. Signed-off-by: Simon Glass Reviewed-by: Anatolij Gustschin --- drivers/video/console_truetype.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/drivers/video/console_truetype.c b/drivers/video/console_truetype.c index 30086600fb..0a725c5c15 100644 --- a/drivers/video/console_truetype.c +++ b/drivers/video/console_truetype.c @@ -286,6 +286,27 @@ static int console_truetype_putc_xy(struct udevice *dev, uint x, uint y, } break; } +#endif +#ifdef CONFIG_VIDEO_BPP32 + case VIDEO_BPP32: { + u32 *dst = (u32 *)line + xoff; + int i; + + for (i = 0; i < width; i++) { + int val = *bits; + int out; + + if (vid_priv->colour_bg) + val = 255 - val; + out = val | val << 8 | val << 16; + if (vid_priv->colour_fg) + *dst++ |= out; + else + *dst++ &= out; + bits++; + } + break; + } #endif default: free(data); From patchwork Sun Jan 12 19:05:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221835 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=Ke+npwj+; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmSJ0b0cz9s4Y for ; Mon, 13 Jan 2020 06:07:28 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id EADB38172B; Sun, 12 Jan 2020 20:07:06 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="Ke+npwj+"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id C327180506; Sun, 12 Jan 2020 20:06:59 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd43.google.com (mail-io1-xd43.google.com [IPv6:2607:f8b0:4864:20::d43]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id BE89C801A6 for ; Sun, 12 Jan 2020 20:06:56 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd43.google.com with SMTP id c16so7261778ioh.6 for ; Sun, 12 Jan 2020 11:06:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=lFdkPp3hPMYa8xAQR8E9WFSRAgxIxkowc3NiJKv5YNU=; b=Ke+npwj+w2xflN3YSnd+egfc2CnE0dVMGqCvO8Ph4aXz2TFenwYveX1k/Xp/pVLadN J1alj7kmcZ8p6eRrpCWok44IIT1t3RbAx1hsx8y0wEB0kJGr6DQxgITWsN9/fxjpW3bj FabaHPhCPPQzW4+q2Vz8B09g8thV9a2M87754= 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=lFdkPp3hPMYa8xAQR8E9WFSRAgxIxkowc3NiJKv5YNU=; b=GONBpNWragfvk2xIcu6LhllosZaeADEiYAIgY9+gYwHOY/0F8sIoLaNc6KtdJaJNPv r9VuJjylrbTpPup30STHPnYTzfn4PdfQvqk9GRlARrm4AYedmDBjNhzqClV99M0f2p/m KBktf2PRKILpLyUJKiZYV5pzhHA1nUEXALIEbmbbHyk5K9OqG8jPkOaNP8q9LLjv5h0g JYDL3u6J8dCLuIhlv5/cb5mwDimbrezd5Ht3BNvd0QFv2cnwIby8aDOIOPC9ddseAVzo Rw1rvDqNm7L/3/asTAjb28V0VuY+Me1p7A//eFAStMLDQu8Z8B/8crKvn7WywosiytiU uPhQ== X-Gm-Message-State: APjAAAU88XubOT8jJnFLmpvelowdBhy+2foZGq4ozZBQQpTaxCaSyzoY 5/S7FQqxklgFodOrRqbXkYFFEN3uwHQ= X-Google-Smtp-Source: APXvYqwTYl0N0o4Z4Ue47OLqSKo1o6d0bdPJ8yZQPGV/X6+uc9iZ1tDBWJGXYqIrlnlTd8vm86iHyg== X-Received: by 2002:a5e:d616:: with SMTP id w22mr9746869iom.57.1578856015503; Sun, 12 Jan 2020 11:06:55 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.06.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:06:55 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 03/33] video: sandbox: Enable all colour depths Date: Sun, 12 Jan 2020 12:05:54 -0700 Message-Id: <20200112120216.3.I61379996502d779697c5d0dd28e02415b810118a@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean For sandbox we want to have the maximum possible build coverage, so enable all colour depths for video. Signed-off-by: Simon Glass Reviewed-by: Anatolij Gustschin --- configs/sandbox64_defconfig | 1 - configs/sandbox_defconfig | 1 - configs/sandbox_flattree_defconfig | 1 - configs/sandbox_spl_defconfig | 1 - drivers/video/Kconfig | 4 +++- 5 files changed, 3 insertions(+), 5 deletions(-) diff --git a/configs/sandbox64_defconfig b/configs/sandbox64_defconfig index 64d1d3102f..b5a38070a6 100644 --- a/configs/sandbox64_defconfig +++ b/configs/sandbox64_defconfig @@ -189,7 +189,6 @@ CONFIG_USB_EMUL=y CONFIG_USB_KEYBOARD=y CONFIG_USB_KEYBOARD_FN_KEYS=y CONFIG_DM_VIDEO=y -CONFIG_VIDEO_BPP16=y CONFIG_CONSOLE_ROTATION=y CONFIG_CONSOLE_TRUETYPE=y CONFIG_CONSOLE_TRUETYPE_CANTORAONE=y diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig index d8d8645425..8532de9d79 100644 --- a/configs/sandbox_defconfig +++ b/configs/sandbox_defconfig @@ -210,7 +210,6 @@ CONFIG_USB_EMUL=y CONFIG_USB_KEYBOARD=y CONFIG_USB_KEYBOARD_FN_KEYS=y CONFIG_DM_VIDEO=y -CONFIG_VIDEO_BPP16=y CONFIG_CONSOLE_ROTATION=y CONFIG_CONSOLE_TRUETYPE=y CONFIG_CONSOLE_TRUETYPE_CANTORAONE=y diff --git a/configs/sandbox_flattree_defconfig b/configs/sandbox_flattree_defconfig index 2a9161c53b..40a4b2a761 100644 --- a/configs/sandbox_flattree_defconfig +++ b/configs/sandbox_flattree_defconfig @@ -169,7 +169,6 @@ CONFIG_USB_EMUL=y CONFIG_USB_KEYBOARD=y CONFIG_USB_KEYBOARD_FN_KEYS=y CONFIG_DM_VIDEO=y -CONFIG_VIDEO_BPP16=y CONFIG_CONSOLE_ROTATION=y CONFIG_CONSOLE_TRUETYPE=y CONFIG_CONSOLE_TRUETYPE_CANTORAONE=y diff --git a/configs/sandbox_spl_defconfig b/configs/sandbox_spl_defconfig index 138bb9896f..77c56747fb 100644 --- a/configs/sandbox_spl_defconfig +++ b/configs/sandbox_spl_defconfig @@ -188,7 +188,6 @@ CONFIG_USB_EMUL=y CONFIG_USB_KEYBOARD=y CONFIG_USB_KEYBOARD_FN_KEYS=y CONFIG_DM_VIDEO=y -CONFIG_VIDEO_BPP16=y CONFIG_CONSOLE_ROTATION=y CONFIG_CONSOLE_TRUETYPE=y CONFIG_CONSOLE_TRUETYPE_CANTORAONE=y diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 50ab3650ee..d7e62bea9c 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -38,6 +38,7 @@ config BACKLIGHT_GPIO config VIDEO_BPP8 bool "Support 8-bit-per-pixel displays" depends on DM_VIDEO + default y if SANDBOX || X86 help Support drawing text and bitmaps onto a 8-bit-per-pixel display. Enabling this will include code to support this display. Without @@ -47,6 +48,7 @@ config VIDEO_BPP8 config VIDEO_BPP16 bool "Support 16-bit-per-pixel displays" depends on DM_VIDEO + default y if SANDBOX || X86 help Support drawing text and bitmaps onto a 16-bit-per-pixel display. Enabling this will include code to support this display. Without @@ -56,7 +58,7 @@ config VIDEO_BPP16 config VIDEO_BPP32 bool "Support 32-bit-per-pixel displays" depends on DM_VIDEO - default y if X86 + default y if SANDBOX || X86 help Support drawing text and bitmaps onto a 32-bit-per-pixel display. Enabling this will include code to support this display. Without From patchwork Sun Jan 12 19:05:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221836 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=WgnjPy0s; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmSS2gbcz9s4Y for ; Mon, 13 Jan 2020 06:07:36 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id EA562816EB; Sun, 12 Jan 2020 20:07:08 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="WgnjPy0s"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 5399481718; Sun, 12 Jan 2020 20:07:03 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd41.google.com (mail-io1-xd41.google.com [IPv6:2607:f8b0:4864:20::d41]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 39B2E804C1 for ; Sun, 12 Jan 2020 20:06:59 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd41.google.com with SMTP id c16so7261828ioh.6 for ; Sun, 12 Jan 2020 11:06:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OliDLNCfwyNfVeIHxO6RiVl1FnkrEQBSGKMidGcjc04=; b=WgnjPy0s6xrhS29byRjt9A9tRtYgJ1ar6x1PZmZQd93x5Cugl91mlOWbAU2H5C7KPk fQUzK8+BP4HnO87IBQLlLh8w9svJmHpjlMts7CNiUODs1s8FziiWsWeks3xz6zvxnVyM Q/7gp4mARvDzS1s1+UTsK/I0IwGDjdHuDtdao= 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=OliDLNCfwyNfVeIHxO6RiVl1FnkrEQBSGKMidGcjc04=; b=smwPx74NAHiEbeAo5U45O5SqsDoACMhEK4NNW2TIsgTW3NEQtA8WozoOEMCXZtmx1v XebADMkzPJOES6M1ip+nYjls1SrJvQQpLtO+VhnLqkAxZU6r7uEu4jvFjvxMrHw7t9a9 Vo3degCMCO/QOiAlfp8xUU6ah1HHUCkPErsVuuJna/3C1OKSKytvG0NdNwRf51ip5ODt 7u7Acyv2XfKPKCuz9otJbrklMIIobTlgw2AswG5oWScdjX+loTFleVmaib7VxiwVWiAN sKOJ6JywVwTl8q4bftQcC6EFOac2uNLKqJ77R1/TI0Y0VDaG1vntiJ5a8cdAWYPKExXt DWZQ== X-Gm-Message-State: APjAAAUKcD5M/AZVbn/jSa/Dhxio5bjTtiLBNQpKxEDXUqT3ml5Maoda eH2WYkX58WoR2+uwM6HP3nEwpWRqQa0= X-Google-Smtp-Source: APXvYqx8zFX38kMZSBCO+byxmGCAAvZlFlj0F9niPkuAltjQkhIMAkIpSKJRG+1nycDb2A1kVvBR+A== X-Received: by 2002:a5d:9f4f:: with SMTP id u15mr9833476iot.129.1578856017387; Sun, 12 Jan 2020 11:06:57 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.06.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:06:57 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 04/33] mailbox: Rename free() to rfree() Date: Sun, 12 Jan 2020 12:05:55 -0700 Message-Id: <20200112120216.4.I48608cdc95aee9e6e906d0e8d3b4169eeb104558@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Michal Simek , uboot-stm32@st-md-mailman.stormreply.com, Ibai Erkiaga Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean This function name conflicts with our desire to #define free() to something else on sandbox. Since it deals with resources, rename it to rfree(). Signed-off-by: Simon Glass --- drivers/mailbox/k3-sec-proxy.c | 2 +- drivers/mailbox/mailbox-uclass.c | 4 ++-- drivers/mailbox/sandbox-mbox.c | 2 +- drivers/mailbox/stm32-ipcc.c | 2 +- drivers/mailbox/tegra-hsp.c | 2 +- include/mailbox-uclass.h | 4 ++-- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/mailbox/k3-sec-proxy.c b/drivers/mailbox/k3-sec-proxy.c index b07b56cf97..1194c6f029 100644 --- a/drivers/mailbox/k3-sec-proxy.c +++ b/drivers/mailbox/k3-sec-proxy.c @@ -291,7 +291,7 @@ static int k3_sec_proxy_recv(struct mbox_chan *chan, void *data) struct mbox_ops k3_sec_proxy_mbox_ops = { .of_xlate = k3_sec_proxy_of_xlate, .request = k3_sec_proxy_request, - .free = k3_sec_proxy_free, + .rfree = k3_sec_proxy_free, .send = k3_sec_proxy_send, .recv = k3_sec_proxy_recv, }; diff --git a/drivers/mailbox/mailbox-uclass.c b/drivers/mailbox/mailbox-uclass.c index 5968c9b7eb..a6d2d1f5b8 100644 --- a/drivers/mailbox/mailbox-uclass.c +++ b/drivers/mailbox/mailbox-uclass.c @@ -105,8 +105,8 @@ int mbox_free(struct mbox_chan *chan) debug("%s(chan=%p)\n", __func__, chan); - if (ops->free) - return ops->free(chan); + if (ops->rfree) + return ops->rfree(chan); return 0; } diff --git a/drivers/mailbox/sandbox-mbox.c b/drivers/mailbox/sandbox-mbox.c index bc917b3de4..442ca633a1 100644 --- a/drivers/mailbox/sandbox-mbox.c +++ b/drivers/mailbox/sandbox-mbox.c @@ -87,7 +87,7 @@ static const struct udevice_id sandbox_mbox_ids[] = { struct mbox_ops sandbox_mbox_mbox_ops = { .request = sandbox_mbox_request, - .free = sandbox_mbox_free, + .rfree = sandbox_mbox_free, .send = sandbox_mbox_send, .recv = sandbox_mbox_recv, }; diff --git a/drivers/mailbox/stm32-ipcc.c b/drivers/mailbox/stm32-ipcc.c index c3df9678a7..d4035a85f2 100644 --- a/drivers/mailbox/stm32-ipcc.c +++ b/drivers/mailbox/stm32-ipcc.c @@ -152,7 +152,7 @@ static const struct udevice_id stm32_ipcc_ids[] = { struct mbox_ops stm32_ipcc_mbox_ops = { .request = stm32_ipcc_request, - .free = stm32_ipcc_free, + .rfree = stm32_ipcc_free, .send = stm32_ipcc_send, .recv = stm32_ipcc_recv, }; diff --git a/drivers/mailbox/tegra-hsp.c b/drivers/mailbox/tegra-hsp.c index 9bee886561..c463e6a2be 100644 --- a/drivers/mailbox/tegra-hsp.c +++ b/drivers/mailbox/tegra-hsp.c @@ -175,7 +175,7 @@ static const struct udevice_id tegra_hsp_ids[] = { struct mbox_ops tegra_hsp_mbox_ops = { .of_xlate = tegra_hsp_of_xlate, .request = tegra_hsp_request, - .free = tegra_hsp_free, + .rfree = tegra_hsp_free, .send = tegra_hsp_send, .recv = tegra_hsp_recv, }; diff --git a/include/mailbox-uclass.h b/include/mailbox-uclass.h index e0618aad97..3c60c76506 100644 --- a/include/mailbox-uclass.h +++ b/include/mailbox-uclass.h @@ -49,14 +49,14 @@ struct mbox_ops { */ int (*request)(struct mbox_chan *chan); /** - * free - Free a previously requested channel. + * rfree - Free a previously requested channel. * * This is the implementation of the client mbox_free() API. * * @chan: The channel to free. * @return 0 if OK, or a negative error code. */ - int (*free)(struct mbox_chan *chan); + int (*rfree)(struct mbox_chan *chan); /** * send - Send a message over a mailbox channel * From patchwork Sun Jan 12 19:05:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221837 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=TyIwuux0; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmSg156Rz9s4Y for ; Mon, 13 Jan 2020 06:07:47 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 0FF0581717; Sun, 12 Jan 2020 20:07:12 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="TyIwuux0"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id D379E81755; Sun, 12 Jan 2020 20:07:07 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd42.google.com (mail-io1-xd42.google.com [IPv6:2607:f8b0:4864:20::d42]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id A1C8180506 for ; Sun, 12 Jan 2020 20:07:00 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd42.google.com with SMTP id z193so7292558iof.1 for ; Sun, 12 Jan 2020 11:07:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=rFSKUcoy4IMSqG7Yqvh0sJwPs2yaR8KZvcMKCpo30Zw=; b=TyIwuux0qgBHp2k5i+iNVOiRwFHKG9naK4F8M7MqG5J/zva43MWByjRYA8Po2jYciP oRQFssa+DItBbi+W/90bQJmygTNKtjQSdShuCTXlA62bxAiVHIVE34pAAYvgOAFf5VV6 G8LsjYSG+lY6cyNu9uf2hWKeIFVSNqw2npo+w= 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=rFSKUcoy4IMSqG7Yqvh0sJwPs2yaR8KZvcMKCpo30Zw=; b=E1+WIwBe435rR/9ogt+Zjv/fYHdIVkG7jWje0chGxo0Wi2GzywCjCrCrwmFd/FwZ0J hZ88XtQeV+yAKnuyIXKoDFu4w6Q7Z+GwOcDWwZAqeHTK4dW2PafwtecMZnxOPYTIhVXI s8Z9FoYHbxa7S+kt8Mqo0sQMO32nOltb1aDHJknO/g53k0JSc1ivJ4fKVcTWRBQPxjJF 8gGZEbZHBwFhCv0aLLXtCtYIroCGBWD6eJF6c9ZeBuXfeaoPMB4VLPtsjDWRmIFHAA2L GjsBG7x2IiAkiRYp/ClBO9MMDKeP845RMPz5dkH8Nipe1f7Df3EteO4wiZsRMBcyLrzC zETw== X-Gm-Message-State: APjAAAXoqqe5hH8bsITEQfFL7H95R5albsGXhlwpBUctNw3dQMcxwvda koDMMgh6va0mWqPw6Da9pHZtSU6oIv0= X-Google-Smtp-Source: APXvYqyHduVZCSSbTHIK65/5RBnY4qs7i6WotyyteknyZgs/yjgoJr6SBD8G2f8hHqgQ/W54+Yqnrw== X-Received: by 2002:a02:aa10:: with SMTP id r16mr11764703jam.48.1578856019370; Sun, 12 Jan 2020 11:06:59 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.06.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:06:59 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 05/33] power-domain: Rename free() to rfree() Date: Sun, 12 Jan 2020 12:05:56 -0700 Message-Id: <20200112120216.5.I6fda8248defd1b62c3653e578da37986cf89cc0d@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Ryder Lee , u-boot-amlogic@groups.io, GSS_MTK_Uboot_upstream Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean This function name conflicts with our desire to #define free() to something else on sandbox. Since it deals with resources, rename it to rfree(). Signed-off-by: Simon Glass Reviewed-by: Anatolij Gustschin --- drivers/power/domain/bcm6328-power-domain.c | 2 +- drivers/power/domain/imx8-power-domain-legacy.c | 2 +- drivers/power/domain/imx8-power-domain.c | 2 +- drivers/power/domain/imx8m-power-domain.c | 2 +- drivers/power/domain/meson-ee-pwrc.c | 2 +- drivers/power/domain/meson-gx-pwrc-vpu.c | 2 +- drivers/power/domain/mtk-power-domain.c | 2 +- drivers/power/domain/power-domain-uclass.c | 2 +- drivers/power/domain/sandbox-power-domain.c | 2 +- drivers/power/domain/tegra186-power-domain.c | 2 +- drivers/power/domain/ti-sci-power-domain.c | 2 +- include/power-domain-uclass.h | 4 ++-- 12 files changed, 13 insertions(+), 13 deletions(-) diff --git a/drivers/power/domain/bcm6328-power-domain.c b/drivers/power/domain/bcm6328-power-domain.c index a90b2c83df..425451e4cd 100644 --- a/drivers/power/domain/bcm6328-power-domain.c +++ b/drivers/power/domain/bcm6328-power-domain.c @@ -62,7 +62,7 @@ static const struct udevice_id bcm6328_power_domain_ids[] = { }; struct power_domain_ops bcm6328_power_domain_ops = { - .free = bcm6328_power_domain_free, + .rfree = bcm6328_power_domain_free, .off = bcm6328_power_domain_off, .on = bcm6328_power_domain_on, .request = bcm6328_power_domain_request, diff --git a/drivers/power/domain/imx8-power-domain-legacy.c b/drivers/power/domain/imx8-power-domain-legacy.c index d51dbaa6c0..74fcb05c15 100644 --- a/drivers/power/domain/imx8-power-domain-legacy.c +++ b/drivers/power/domain/imx8-power-domain-legacy.c @@ -296,7 +296,7 @@ static const struct udevice_id imx8_power_domain_ids[] = { struct power_domain_ops imx8_power_domain_ops = { .request = imx8_power_domain_request, - .free = imx8_power_domain_free, + .rfree = imx8_power_domain_free, .on = imx8_power_domain_on, .off = imx8_power_domain_off, .of_xlate = imx8_power_domain_of_xlate, diff --git a/drivers/power/domain/imx8-power-domain.c b/drivers/power/domain/imx8-power-domain.c index aa768365b4..8e328f02c2 100644 --- a/drivers/power/domain/imx8-power-domain.c +++ b/drivers/power/domain/imx8-power-domain.c @@ -73,7 +73,7 @@ static const struct udevice_id imx8_power_domain_ids[] = { struct power_domain_ops imx8_power_domain_ops_v2 = { .request = imx8_power_domain_request, - .free = imx8_power_domain_free, + .rfree = imx8_power_domain_free, .on = imx8_power_domain_on, .off = imx8_power_domain_off, }; diff --git a/drivers/power/domain/imx8m-power-domain.c b/drivers/power/domain/imx8m-power-domain.c index 40ece9ee3f..fbfd17718b 100644 --- a/drivers/power/domain/imx8m-power-domain.c +++ b/drivers/power/domain/imx8m-power-domain.c @@ -121,7 +121,7 @@ static const struct udevice_id imx8m_power_domain_ids[] = { struct power_domain_ops imx8m_power_domain_ops = { .request = imx8m_power_domain_request, - .free = imx8m_power_domain_free, + .rfree = imx8m_power_domain_free, .on = imx8m_power_domain_on, .off = imx8m_power_domain_off, .of_xlate = imx8m_power_domain_of_xlate, diff --git a/drivers/power/domain/meson-ee-pwrc.c b/drivers/power/domain/meson-ee-pwrc.c index 21d4c9d4dd..7f5d13e872 100644 --- a/drivers/power/domain/meson-ee-pwrc.c +++ b/drivers/power/domain/meson-ee-pwrc.c @@ -352,7 +352,7 @@ static int meson_ee_pwrc_of_xlate(struct power_domain *power_domain, } struct power_domain_ops meson_ee_pwrc_ops = { - .free = meson_ee_pwrc_free, + .rfree = meson_ee_pwrc_free, .off = meson_ee_pwrc_off, .on = meson_ee_pwrc_on, .request = meson_ee_pwrc_request, diff --git a/drivers/power/domain/meson-gx-pwrc-vpu.c b/drivers/power/domain/meson-gx-pwrc-vpu.c index f44e33bacb..bd69aea8dd 100644 --- a/drivers/power/domain/meson-gx-pwrc-vpu.c +++ b/drivers/power/domain/meson-gx-pwrc-vpu.c @@ -269,7 +269,7 @@ static int meson_pwrc_vpu_of_xlate(struct power_domain *power_domain, } struct power_domain_ops meson_gx_pwrc_vpu_ops = { - .free = meson_pwrc_vpu_free, + .rfree = meson_pwrc_vpu_free, .off = meson_pwrc_vpu_off, .on = meson_pwrc_vpu_on, .request = meson_pwrc_vpu_request, diff --git a/drivers/power/domain/mtk-power-domain.c b/drivers/power/domain/mtk-power-domain.c index c67e8804b1..992ee51947 100644 --- a/drivers/power/domain/mtk-power-domain.c +++ b/drivers/power/domain/mtk-power-domain.c @@ -390,7 +390,7 @@ static const struct udevice_id mtk_power_domain_ids[] = { }; struct power_domain_ops mtk_power_domain_ops = { - .free = scpsys_power_free, + .rfree = scpsys_power_free, .off = scpsys_power_off, .on = scpsys_power_on, .request = scpsys_power_request, diff --git a/drivers/power/domain/power-domain-uclass.c b/drivers/power/domain/power-domain-uclass.c index 80df5aff50..be0a8026f6 100644 --- a/drivers/power/domain/power-domain-uclass.c +++ b/drivers/power/domain/power-domain-uclass.c @@ -87,7 +87,7 @@ int power_domain_free(struct power_domain *power_domain) debug("%s(power_domain=%p)\n", __func__, power_domain); - return ops->free(power_domain); + return ops->rfree(power_domain); } int power_domain_on(struct power_domain *power_domain) diff --git a/drivers/power/domain/sandbox-power-domain.c b/drivers/power/domain/sandbox-power-domain.c index 74db2eba7e..a5ae235d53 100644 --- a/drivers/power/domain/sandbox-power-domain.c +++ b/drivers/power/domain/sandbox-power-domain.c @@ -75,7 +75,7 @@ static const struct udevice_id sandbox_power_domain_ids[] = { struct power_domain_ops sandbox_power_domain_ops = { .request = sandbox_power_domain_request, - .free = sandbox_power_domain_free, + .rfree = sandbox_power_domain_free, .on = sandbox_power_domain_on, .off = sandbox_power_domain_off, }; diff --git a/drivers/power/domain/tegra186-power-domain.c b/drivers/power/domain/tegra186-power-domain.c index f344558227..d2a25ca333 100644 --- a/drivers/power/domain/tegra186-power-domain.c +++ b/drivers/power/domain/tegra186-power-domain.c @@ -71,7 +71,7 @@ static int tegra186_power_domain_off(struct power_domain *power_domain) struct power_domain_ops tegra186_power_domain_ops = { .request = tegra186_power_domain_request, - .free = tegra186_power_domain_free, + .rfree = tegra186_power_domain_free, .on = tegra186_power_domain_on, .off = tegra186_power_domain_off, }; diff --git a/drivers/power/domain/ti-sci-power-domain.c b/drivers/power/domain/ti-sci-power-domain.c index 4c4351d2d9..b59af2b13b 100644 --- a/drivers/power/domain/ti-sci-power-domain.c +++ b/drivers/power/domain/ti-sci-power-domain.c @@ -120,7 +120,7 @@ static const struct udevice_id ti_sci_power_domain_of_match[] = { static struct power_domain_ops ti_sci_power_domain_ops = { .request = ti_sci_power_domain_request, - .free = ti_sci_power_domain_free, + .rfree = ti_sci_power_domain_free, .on = ti_sci_power_domain_on, .off = ti_sci_power_domain_off, .of_xlate = ti_sci_power_domain_of_xlate, diff --git a/include/power-domain-uclass.h b/include/power-domain-uclass.h index bd9906b2e7..acf749b38e 100644 --- a/include/power-domain-uclass.h +++ b/include/power-domain-uclass.h @@ -54,14 +54,14 @@ struct power_domain_ops { */ int (*request)(struct power_domain *power_domain); /** - * free - Free a previously requested power domain. + * rfree - Free a previously requested power domain. * * This is the implementation of the client power_domain_free() API. * * @power_domain: The power domain to free. * @return 0 if OK, or a negative error code. */ - int (*free)(struct power_domain *power_domain); + int (*rfree)(struct power_domain *power_domain); /** * on - Power on a power domain. * From patchwork Sun Jan 12 19:05:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221838 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=iHebWkwI; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmSv0JrZz9s4Y for ; Mon, 13 Jan 2020 06:07:58 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id CB216817C5; Sun, 12 Jan 2020 20:07:13 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="iHebWkwI"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 304EA80506; Sun, 12 Jan 2020 20:07:08 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd44.google.com (mail-io1-xd44.google.com [IPv6:2607:f8b0:4864:20::d44]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 4ADE4816DA for ; Sun, 12 Jan 2020 20:07:03 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd44.google.com with SMTP id h8so7300551iob.2 for ; Sun, 12 Jan 2020 11:07:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0BkUBK93b+skvHgNwuhBsl6XdjYuqI/1JFT8tDad+40=; b=iHebWkwIWyLEryhmMAEoKcxWrDiyaRDpkkWieycvMgbKlGhJicNR8O/GfqZwbX/Zyu DAN7PluseYJgMxiymj3mV/+vXOSRcah2ePGliMwoIIcIohQUufZjZxzwGNlAYz94Wv6p jnIVrpuxd0B2QwgZvzCZWFwsQUe/ANyJwcFaQ= 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=0BkUBK93b+skvHgNwuhBsl6XdjYuqI/1JFT8tDad+40=; b=sWkQsNT+GVscVDJGVqVRwAge1nYmjMCXiHC6Pb8/GGindI2ZltKPhPIPS8huWRW3+Q tkCW8EuFD7akT3eJpQW+F4kfl2DICh8wfJJkuv07CayrhUJ6C3bU5iTaU6UltgZ2A6LW F5gjWwhZjtXuRdHGTO3sviL0+b//mJxeru3+7Yof+jrv4TO6iNRyidYbrwVf7y1Lbcq+ WkLl52lSSgMb7HjdRLDPoPRt+pIEVyvzlzCqHBF7TYciv4w4qSebakL/OmaSNLHTw8xo Ty577/Oj7Zwu3XigmaPVnuV1EaZcYULUS3b+x0/Y+cgKPjas6wne5ZOirqErrqZrWDrk V8UA== X-Gm-Message-State: APjAAAUz2DJpM6K5oq9BN4m45g18ZHw/3fK+c1F6+HiHxIYj8khWBCrw ht3DDjjFoUrQikJILGAh98Xw29cD2+I= X-Google-Smtp-Source: APXvYqxF8QbOH/WRhn716+P3ZqlEDlwD8O8V/sU9TqpTp7VYQCbj3LC/c3jcG61EB390cgWNM450hA== X-Received: by 2002:a6b:5917:: with SMTP id n23mr10621886iob.112.1578856021390; Sun, 12 Jan 2020 11:07:01 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:01 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 06/33] reset: Rename free() to rfree() Date: Sun, 12 Jan 2020 12:05:57 -0700 Message-Id: <20200112120216.6.Ib38dca8a84963a43157a31475f2cc51e59d0a398@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: uboot-snps-arc@synopsys.com, u-boot-amlogic@groups.io, Ryder Lee , GSS_MTK_Uboot_upstream , Maxime Ripard , Eugeniy Paltsev , Joe Hershberger , uboot-stm32@st-md-mailman.stormreply.com Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean This function name conflicts with our desire to #define free() to something else on sandbox. Since it deals with resources, rename it to rfree(). Signed-off-by: Simon Glass --- drivers/reset/reset-bcm6345.c | 2 +- drivers/reset/reset-hisilicon.c | 2 +- drivers/reset/reset-hsdk.c | 2 +- drivers/reset/reset-imx7.c | 2 +- drivers/reset/reset-mediatek.c | 2 +- drivers/reset/reset-meson.c | 2 +- drivers/reset/reset-mtmips.c | 2 +- drivers/reset/reset-rockchip.c | 2 +- drivers/reset/reset-socfpga.c | 2 +- drivers/reset/reset-sunxi.c | 2 +- drivers/reset/reset-ti-sci.c | 2 +- drivers/reset/reset-uclass.c | 2 +- drivers/reset/reset-uniphier.c | 2 +- drivers/reset/sandbox-reset.c | 2 +- drivers/reset/sti-reset.c | 2 +- drivers/reset/stm32-reset.c | 2 +- drivers/reset/tegra-car-reset.c | 2 +- drivers/reset/tegra186-reset.c | 2 +- include/reset-uclass.h | 4 ++-- 19 files changed, 20 insertions(+), 20 deletions(-) diff --git a/drivers/reset/reset-bcm6345.c b/drivers/reset/reset-bcm6345.c index 753c1108a9..bbaaea9bb3 100644 --- a/drivers/reset/reset-bcm6345.c +++ b/drivers/reset/reset-bcm6345.c @@ -52,7 +52,7 @@ static int bcm6345_reset_request(struct reset_ctl *rst) } struct reset_ops bcm6345_reset_reset_ops = { - .free = bcm6345_reset_free, + .rfree = bcm6345_reset_free, .request = bcm6345_reset_request, .rst_assert = bcm6345_reset_assert, .rst_deassert = bcm6345_reset_deassert, diff --git a/drivers/reset/reset-hisilicon.c b/drivers/reset/reset-hisilicon.c index a9f052a0c5..d449e3d25e 100644 --- a/drivers/reset/reset-hisilicon.c +++ b/drivers/reset/reset-hisilicon.c @@ -72,7 +72,7 @@ static int hisi_reset_of_xlate(struct reset_ctl *rst, static const struct reset_ops hisi_reset_reset_ops = { .of_xlate = hisi_reset_of_xlate, .request = hisi_reset_request, - .free = hisi_reset_free, + .rfree = hisi_reset_free, .rst_assert = hisi_reset_assert, .rst_deassert = hisi_reset_deassert, }; diff --git a/drivers/reset/reset-hsdk.c b/drivers/reset/reset-hsdk.c index 213d6c87be..f9a432a7a2 100644 --- a/drivers/reset/reset-hsdk.c +++ b/drivers/reset/reset-hsdk.c @@ -81,7 +81,7 @@ static int hsdk_reset_noop(struct reset_ctl *rst_ctl) static const struct reset_ops hsdk_reset_ops = { .request = hsdk_reset_noop, - .free = hsdk_reset_noop, + .rfree = hsdk_reset_noop, .rst_assert = hsdk_reset_noop, .rst_deassert = hsdk_reset_reset, }; diff --git a/drivers/reset/reset-imx7.c b/drivers/reset/reset-imx7.c index f2ca5cf801..a2bad65a3b 100644 --- a/drivers/reset/reset-imx7.c +++ b/drivers/reset/reset-imx7.c @@ -272,7 +272,7 @@ static int imx7_reset_request(struct reset_ctl *rst) static const struct reset_ops imx7_reset_reset_ops = { .request = imx7_reset_request, - .free = imx7_reset_free, + .rfree = imx7_reset_free, .rst_assert = imx7_reset_assert, .rst_deassert = imx7_reset_deassert, }; diff --git a/drivers/reset/reset-mediatek.c b/drivers/reset/reset-mediatek.c index e3614e6e2a..cfbf2af863 100644 --- a/drivers/reset/reset-mediatek.c +++ b/drivers/reset/reset-mediatek.c @@ -55,7 +55,7 @@ static int mediatek_reset_deassert(struct reset_ctl *reset_ctl) struct reset_ops mediatek_reset_ops = { .request = mediatek_reset_request, - .free = mediatek_reset_free, + .rfree = mediatek_reset_free, .rst_assert = mediatek_reset_assert, .rst_deassert = mediatek_reset_deassert, }; diff --git a/drivers/reset/reset-meson.c b/drivers/reset/reset-meson.c index 31aa4d41e8..9026e034c3 100644 --- a/drivers/reset/reset-meson.c +++ b/drivers/reset/reset-meson.c @@ -62,7 +62,7 @@ static int meson_reset_deassert(struct reset_ctl *reset_ctl) struct reset_ops meson_reset_ops = { .request = meson_reset_request, - .free = meson_reset_free, + .rfree = meson_reset_free, .rst_assert = meson_reset_assert, .rst_deassert = meson_reset_deassert, }; diff --git a/drivers/reset/reset-mtmips.c b/drivers/reset/reset-mtmips.c index 59734565d7..71254a93dd 100644 --- a/drivers/reset/reset-mtmips.c +++ b/drivers/reset/reset-mtmips.c @@ -45,7 +45,7 @@ static int mtmips_reset_deassert(struct reset_ctl *reset_ctl) static const struct reset_ops mtmips_reset_ops = { .request = mtmips_reset_request, - .free = mtmips_reset_free, + .rfree = mtmips_reset_free, .rst_assert = mtmips_reset_assert, .rst_deassert = mtmips_reset_deassert, }; diff --git a/drivers/reset/reset-rockchip.c b/drivers/reset/reset-rockchip.c index 3871fc00d0..4fb9571b18 100644 --- a/drivers/reset/reset-rockchip.c +++ b/drivers/reset/reset-rockchip.c @@ -76,7 +76,7 @@ static int rockchip_reset_deassert(struct reset_ctl *reset_ctl) struct reset_ops rockchip_reset_ops = { .request = rockchip_reset_request, - .free = rockchip_reset_free, + .rfree = rockchip_reset_free, .rst_assert = rockchip_reset_assert, .rst_deassert = rockchip_reset_deassert, }; diff --git a/drivers/reset/reset-socfpga.c b/drivers/reset/reset-socfpga.c index 93ec9cfdb6..98524eb2b7 100644 --- a/drivers/reset/reset-socfpga.c +++ b/drivers/reset/reset-socfpga.c @@ -101,7 +101,7 @@ static int socfpga_reset_free(struct reset_ctl *reset_ctl) static const struct reset_ops socfpga_reset_ops = { .request = socfpga_reset_request, - .free = socfpga_reset_free, + .rfree = socfpga_reset_free, .rst_assert = socfpga_reset_assert, .rst_deassert = socfpga_reset_deassert, }; diff --git a/drivers/reset/reset-sunxi.c b/drivers/reset/reset-sunxi.c index 364dc52fb7..1c717b20c3 100644 --- a/drivers/reset/reset-sunxi.c +++ b/drivers/reset/reset-sunxi.c @@ -81,7 +81,7 @@ static int sunxi_reset_deassert(struct reset_ctl *reset_ctl) struct reset_ops sunxi_reset_ops = { .request = sunxi_reset_request, - .free = sunxi_reset_free, + .rfree = sunxi_reset_free, .rst_assert = sunxi_reset_assert, .rst_deassert = sunxi_reset_deassert, }; diff --git a/drivers/reset/reset-ti-sci.c b/drivers/reset/reset-ti-sci.c index c8a76dfb04..7b6f736f5e 100644 --- a/drivers/reset/reset-ti-sci.c +++ b/drivers/reset/reset-ti-sci.c @@ -190,7 +190,7 @@ static const struct udevice_id ti_sci_reset_of_match[] = { static struct reset_ops ti_sci_reset_ops = { .of_xlate = ti_sci_reset_of_xlate, .request = ti_sci_reset_request, - .free = ti_sci_reset_free, + .rfree = ti_sci_reset_free, .rst_assert = ti_sci_reset_assert, .rst_deassert = ti_sci_reset_deassert, .rst_status = ti_sci_reset_status, diff --git a/drivers/reset/reset-uclass.c b/drivers/reset/reset-uclass.c index ee1a423ffb..bf1cba4124 100644 --- a/drivers/reset/reset-uclass.c +++ b/drivers/reset/reset-uclass.c @@ -164,7 +164,7 @@ int reset_free(struct reset_ctl *reset_ctl) debug("%s(reset_ctl=%p)\n", __func__, reset_ctl); - return ops->free(reset_ctl); + return ops->rfree(reset_ctl); } int reset_assert(struct reset_ctl *reset_ctl) diff --git a/drivers/reset/reset-uniphier.c b/drivers/reset/reset-uniphier.c index 39d684be4a..97f7b0ed5f 100644 --- a/drivers/reset/reset-uniphier.c +++ b/drivers/reset/reset-uniphier.c @@ -234,7 +234,7 @@ static int uniphier_reset_deassert(struct reset_ctl *reset_ctl) static const struct reset_ops uniphier_reset_ops = { .request = uniphier_reset_request, - .free = uniphier_reset_free, + .rfree = uniphier_reset_free, .rst_assert = uniphier_reset_assert, .rst_deassert = uniphier_reset_deassert, }; diff --git a/drivers/reset/sandbox-reset.c b/drivers/reset/sandbox-reset.c index 40f2654d8e..c03fce3531 100644 --- a/drivers/reset/sandbox-reset.c +++ b/drivers/reset/sandbox-reset.c @@ -79,7 +79,7 @@ static const struct udevice_id sandbox_reset_ids[] = { struct reset_ops sandbox_reset_reset_ops = { .request = sandbox_reset_request, - .free = sandbox_reset_free, + .rfree = sandbox_reset_free, .rst_assert = sandbox_reset_assert, .rst_deassert = sandbox_reset_deassert, }; diff --git a/drivers/reset/sti-reset.c b/drivers/reset/sti-reset.c index d8cc485ce6..614da9da59 100644 --- a/drivers/reset/sti-reset.c +++ b/drivers/reset/sti-reset.c @@ -298,7 +298,7 @@ static int sti_reset_deassert(struct reset_ctl *reset_ctl) struct reset_ops sti_reset_ops = { .request = sti_reset_request, - .free = sti_reset_free, + .rfree = sti_reset_free, .rst_assert = sti_reset_assert, .rst_deassert = sti_reset_deassert, }; diff --git a/drivers/reset/stm32-reset.c b/drivers/reset/stm32-reset.c index 16d3dba749..4d7745abce 100644 --- a/drivers/reset/stm32-reset.c +++ b/drivers/reset/stm32-reset.c @@ -64,7 +64,7 @@ static int stm32_reset_deassert(struct reset_ctl *reset_ctl) static const struct reset_ops stm32_reset_ops = { .request = stm32_reset_request, - .free = stm32_reset_free, + .rfree = stm32_reset_free, .rst_assert = stm32_reset_assert, .rst_deassert = stm32_reset_deassert, }; diff --git a/drivers/reset/tegra-car-reset.c b/drivers/reset/tegra-car-reset.c index 25947822f1..886ea04e2e 100644 --- a/drivers/reset/tegra-car-reset.c +++ b/drivers/reset/tegra-car-reset.c @@ -51,7 +51,7 @@ static int tegra_car_reset_deassert(struct reset_ctl *reset_ctl) struct reset_ops tegra_car_reset_ops = { .request = tegra_car_reset_request, - .free = tegra_car_reset_free, + .rfree = tegra_car_reset_free, .rst_assert = tegra_car_reset_assert, .rst_deassert = tegra_car_reset_deassert, }; diff --git a/drivers/reset/tegra186-reset.c b/drivers/reset/tegra186-reset.c index 9927c063c3..84ed77b96f 100644 --- a/drivers/reset/tegra186-reset.c +++ b/drivers/reset/tegra186-reset.c @@ -60,7 +60,7 @@ static int tegra186_reset_deassert(struct reset_ctl *reset_ctl) struct reset_ops tegra186_reset_ops = { .request = tegra186_reset_request, - .free = tegra186_reset_free, + .rfree = tegra186_reset_free, .rst_assert = tegra186_reset_assert, .rst_deassert = tegra186_reset_deassert, }; diff --git a/include/reset-uclass.h b/include/reset-uclass.h index 7b5cc3cb3b..9a0696dd1e 100644 --- a/include/reset-uclass.h +++ b/include/reset-uclass.h @@ -51,14 +51,14 @@ struct reset_ops { */ int (*request)(struct reset_ctl *reset_ctl); /** - * free - Free a previously requested reset control. + * rfree - Free a previously requested reset control. * * This is the implementation of the client reset_free() API. * * @reset_ctl: The reset control to free. * @return 0 if OK, or a negative error code. */ - int (*free)(struct reset_ctl *reset_ctl); + int (*rfree)(struct reset_ctl *reset_ctl); /** * rst_assert - Assert a reset signal. * From patchwork Sun Jan 12 19:05:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221839 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=IyKx8T78; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmT73VfJz9s4Y for ; Mon, 13 Jan 2020 06:08:11 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id A7C73817D5; Sun, 12 Jan 2020 20:07:15 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="IyKx8T78"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 6797581717; Sun, 12 Jan 2020 20:07:09 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd42.google.com (mail-io1-xd42.google.com [IPv6:2607:f8b0:4864:20::d42]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 409568171F for ; Sun, 12 Jan 2020 20:07:04 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd42.google.com with SMTP id z193so7292656iof.1 for ; Sun, 12 Jan 2020 11:07:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zbw1qN4kYAEQnpiHl35rgUa/qCqcveZpP2lYjwkLXdc=; b=IyKx8T78MM9TThvBHKdaCKZa9bxaFehs7sDKD+PZAso8CO+qDFI1JZ2tMaXDeOJ3i0 dgXe04UL5XPKyQeR8MsCsC0oVaaDb/OUyz6kHLZZwXS6Jy7+SzjFXFGEGHiIMCWXSzrQ fT2xjNemOCiLy8wWmv73veg6VWlHJ5Fbe5nmE= 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=zbw1qN4kYAEQnpiHl35rgUa/qCqcveZpP2lYjwkLXdc=; b=fnMDstCNEgFhVVcM9/Rh/8N4+ezQZIgGoTUAfJQmMAci8LyGXCzUNm5m1TolhCUnXU QvR0kkBJtMpZKiYwButTD9oABZWvPESyYAh4vd5R8+kOtL1+jnXGJjhhJyIFsIIsQR0F qMkkqZebxj0tWLN4kPJZ9XDt5O83Po//hhywPJDAHWsIQksm+nMKVVVAEywfSTSvSDrF y/nSko8ND2XIcSTNDLhKzxlXFxIyvW/wvCqs7DJkxMPHUYwXvc2hDQsfG87MzBY+cuf1 6h/MQTc7YUi0OUSkzhWB2VeH7V21QcafUWxcM+nvZFfRfgw+NiOQYp/IN+Z+idg3pVcp R/mw== X-Gm-Message-State: APjAAAX4BrgWoGfgB9cvpZ8ThJk3Iqu7FpTUyvttNp7DX4A3rdpHCYs9 VgDeOqap06Pnn+RyXy2yyIbafuoUYMY= X-Google-Smtp-Source: APXvYqyCU0KckHVKjmOrqvS2pcw54WjOQok4QJL980XS3+J47P7JLt6J6cNTNrr9GgA7Lo6JAcdl0w== X-Received: by 2002:a5e:9748:: with SMTP id h8mr1840363ioq.121.1578856023015; Sun, 12 Jan 2020 11:07:03 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:02 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 07/33] gpio: Rename free() to rfree() Date: Sun, 12 Jan 2020 12:05:58 -0700 Message-Id: <20200112120216.7.Ib38dca8a84963a43157a31475f2cc51e59d0a398@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Marek Vasut Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean This function name conflicts with our desire to #define free() to something else on sandbox. Since it deals with resources, rename it to rfree(). Signed-off-by: Simon Glass --- drivers/gpio/gpio-rcar.c | 2 +- drivers/gpio/gpio-uclass.c | 4 ++-- include/asm-generic/gpio.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c index 594e0a470a..a8c5b7f879 100644 --- a/drivers/gpio/gpio-rcar.c +++ b/drivers/gpio/gpio-rcar.c @@ -128,7 +128,7 @@ static int rcar_gpio_free(struct udevice *dev, unsigned offset) static const struct dm_gpio_ops rcar_gpio_ops = { .request = rcar_gpio_request, - .free = rcar_gpio_free, + .rfree = rcar_gpio_free, .direction_input = rcar_gpio_direction_input, .direction_output = rcar_gpio_direction_output, .get_value = rcar_gpio_get_value, diff --git a/drivers/gpio/gpio-uclass.c b/drivers/gpio/gpio-uclass.c index 90fbed455b..4c155fceb5 100644 --- a/drivers/gpio/gpio-uclass.c +++ b/drivers/gpio/gpio-uclass.c @@ -364,8 +364,8 @@ int _dm_gpio_free(struct udevice *dev, uint offset) uc_priv = dev_get_uclass_priv(dev); if (!uc_priv->name[offset]) return -ENXIO; - if (gpio_get_ops(dev)->free) { - ret = gpio_get_ops(dev)->free(dev, offset); + if (gpio_get_ops(dev)->rfree) { + ret = gpio_get_ops(dev)->rfree(dev, offset); if (ret) return ret; } diff --git a/include/asm-generic/gpio.h b/include/asm-generic/gpio.h index d6cf18744f..05777e6afe 100644 --- a/include/asm-generic/gpio.h +++ b/include/asm-generic/gpio.h @@ -248,7 +248,7 @@ int gpio_xlate_offs_flags(struct udevice *dev, struct gpio_desc *desc, */ struct dm_gpio_ops { int (*request)(struct udevice *dev, unsigned offset, const char *label); - int (*free)(struct udevice *dev, unsigned offset); + int (*rfree)(struct udevice *dev, unsigned int offset); int (*direction_input)(struct udevice *dev, unsigned offset); int (*direction_output)(struct udevice *dev, unsigned offset, int value); From patchwork Sun Jan 12 19:05:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221840 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=RyNUZtZV; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmTL4DNPz9s4Y for ; Mon, 13 Jan 2020 06:08:22 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id CF415817DC; Sun, 12 Jan 2020 20:07:18 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="RyNUZtZV"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 34A2981717; Sun, 12 Jan 2020 20:07:10 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-il1-x142.google.com (mail-il1-x142.google.com [IPv6:2607:f8b0:4864:20::142]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id EF4E680E80 for ; Sun, 12 Jan 2020 20:07:05 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x142.google.com with SMTP id x5so6056293ila.6 for ; Sun, 12 Jan 2020 11:07:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Tzq9IUOjqtjhMaWL4sQVC8Sc0kk0EWEWp5Wjup4UXIk=; b=RyNUZtZVgHzDNHFBCjgJa4YcuUK4Pw5HbGcMPkX0NXj0UlNgmCrG91yUAi6eM+vIU1 0XfEr2wwGT1nbdToRaQdv5WhTUJHUKjBlfZJA9WnYVvxK1wYk6mMzpslsNRrjwfJuokC 2fKPHgm02dBp0WC1DdMJnZlglp39XPODh5I7Y= 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=Tzq9IUOjqtjhMaWL4sQVC8Sc0kk0EWEWp5Wjup4UXIk=; b=I0KY+sK7CsgToXikBhJGzbYzLt7mGapVHp2caVxzSz0epCfN/cq7F0EVqK+O8MRzrP dc88f9MzvJm0zPkhlbUEL5oTzZ2e5iJxYRQQ5nvJlkYeutXGU0LjzYKBIjGFokMxhovk f/DWUraEZt7C0HWHRLTf257b4ybhCyXHl4KbFyOvINj0My1v8rTvAUo+Du1fhF0o4ZWS BO5TTlJQv3L/SXoRrEeEyOjhYPxk/LY90JCGE/l35Ol18ReYzj2gnm6Fu0P8hPKpNGZ8 6wTQxoR04j2hSm19aZJrw3QDZtkh05ASvsQJPZMOBuJoFXgtQ0+E8y8H8eVMBsWLti2Y 8S0Q== X-Gm-Message-State: APjAAAX4HSQV9pquxuH09aje1dNkPN/70NPbcUauuvFSeCf7uRgLNkSq 6J1LOxYScNoTrndeZWFdgYojW/XhKBY= X-Google-Smtp-Source: APXvYqxcKuloYAtleiit8VgUwGl79ovPnVPpZOMLX737cJIJLC9ekV89TooFzUQrsDjPq/0TqfHuWw== X-Received: by 2002:a92:7509:: with SMTP id q9mr11223674ilc.67.1578856024651; Sun, 12 Jan 2020 11:07:04 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:04 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 08/33] clk: Rename free() to rfree() Date: Sun, 12 Jan 2020 12:05:59 -0700 Message-Id: <20200112120216.8.Ifb04203c2bf46c05eaf0015b1140a2ae4bb3e090@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean This function name conflicts with our desire to #define free() to something else on sandbox. Since it deals with resources, rename it to rfree(). Signed-off-by: Simon Glass --- drivers/clk/clk-ti-sci.c | 2 +- drivers/clk/clk-uclass.c | 4 ++-- drivers/clk/clk_sandbox.c | 2 +- drivers/clk/tegra/tegra-car-clk.c | 2 +- include/clk-uclass.h | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/clk/clk-ti-sci.c b/drivers/clk/clk-ti-sci.c index 478349f22f..5ef9035ece 100644 --- a/drivers/clk/clk-ti-sci.c +++ b/drivers/clk/clk-ti-sci.c @@ -204,7 +204,7 @@ static const struct udevice_id ti_sci_clk_of_match[] = { static struct clk_ops ti_sci_clk_ops = { .of_xlate = ti_sci_clk_of_xlate, .request = ti_sci_clk_request, - .free = ti_sci_clk_free, + .rfree = ti_sci_clk_free, .get_rate = ti_sci_clk_get_rate, .set_rate = ti_sci_clk_set_rate, .set_parent = ti_sci_clk_set_parent, diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index 9aa8537004..7ac580d661 100644 --- a/drivers/clk/clk-uclass.c +++ b/drivers/clk/clk-uclass.c @@ -395,10 +395,10 @@ int clk_free(struct clk *clk) return 0; ops = clk_dev_ops(clk->dev); - if (!ops->free) + if (!ops->rfree) return 0; - return ops->free(clk); + return ops->rfree(clk); } ulong clk_get_rate(struct clk *clk) diff --git a/drivers/clk/clk_sandbox.c b/drivers/clk/clk_sandbox.c index de6b2f7c82..cc084b0644 100644 --- a/drivers/clk/clk_sandbox.c +++ b/drivers/clk/clk_sandbox.c @@ -107,7 +107,7 @@ static struct clk_ops sandbox_clk_ops = { .enable = sandbox_clk_enable, .disable = sandbox_clk_disable, .request = sandbox_clk_request, - .free = sandbox_clk_free, + .rfree = sandbox_clk_free, }; static int sandbox_clk_probe(struct udevice *dev) diff --git a/drivers/clk/tegra/tegra-car-clk.c b/drivers/clk/tegra/tegra-car-clk.c index 98be7602b3..07e8734b3a 100644 --- a/drivers/clk/tegra/tegra-car-clk.c +++ b/drivers/clk/tegra/tegra-car-clk.c @@ -80,7 +80,7 @@ static int tegra_car_clk_disable(struct clk *clk) static struct clk_ops tegra_car_clk_ops = { .request = tegra_car_clk_request, - .free = tegra_car_clk_free, + .rfree = tegra_car_clk_free, .get_rate = tegra_car_clk_get_rate, .set_rate = tegra_car_clk_set_rate, .enable = tegra_car_clk_enable, diff --git a/include/clk-uclass.h b/include/clk-uclass.h index e76d98e2f6..dac42dab36 100644 --- a/include/clk-uclass.h +++ b/include/clk-uclass.h @@ -53,14 +53,14 @@ struct clk_ops { */ int (*request)(struct clk *clock); /** - * free - Free a previously requested clock. + * rfree - Free a previously requested clock. * * This is the implementation of the client clk_free() API. * * @clock: The clock to free. * @return 0 if OK, or a negative error code. */ - int (*free)(struct clk *clock); + int (*rfree)(struct clk *clock); /** * get_rate() - Get current clock rate. * From patchwork Sun Jan 12 19:06:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221841 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=OT85j+5d; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmTZ2qNzz9s4Y for ; Mon, 13 Jan 2020 06:08:34 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 89A16817D9; Sun, 12 Jan 2020 20:07:20 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="OT85j+5d"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 047C181717; Sun, 12 Jan 2020 20:07:11 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd41.google.com (mail-io1-xd41.google.com [IPv6:2607:f8b0:4864:20::d41]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 9FF4F816DD for ; Sun, 12 Jan 2020 20:07:07 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd41.google.com with SMTP id b10so7246413iof.11 for ; Sun, 12 Jan 2020 11:07:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vhQxKbIx3XV/TYh5FtASSZ89AJEsemf/7jXYZFa8boI=; b=OT85j+5dP7xzlUKQAv4Ls5NC3WRZCvl+4eESy5y1o5XDnUidRHXo+JT1azkasfFEdW TlC89MjxBpgovECZ/GMIGs4f7j+iQ8xMzH5UWqe0Yr0Cw8NdDt8WRH00VHxnkioBsohX A2HMAdDuzYZGfx+F9mGwosgm/uKBANaMIsuQw= 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=vhQxKbIx3XV/TYh5FtASSZ89AJEsemf/7jXYZFa8boI=; b=aGjk3FUArv0ZctnZR9JxOYzdkGWhu2mm5Hx3X42WwIcqa5sVDYFz3qB421WEoJLVdH Ham/PR6DmWyKarQejDZM6pqIcJrSwzIL3VTCPLehyB9e0Z2QV0lOCcYrqi4HXdoa1P7n URvD5rI8b+l+ZB++UvZ+oUH1Wia9KoCowELa87xOwOErupvN2Lh5KbmTUTq5qWwxKbK6 +YjvhfqEw7faXFD6mY8vjbnQGmupNPL9OxmohrlLn60O0mdvjaycJM0+Dqsg9TkojtNi 1jtakBZpbmgu/2o3ZLZ64ApwDRuCa9WZvlOCfma3r8TbkxsmG3OL621lzpadUbxAzd/f WJyg== X-Gm-Message-State: APjAAAXhnzR4EaLiTjRISX+H6kguMecvZMsPIgsGiVrfhtknkqPFmsek k1epBy/wfz+hPDuzgZIHCX4DIpiZe74= X-Google-Smtp-Source: APXvYqxKyBbb/0zzV5mw2SpMBd7xSNnVBtQl52JTgyju73lOflNeqQyAOoN/ZtTiS2YcjdI2IO0d7g== X-Received: by 2002:a5d:87d2:: with SMTP id q18mr10768836ios.224.1578856026420; Sun, 12 Jan 2020 11:07:06 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:06 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 09/33] dma: Rename free() to rfree() Date: Sun, 12 Jan 2020 12:06:00 -0700 Message-Id: <20200112120216.9.Ifb04203c2bf46c05eaf0015b1140a2ae4bb3e090@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Ujfalusi , Joe Hershberger Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean This function name conflicts with our desire to #define free() to something else on sandbox. Since it deals with resources, rename it to rfree(). Signed-off-by: Simon Glass --- drivers/dma/dma-uclass.c | 4 ++-- drivers/dma/sandbox-dma-test.c | 2 +- drivers/dma/ti/k3-udma.c | 2 +- include/dma-uclass.h | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/dma/dma-uclass.c b/drivers/dma/dma-uclass.c index 5598bca21c..a0159d7888 100644 --- a/drivers/dma/dma-uclass.c +++ b/drivers/dma/dma-uclass.c @@ -122,10 +122,10 @@ int dma_free(struct dma *dma) debug("%s(dma=%p)\n", __func__, dma); - if (!ops->free) + if (!ops->rfree) return 0; - return ops->free(dma); + return ops->rfree(dma); } int dma_enable(struct dma *dma) diff --git a/drivers/dma/sandbox-dma-test.c b/drivers/dma/sandbox-dma-test.c index 8fcef1863e..5aa7838ff5 100644 --- a/drivers/dma/sandbox-dma-test.c +++ b/drivers/dma/sandbox-dma-test.c @@ -229,7 +229,7 @@ static const struct dma_ops sandbox_dma_ops = { .transfer = sandbox_dma_transfer, .of_xlate = sandbox_dma_of_xlate, .request = sandbox_dma_request, - .free = sandbox_dma_free, + .rfree = sandbox_dma_free, .enable = sandbox_dma_enable, .disable = sandbox_dma_disable, .send = sandbox_dma_send, diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c index f7128610c5..23d6ed0697 100644 --- a/drivers/dma/ti/k3-udma.c +++ b/drivers/dma/ti/k3-udma.c @@ -1720,7 +1720,7 @@ static const struct dma_ops udma_ops = { .transfer = udma_transfer, .of_xlate = udma_of_xlate, .request = udma_request, - .free = udma_free, + .rfree = udma_free, .enable = udma_enable, .disable = udma_disable, .send = udma_send, diff --git a/include/dma-uclass.h b/include/dma-uclass.h index a1d9d26ac5..340437acc1 100644 --- a/include/dma-uclass.h +++ b/include/dma-uclass.h @@ -58,14 +58,14 @@ struct dma_ops { */ int (*request)(struct dma *dma); /** - * free - Free a previously requested dma. + * rfree - Free a previously requested dma. * * This is the implementation of the client dma_free() API. * * @dma: The DMA to free. * @return 0 if OK, or a negative error code. */ - int (*free)(struct dma *dma); + int (*rfree)(struct dma *dma); /** * enable() - Enable a DMA Channel. * From patchwork Sun Jan 12 19:06:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221842 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=J2vYGuou; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmTq10vGz9s4Y for ; Mon, 13 Jan 2020 06:08:47 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 1E45F817E1; Sun, 12 Jan 2020 20:07:23 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="J2vYGuou"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 9F63681755; Sun, 12 Jan 2020 20:07:12 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd44.google.com (mail-io1-xd44.google.com [IPv6:2607:f8b0:4864:20::d44]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 60DEC804C1 for ; Sun, 12 Jan 2020 20:07:09 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd44.google.com with SMTP id c16so7265677ioo.8 for ; Sun, 12 Jan 2020 11:07:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Mz+/n+ChMKfygMUFx9AI/xyfVFdp1ON7YzPMHnarVBc=; b=J2vYGuou3NVfCrvO64LwmXWPROk2KQ/QJ87DARxJtyvSvVmZS0r1cU240u1k5RZXPK tRVCeHSIrPAZNFiI8AuJzQa14VVwDumCcQpGMrq/FKmQ7HzYr6TfgxZu2hCxIcfQ5ZDb R8Ls7rGSMqB/IMa0xqG8zZTo876KHj630z5jo= 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=Mz+/n+ChMKfygMUFx9AI/xyfVFdp1ON7YzPMHnarVBc=; b=fdBWzMdgZo0BNT7mqQ8FyDfUDHEDh+7gilwkm9pxVv83BYKKV6xNvamoaPaneHUXcK Lw9Vny0aViX5Eu/wUosV/zUdU5BN4wILHkozX/UfYoUwQkpAn7zDwaw+3zhopwTrj084 1dsq4Ehscmu9SiRitFlZzRb5kl+GApIfd2pKQTcz7wO0qKY38A/fqVKcnQbOgjxoVqDq hafyBE+GFMzg8ZWx6NoLbm81RImymVqGEreR691uBHh50Z0hBjJ1LXHsI8XBqJK4o8LG 7NugutGKfbQOtV7Du8Ew0gZWjmuKHk9sMjgpM0bfxvPPs+kvfaSSkhOIrZqZgbyfe9am sfhg== X-Gm-Message-State: APjAAAVVrvqjOC35qGhrHtUtWJ265euhnlKehdGB5GFcksBrMXRaZAvR wSTvlPnIp3EgsDNNWhUP11rlRQPW4ak= X-Google-Smtp-Source: APXvYqxNWNlimhv2xmClkLOnvZHq+ARWsrRQjafVoKU87LyjJlI5aIUkOmLTjTELuevBRMZSzlFacw== X-Received: by 2002:a6b:3786:: with SMTP id e128mr10571146ioa.77.1578856028126; Sun, 12 Jan 2020 11:07:08 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:07 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 10/33] mtd: Rename free() to rfree() Date: Sun, 12 Jan 2020 12:06:01 -0700 Message-Id: <20200112120216.10.Ifb04203c2bf46c05eaf0015b1140a2ae4bb3e090@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Stefan Roese , Jagan Teki , Miquel Raynal Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean This function name conflicts with our desire to #define free() to something else on sandbox. Since it deals with resources, rename it to rfree(). Signed-off-by: Simon Glass --- drivers/mtd/mtdcore.c | 4 ++-- drivers/mtd/nand/raw/denali.c | 2 +- drivers/mtd/nand/spi/core.c | 2 +- drivers/mtd/nand/spi/gigadevice.c | 2 +- drivers/mtd/nand/spi/macronix.c | 2 +- drivers/mtd/nand/spi/micron.c | 2 +- drivers/mtd/nand/spi/winbond.c | 2 +- include/linux/mtd/mtd.h | 4 ++-- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c index dd04d676d5..838c288318 100644 --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c @@ -1179,10 +1179,10 @@ int mtd_ooblayout_free(struct mtd_info *mtd, int section, if (!mtd || section < 0) return -EINVAL; - if (!mtd->ooblayout || !mtd->ooblayout->free) + if (!mtd->ooblayout || !mtd->ooblayout->rfree) return -ENOTSUPP; - return mtd->ooblayout->free(mtd, section, oobfree); + return mtd->ooblayout->rfree(mtd, section, oobfree); } EXPORT_SYMBOL_GPL(mtd_ooblayout_free); diff --git a/drivers/mtd/nand/raw/denali.c b/drivers/mtd/nand/raw/denali.c index 0a7ca8a8df..f0b528485c 100644 --- a/drivers/mtd/nand/raw/denali.c +++ b/drivers/mtd/nand/raw/denali.c @@ -1178,7 +1178,7 @@ static int denali_ooblayout_free(struct mtd_info *mtd, int section, static const struct mtd_ooblayout_ops denali_ooblayout_ops = { .ecc = denali_ooblayout_ecc, - .free = denali_ooblayout_free, + .rfree = denali_ooblayout_free, }; static int denali_multidev_fixup(struct denali_nand_info *denali) diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c index cb8ffa3fa9..fba8cc056a 100644 --- a/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c @@ -1021,7 +1021,7 @@ static int spinand_noecc_ooblayout_free(struct mtd_info *mtd, int section, static const struct mtd_ooblayout_ops spinand_noecc_ooblayout = { .ecc = spinand_noecc_ooblayout_ecc, - .free = spinand_noecc_ooblayout_free, + .rfree = spinand_noecc_ooblayout_free, }; static int spinand_init(struct spinand_device *spinand) diff --git a/drivers/mtd/nand/spi/gigadevice.c b/drivers/mtd/nand/spi/gigadevice.c index 3681c5eed9..e329c3cfc0 100644 --- a/drivers/mtd/nand/spi/gigadevice.c +++ b/drivers/mtd/nand/spi/gigadevice.c @@ -103,7 +103,7 @@ static int gd5fxgq4xexxg_ecc_get_status(struct spinand_device *spinand, static const struct mtd_ooblayout_ops gd5fxgq4xexxg_ooblayout = { .ecc = gd5fxgq4xexxg_ooblayout_ecc, - .free = gd5fxgq4xexxg_ooblayout_free, + .rfree = gd5fxgq4xexxg_ooblayout_free, }; static const struct spinand_info gigadevice_spinand_table[] = { diff --git a/drivers/mtd/nand/spi/macronix.c b/drivers/mtd/nand/spi/macronix.c index 662c561e50..1119677f6f 100644 --- a/drivers/mtd/nand/spi/macronix.c +++ b/drivers/mtd/nand/spi/macronix.c @@ -47,7 +47,7 @@ static int mx35lfxge4ab_ooblayout_free(struct mtd_info *mtd, int section, static const struct mtd_ooblayout_ops mx35lfxge4ab_ooblayout = { .ecc = mx35lfxge4ab_ooblayout_ecc, - .free = mx35lfxge4ab_ooblayout_free, + .rfree = mx35lfxge4ab_ooblayout_free, }; static int mx35lf1ge4ab_get_eccsr(struct spinand_device *spinand, u8 *eccsr) diff --git a/drivers/mtd/nand/spi/micron.c b/drivers/mtd/nand/spi/micron.c index 83951c5d0f..9c24542f96 100644 --- a/drivers/mtd/nand/spi/micron.c +++ b/drivers/mtd/nand/spi/micron.c @@ -63,7 +63,7 @@ static int mt29f2g01abagd_ooblayout_free(struct mtd_info *mtd, int section, static const struct mtd_ooblayout_ops mt29f2g01abagd_ooblayout = { .ecc = mt29f2g01abagd_ooblayout_ecc, - .free = mt29f2g01abagd_ooblayout_free, + .rfree = mt29f2g01abagd_ooblayout_free, }; static int mt29f2g01abagd_ecc_get_status(struct spinand_device *spinand, diff --git a/drivers/mtd/nand/spi/winbond.c b/drivers/mtd/nand/spi/winbond.c index eac811d97c..f3446e71b9 100644 --- a/drivers/mtd/nand/spi/winbond.c +++ b/drivers/mtd/nand/spi/winbond.c @@ -59,7 +59,7 @@ static int w25m02gv_ooblayout_free(struct mtd_info *mtd, int section, static const struct mtd_ooblayout_ops w25m02gv_ooblayout = { .ecc = w25m02gv_ooblayout_ecc, - .free = w25m02gv_ooblayout_free, + .rfree = w25m02gv_ooblayout_free, }; static int w25m02gv_select_target(struct spinand_device *spinand, diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h index ceffd994de..1b9151714c 100644 --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h @@ -129,8 +129,8 @@ struct mtd_oob_region { struct mtd_ooblayout_ops { int (*ecc)(struct mtd_info *mtd, int section, struct mtd_oob_region *oobecc); - int (*free)(struct mtd_info *mtd, int section, - struct mtd_oob_region *oobfree); + int (*rfree)(struct mtd_info *mtd, int section, + struct mtd_oob_region *oobfree); }; /* From patchwork Sun Jan 12 19:06:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221843 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=OsA2sJPp; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmV2502Jz9s4Y for ; Mon, 13 Jan 2020 06:08:58 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id EF87080E80; Sun, 12 Jan 2020 20:07:25 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="OsA2sJPp"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 0F4B4817C6; Sun, 12 Jan 2020 20:07:14 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd44.google.com (mail-io1-xd44.google.com [IPv6:2607:f8b0:4864:20::d44]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 2CBE980E80 for ; Sun, 12 Jan 2020 20:07:11 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd44.google.com with SMTP id t26so7246298ioi.13 for ; Sun, 12 Jan 2020 11:07:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=CYvWKqTEfxlhtUo71Hjjkw2PbZheEKKgFNbcQotTMQY=; b=OsA2sJPpH7OD7wZ92WSVPcpMjJsfk1nDebgkbOn/9l2Kh/c4l3R4aza2toSTK0uDMl BRTN4pmRBfqFnPphz94Ia9bSYxDEJ117KtlIOd3ulsSvMdXvsr6b9WaFVrV0pt6QpPOz 5Jbs0GLB5mCUL/0LwKe4KD84glW0gtsG+Wbzk= 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=CYvWKqTEfxlhtUo71Hjjkw2PbZheEKKgFNbcQotTMQY=; b=RfJfqD6EuOm93yM4y+iwR8qQzVWmXXUe+CF/6W2ej8ItRGEJJGRhc2Ui1aIzctk+l7 QIcyU6MM5AAyWwn6hzBP+JcHpcS2n0ISYTysLNh7tCg7Z/tbcSjezBQI9+HE9276eEV9 QdjyDKdvdMvTNz0QJao3C9YB1G0zdkUz8m2I/fGfpyz875Lwl0fx9QcodOfHNtBakgab VF2nkBfs1oJkJXOH5mVpF75FtAKKshH+U/tnzwCfjGVTCzAs/S2066ReOHnOAF4Q458I Jb6EXhUs7ohXGNos1BbrC4l2mLeW8k05/g7ZuH9ncPqj3tkZ0qFqWe4P6HckUFekyU3H AvyA== X-Gm-Message-State: APjAAAX3Kty/I70uWKOv55+bCQJlE0QATVuKTtB9uggRWOu8eHshwbmq hg1Po7mXZv8KNvBLTw0W+U4lj4eA3JQ= X-Google-Smtp-Source: APXvYqygCh4wYrLDQufFuS//Rwu25xg38aeZ0Eltwk8NSe3HLwH1teg+tfh0eJ4e4UqcQ75/EloOvw== X-Received: by 2002:a6b:7201:: with SMTP id n1mr8919082ioc.37.1578856030005; Sun, 12 Jan 2020 11:07:10 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:09 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 11/33] sandbox: Rename 'free' variable Date: Sun, 12 Jan 2020 12:06:02 -0700 Message-Id: <20200112120216.11.Ifb04203c2bf46c05eaf0015b1140a2ae4bb3e090@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean This name conflicts with our desire to #define free() to something else on sandbox. Rename it. Signed-off-by: Simon Glass --- arch/sandbox/cpu/state.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/sandbox/cpu/state.c b/arch/sandbox/cpu/state.c index cd46e000f5..ef2e63f37a 100644 --- a/arch/sandbox/cpu/state.c +++ b/arch/sandbox/cpu/state.c @@ -16,14 +16,14 @@ static struct sandbox_state *state; /* Pointer to current state record */ static int state_ensure_space(int extra_size) { void *blob = state->state_fdt; - int used, size, free; + int used, size, free_bytes; void *buf; int ret; used = fdt_off_dt_strings(blob) + fdt_size_dt_strings(blob); size = fdt_totalsize(blob); - free = size - used; - if (free > extra_size) + free_bytes = size - used; + if (free_bytes > extra_size) return 0; size = used + extra_size; From patchwork Sun Jan 12 19:06:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221844 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=LAf3U2rD; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmVJ0TcQz9s4Y for ; Mon, 13 Jan 2020 06:09:11 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 481D7817FA; Sun, 12 Jan 2020 20:07:28 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="LAf3U2rD"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id BFDFB817D8; Sun, 12 Jan 2020 20:07:15 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-il1-x144.google.com (mail-il1-x144.google.com [IPv6:2607:f8b0:4864:20::144]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id A389F804C1 for ; Sun, 12 Jan 2020 20:07:12 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x144.google.com with SMTP id s15so6089807iln.1 for ; Sun, 12 Jan 2020 11:07:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=C3ZUPI1mwAok2y/areMhBz4YNbOspV2wJjhrwj8tG8k=; b=LAf3U2rD6xYwoskfipD4OmTjXo9xDDsKPJ5mJ76agIG7CXqfK9WH2xM2R3DbqTTYOj ChRd8wj23O7lWU3GEKVZ0YUwQnEIGyqT3Z8DcFmPc/sdlyFN4XQVpFEiK3eQaZyNHe/3 n95bmb2u0zM9EcsLqNLsLJhDbXWLiSLyxsD9w= 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=C3ZUPI1mwAok2y/areMhBz4YNbOspV2wJjhrwj8tG8k=; b=d2QguGE0IJb/Jn2wd3Wft/cFRyVfGENpQmOhsh9ktExDUge46UO4wZA3vM92VygATq XvtxXMkmxyj4J0T3P8Zipn7iiFcDA0gaU3figI6UOkj101VsTw4mjqovYCzVhPaqA0da aIRkTocQmITaCa8NxHU0VX27kStHe+JB+vFuTN9ism4dyQtgtN2p8Xac2s5uCNBOr8D3 RItMUsLApNYbE1NS5one96IuFRQBdA1E6m3nycboPvEQUV5wxcRN2RDq+dzM/FB2JRBd 71ifgKgiApRf2ZocqG/AvqJqQXct0U2pdViSLFqfzagstF+Plc1feMYCv9fq+F4JXegT +XfA== X-Gm-Message-State: APjAAAW+sv29bg+uf2yyigt6VtpX37c0MCAFq3G89aiyUhBD2QNJvvJ+ q/xhjgPJfQgh+RzWqZfQUG7rGVp2JW8= X-Google-Smtp-Source: APXvYqzOm3uf6YIo+vJp6OH2SmbqZshkf5tZ9dBjnjes0cIuKT/tgaHabyDoxV9WtwZc6hEQ5/5uiQ== X-Received: by 2002:a92:5d03:: with SMTP id r3mr11045825ilb.278.1578856031477; Sun, 12 Jan 2020 11:07:11 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:11 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 12/33] sandbox: Use a prefix for all allocation functions Date: Sun, 12 Jan 2020 12:06:03 -0700 Message-Id: <20200112120216.12.Ic9d42a8ad4850e8e677336e4e07bee8b62ad2fb0@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean In order to allow use of both U-Boot's malloc() and the C library's version, set a prefix for the allocation functions so that they can co-exist. This is only done for sandbox. For other archs everything remains the same. Signed-off-by: Simon Glass --- include/malloc.h | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/include/malloc.h b/include/malloc.h index 5efa6920b2..f66c2e8617 100644 --- a/include/malloc.h +++ b/include/malloc.h @@ -788,8 +788,13 @@ struct mallinfo { */ -/* #define USE_DL_PREFIX */ - +/* + * Rename the U-Boot alloc functions so that sandbox can still use the system + * ones + */ +#ifdef CONFIG_SANDBOX +#define USE_DL_PREFIX +#endif /* @@ -892,6 +897,21 @@ void malloc_simple_info(void); # define pvALLOc dlpvalloc # define mALLINFo dlmallinfo # define mALLOPt dlmallopt + +/* Ensure that U-Boot actually uses these too */ +#define calloc dlcalloc +#define free(ptr) dlfree(ptr) +#define malloc(x) dlmalloc(x) +#define memalign dlmemalign +#define realloc dlrealloc +#define valloc dlvalloc +#define pvalloc dlpvalloc +#define mallinfo() dlmallinfo() +#define mallopt dlmallopt +#define malloc_trim dlmalloc_trim +#define malloc_usable_size dlmalloc_usable_size +#define malloc_stats dlmalloc_stats + # else /* USE_DL_PREFIX */ # define cALLOc calloc # define fREe free From patchwork Sun Jan 12 19:06:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221845 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=V7a1C07t; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmVV1PZJz9s4Y for ; Mon, 13 Jan 2020 06:09:22 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 1BBC8817E5; Sun, 12 Jan 2020 20:07:31 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="V7a1C07t"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 65F3B817D9; Sun, 12 Jan 2020 20:07:17 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd44.google.com (mail-io1-xd44.google.com [IPv6:2607:f8b0:4864:20::d44]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 3AB1180E80 for ; Sun, 12 Jan 2020 20:07:14 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd44.google.com with SMTP id n21so7250399ioo.10 for ; Sun, 12 Jan 2020 11:07:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zqfGVBnMgEwN97MZqRFQ1udk+Bcl2Zvaw4LMqkXyMWA=; b=V7a1C07tKQTAm4NzvVqCFS19v0pzsncWAbg9isOdIiaIlAcnKvE/eyixGPtUIytB95 r0J5a6MXapt2T/lKPKQhkaPSnaU3tLYDde9ZzeVNQkgNP3RJHlPxqr/se1wDQmJMK2yL 8M+36SpCLv+1Ou01k7qP6eC+CKfANktXJJ6SE= 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=zqfGVBnMgEwN97MZqRFQ1udk+Bcl2Zvaw4LMqkXyMWA=; b=h7FT+XHWgUSDueBJADEv1KQJYZbCoF10ZGrpUISapIgiRRflgj2fvXkmz5I/8swlp6 ezva3p33+BzfzMGovZFtVgLMdaaqcCgvbsGI7jYH/u0XFWGBbrAzUn4Mm8GvP2e8Xp27 9tPBDnzT3ObMAEe30JcDVYqEVXJqa8tR58qb60lTRI5CaUS7qZ1609BDWZD18Oxdrnhp fQuXjeNC6V0I0V9wbJLoaNyeRteBEU/FwywPltoVD283tjkpzzUSLt/1G2HGvHIZ8KK7 A7hbNweCwtr2AWe2gZWbWiGjfZOpTtd9pfx91E7YjEeZUbUObk0An4V47uYjqHSCtbW7 qLjA== X-Gm-Message-State: APjAAAUDgbbqGmIscUR+BPY/Oi2XmX9cLsmShySpVU5CViTJAEXXGJ2L AMmaHy9c8248pLv/0iyrByeGkFkv1LM= X-Google-Smtp-Source: APXvYqykXwvbuK8j+GU3tVt5H9hffsaVsxq9/BoXoW8ntKCqs6pXSvY5xMQ7TiRit9g8yyONzRDUVQ== X-Received: by 2002:a6b:4909:: with SMTP id u9mr9899882iob.212.1578856033067; Sun, 12 Jan 2020 11:07:13 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:12 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 13/33] exports: Add the malloc.h header Date: Sun, 12 Jan 2020 12:06:04 -0700 Message-Id: <20200112120216.13.I85228f2cecfad4450d0dba222daba5891425f49e@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean This file should include the malloc.h header since it references malloc(). Fix it. Signed-off-by: Simon Glass --- common/exports.c | 1 + 1 file changed, 1 insertion(+) diff --git a/common/exports.c b/common/exports.c index b4f1f7af15..18af38a5f6 100644 --- a/common/exports.c +++ b/common/exports.c @@ -1,5 +1,6 @@ #include #include +#include #include #include From patchwork Sun Jan 12 19:06:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221846 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=Uvrdy9MZ; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmVh5Jvnz9s4Y for ; Mon, 13 Jan 2020 06:09:32 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 65B1C817F6; Sun, 12 Jan 2020 20:07:33 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="Uvrdy9MZ"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id C8F49817D4; Sun, 12 Jan 2020 20:07:19 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd41.google.com (mail-io1-xd41.google.com [IPv6:2607:f8b0:4864:20::d41]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id E8DD3804C1 for ; Sun, 12 Jan 2020 20:07:15 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd41.google.com with SMTP id x1so7255943iop.7 for ; Sun, 12 Jan 2020 11:07:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=eFuSostBI6UC7V9voamizo5Rb+fEamkQXZhUm5q7PqA=; b=Uvrdy9MZIFqIsS/8wG8opCYHEk9cpnAFi5oyCnorLL464aDboZ3/Za1MAdc3YFjgxP g9v3EhfUg4wh5FbwOZl0+8haZFsiTxUAwMG0zOg/szH7bkdtwzb38Inx3LygdxxtQzoz eh85XVIYCNPFCvcIUE1zT5PP5eYuef9oy6vvg= 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=eFuSostBI6UC7V9voamizo5Rb+fEamkQXZhUm5q7PqA=; b=lRRyLBY+NNuiS0w4WfvhUvi9Am/jCbx+Iwx7rhh0E3ChalY6VhLN8t32szzNnbwkgP Vtb2mHE0KWiXqFN+FGwMd3RscnhABMcboL/h+pA69ZI3Gxmoa3hOv1FI6mpoHO8I5M49 a2+U+5ZtRPD+eFa+Hh6DFpFrh5fiRD7SrxtXE/08qNqAoxtyDvywPnoJHCDx9lJhV/Iy BZD56n61ChLCVmXTc7AVb6XP+4bnyXzJ6mKHClpLyAOfWT8qB7D56a32lfIIAmxx1Rer OAE2htG/P6+i4efK0Hz6Wwug+jzWuHBCOoK8nVR61NDet966K/FC3F3DGnddKXzbaIas VqLA== X-Gm-Message-State: APjAAAVsOYe9NDrAMPeM7eDNbJTwOE88WBWA7Wbeeg+dlSFk1j1RytVj +VoRsbXL0lVFKouB/4CMi0zAaWhDPV8= X-Google-Smtp-Source: APXvYqxS71qD5oUarYJfVq3uoANbpmdBL9fvXs94mkLjYdemNkTVQ6iDuHoKpritpB73t0Qu1ExSkg== X-Received: by 2002:a5e:8b06:: with SMTP id g6mr9795104iok.61.1578856034772; Sun, 12 Jan 2020 11:07:14 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:14 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 14/33] string: Allow arch override of strndup() also Date: Sun, 12 Jan 2020 12:06:05 -0700 Message-Id: <20200112120216.14.Ic29632a2599ba5f6d287e5ac8491d9745979d3e9@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thierry Reding , Tom Warren Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean At present architectures can override strdup() but not strndup(). Use the same option for both. Signed-off-by: Simon Glass --- include/linux/string.h | 2 +- lib/string.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/linux/string.h b/include/linux/string.h index 5d63be4ce5..bb1d5ab07e 100644 --- a/include/linux/string.h +++ b/include/linux/string.h @@ -93,8 +93,8 @@ size_t strcspn(const char *s, const char *reject); #ifndef __HAVE_ARCH_STRDUP extern char * strdup(const char *); -#endif extern char * strndup(const char *, size_t); +#endif #ifndef __HAVE_ARCH_STRSWAB extern char * strswab(const char *); #endif diff --git a/lib/string.c b/lib/string.c index 9b779ddc3b..ae7835f600 100644 --- a/lib/string.c +++ b/lib/string.c @@ -324,7 +324,6 @@ char * strdup(const char *s) strcpy (new, s); return new; } -#endif char * strndup(const char *s, size_t n) { @@ -348,6 +347,7 @@ char * strndup(const char *s, size_t n) return new; } +#endif #ifndef __HAVE_ARCH_STRSPN /** From patchwork Sun Jan 12 19:06:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221847 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=hOhVIUCw; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmVv2222z9s4Y for ; Mon, 13 Jan 2020 06:09:43 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 315CA817FD; Sun, 12 Jan 2020 20:07:35 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="hOhVIUCw"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id A1D66804C1; Sun, 12 Jan 2020 20:07:20 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd44.google.com (mail-io1-xd44.google.com [IPv6:2607:f8b0:4864:20::d44]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id AAFF680E80 for ; Sun, 12 Jan 2020 20:07:17 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd44.google.com with SMTP id b10so7246672iof.11 for ; Sun, 12 Jan 2020 11:07:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pGiYHyDsikBCpvxMvqLio3Gy+K8h1L1PnK7RIxpYJac=; b=hOhVIUCwEmqm1K/xpL3pASBdx9EwsP4/EIbcN2DEiK6K4+i7tDCIg5ugqYrpB48yWN Wad7gIBApeZop83a68iTAeML1V7jDGkixEBz2rw4OXlYfKYPTV8Tr0BZ6wLsAJsGPIt1 52t7sLeaUA/DOX+0WsQ2/VtZPj7C+Cwe3AGMU= 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=pGiYHyDsikBCpvxMvqLio3Gy+K8h1L1PnK7RIxpYJac=; b=saisSHjxVFGFO2TI1WR1A1aBas6jBn8P8bp2nOJLTYAnHTidPQtwjRj2eSpu/8snEM rTqb1Nnr2FggpIYfHdFaTLK6f+n/JI4CxithQ6LlLHZslzOIvbDXpoukDrKoVxCx1gDZ P8yXm6KIgrRQKSUncWLukSCOT7QTzidf/kWXdHSaaKYyWjDNmtoa3t4spoYZAhC66ay5 rCwP2K8LnjvVzjMWSidpwVTnI4cn8QV4ogZ4udvBwjph5/wfJq1Gk7w/HMVMZiH379Bi Ba2LbibvpfWdPxDI4C3ozxQGvQ7jc1sm808su6Wkor3hrD+6m1vApmOSlpGLNQiBNiHS gohg== X-Gm-Message-State: APjAAAUebek0KXLSPi/hSoABNmAvme5VVpnpc2iLQy+RTRJ/zpRbeOgD aUYKxF0Ot3BXmH3HpQ08UBMmtopmdko= X-Google-Smtp-Source: APXvYqwH69gbaM3H8mlJGaTb3ORqBUPsp5/AfZ5LiaIypL8jFOuv1Qzgt0cYzVjqVxuQatIOIwZ6tw== X-Received: by 2002:a6b:6813:: with SMTP id d19mr10347559ioc.52.1578856036468; Sun, 12 Jan 2020 11:07:16 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:16 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 15/33] sandbox: Rename strdup() functions Date: Sun, 12 Jan 2020 12:06:06 -0700 Message-Id: <20200112120216.15.Ia17e6b1cf15e09c3ff420ce4023dfbe236e72658@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thierry Reding , Tom Warren Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean These functions include calls to a memory-allocation routine and so need to use the system routine when called from a library. To preserve access to these functions for libraries that need it, such as SDL, rename these functions within U-Boot. Signed-off-by: Simon Glass --- include/linux/string.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/linux/string.h b/include/linux/string.h index bb1d5ab07e..d67998e5c4 100644 --- a/include/linux/string.h +++ b/include/linux/string.h @@ -91,6 +91,11 @@ extern __kernel_size_t strnlen(const char *,__kernel_size_t); size_t strcspn(const char *s, const char *reject); #endif +#ifdef CONFIG_SANDBOX +# define strdup sandbox_strdup +# define strndup sandbox_strndup +#endif + #ifndef __HAVE_ARCH_STRDUP extern char * strdup(const char *); extern char * strndup(const char *, size_t); From patchwork Sun Jan 12 19:06:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221848 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=P97lZMxg; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmW543sBz9s4Y for ; Mon, 13 Jan 2020 06:09:53 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id B182E81807; Sun, 12 Jan 2020 20:07:37 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="P97lZMxg"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id A67E0817E1; Sun, 12 Jan 2020 20:07:22 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-il1-x143.google.com (mail-il1-x143.google.com [IPv6:2607:f8b0:4864:20::143]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 65E00817D1 for ; Sun, 12 Jan 2020 20:07:19 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x143.google.com with SMTP id v69so6042360ili.10 for ; Sun, 12 Jan 2020 11:07:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=v658X4GXNG/CZ+lQSyzuOR2J5qNgHJGfwmoHjRmmjSI=; b=P97lZMxgISJ4po3XLDpF3WPdLY+/pcGt/Yfw9ydBpVrFUMcOivIBjR7JIfHurzmsMj +hVAWnxQk3cUnh7wcwsla/ChL+wqiZPzsPXVDRkqj/DfjEH8XgfokoaKabknoyTYnKYv bEWZDX0i9vcO5+Y99CiimSfzoRwLbp8FSytwE= 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=v658X4GXNG/CZ+lQSyzuOR2J5qNgHJGfwmoHjRmmjSI=; b=MnggfBiLGwAdivn/rE0Mk4fETF6JW5VncqYVRwhTPbpUduhvKwH5zn3r7j6DLcOfcv PWABafZl92xYtTMLkNBCOqPMXN3YldrA6jtIF0PnoVtSeU2LLRn56emam6CmUgg1Kzvm sVDd+lMwPYGLMpcIpIbKONFih4QEkxXKwdCKHFtZToFjeyc7ImXenzDEFXQhWqNnyRFt MoPjjmBbcryKIuTy/lDwKjV8j6tX8CjxggLIOrpRMPIiTFuctOWrFuqKobrWTs13vI8a j4E7tUskxiJtorzf2jS8VsaXgvAGJMgQTn70ChD4Nvhw4dCY6LjwPjTuU+FQVJ4E9mdR pQZA== X-Gm-Message-State: APjAAAWpx8yixM/E+1Dy7k+kJ85PrYKOcTSlayHktFEN8ra9jLwSQMqM zL+tY2NXTG5Cae2LMjdgwxdQKO1pIq8= X-Google-Smtp-Source: APXvYqzxH8G/s31ojcAMSFDw8trCtcvXE9UteyKVhJHlma/zCSiHa1jgYJXvEtAy4NmzxajbR/lNyg== X-Received: by 2002:a92:906:: with SMTP id y6mr11642707ilg.157.1578856038205; Sun, 12 Jan 2020 11:07:18 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:17 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 16/33] sandbox: Drop use of special os_malloc() where possible Date: Sun, 12 Jan 2020 12:06:07 -0700 Message-Id: <20200112120216.16.Id8ef45dcbb337700fe452f6bf9e9ff3a15bcdb12@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Heinrich Schuchardt Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean Some sandbox files are not built with U-Boot headers, so with the renamed malloc functions there is now no need to use the special os_... allocation functions to access the system routines. Instead we can just call them directly. Update the affected files accordingly. Signed-off-by: Simon Glass --- arch/sandbox/cpu/eth-raw-os.c | 6 +++--- arch/sandbox/cpu/os.c | 24 ++++++++++++------------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/arch/sandbox/cpu/eth-raw-os.c b/arch/sandbox/cpu/eth-raw-os.c index 8d05bc2eda..da01d1addf 100644 --- a/arch/sandbox/cpu/eth-raw-os.c +++ b/arch/sandbox/cpu/eth-raw-os.c @@ -74,7 +74,7 @@ static int _raw_packet_start(struct eth_sandbox_raw_priv *priv, /* Prepare device struct */ priv->local_bind_sd = -1; - priv->device = os_malloc(sizeof(struct sockaddr_ll)); + priv->device = malloc(sizeof(struct sockaddr_ll)); if (priv->device == NULL) return -ENOMEM; device = priv->device; @@ -147,7 +147,7 @@ static int _local_inet_start(struct eth_sandbox_raw_priv *priv) /* Prepare device struct */ priv->local_bind_sd = -1; priv->local_bind_udp_port = 0; - priv->device = os_malloc(sizeof(struct sockaddr_in)); + priv->device = malloc(sizeof(struct sockaddr_in)); if (priv->device == NULL) return -ENOMEM; device = priv->device; @@ -282,7 +282,7 @@ int sandbox_eth_raw_os_recv(void *packet, int *length, void sandbox_eth_raw_os_stop(struct eth_sandbox_raw_priv *priv) { - os_free(priv->device); + free(priv->device); priv->device = NULL; close(priv->sd); priv->sd = -1; diff --git a/arch/sandbox/cpu/os.c b/arch/sandbox/cpu/os.c index 79094fb7f3..d5e5b561b6 100644 --- a/arch/sandbox/cpu/os.c +++ b/arch/sandbox/cpu/os.c @@ -137,7 +137,7 @@ int os_read_file(const char *fname, void **bufp, int *sizep) printf("Cannot seek to start of file '%s'\n", fname); goto err; } - *bufp = os_malloc(size); + *bufp = malloc(size); if (!*bufp) { printf("Not enough memory to read file '%s'\n", fname); ret = -ENOMEM; @@ -306,8 +306,8 @@ int os_parse_args(struct sandbox_state *state, int argc, char *argv[]) state->argv = argv; /* dynamically construct the arguments to the system getopt_long */ - short_opts = os_malloc(sizeof(*short_opts) * num_options * 2 + 1); - long_opts = os_malloc(sizeof(*long_opts) * num_options); + short_opts = malloc(sizeof(*short_opts) * num_options * 2 + 1); + long_opts = malloc(sizeof(*long_opts) * num_options); if (!short_opts || !long_opts) return 1; @@ -385,7 +385,7 @@ void os_dirent_free(struct os_dirent_node *node) while (node) { next = node->next; - os_free(node); + free(node); node = next; } } @@ -410,7 +410,7 @@ int os_dirent_ls(const char *dirname, struct os_dirent_node **headp) /* Create a buffer upfront, with typically sufficient size */ dirlen = strlen(dirname) + 2; len = dirlen + 256; - fname = os_malloc(len); + fname = malloc(len); if (!fname) { ret = -ENOMEM; goto done; @@ -423,7 +423,7 @@ int os_dirent_ls(const char *dirname, struct os_dirent_node **headp) ret = errno; break; } - next = os_malloc(sizeof(*node) + strlen(entry->d_name) + 1); + next = malloc(sizeof(*node) + strlen(entry->d_name) + 1); if (!next) { os_dirent_free(head); ret = -ENOMEM; @@ -432,10 +432,10 @@ int os_dirent_ls(const char *dirname, struct os_dirent_node **headp) if (dirlen + strlen(entry->d_name) > len) { len = dirlen + strlen(entry->d_name); old_fname = fname; - fname = os_realloc(fname, len); + fname = realloc(fname, len); if (!fname) { - os_free(old_fname); - os_free(next); + free(old_fname); + free(next); os_dirent_free(head); ret = -ENOMEM; goto done; @@ -469,7 +469,7 @@ int os_dirent_ls(const char *dirname, struct os_dirent_node **headp) done: closedir(dir); - os_free(fname); + free(fname); return ret; } @@ -586,7 +586,7 @@ static int add_args(char ***argvp, char *add_args[], int count) for (argc = 0; (*argvp)[argc]; argc++) ; - argv = os_malloc((argc + count + 1) * sizeof(char *)); + argv = malloc((argc + count + 1) * sizeof(char *)); if (!argv) { printf("Out of memory for %d argv\n", count); return -ENOMEM; @@ -669,7 +669,7 @@ static int os_jump_to_file(const char *fname) os_exit(2); err = execv(fname, argv); - os_free(argv); + free(argv); if (err) { perror("Unable to run image"); printf("Image filename '%s'\n", fname); From patchwork Sun Jan 12 19:06:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221849 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=OiWxipoH; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmWG4Y9lz9s4Y for ; Mon, 13 Jan 2020 06:10:02 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id EC31281810; Sun, 12 Jan 2020 20:07:39 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="OiWxipoH"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 2D5CE817E4; Sun, 12 Jan 2020 20:07:24 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-il1-x142.google.com (mail-il1-x142.google.com [IPv6:2607:f8b0:4864:20::142]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 12E0E804C1 for ; Sun, 12 Jan 2020 20:07:21 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x142.google.com with SMTP id c4so6057489ilo.7 for ; Sun, 12 Jan 2020 11:07:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6EYaTjAE64w8mvdR0XfFCfDMwmj6XX69/XbntLh64fc=; b=OiWxipoH0N8qIKENnB5McNxYoAlG0PjFT1qmLA4aCUWW/Tv9G1xODxesuqPy+e7QCX LiSp0KAFdkAyBSL1l1J6ersIQoaF1NAkJPAD85OvNiTS5LRMnvd2az+h+h2pub72ArQ4 NmaTcKDA8gp4H1MQUgchzvCoNB5RaHknSFwDg= 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=6EYaTjAE64w8mvdR0XfFCfDMwmj6XX69/XbntLh64fc=; b=gwRevxUWBHRU2If4oVpa+O7xb1C2KCA1yOdlsmrQce2ge+CxN3CEgw77k6983LS+WZ BhkZmZefU72B7vFIYmOuCkM6OegnXkmnUzZRBNVrqGyDfIL5aSOcI2BpM8d+RFOS0kK/ m/7pjpuDZsKTjlzJBuxKtGJ87ZkzG63MOmEr5VPlEsBEUGv6vu2xvgFoe9LUyHeZ/6zO GIun31xRX8zR72lUOwF2pbULBBq33bB8hfD9dNFdF29vra56mkC0EsQotROIYey+C7P+ vgkN7hWwMmzOjB3RyACGSitkxTp/8zyGtkcbaouhv0otsm6YBFSDKquBx45fgrjC5Jdc QEJA== X-Gm-Message-State: APjAAAXiATHvTjVSND99nKXJOiiTXzTAfXoUcDHd2g9iIlIlLJSeKTfE /eaiZM7E9gYBs9CsO+iBEEKl4g1UeAM= X-Google-Smtp-Source: APXvYqyHOsWnIFTbnaqTN0ZT7Kx1iYWXU1kjkM9/296q8xinyhGz0bJFzIsnPVsJzrXi47bbor22Pw== X-Received: by 2002:a92:2804:: with SMTP id l4mr11717667ilf.136.1578856039865; Sun, 12 Jan 2020 11:07:19 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:19 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 17/33] sandbox: Drop os_realloc() Date: Sun, 12 Jan 2020 12:06:08 -0700 Message-Id: <20200112120216.17.Id99b268986b5d9470d1932ae752c857d52c9b123@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Heinrich Schuchardt Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean Due to recent changes this function is no-longer used. Drop it. Signed-off-by: Simon Glass --- arch/sandbox/cpu/os.c | 23 ----------------------- include/os.h | 22 +--------------------- 2 files changed, 1 insertion(+), 44 deletions(-) diff --git a/arch/sandbox/cpu/os.c b/arch/sandbox/cpu/os.c index d5e5b561b6..60011f7abc 100644 --- a/arch/sandbox/cpu/os.c +++ b/arch/sandbox/cpu/os.c @@ -238,29 +238,6 @@ void os_free(void *ptr) } } -void *os_realloc(void *ptr, size_t length) -{ - int page_size = getpagesize(); - struct os_mem_hdr *hdr; - void *buf = NULL; - - if (length) { - buf = os_malloc(length); - if (!buf) - return buf; - if (ptr) { - hdr = ptr - page_size; - if (length > hdr->length) - length = hdr->length; - memcpy(buf, ptr, length); - } - } - if (ptr) - os_free(ptr); - - return buf; -} - void os_usleep(unsigned long usec) { usleep(usec); diff --git a/include/os.h b/include/os.h index 7a4f78b9b1..1874ae674f 100644 --- a/include/os.h +++ b/include/os.h @@ -119,7 +119,7 @@ void os_fd_restore(void); void *os_malloc(size_t length); /** - * Free memory previous allocated with os_malloc()/os_realloc() + * Free memory previous allocated with os_malloc() * * This returns the memory to the OS. * @@ -127,26 +127,6 @@ void *os_malloc(size_t length); */ void os_free(void *ptr); -/** - * Reallocate previously-allocated memory to increase/decrease space - * - * This works in a similar way to the C library realloc() function. If - * length is 0, then ptr is freed. Otherwise the space used by ptr is - * expanded or reduced depending on whether length is larger or smaller - * than before. - * - * If ptr is NULL, then this is similar to calling os_malloc(). - * - * This function may need to move the memory block to make room for any - * extra space, in which case the new pointer is returned. - * - * \param ptr Pointer to memory block to reallocate - * \param length New length for memory block - * \return pointer to new memory block, or NULL on failure or if length - * is 0. - */ -void *os_realloc(void *ptr, size_t length); - /** * Access to the usleep function of the os * From patchwork Sun Jan 12 19:06:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221850 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=jH/nHfnk; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmWS03bQz9s4Y for ; Mon, 13 Jan 2020 06:10:11 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id B70D081812; Sun, 12 Jan 2020 20:07:41 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="jH/nHfnk"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id D71E5817EA; Sun, 12 Jan 2020 20:07:25 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd44.google.com (mail-io1-xd44.google.com [IPv6:2607:f8b0:4864:20::d44]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id B610080E80 for ; Sun, 12 Jan 2020 20:07:22 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd44.google.com with SMTP id z193so7293187iof.1 for ; Sun, 12 Jan 2020 11:07:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=XePbMqDh2DJ1L9vTE/O0Bwdr7QD1l8GTIHz72CAAY7k=; b=jH/nHfnkfC78VR+LhejSo8zVcf28S9dbnWKv3biGorogCd0zZiSaajtNSpDQjQ013M pwn/Z3r/JWZD2cUrq03veGH4/F5K7Ffx5s7CUvHgSh5FCfUM1ljoYvn31isVpwG0nTuP gtYULVdBrSQuJtat/oVULxm8svbh8yBqPnmkM= 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=XePbMqDh2DJ1L9vTE/O0Bwdr7QD1l8GTIHz72CAAY7k=; b=qXWBg0OMwY3nt4gPAqQUSAKOITrZURd2rxVXs1DIuRCaJ54jpRccVr+cbScX2Qivv/ OeVMSS+m0b1ceQuP1PC3WvEbNzvn+bwkETMfbRlDhBsOf29/XuB1lIASBS6zQqZHR9GK oDoHsEqfNVWtcqAD4s1UM8c8AbeobKJtjzFbSGBtnRAQYFTfv9uBe35HPybRghugGpgp 0MGrkCK+9CoJJc+Kg4CIXPcD65MXx+9uPUW5ifZujWtt2M5muKtmipvaKNbOIXbra+wz F0S6cIToiMDO7S0k6HMa/ArKvBu5VILz3ftrPZk8SVir35xaaXHcXCUulMaIfo6jxAwJ ti8A== X-Gm-Message-State: APjAAAV1ZsWT9ES+jKfgUPAHopHaJR5bpy/ZdUMjcBaknQ0oPy3IdWh2 RRP9N+6q0+n2yGedgt396e69pueiNKM= X-Google-Smtp-Source: APXvYqwZ7ItDwq4vDC1wEq9gNVR07HSYAjPNAykF1H7u18Y3uIhGdj8S3u3H6ArNCWNcQdYiHLUcTA== X-Received: by 2002:a02:6515:: with SMTP id u21mr11146166jab.82.1578856041619; Sun, 12 Jan 2020 11:07:21 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:21 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 18/33] sandbox: Ensure that long-options array is terminated Date: Sun, 12 Jan 2020 12:06:09 -0700 Message-Id: <20200112120216.18.I6168badb553fa92db60d2539b78087eac6dfc68e@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Heinrich Schuchardt Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean The last member of this array is supposed to be all zeroes according to the getopt_long() man page. Fix the function to do this. Signed-off-by: Simon Glass --- arch/sandbox/cpu/os.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/sandbox/cpu/os.c b/arch/sandbox/cpu/os.c index 60011f7abc..f7c73e3a0b 100644 --- a/arch/sandbox/cpu/os.c +++ b/arch/sandbox/cpu/os.c @@ -284,7 +284,7 @@ int os_parse_args(struct sandbox_state *state, int argc, char *argv[]) /* dynamically construct the arguments to the system getopt_long */ short_opts = malloc(sizeof(*short_opts) * num_options * 2 + 1); - long_opts = malloc(sizeof(*long_opts) * num_options); + long_opts = malloc(sizeof(*long_opts) * (num_options + 1)); if (!short_opts || !long_opts) return 1; @@ -314,6 +314,7 @@ int os_parse_args(struct sandbox_state *state, int argc, char *argv[]) /* we need to handle output ourselves since u-boot provides printf */ opterr = 0; + memset(&long_opts[num_options], '\0', sizeof(*long_opts)); /* * walk all of the options the user gave us on the command line, * figure out what u-boot option structure they belong to (via From patchwork Sun Jan 12 19:06:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221851 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=O43P4B8K; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmWd6fJrz9s4Y for ; Mon, 13 Jan 2020 06:10:21 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id B4FD481801; Sun, 12 Jan 2020 20:07:43 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="O43P4B8K"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id F33CF817EE; Sun, 12 Jan 2020 20:07:27 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-il1-x144.google.com (mail-il1-x144.google.com [IPv6:2607:f8b0:4864:20::144]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id B0328804C1 for ; Sun, 12 Jan 2020 20:07:24 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x144.google.com with SMTP id p8so6024525iln.12 for ; Sun, 12 Jan 2020 11:07:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MXCegH5hMGcpyV6+gF4VPQT45m6WqkdFOQH9bvISgeE=; b=O43P4B8KBZTMk6C3rJCWwoozM7iz28cWyPot4iDyV3BoyLMIoNN1ZEdkZiMznT9HxC VmQrHqxbvtKD8j4ReZ4yw2pzcn7bYuNdVy4X1KlPlR31TrAzEL4huHWRmgHkxdH+032l +i0cgrVXiXbrF6LJNCbU+0tyUfvQbO+YntaGw= 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=MXCegH5hMGcpyV6+gF4VPQT45m6WqkdFOQH9bvISgeE=; b=pSRldcdbsLn14qUiQZOWFL9azRpK8sPTk4a9MuT+JhgIawUneafxTHiRX3MBr2j5Ps Fme+vKUwGAYfpzvUiOA/tvGLPsUGCkBZTeU8QR/JSzGbTh7Xkfd26Q8JPz39YtKNVYrR bF0nED+ISnTAflreSqm+QQu/xhpM/WXMGJZ6idvjhSduQTxwacoRp4mM54xcjd885Uc7 kn3338QsqKdoRi9yc3bnE13Ybrxvd34r8rSvuRG41aGraY+ek53sb4jcvYSNT+1l0qLC fCxfb8/0oci4XA6zjbvT5BeJv4VgNvPLrjIfHwJBmR+SLcNTXxSaxXDDErzHomdacwTv fHQA== X-Gm-Message-State: APjAAAXixE3LDI2wRu641v3TcRPo40QPyNhstNQwC1SwBi8mhYIJKdIA aCIRzk7ggEuDzzWS38HXzO7A6bKFhto= X-Google-Smtp-Source: APXvYqxevjh8sf348suO1l8oQ8u8GnOb4XMqaGGgxCvNbUdUkvuOhbPJn3e9tRU36+vGpmfDsDTsJg== X-Received: by 2002:a92:35d0:: with SMTP id c77mr11162450ilf.94.1578856043479; Sun, 12 Jan 2020 11:07:23 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:23 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 19/33] sandbox: Add a new header for the system malloc() Date: Sun, 12 Jan 2020 12:06:10 -0700 Message-Id: <20200112120216.19.Ic9d6fd1bdc56d67194a9e7ea252bb9c81ec59ec4@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean Some files use U-Boot headers but still need to access the system malloc(). Allow this by creating a new asm/malloc.h which can be used so long as U-Boot's malloc.h has not been included. Signed-off-by: Simon Glass --- arch/sandbox/cpu/start.c | 6 +++--- arch/sandbox/cpu/state.c | 17 +++++++++-------- arch/sandbox/include/asm/malloc.h | 26 ++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 11 deletions(-) create mode 100644 arch/sandbox/include/asm/malloc.h diff --git a/arch/sandbox/cpu/start.c b/arch/sandbox/cpu/start.c index d3ce61856e..fa53428436 100644 --- a/arch/sandbox/cpu/start.c +++ b/arch/sandbox/cpu/start.c @@ -8,10 +8,10 @@ #include #include #include -#include #include #include #include +#include #include #include #include @@ -181,7 +181,7 @@ static int sandbox_cmdline_cb_default_fdt(struct sandbox_state *state, int len; len = strlen(state->argv[0]) + strlen(fmt) + 1; - fname = os_malloc(len); + fname = malloc(len); if (!fname) return -ENOMEM; snprintf(fname, len, fmt, state->argv[0]); @@ -201,7 +201,7 @@ static int sandbox_cmdline_cb_test_fdt(struct sandbox_state *state, int len; len = strlen(state->argv[0]) + strlen(fmt) + 1; - fname = os_malloc(len); + fname = malloc(len); if (!fname) return -ENOMEM; strcpy(fname, state->argv[0]); diff --git a/arch/sandbox/cpu/state.c b/arch/sandbox/cpu/state.c index ef2e63f37a..a347cec528 100644 --- a/arch/sandbox/cpu/state.c +++ b/arch/sandbox/cpu/state.c @@ -7,6 +7,7 @@ #include #include #include +#include #include /* Main state record for the sandbox */ @@ -27,17 +28,17 @@ static int state_ensure_space(int extra_size) return 0; size = used + extra_size; - buf = os_malloc(size); + buf = malloc(size); if (!buf) return -ENOMEM; ret = fdt_open_into(blob, buf, size); if (ret) { - os_free(buf); + free(buf); return -EIO; } - os_free(blob); + free(blob); state->state_fdt = buf; return 0; } @@ -53,7 +54,7 @@ static int state_read_file(struct sandbox_state *state, const char *fname) printf("Cannot find sandbox state file '%s'\n", fname); return -ENOENT; } - state->state_fdt = os_malloc(size); + state->state_fdt = malloc(size); if (!state->state_fdt) { puts("No memory to read sandbox state\n"); return -ENOMEM; @@ -75,7 +76,7 @@ static int state_read_file(struct sandbox_state *state, const char *fname) err_read: os_close(fd); err_open: - os_free(state->state_fdt); + free(state->state_fdt); state->state_fdt = NULL; return ret; @@ -242,7 +243,7 @@ int sandbox_write_state(struct sandbox_state *state, const char *fname) /* Create a state FDT if we don't have one */ if (!state->state_fdt) { size = 0x4000; - state->state_fdt = os_malloc(size); + state->state_fdt = malloc(size); if (!state->state_fdt) { puts("No memory to create FDT\n"); return -ENOMEM; @@ -300,7 +301,7 @@ int sandbox_write_state(struct sandbox_state *state, const char *fname) err_write: os_close(fd); err_create: - os_free(state->state_fdt); + free(state->state_fdt); return ret; } @@ -418,7 +419,7 @@ int state_uninit(void) os_unlink(state->jumped_fname); if (state->state_fdt) - os_free(state->state_fdt); + free(state->state_fdt); memset(state, '\0', sizeof(*state)); return 0; diff --git a/arch/sandbox/include/asm/malloc.h b/arch/sandbox/include/asm/malloc.h new file mode 100644 index 0000000000..a1467b5ead --- /dev/null +++ b/arch/sandbox/include/asm/malloc.h @@ -0,0 +1,26 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Sandbox access to system malloc (i.e. not U-Boot's) + * + * Copyright 2020 Google LLC + */ + +#ifndef __ASM_MALLOC_H + +void *malloc(size_t size); +void free(void *ptr); +void *calloc(size_t nmemb, size_t size); +void *realloc(void *ptr, size_t size); +void *reallocarray(void *ptr, size_t nmemb, size_t size); + +/* + * This header allows calling the system allocation routines. It makes no + * sense to also include U-Boot's malloc.h since that redfines malloc to + * have a 'dl' prefix. These two implementations cannot be mixed and matched + * in the same file. + */ +#ifdef __MALLOC_H__ +#error "This sandbox header file cannot be included with malloc.h" +#endif + +#endif From patchwork Sun Jan 12 19:06:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221852 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=Ru20t4Fz; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmWq4T9xz9s4Y for ; Mon, 13 Jan 2020 06:10:31 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 64AE181815; Sun, 12 Jan 2020 20:07:46 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="Ru20t4Fz"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id F236E817E5; Sun, 12 Jan 2020 20:07:29 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd42.google.com (mail-io1-xd42.google.com [IPv6:2607:f8b0:4864:20::d42]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 97F23817ED for ; Sun, 12 Jan 2020 20:07:26 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd42.google.com with SMTP id b10so7246917iof.11 for ; Sun, 12 Jan 2020 11:07:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=aDJzVmW53obFzAXK1A0QSc4hPcx9+Zm0/8Gxan06CFc=; b=Ru20t4Fzb+kH2L+wvdDcViII0RFXDgso6GR6o5C2kx+uFdTZymq7JME5nVBO+uWMA7 d2G+jiVj14cb4I6YMJIyyFSXevw6cmMy5eI556LdWDFEQUalFUlJI1+e9vQ/TvLnTxRD BiCHY/rCfsLwo/Wgk6kLHGhtyO1Y9F4O5avLk= 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=aDJzVmW53obFzAXK1A0QSc4hPcx9+Zm0/8Gxan06CFc=; b=PVdJiMyrpDoGiYS0t2zV+ipfYT8jahE2BoQ/gPXHBcj5g1GYKT28I0scc9kY/4YsQn XLA2vciSsTihUS84ig43Vp+qA/VsYm3AyF+buyZceYDJwEvYpUVLrN6jQu5uHHrcu3Gx FYg65mj1/V7wZ5LfIUYrrkT7mXpes/dapDGPXlCCNxeyEV5zIvZjgqGrFE4CT/A+KOR4 kFA28Mk+wyIQ3DncAQPHkKEjr9NmgtsHz2GEkrp2Qs47u9ZsUOA8zyWHMbRsOu7F0pA4 recQNPEukE00Vpb763FUTX5e87KyeWL9Q7Tm+HqR8049gQEb07vk97rNwxoN4FAPg0r7 PuTg== X-Gm-Message-State: APjAAAUN8MVrFmcCFa6DWBdX4KGdlK5HLzaMP6Psf8z97Zsvu9iTRNgv YqBx1SKS55Rm3tcU6CuB4SupJDrNOB0= X-Google-Smtp-Source: APXvYqyCsyUVxVr0apcVft0MbiVt7DcruheHwCwc+K6gtzb5g3uBsGhnuHratjZnRPEGcio01MAvUg== X-Received: by 2002:a05:6638:2b7:: with SMTP id d23mr11172879jaq.108.1578856045348; Sun, 12 Jan 2020 11:07:25 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:25 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 20/33] sound: Add a new stop_play() method Date: Sun, 12 Jan 2020 12:06:11 -0700 Message-Id: <20200112120216.20.Idee00db432aa6168b0a13fa31b073708ace5ae29@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Ramon Fried Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean At present there is no positive indication that U-Boot has finished sending sound data. This means that it is not possible to power down an audio codec, for example. Add a new method that is called once all sound data has been sent. Add a new method for this, called when the sound_play() call is done. Signed-off-by: Simon Glass --- arch/sandbox/include/asm/test.h | 7 +++++++ drivers/sound/sandbox.c | 21 ++++++++++++++++++++- drivers/sound/sound-uclass.c | 11 +++++++++++ include/sound.h | 12 ++++++++++++ test/dm/sound.c | 1 + 5 files changed, 51 insertions(+), 1 deletion(-) diff --git a/arch/sandbox/include/asm/test.h b/arch/sandbox/include/asm/test.h index 2421922c9e..92ff494453 100644 --- a/arch/sandbox/include/asm/test.h +++ b/arch/sandbox/include/asm/test.h @@ -165,6 +165,13 @@ int sandbox_get_i2s_sum(struct udevice *dev); */ int sandbox_get_setup_called(struct udevice *dev); +/** + * sandbox_get_sound_active() - Returns whether sound play is in progress + * + * @return true if active, false if not + */ +int sandbox_get_sound_active(struct udevice *dev); + /** * sandbox_get_sound_sum() - Read back the sum of the sound data so far * diff --git a/drivers/sound/sandbox.c b/drivers/sound/sandbox.c index 363c687baf..9034a8385a 100644 --- a/drivers/sound/sandbox.c +++ b/drivers/sound/sandbox.c @@ -26,7 +26,8 @@ struct sandbox_i2s_priv { }; struct sandbox_sound_priv { - int setup_called; + int setup_called; /* Incremented when setup() method is called */ + bool active; /* TX data is being sent */ int sum; /* Use to sum the provided audio data */ bool allow_beep; /* true to allow the start_beep() interface */ int frequency_hz; /* Beep frequency if active, else 0 */ @@ -59,6 +60,13 @@ int sandbox_get_setup_called(struct udevice *dev) return priv->setup_called; } +int sandbox_get_sound_active(struct udevice *dev) +{ + struct sandbox_sound_priv *priv = dev_get_priv(dev); + + return priv->active; +} + int sandbox_get_sound_sum(struct udevice *dev) { struct sandbox_sound_priv *priv = dev_get_priv(dev); @@ -163,6 +171,16 @@ static int sandbox_sound_play(struct udevice *dev, void *data, uint data_size) return i2s_tx_data(uc_priv->i2s, data, data_size); } +static int sandbox_sound_stop_play(struct udevice *dev) +{ + struct sandbox_sound_priv *priv = dev_get_priv(dev); + + sandbox_sdl_sound_stop(); + priv->active = false; + + return 0; +} + int sandbox_sound_start_beep(struct udevice *dev, int frequency_hz) { struct sandbox_sound_priv *priv = dev_get_priv(dev); @@ -228,6 +246,7 @@ U_BOOT_DRIVER(sandbox_i2s) = { static const struct sound_ops sandbox_sound_ops = { .setup = sandbox_sound_setup, .play = sandbox_sound_play, + .stop_play = sandbox_sound_stop_play, .start_beep = sandbox_sound_start_beep, .stop_beep = sandbox_sound_stop_beep, }; diff --git a/drivers/sound/sound-uclass.c b/drivers/sound/sound-uclass.c index d49f29bcd5..c213472d60 100644 --- a/drivers/sound/sound-uclass.c +++ b/drivers/sound/sound-uclass.c @@ -31,6 +31,16 @@ int sound_play(struct udevice *dev, void *data, uint data_size) return ops->play(dev, data, data_size); } +int sound_stop_play(struct udevice *dev) +{ + struct sound_ops *ops = sound_get_ops(dev); + + if (!ops->play) + return -ENOSYS; + + return ops->stop_play(dev); +} + int sound_start_beep(struct udevice *dev, int frequency_hz) { struct sound_ops *ops = sound_get_ops(dev); @@ -97,6 +107,7 @@ int sound_beep(struct udevice *dev, int msecs, int frequency_hz) ret = sound_play(dev, data, size); } + sound_stop_play(dev); free(data); diff --git a/include/sound.h b/include/sound.h index 47de9fa3ed..71bd850652 100644 --- a/include/sound.h +++ b/include/sound.h @@ -68,6 +68,18 @@ struct sound_ops { */ int (*play)(struct udevice *dev, void *data, uint data_size); + /** + * stop_play() - Indicate that there is no more data coming + * + * This is called once play() has finished sending all the data to the + * output device. This may be used to tell the hardware to turn off the + * codec, for example. + * + * @dev: Sound device + * @return 0 if OK, -ve on error + */ + int (*stop_play)(struct udevice *dev); + /** * start_beep() - Start beeping (optional) * diff --git a/test/dm/sound.c b/test/dm/sound.c index 3767abbd1c..aa5368f05b 100644 --- a/test/dm/sound.c +++ b/test/dm/sound.c @@ -28,6 +28,7 @@ static int dm_test_sound(struct unit_test_state *uts) ut_asserteq(4560, sandbox_get_sound_sum(dev)); ut_assertok(sound_beep(dev, 1, 100)); ut_asserteq(9120, sandbox_get_sound_sum(dev)); + ut_asserteq(false, sandbox_get_sound_active(dev)); return 0; } From patchwork Sun Jan 12 19:06:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221853 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=fTcP8/aO; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmX144Frz9s4Y for ; Mon, 13 Jan 2020 06:10:41 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id E7EF281821; Sun, 12 Jan 2020 20:07:48 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="fTcP8/aO"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id D2981817E8; Sun, 12 Jan 2020 20:07:30 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd43.google.com (mail-io1-xd43.google.com [IPv6:2607:f8b0:4864:20::d43]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 0A944804C1 for ; Sun, 12 Jan 2020 20:07:28 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd43.google.com with SMTP id b10so7246951iof.11 for ; Sun, 12 Jan 2020 11:07:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=fYUg8p5hlkO0pbM98HYh4/DeGc1oskvZ1HrFXt/U91g=; b=fTcP8/aOZoDbKa5/GaqBObrRHRBYph8SLbq1nTBhTOLqwk9S/lQTJuR2J4uh+5GRPc Bnn3aieZhX5Ku00jcg7zNgnG626tzaRyeheLAkhFs1qnVbLAivX3kNXUrWH6uCPVNPNk 73Vf7fK0JXE6wXyCBrAGNkLtswAwLjUfDN4Ho= 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=fYUg8p5hlkO0pbM98HYh4/DeGc1oskvZ1HrFXt/U91g=; b=BLtf/Gpe+3oWPJMdl1DIHt4BjzZbaZMmUvcgnZZGYSyORt9zTkLHctBuuSBW0qKmkm RYX4MSNdvpJV9Op4jnJBpEvXsLYYPv1xK7FlifWw4V+bxY63ZCJlN0/3YsjLXmc8P8Fp IUR0y66GUjqFmpsQoTCG2ul+bSD+S9/XpDZzNKqv+SQkah1s64DaMwNZU7QRBsGU1WYY 9AmmeXQ5f4z5MmeuZ/0klfh4y3/3A7rjeP5RiUHlK7D3eHc9ifnFr/KUf/z3uda7dYbT MjmT/VWBrQmVGxkWOfhzE66UaWArYmyomlfQveayNWGnT31Ncl3ST2WFDiZFXaOivhur gz/A== X-Gm-Message-State: APjAAAXlewGyr2wSW/5Xa8EQlXJD+k/mx9cJ9LSNeSupxAtgg33CJYTh 20QReH8agRNCyp1ktg9CYvjx0o6ooU8= X-Google-Smtp-Source: APXvYqwFAw2uYUA3s7JsX4geuwV6sJrNshVfTf7Xv96hh67LhSpQGgVPIINmaxek8JKc9KgXlrfhQw== X-Received: by 2002:a05:6638:21a:: with SMTP id e26mr7689885jaq.53.1578856046852; Sun, 12 Jan 2020 11:07:26 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:26 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 21/33] sandbox: sound: Handle errors better in sound_beep() Date: Sun, 12 Jan 2020 12:06:12 -0700 Message-Id: <20200112120216.21.I1b9a34b646b3a92f9b3c31b01af1ecdb1f6757cd@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean At present an error does not stop the sound-output loop. This is incorrect since nothing can be gained by trying to continue. Fix it. Signed-off-by: Simon Glass --- drivers/sound/sound-uclass.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/sound/sound-uclass.c b/drivers/sound/sound-uclass.c index c213472d60..bada0c2ba5 100644 --- a/drivers/sound/sound-uclass.c +++ b/drivers/sound/sound-uclass.c @@ -97,11 +97,14 @@ int sound_beep(struct udevice *dev, int msecs, int frequency_hz) sound_create_square_wave(i2s_uc_priv->samplingrate, data, data_size, frequency_hz, i2s_uc_priv->channels); + ret = 0; while (msecs >= 1000) { ret = sound_play(dev, data, data_size); + if (ret) + break; msecs -= 1000; } - if (msecs) { + if (!ret && msecs) { unsigned long size = (data_size * msecs) / (sizeof(int) * 1000); From patchwork Sun Jan 12 19:06:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221854 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=YU0RptJv; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmXC244Lz9s4Y for ; Mon, 13 Jan 2020 06:10:51 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 942FC81813; Sun, 12 Jan 2020 20:07:50 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="YU0RptJv"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 6CA69817F3; Sun, 12 Jan 2020 20:07:32 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd44.google.com (mail-io1-xd44.google.com [IPv6:2607:f8b0:4864:20::d44]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 9DFA8817E7 for ; Sun, 12 Jan 2020 20:07:29 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd44.google.com with SMTP id z8so7300463ioh.0 for ; Sun, 12 Jan 2020 11:07:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=TxCZfg+rIUTOU6zmZigQMM6xXjj2A+uQuItTj8UGqiw=; b=YU0RptJvRGk+w/TGPHpK0Nl/WojYBczrriYU7E3rT/br7S3RFbdwC2xWBMja1Fzt64 Yezwg0qIa9Y1mLM1djS0pBu3tlwGEM62DKpTm8PLimjzhGKjCxuH/0K2VZF3L7x/KNCb o+eWVqEuQoKnD+7y4LvZ0SJ8gIqqCYjV8dbgQ= 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=TxCZfg+rIUTOU6zmZigQMM6xXjj2A+uQuItTj8UGqiw=; b=DFlx9J4yVsq2ZaSsd3j72THyn05vfUMpipW7xcADNKatjlZiEWbYgil/NsF1BpdwBh FoEi2BKaQW4IT3MBbkGkWa0xud3llEe3GDeoA6eUUHL+9JErXg7HSx54xdLUCeW4t3vR DtFGyi3bTMhQ7Xaz1lxhcXN0GhOExlULS8xBjLCvEdpiLCQvN0VjqiEnaOrTy9LlYXP3 Sb/jQLxq7iJ//Dh70AaYqrVuoCICwYRlv+8KHj7wkhWYFtrdvVjoU16o0wk2cW10Z4R2 pvbG5DSC3FsuAH0XEJ8Kki0ZabVNbvnXZ4lGF09VqGxKxoZgF+0285boK8bJcpjXX4cI RKaA== X-Gm-Message-State: APjAAAVnWJWf/xviOjyClnvte37O44XMGd8JxeBx1qbuWVdJg4HRXhgj JK0KohRq19bXX+mHN8bfXEIQMBlxHew= X-Google-Smtp-Source: APXvYqw67Fquze1XHxOmiTNFnunLHpY+U2A6xEQVPXlAKHlEUxx9EwibDgZ50G3lpIxo6rhguGjtJg== X-Received: by 2002:a5d:8846:: with SMTP id t6mr9393902ios.63.1578856048453; Sun, 12 Jan 2020 11:07:28 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:28 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 22/33] sandbox: Add comments to the sdl struct Date: Sun, 12 Jan 2020 12:06:13 -0700 Message-Id: <20200112120216.22.Ib275349d701bdd14d118eddbced5f5d44fe8fbfe@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean Add comments for each struct member. Drop frequency since it is not used. Signed-off-by: Simon Glass --- arch/sandbox/cpu/sdl.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/arch/sandbox/cpu/sdl.c b/arch/sandbox/cpu/sdl.c index 080c7c8d74..dad059f257 100644 --- a/arch/sandbox/cpu/sdl.c +++ b/arch/sandbox/cpu/sdl.c @@ -24,13 +24,28 @@ struct buf_info { uint8_t *data; }; +/** + * struct sdl_info - Information about our use of the SDL library + * + * @screen: Surface used to draw on the screen + * @width: Width of simulated LCD display + * @height: Height of simulated LCD display + * @depth: Depth of the display in bits per pixel (16 or 32) + * @pitch: Number of bytes per line of the display + * @sample_rate: Current sample rate for audio + * @audio_active: true if audio can be used + * @inited: true if this module is initialised + * @cur_buf: Current audio buffer being used by sandbox_sdl_fill_audio (0 or 1) + * @buf: The two available audio buffers. SDL can be reading from one while we + * are setting up the next + * @running: true if audio is running + */ static struct sdl_info { SDL_Surface *screen; int width; int height; int depth; int pitch; - uint frequency; uint sample_rate; bool audio_active; bool inited; From patchwork Sun Jan 12 19:06:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221855 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=lZD784Mr; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmXP1z9Qz9s4Y for ; Mon, 13 Jan 2020 06:11:01 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 7D44C81828; Sun, 12 Jan 2020 20:07:52 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="lZD784Mr"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 3BF7F817FC; Sun, 12 Jan 2020 20:07:34 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd41.google.com (mail-io1-xd41.google.com [IPv6:2607:f8b0:4864:20::d41]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 3495C817ED for ; Sun, 12 Jan 2020 20:07:31 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd41.google.com with SMTP id b10so7247039iof.11 for ; Sun, 12 Jan 2020 11:07:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wLwSh+IgeTI+1DUiNPkM21ETYj80w1DbxPnBkC7n7K4=; b=lZD784Mr+rZrWlFH0xeJNxB+wnQgrGqgBT2fP+WFS5ezoQfcpENydIFfwb7xDV6aTZ EWDJRjKPsAVNtmr4BguQL8UfA39IwO41umnY4s7tByPqbx7gPEYzpc4RIgpoJG0CpFPW nWEhUFu1WqTAOW21qM/oE2K7E7YPpM8PpuB1E= 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=wLwSh+IgeTI+1DUiNPkM21ETYj80w1DbxPnBkC7n7K4=; b=jiNZ2EkXqb/E7zy2ViQWriHJuyiAK5vD/qJdgade2nQP7vbNzIWyNEAzdeQYRvAhxZ 9yNj5U6NyBSiN50vHSIArSL1EGVH6K/Z6KIpZwxyJUcQMQPsizqNOw9iumH4okBRkeL+ ZbNB0WcZ9spM6cyeUghmOXDKBlsAyjQZBDA6dAxs12nXfOVMMpj/MEqaJcdce9KIYWZE 0yTSCBrIovxuUOIRdgke9PU3LS5AYAn4qjkcvsW57ujPDMw8xjvZDdzikhIRT8lcox2u risWv0+9QB9UomnElYllo2L0KYoqixTFkypM1U4VUMeH5+pa0ZjZTcrFC3G85lUTuS1K F/6g== X-Gm-Message-State: APjAAAVl5I4BQrmKRtVrMr43Y3SjQa7Y8qHI1yMPO2ku450BJbics7wD I9K1amKY0yHiqpD0d7sroPuYO6rtokc= X-Google-Smtp-Source: APXvYqxAypD6HDsUVWvk4R4yLEJNsaHjus9tQSWMf5Fyw/p8lChtxM5tcW73x5hjEgV7shT3hcDfmw== X-Received: by 2002:a02:a610:: with SMTP id c16mr11266755jam.13.1578856050024; Sun, 12 Jan 2020 11:07:30 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:29 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 23/33] sandbox: sdl: Improve error handling Date: Sun, 12 Jan 2020 12:06:14 -0700 Message-Id: <20200112120216.23.I3c2776b0a0575ed9a668029e1a5e1606804ef338@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean A few errors are not checked. Fix these and use my preferred spelling for init. Signed-off-by: Simon Glass --- arch/sandbox/cpu/sdl.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/arch/sandbox/cpu/sdl.c b/arch/sandbox/cpu/sdl.c index dad059f257..ee62da265b 100644 --- a/arch/sandbox/cpu/sdl.c +++ b/arch/sandbox/cpu/sdl.c @@ -77,7 +77,7 @@ static int sandbox_sdl_ensure_init(void) { if (!sdl.inited) { if (SDL_Init(0) < 0) { - printf("Unable to initialize SDL: %s\n", + printf("Unable to initialise SDL: %s\n", SDL_GetError()); return -EIO; } @@ -100,7 +100,7 @@ int sandbox_sdl_init_display(int width, int height, int log2_bpp) if (err) return err; if (SDL_InitSubSystem(SDL_INIT_VIDEO) < 0) { - printf("Unable to initialize SDL LCD: %s\n", SDL_GetError()); + printf("Unable to initialise SDL LCD: %s\n", SDL_GetError()); return -EPERM; } SDL_WM_SetCaption("U-Boot", "U-Boot"); @@ -298,7 +298,7 @@ void sandbox_sdl_fill_audio(void *udata, Uint8 *stream, int len) int sandbox_sdl_sound_init(int rate, int channels) { - SDL_AudioSpec wanted; + SDL_AudioSpec wanted, have; int i; if (sandbox_sdl_ensure_init()) @@ -331,15 +331,19 @@ int sandbox_sdl_sound_init(int rate, int channels) } if (SDL_InitSubSystem(SDL_INIT_AUDIO) < 0) { - printf("Unable to initialize SDL audio: %s\n", SDL_GetError()); + printf("Unable to initialise SDL audio: %s\n", SDL_GetError()); goto err; } /* Open the audio device, forcing the desired format */ - if (SDL_OpenAudio(&wanted, NULL) < 0) { + if (SDL_OpenAudio(&wanted, &have) < 0) { printf("Couldn't open audio: %s\n", SDL_GetError()); goto err; } + if (have.format != wanted.format) { + printf("Couldn't select required audio format\n"); + goto err; + } sdl.audio_active = true; sdl.sample_rate = wanted.freq; sdl.cur_buf = 0; From patchwork Sun Jan 12 19:06:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221856 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=EgwMFm9T; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmXb3Dlbz9s4Y for ; Mon, 13 Jan 2020 06:11:11 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id B5D3D816DD; Sun, 12 Jan 2020 20:07:54 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="EgwMFm9T"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id B914081808; Sun, 12 Jan 2020 20:07:35 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-il1-x142.google.com (mail-il1-x142.google.com [IPv6:2607:f8b0:4864:20::142]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id CE142817E7 for ; Sun, 12 Jan 2020 20:07:32 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x142.google.com with SMTP id x5so6056900ila.6 for ; Sun, 12 Jan 2020 11:07:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=T8B+NhEYk2DQ3EdU8Q/uAExO3XSxkKH3vmp1DO3nms0=; b=EgwMFm9TNMc+6BSrGZ295YhUorHWJAlTrQbzRt4dzr3xUdRAbGdmG3ZT0lqLX5ATij Dy8jIydBZEwNZqBWQ8PRY4AnDHCHNdd8GPuqyAbzBQKzSX3d7gdBxomD9/fK1sm3acrJ pF2KypgwRvOQKFhO+WpahxjEHVp/tbN5Y20Xs= 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=T8B+NhEYk2DQ3EdU8Q/uAExO3XSxkKH3vmp1DO3nms0=; b=qyb9TjgxPiWNntngK5Zmc7refBVSn8zTWr1w74SgdtPnXzJololcn+44NoK7GrP/ov fNBf3QWWJDAye2KUmif+ADAfO30BnrwGzMwyZAEX7EaqRnGV/GN0oMgjZJ8O7sf2FQ/u +1DKbmHdpUBS2Y4PlUbpy9jApw5p724Ysz+LPXxwVxJQijpv0Fq7sM9Dc4SnmjjrdYYn xLbhgr5DiyNaa9erUsZZ1mMsKkX3iChIx/9iIDouT7LANsWLTC8wI/stwVIthRVsTDY3 DiADLhKzfwN8wuo4zcXbMT4fCywluvUwDJZjB63R7wdYl+VTmU6Bda/Q7zGRynHazXbb VBXg== X-Gm-Message-State: APjAAAVpujr7nEjNG3dpmibKNwXQ8HVUF1GazPExYWpJpez/Oi+J4g1O mSr/tcEMjkA3Imtrotl5/WB9mPxChMg= X-Google-Smtp-Source: APXvYqz58ZmzH+sHSNrd8Epb3CUwSORiSazy2rozreU3ZcdKIMtnHga2H1QMBZOjIevkwtltXhmQ2Q== X-Received: by 2002:a92:48c2:: with SMTP id j63mr11400628ilg.153.1578856051670; Sun, 12 Jan 2020 11:07:31 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:31 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 24/33] sandbox: sdl: Support waiting for audio to complete Date: Sun, 12 Jan 2020 12:06:15 -0700 Message-Id: <20200112120216.24.Ib94b6be5078e355d597706e70639153bcfb9f9fe@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean At present when audio stops, any in-progress output is cut off. Fix this by waiting for output to finish. Also use booleans for the boolean variables. Signed-off-by: Simon Glass --- arch/sandbox/cpu/sdl.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/arch/sandbox/cpu/sdl.c b/arch/sandbox/cpu/sdl.c index ee62da265b..dedf00ed35 100644 --- a/arch/sandbox/cpu/sdl.c +++ b/arch/sandbox/cpu/sdl.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include @@ -39,6 +40,7 @@ struct buf_info { * @buf: The two available audio buffers. SDL can be reading from one while we * are setting up the next * @running: true if audio is running + * @stopping: true if audio will stop once it runs out of data */ static struct sdl_info { SDL_Surface *screen; @@ -52,6 +54,7 @@ static struct sdl_info { int cur_buf; struct buf_info buf[2]; bool running; + bool stopping; } sdl; static void sandbox_sdl_poll_events(void) @@ -271,6 +274,7 @@ void sandbox_sdl_fill_audio(void *udata, Uint8 *stream, int len) { struct buf_info *buf; int avail; + bool have_data = false; int i; for (i = 0; i < 2; i++) { @@ -282,6 +286,7 @@ void sandbox_sdl_fill_audio(void *udata, Uint8 *stream, int len) } if (avail > len) avail = len; + have_data = true; SDL_MixAudio(stream, buf->data + buf->pos, avail, SDL_MIX_MAXVOLUME); @@ -294,6 +299,7 @@ void sandbox_sdl_fill_audio(void *udata, Uint8 *stream, int len) else break; } + sdl.stopping = !have_data; } int sandbox_sdl_sound_init(int rate, int channels) @@ -347,7 +353,7 @@ int sandbox_sdl_sound_init(int rate, int channels) sdl.audio_active = true; sdl.sample_rate = wanted.freq; sdl.cur_buf = 0; - sdl.running = 0; + sdl.running = false; return 0; @@ -378,7 +384,8 @@ int sandbox_sdl_sound_play(const void *data, uint size) buf->pos = 0; if (!sdl.running) { SDL_PauseAudio(0); - sdl.running = 1; + sdl.running = true; + sdl.stopping = false; } return 0; @@ -387,8 +394,12 @@ int sandbox_sdl_sound_play(const void *data, uint size) int sandbox_sdl_sound_stop(void) { if (sdl.running) { + while (!sdl.stopping) + SDL_Delay(100); + SDL_PauseAudio(1); sdl.running = 0; + sdl.stopping = false; } return 0; From patchwork Sun Jan 12 19:06:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221857 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=DEKa2Ws0; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmXn1PTNz9s4Y for ; Mon, 13 Jan 2020 06:11:21 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id BE8E38182D; Sun, 12 Jan 2020 20:07:56 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="DEKa2Ws0"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 503CB8180A; Sun, 12 Jan 2020 20:07:37 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd43.google.com (mail-io1-xd43.google.com [IPv6:2607:f8b0:4864:20::d43]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 6EA70817ED for ; Sun, 12 Jan 2020 20:07:34 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd43.google.com with SMTP id i11so7242182ioi.12 for ; Sun, 12 Jan 2020 11:07:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Xocwk2LUEXpQc6I/ZHxrxDYcRP6GlcE360z/mEaHcWQ=; b=DEKa2Ws0WBzTIBwdhrnYBdl6LU7YW8HN9DRw1mSCMHK/tkuVst7hOE9tgO9KgP7r1Y xt7enyfCoho8HIZLDiAMhPiGiq3MGF2HlCQImOjTrrChZxae8eNLvgSNGF8zObflLPrF 1wIzkaM3XJiOJAeQaoVJ73qBNiJI75Pu2Jhbo= 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=Xocwk2LUEXpQc6I/ZHxrxDYcRP6GlcE360z/mEaHcWQ=; b=pxU8mlYPCLodPfFSCmux1whYcIAB18TuI0Hf35k0MNNAJvl2vcSWOj6vhmd6mnCq/z qvyZTXFgECMo9rFcUYFlePEPj64hqgo/5l+4D03WPEwUVdZSDVUGkmSnEynWKe2aRtqM pkBzGNcNEyI//g1VXOblNY22hnsTVPq3IBhYNhW8/J2gcXP2gPd9D6HDgo9NGaxZEO5p vSiX0SEIhe5fJGj6b3x99yQdz/HYMq3bT8BL3zZrOgFg6u0K6yAIcGU1wUn+dVn2Z7Za GnNY059gGZxWtzJvzHgpPBxhaBn+0uifbTEVt9DKpp+Hmyx8EkcvSG5HQ2G9586Dv5OH 9aXw== X-Gm-Message-State: APjAAAW3eBgrxKFn29zLsVBTcCWE8TdwkOI3hRatbKO6kxncEG8fn8iq hCUbdHUKTKTlFbWsnx7KKRe/qOLtgWM= X-Google-Smtp-Source: APXvYqyZkqNWmfaUgIk4mqwb7vieKmtGChuogY238AV7M9l/WFiJ+vbr1A6Lbh/oodayZ/NLfWvzAQ== X-Received: by 2002:a02:ca10:: with SMTP id i16mr11767101jak.10.1578856053255; Sun, 12 Jan 2020 11:07:33 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:33 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 25/33] gitlab: Disable SDL when building sandbox Date: Sun, 12 Jan 2020 12:06:16 -0700 Message-Id: <20200112120216.25.Iaee17a76e11695cca8b49a80cb8c8e2ca3f3a170@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Stephen Warren Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean I am not sure how to add libsdl2-dev to the gitlab image, so disable building sandbox with SDL for now. Signed-off-by: Simon Glass --- .gitlab-ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d799cc30a8..5fb2113987 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -32,7 +32,8 @@ stages: # use clang only do one configuration. - if [[ "${BUILDMAN}" != "" ]]; then ret=0; - tools/buildman/buildman -o /tmp -P -E ${BUILDMAN} ${OVERRIDE}|| ret=$?; + NO_SDL=1 tools/buildman/buildman -o /tmp -P -E ${BUILDMAN} + ${OVERRIDE}|| ret=$?; if [[ $ret -ne 0 && $ret -ne 129 ]]; then tools/buildman/buildman -o /tmp -sdeP ${BUILDMAN}; exit $ret; @@ -164,7 +165,7 @@ Run binman, buildman, dtoc and patman testsuites: export UBOOT_TRAVIS_BUILD_DIR=/tmp/.bm-work/sandbox_spl; export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt"; export PATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}"; - ./tools/buildman/buildman -o /tmp -P sandbox_spl; + NO_SDL=1 ./tools/buildman/buildman -o /tmp -P sandbox_spl; ./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test; ./tools/buildman/buildman -t; ./tools/dtoc/dtoc -t; From patchwork Sun Jan 12 19:06:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221858 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=MqjQxL1v; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmXy4w1Lz9s29 for ; Mon, 13 Jan 2020 06:11:30 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id C26768183B; Sun, 12 Jan 2020 20:07:58 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="MqjQxL1v"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 593A581811; Sun, 12 Jan 2020 20:07:40 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=0.7 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, SPF_HELO_NONE, UPPERCASE_50_75, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from mail-il1-x136.google.com (mail-il1-x136.google.com [IPv6:2607:f8b0:4864:20::136]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 9B19C81802 for ; Sun, 12 Jan 2020 20:07:36 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x136.google.com with SMTP id t2so6044063ilq.9 for ; Sun, 12 Jan 2020 11:07:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=CMTxu9bD1xbukk8zSvzCE8assbJuuVsf9/DeE+rPkZA=; b=MqjQxL1v8IFncJmezFboP8afouDs+/3P8pnfgeCtR9xj7dzL7lDjGfOZAIxTN4CItX HeaOW9Rt9/xl0LDBey9TLb6yC7rwPlh3YFpsC3tpKPtHiBP8wAd91BQU/AZkiWmcM2MZ oxMhjS4LvH4H/NxUxRxN/4NLG3+38BndwXsbs= 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=CMTxu9bD1xbukk8zSvzCE8assbJuuVsf9/DeE+rPkZA=; b=ixl1xhqTe0kQtlYPqzobmE7DSqOWtJad86dIkWg2fSoKq8Ks3qZq0hgHIAM18J4GBM fYfk9zHr9Pz4YT/vMl+k0KzIPwE3Wxp9VDKRSz4dTXOH0hQRpFXyhwTF8PhC5vTXlNEP Ua1hVjqJ69ICjKsW0eVX41etvj96ihscaDQTCkbKbX9KWcVcdHlnI4XTU2ZWATN+uFvW rwwqns6Vbni40mMFhuiCb/OMZ0sf/ENT2CQbG/nV7OXuMhTXJNzCxeTu53WCnsu2xOLk MQM/khuVlx1GnOMr7I9lhV5EIMncNb5BSo0iSDx+0czi9kPYtt8s8+S1YtA1OALNqawX 4u5w== X-Gm-Message-State: APjAAAXewSocSh0QDWuy2oM0kdfBk7SSfMvJBBNnIKnG83zIyG3qoZpc MNWWHBBpk9+Kmpd271/3O9LFLKrDvY4= X-Google-Smtp-Source: APXvYqwcREm7SgVBs3GMTGJNtUlkuWxFRigy/tewDcZ9kj6yRLmoSmPOYlIusJRcUMa2uLup/InidQ== X-Received: by 2002:a92:8108:: with SMTP id e8mr12555144ild.138.1578856055060; Sun, 12 Jan 2020 11:07:35 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:34 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 26/33] sandbox: sdl: Move to use SDL2 Date: Sun, 12 Jan 2020 12:06:17 -0700 Message-Id: <20200112120216.26.I5beacea4ac05c448427014cd1343606fb571c786@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Heinrich Schuchardt , Michal Simek Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean Sandbox currently uses SDL1.2. SDL2 has been around for quite a while and is widely supported. It has a number of useful features. It seems appropriate to move sandbox over. Update the code to use SDL2 instead of SDL1.2. Signed-off-by: Simon Glass --- .travis.yml | 2 +- arch/sandbox/config.mk | 2 +- arch/sandbox/cpu/sdl.c | 279 +++++++++++++++++++++++------------------ doc/arch/sandbox.rst | 2 +- 4 files changed, 158 insertions(+), 127 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3991eb7716..44e539038a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,7 +19,7 @@ addons: - sparse - bc - build-essential - - libsdl1.2-dev + - libsdl2-dev - python - python-pyelftools - python3-virtualenv diff --git a/arch/sandbox/config.mk b/arch/sandbox/config.mk index a225c9cbfa..189e9c2b0c 100644 --- a/arch/sandbox/config.mk +++ b/arch/sandbox/config.mk @@ -5,7 +5,7 @@ PLATFORM_CPPFLAGS += -D__SANDBOX__ -U_FORTIFY_SOURCE PLATFORM_CPPFLAGS += -DCONFIG_ARCH_MAP_SYSMEM PLATFORM_CPPFLAGS += -fPIC PLATFORM_LIBS += -lrt -SDL_CONFIG ?= sdl-config +SDL_CONFIG ?= sdl2-config # Define this to avoid linking with SDL, which requires SDL libraries # This can solve 'sdl-config: Command not found' errors diff --git a/arch/sandbox/cpu/sdl.c b/arch/sandbox/cpu/sdl.c index dedf00ed35..58a9cc8168 100644 --- a/arch/sandbox/cpu/sdl.c +++ b/arch/sandbox/cpu/sdl.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include /** @@ -28,7 +28,6 @@ struct buf_info { /** * struct sdl_info - Information about our use of the SDL library * - * @screen: Surface used to draw on the screen * @width: Width of simulated LCD display * @height: Height of simulated LCD display * @depth: Depth of the display in bits per pixel (16 or 32) @@ -41,9 +40,10 @@ struct buf_info { * are setting up the next * @running: true if audio is running * @stopping: true if audio will stop once it runs out of data + * @texture: SDL texture to use for U-Boot display contents + * @renderer: SDL renderer to use */ static struct sdl_info { - SDL_Surface *screen; int width; int height; int depth; @@ -55,6 +55,8 @@ static struct sdl_info { struct buf_info buf[2]; bool running; bool stopping; + SDL_Texture *texture; + SDL_Renderer *renderer; } sdl; static void sandbox_sdl_poll_events(void) @@ -106,13 +108,41 @@ int sandbox_sdl_init_display(int width, int height, int log2_bpp) printf("Unable to initialise SDL LCD: %s\n", SDL_GetError()); return -EPERM; } - SDL_WM_SetCaption("U-Boot", "U-Boot"); - sdl.width = width; sdl.height = height; sdl.depth = 1 << log2_bpp; sdl.pitch = sdl.width * sdl.depth / 8; - sdl.screen = SDL_SetVideoMode(width, height, 0, 0); + SDL_Window *screen = SDL_CreateWindow("U-Boot", SDL_WINDOWPOS_UNDEFINED, + SDL_WINDOWPOS_UNDEFINED, + sdl.width, sdl.height, 0); + if (!screen) { + printf("Unable to initialise SDL screen: %s\n", + SDL_GetError()); + return -EIO; + } + if (log2_bpp != 4 && log2_bpp != 5) { + printf("U-Boot SDL does not support depth %d\n", log2_bpp); + return -EINVAL; + } + sdl.renderer = SDL_CreateRenderer(screen, -1, + SDL_RENDERER_ACCELERATED | + SDL_RENDERER_PRESENTVSYNC); + if (!sdl.renderer) { + printf("Unable to initialise SDL renderer: %s\n", + SDL_GetError()); + return -EIO; + } + + sdl.texture = SDL_CreateTexture(sdl.renderer, log2_bpp == 4 ? + SDL_PIXELFORMAT_RGB565 : + SDL_PIXELFORMAT_RGB888, + SDL_TEXTUREACCESS_STREAMING, + width, height); + if (!sdl.texture) { + printf("Unable to initialise SDL texture: %s\n", + SDL_GetError()); + return -EBADF; + } sandbox_sdl_poll_events(); return 0; @@ -120,136 +150,137 @@ int sandbox_sdl_init_display(int width, int height, int log2_bpp) int sandbox_sdl_sync(void *lcd_base) { - SDL_Surface *frame; - - frame = SDL_CreateRGBSurfaceFrom(lcd_base, sdl.width, sdl.height, - sdl.depth, sdl.pitch, - 0x1f << 11, 0x3f << 5, 0x1f << 0, 0); - SDL_BlitSurface(frame, NULL, sdl.screen, NULL); - SDL_FreeSurface(frame); - SDL_UpdateRect(sdl.screen, 0, 0, 0, 0); + SDL_UpdateTexture(sdl.texture, NULL, lcd_base, sdl.pitch); + SDL_RenderCopy(sdl.renderer, sdl.texture, NULL, NULL); + SDL_RenderPresent(sdl.renderer); sandbox_sdl_poll_events(); return 0; } -#define NONE (-1) -#define NUM_SDL_CODES (SDLK_UNDO + 1) - -static int16_t sdl_to_keycode[NUM_SDL_CODES] = { - /* 0 */ - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, KEY_BACKSPACE, KEY_TAB, - NONE, NONE, NONE, KEY_ENTER, NONE, - NONE, NONE, NONE, NONE, KEY_POWER, /* use PAUSE as POWER */ - - /* 20 */ - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, KEY_ESC, NONE, NONE, - NONE, NONE, KEY_SPACE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - - /* 40 */ - NONE, NONE, NONE, NONE, KEY_COMMA, - KEY_MINUS, KEY_DOT, KEY_SLASH, KEY_0, KEY_1, - KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, - KEY_7, KEY_8, KEY_9, NONE, KEY_SEMICOLON, - - /* 60 */ - NONE, KEY_EQUAL, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - - /* 80 */ - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, KEY_BACKSLASH, NONE, NONE, - NONE, KEY_GRAVE, KEY_A, KEY_B, KEY_C, - - /* 100 */ - KEY_D, KEY_E, KEY_F, KEY_G, KEY_H, - KEY_I, KEY_J, KEY_K, KEY_L, KEY_M, - KEY_N, KEY_O, KEY_P, KEY_Q, KEY_R, - KEY_S, KEY_T, KEY_U, KEY_V, KEY_W, - - /* 120 */ - KEY_X, KEY_Y, KEY_Z, NONE, NONE, - NONE, NONE, KEY_DELETE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - - /* 140 */ - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - - /* 160 */ - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - - /* 180 */ - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - - /* 200 */ - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - - /* 220 */ - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - - /* 240 */ - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, - NONE, KEY_KP0, KEY_KP1, KEY_KP2, KEY_KP3, - - /* 260 */ - KEY_KP4, KEY_KP5, KEY_KP6, KEY_KP7, KEY_KP8, - KEY_KP9, KEY_KPDOT, KEY_KPSLASH, KEY_KPASTERISK, KEY_KPMINUS, - KEY_KPPLUS, KEY_KPENTER, KEY_KPEQUAL, KEY_UP, KEY_DOWN, - KEY_RIGHT, KEY_LEFT, KEY_INSERT, KEY_HOME, KEY_END, - - /* 280 */ - KEY_PAGEUP, KEY_PAGEDOWN, KEY_F1, KEY_F2, KEY_F3, - KEY_F4, KEY_F5, KEY_F6, KEY_F7, KEY_F8, - KEY_F9, KEY_F10, KEY_F11, KEY_F12, NONE, - NONE, NONE, NONE, NONE, NONE, - - /* 300 */ - KEY_NUMLOCK, KEY_CAPSLOCK, KEY_SCROLLLOCK, KEY_RIGHTSHIFT, - KEY_LEFTSHIFT, - KEY_RIGHTCTRL, KEY_LEFTCTRL, KEY_RIGHTALT, KEY_LEFTALT, KEY_RIGHTMETA, - KEY_LEFTMETA, NONE, KEY_FN, NONE, KEY_COMPOSE, - NONE, KEY_PRINT, KEY_SYSRQ, KEY_PAUSE, NONE, - - /* 320 */ - NONE, NONE, NONE, +static const unsigned short sdl_to_keycode[SDL_NUM_SCANCODES] = { + [SDL_SCANCODE_A] = KEY_A, + [SDL_SCANCODE_B] = KEY_B, + [SDL_SCANCODE_C] = KEY_C, + [SDL_SCANCODE_D] = KEY_D, + [SDL_SCANCODE_E] = KEY_E, + [SDL_SCANCODE_F] = KEY_F, + [SDL_SCANCODE_G] = KEY_G, + [SDL_SCANCODE_H] = KEY_H, + [SDL_SCANCODE_I] = KEY_I, + [SDL_SCANCODE_J] = KEY_J, + [SDL_SCANCODE_K] = KEY_K, + [SDL_SCANCODE_L] = KEY_L, + [SDL_SCANCODE_M] = KEY_M, + [SDL_SCANCODE_N] = KEY_N, + [SDL_SCANCODE_O] = KEY_O, + [SDL_SCANCODE_P] = KEY_P, + [SDL_SCANCODE_Q] = KEY_Q, + [SDL_SCANCODE_R] = KEY_R, + [SDL_SCANCODE_S] = KEY_S, + [SDL_SCANCODE_T] = KEY_T, + [SDL_SCANCODE_U] = KEY_U, + [SDL_SCANCODE_V] = KEY_V, + [SDL_SCANCODE_W] = KEY_W, + [SDL_SCANCODE_X] = KEY_X, + [SDL_SCANCODE_Y] = KEY_Y, + [SDL_SCANCODE_Z] = KEY_Z, + + [SDL_SCANCODE_1] = KEY_1, + [SDL_SCANCODE_2] = KEY_2, + [SDL_SCANCODE_3] = KEY_3, + [SDL_SCANCODE_4] = KEY_4, + [SDL_SCANCODE_5] = KEY_5, + [SDL_SCANCODE_6] = KEY_6, + [SDL_SCANCODE_7] = KEY_7, + [SDL_SCANCODE_8] = KEY_8, + [SDL_SCANCODE_9] = KEY_9, + [SDL_SCANCODE_0] = KEY_0, + + [SDL_SCANCODE_RETURN] = KEY_ENTER, + [SDL_SCANCODE_ESCAPE] = KEY_ESC, + [SDL_SCANCODE_BACKSPACE] = KEY_BACKSPACE, + [SDL_SCANCODE_TAB] = KEY_TAB, + [SDL_SCANCODE_SPACE] = KEY_SPACE, + + [SDL_SCANCODE_MINUS] = KEY_MINUS, + [SDL_SCANCODE_EQUALS] = KEY_EQUAL, + [SDL_SCANCODE_BACKSLASH] = KEY_BACKSLASH, + [SDL_SCANCODE_SEMICOLON] = KEY_SEMICOLON, + [SDL_SCANCODE_APOSTROPHE] = KEY_APOSTROPHE, + [SDL_SCANCODE_GRAVE] = KEY_GRAVE, + [SDL_SCANCODE_COMMA] = KEY_COMMA, + [SDL_SCANCODE_PERIOD] = KEY_DOT, + [SDL_SCANCODE_SLASH] = KEY_SLASH, + + [SDL_SCANCODE_CAPSLOCK] = KEY_CAPSLOCK, + + [SDL_SCANCODE_F1] = KEY_F1, + [SDL_SCANCODE_F2] = KEY_F2, + [SDL_SCANCODE_F3] = KEY_F3, + [SDL_SCANCODE_F4] = KEY_F4, + [SDL_SCANCODE_F5] = KEY_F5, + [SDL_SCANCODE_F6] = KEY_F6, + [SDL_SCANCODE_F7] = KEY_F7, + [SDL_SCANCODE_F8] = KEY_F8, + [SDL_SCANCODE_F9] = KEY_F9, + [SDL_SCANCODE_F10] = KEY_F10, + [SDL_SCANCODE_F11] = KEY_F11, + [SDL_SCANCODE_F12] = KEY_F12, + + [SDL_SCANCODE_PRINTSCREEN] = KEY_PRINT, + [SDL_SCANCODE_SCROLLLOCK] = KEY_SCROLLLOCK, + [SDL_SCANCODE_PAUSE] = KEY_PAUSE, + [SDL_SCANCODE_INSERT] = KEY_INSERT, + [SDL_SCANCODE_HOME] = KEY_HOME, + [SDL_SCANCODE_PAGEUP] = KEY_PAGEUP, + [SDL_SCANCODE_DELETE] = KEY_DELETE, + [SDL_SCANCODE_END] = KEY_END, + [SDL_SCANCODE_PAGEDOWN] = KEY_PAGEDOWN, + [SDL_SCANCODE_RIGHT] = KEY_RIGHT, + [SDL_SCANCODE_LEFT] = KEY_LEFT, + [SDL_SCANCODE_DOWN] = KEY_DOWN, + [SDL_SCANCODE_UP] = KEY_UP, + + [SDL_SCANCODE_NUMLOCKCLEAR] = KEY_NUMLOCK, + [SDL_SCANCODE_KP_DIVIDE] = KEY_KPSLASH, + [SDL_SCANCODE_KP_MULTIPLY] = KEY_KPASTERISK, + [SDL_SCANCODE_KP_MINUS] = KEY_KPMINUS, + [SDL_SCANCODE_KP_PLUS] = KEY_KPPLUS, + [SDL_SCANCODE_KP_ENTER] = KEY_KPENTER, + [SDL_SCANCODE_KP_1] = KEY_KP1, + [SDL_SCANCODE_KP_2] = KEY_KP2, + [SDL_SCANCODE_KP_3] = KEY_KP3, + [SDL_SCANCODE_KP_4] = KEY_KP4, + [SDL_SCANCODE_KP_5] = KEY_KP5, + [SDL_SCANCODE_KP_6] = KEY_KP6, + [SDL_SCANCODE_KP_7] = KEY_KP7, + [SDL_SCANCODE_KP_8] = KEY_KP8, + [SDL_SCANCODE_KP_9] = KEY_KP9, + [SDL_SCANCODE_KP_0] = KEY_KP0, + [SDL_SCANCODE_KP_PERIOD] = KEY_KPDOT, + + [SDL_SCANCODE_KP_EQUALS] = KEY_KPEQUAL, + [SDL_SCANCODE_KP_COMMA] = KEY_KPCOMMA, + + [SDL_SCANCODE_SYSREQ] = KEY_SYSRQ, }; int sandbox_sdl_scan_keys(int key[], int max_keys) { - Uint8 *keystate; + const Uint8 *keystate; + int num_keys; int i, count; sandbox_sdl_poll_events(); - keystate = SDL_GetKeyState(NULL); - for (i = count = 0; i < NUM_SDL_CODES; i++) { - if (count >= max_keys) - break; - else if (keystate[i]) - key[count++] = sdl_to_keycode[i]; + keystate = SDL_GetKeyboardState(&num_keys); + for (i = count = 0; i < num_keys; i++) { + if (count < max_keys && keystate[i]) { + int keycode = sdl_to_keycode[i]; + + if (keycode) + key[count++] = keycode; + } } return count; diff --git a/doc/arch/sandbox.rst b/doc/arch/sandbox.rst index e1f4dde6f8..e577a95716 100644 --- a/doc/arch/sandbox.rst +++ b/doc/arch/sandbox.rst @@ -43,7 +43,7 @@ To run sandbox U-Boot use something like:: ./u-boot Note: If you get errors about 'sdl-config: Command not found' you may need to -install libsdl1.2-dev or similar to get SDL support. Alternatively you can +install libsdl2.0-dev or similar to get SDL support. Alternatively you can build sandbox without SDL (i.e. no display/keyboard support) by removing the CONFIG_SANDBOX_SDL line in include/configs/sandbox.h or using:: From patchwork Sun Jan 12 19:06:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221859 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=O2YyxQm/; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmY86T0Sz9s29 for ; Mon, 13 Jan 2020 06:11:40 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id E72A48182E; Sun, 12 Jan 2020 20:08:00 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="O2YyxQm/"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 1BD6881811; Sun, 12 Jan 2020 20:07:42 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,T_FILL_THIS_FORM_SHORT, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd43.google.com (mail-io1-xd43.google.com [IPv6:2607:f8b0:4864:20::d43]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id D63FC8180D for ; Sun, 12 Jan 2020 20:07:37 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd43.google.com with SMTP id c16so2875433iom.5 for ; Sun, 12 Jan 2020 11:07:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=mh8Okggea+cKnntrTSBwz1awmrtkw1rqSsGoQJe/sNY=; b=O2YyxQm/mwR5DoDNetdROjg88EelrA2T31Qb+pbj4B9+eKU/mCTbLLI3RF0Rg9FqLA VOxBUWca15Z6Yl9M2eqBmN5kTYf7Dk+3Tc0XWh5cbjy8gx3WbnkdMg3k15FSX2RR6vNb rP9DSUXDtm0rGg+9qV5Q7CAuu3Ks2hlsJ4orE= 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=mh8Okggea+cKnntrTSBwz1awmrtkw1rqSsGoQJe/sNY=; b=MRdTlERuOUwhiaF9PAfxs8U8XnNUUVoXBdXuz+f6e+SJlIkca/dB7q7cmquwQ7PJvI cZVfYK+WRNMUf/hkCqRtRpMmMJ3hufoTiySOVBVUSmFmPKHK8KeOGAZyc1DEc5rIH2gj 399GVxfGud4Fn1l0WXuOuGxBpbIecq5HhLMzrDQL0h9SNxLpwZ7w/be9XoqWs4LR/1m+ mG6aoz3yQrlIVur5lrmeDJDaADK6MLzVIobbwwp2HCBqGDfLAwGOVjdWt9giTD0Fqn45 czdR+Muoj2pkv9nxBo43vi4VUMzyY2+Z29aKXeMMwbRa2gNBciCCMxju2uYJtXLR8YAc 4Z+Q== X-Gm-Message-State: APjAAAXudY9jsv299AinydzuVhbbF0fqIuwwn5N2f99mJh6okaPbxBR/ WmkDXCBv6XDESzzCb5cmqafEYCxWARQ= X-Google-Smtp-Source: APXvYqxeMu9xUFppQ6wF2Y02D9tuP9b/ibIqAzksfbX6ntuKtUB/hR68ofX60reH9etsSjCdsdfhRw== X-Received: by 2002:a5d:970e:: with SMTP id h14mr2852590iol.201.1578856056675; Sun, 12 Jan 2020 11:07:36 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:36 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 27/33] sandbox: sdl: Add an option to double the screen size Date: Sun, 12 Jan 2020 12:06:18 -0700 Message-Id: <20200112120216.27.I48cb07fb0d542000360e9f2585be5e895a73d586@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean On high-DPI displays U-Boot's LCD window can look very small. Add a -K flag to expand it to make things easier to read, while still using the existing resolution internally. Signed-off-by: Simon Glass Reviewed-by: Anatolij Gustschin --- arch/sandbox/cpu/sdl.c | 17 +++++++++++++++-- arch/sandbox/cpu/start.c | 10 ++++++++++ arch/sandbox/include/asm/sdl.h | 9 ++++++--- arch/sandbox/include/asm/state.h | 1 + drivers/video/sandbox_sdl.c | 5 ++++- 5 files changed, 36 insertions(+), 6 deletions(-) diff --git a/arch/sandbox/cpu/sdl.c b/arch/sandbox/cpu/sdl.c index 58a9cc8168..6416cab96c 100644 --- a/arch/sandbox/cpu/sdl.c +++ b/arch/sandbox/cpu/sdl.c @@ -30,6 +30,8 @@ struct buf_info { * * @width: Width of simulated LCD display * @height: Height of simulated LCD display + * @vis_width: Visible width (may be larger to allow for scaling up) + * @vis_height: Visible height (may be larger to allow for scaling up) * @depth: Depth of the display in bits per pixel (16 or 32) * @pitch: Number of bytes per line of the display * @sample_rate: Current sample rate for audio @@ -46,6 +48,8 @@ struct buf_info { static struct sdl_info { int width; int height; + int vis_width; + int vis_height; int depth; int pitch; uint sample_rate; @@ -94,7 +98,8 @@ static int sandbox_sdl_ensure_init(void) return 0; } -int sandbox_sdl_init_display(int width, int height, int log2_bpp) +int sandbox_sdl_init_display(int width, int height, int log2_bpp, + bool double_size) { struct sandbox_state *state = state_get_current(); int err; @@ -110,11 +115,19 @@ int sandbox_sdl_init_display(int width, int height, int log2_bpp) } sdl.width = width; sdl.height = height; + if (double_size) { + sdl.vis_width = sdl.width * 2; + sdl.vis_height = sdl.height * 2; + } else { + sdl.vis_width = sdl.width; + sdl.vis_height = sdl.height; + } + sdl.depth = 1 << log2_bpp; sdl.pitch = sdl.width * sdl.depth / 8; SDL_Window *screen = SDL_CreateWindow("U-Boot", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, - sdl.width, sdl.height, 0); + sdl.vis_width, sdl.vis_height, 0); if (!screen) { printf("Unable to initialise SDL screen: %s\n", SDL_GetError()); diff --git a/arch/sandbox/cpu/start.c b/arch/sandbox/cpu/start.c index fa53428436..3655ebf157 100644 --- a/arch/sandbox/cpu/start.c +++ b/arch/sandbox/cpu/start.c @@ -308,6 +308,16 @@ static int sandbox_cmdline_cb_show_lcd(struct sandbox_state *state, SANDBOX_CMDLINE_OPT_SHORT(show_lcd, 'l', 0, "Show the sandbox LCD display"); +static int sandbox_cmdline_cb_double_lcd(struct sandbox_state *state, + const char *arg) +{ + state->double_lcd = true; + + return 0; +} +SANDBOX_CMDLINE_OPT_SHORT(double_lcd, 'K', 0, + "Double the LCD display size in each direction"); + static const char *term_args[STATE_TERM_COUNT] = { "raw-with-sigs", "raw", diff --git a/arch/sandbox/include/asm/sdl.h b/arch/sandbox/include/asm/sdl.h index c45dbddd70..47fc4889d2 100644 --- a/arch/sandbox/include/asm/sdl.h +++ b/arch/sandbox/include/asm/sdl.h @@ -17,10 +17,13 @@ * @height Window height in pixels * @log2_bpp: Log to base 2 of the number of bits per pixel. So a 32bpp * display will pass 5, since 2*5 = 32 + * @double_size: true to double the visible size in each direction for high-DPI + * displays * @return 0 if OK, -ENODEV if no device, -EIO if SDL failed to initialize * and -EPERM if the video failed to come up. */ -int sandbox_sdl_init_display(int width, int height, int log2_bpp); +int sandbox_sdl_init_display(int width, int height, int log2_bpp, + bool double_size); /** * sandbox_sdl_sync() - Sync current U-Boot LCD frame buffer to SDL @@ -78,8 +81,8 @@ int sandbox_sdl_sound_stop(void); int sandbox_sdl_sound_init(int rate, int channels); #else -static inline int sandbox_sdl_init_display(int width, int height, - int log2_bpp) +static inline int sandbox_sdl_init_display(int width, int height, int log2_bpp, + bool double_size) { return -ENODEV; } diff --git a/arch/sandbox/include/asm/state.h b/arch/sandbox/include/asm/state.h index ad3e94beb9..705645d714 100644 --- a/arch/sandbox/include/asm/state.h +++ b/arch/sandbox/include/asm/state.h @@ -83,6 +83,7 @@ struct sandbox_state { bool write_state; /* Write sandbox state on exit */ bool ignore_missing_state_on_read; /* No error if state missing */ bool show_lcd; /* Show LCD on start-up */ + bool double_lcd; /* Double display size for high-DPI */ enum sysreset_t last_sysreset; /* Last system reset type */ bool sysreset_allowed[SYSRESET_COUNT]; /* Allowed system reset types */ enum state_terminal_raw term_raw; /* Terminal raw/cooked */ diff --git a/drivers/video/sandbox_sdl.c b/drivers/video/sandbox_sdl.c index 913651c565..d1272d0918 100644 --- a/drivers/video/sandbox_sdl.c +++ b/drivers/video/sandbox_sdl.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -23,9 +24,11 @@ static int sandbox_sdl_probe(struct udevice *dev) { struct sandbox_sdl_plat *plat = dev_get_platdata(dev); struct video_priv *uc_priv = dev_get_uclass_priv(dev); + struct sandbox_state *state = state_get_current(); int ret; - ret = sandbox_sdl_init_display(plat->xres, plat->yres, plat->bpix); + ret = sandbox_sdl_init_display(plat->xres, plat->yres, plat->bpix, + state->double_lcd); if (ret) { puts("LCD init failed\n"); return ret; From patchwork Sun Jan 12 19:06:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221860 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=Esw11KGi; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmYL5MG3z9s29 for ; Mon, 13 Jan 2020 06:11:50 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 23DDE81835; Sun, 12 Jan 2020 20:08:03 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="Esw11KGi"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 4E6DF80246; Sun, 12 Jan 2020 20:07:42 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd41.google.com (mail-io1-xd41.google.com [IPv6:2607:f8b0:4864:20::d41]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 6C3ED81801 for ; Sun, 12 Jan 2020 20:07:39 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd41.google.com with SMTP id x1so7256574iop.7 for ; Sun, 12 Jan 2020 11:07:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=IU+0y/sZxhYxW476W7zatDte4YFxgC4yKlaPox6DXTA=; b=Esw11KGiAZVynA/lxb9WaSqL9dq6yUP9/hJj+0/kc6vEsniE8PrTourpCgRBuQhltZ cWrBgQXQKcDpTtT0UvAWmclrebctIw0iYOT3Uv0Dt5i5V6IqNCAL8Qv+Cc23uCbdXNM2 Ggp3EA5aAZwYDCBl7R3P9hjojCNTOy/ah9oCE= 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=IU+0y/sZxhYxW476W7zatDte4YFxgC4yKlaPox6DXTA=; b=UdDTo6RQ4i0CHzEafy+hieMYIU/NX/IWkpLay0gPt8gDktPRExc4FHIrzUy+yC92k1 QQmBmM6Ahh+tf0it7pvlsozug+NzosUnjZWhO2z2RhRMLX+mVjpAEh9XAVAnMqTkJ4Nz CKV8oxkkiAwqTusXYw4zw1DnI/GwadAhM0cy+vfYiKC9ic1b0CWbGZ7+rw7AgQ6kej2l eot99ylOTDqdE9YuVzd/HxMhGAoYltfyR5F4JitQiqV/aKOQTxm45gYuSqn2lX8gaa3K 3d8gC+l76y5pbgSZtCeF0hmUDuqQW8Qh8QdgbYxXqX7n4zrHWfVb8WGQUbhiVX+Sx9u4 lneA== X-Gm-Message-State: APjAAAVE2ObI8qxLxI5x34JNqr8mQ1nXKE80YKM0pt+u/Uj6KnUepTRe ywscCdKVrDfTII4SBX6tyftSoDPYidk= X-Google-Smtp-Source: APXvYqxwo4K0MEYXrkUS+VS6eFuvfNV2qJrin18X7aiyrjPK8x/nHEmOt+aCsr7E+8otTIYxXsNlvw== X-Received: by 2002:a02:2a08:: with SMTP id w8mr11469216jaw.86.1578856058244; Sun, 12 Jan 2020 11:07:38 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:37 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 28/33] sandbox: Support changing the LCD colour depth Date: Sun, 12 Jan 2020 12:06:19 -0700 Message-Id: <20200112120216.28.I6e1d242c53cbe76b041651299cf5e971cc7fc7e8@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Heinrich Schuchardt Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean Add a new device-tree property to control the colour depth. At present we support 16bpp and 32bpp. While we are here, update the code to use livetree. Signed-off-by: Simon Glass Reviewed-by: Anatolij Gustschin --- arch/sandbox/dts/sandbox.dtsi | 1 + doc/device-tree-bindings/video/sandbox-fb.txt | 6 +++++- drivers/video/sandbox_sdl.c | 8 +++----- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/arch/sandbox/dts/sandbox.dtsi b/arch/sandbox/dts/sandbox.dtsi index 7bf144f532..7cd56c14f2 100644 --- a/arch/sandbox/dts/sandbox.dtsi +++ b/arch/sandbox/dts/sandbox.dtsi @@ -83,6 +83,7 @@ compatible = "sandbox,lcd-sdl"; xres = <1366>; yres = <768>; + log2-depth = <5>; }; leds { diff --git a/doc/device-tree-bindings/video/sandbox-fb.txt b/doc/device-tree-bindings/video/sandbox-fb.txt index eb91b30e3f..230d25c23b 100644 --- a/doc/device-tree-bindings/video/sandbox-fb.txt +++ b/doc/device-tree-bindings/video/sandbox-fb.txt @@ -2,7 +2,10 @@ Sandbox LCD =========== This uses the displaymode.txt binding except that only xres and yres are -required properties. +required properties. Also an additional optional property is defined: + +log2-depth: Log base 2 of the U-Boot display buffer depth (4=16bpp, 5=32bpp). + If not provided, a value of 4 is used. Example: @@ -10,4 +13,5 @@ Example: compatible = "sandbox,lcd-sdl"; xres = <800>; yres = <600>; + log2-depth = <5>; }; diff --git a/drivers/video/sandbox_sdl.c b/drivers/video/sandbox_sdl.c index d1272d0918..1196e6c671 100644 --- a/drivers/video/sandbox_sdl.c +++ b/drivers/video/sandbox_sdl.c @@ -47,13 +47,11 @@ static int sandbox_sdl_bind(struct udevice *dev) { struct video_uc_platdata *uc_plat = dev_get_uclass_platdata(dev); struct sandbox_sdl_plat *plat = dev_get_platdata(dev); - const void *blob = gd->fdt_blob; - int node = dev_of_offset(dev); int ret = 0; - plat->xres = fdtdec_get_int(blob, node, "xres", LCD_MAX_WIDTH); - plat->yres = fdtdec_get_int(blob, node, "yres", LCD_MAX_HEIGHT); - plat->bpix = VIDEO_BPP16; + plat->xres = dev_read_u32_default(dev, "xres", LCD_MAX_WIDTH); + plat->yres = dev_read_u32_default(dev, "yres", LCD_MAX_HEIGHT); + plat->bpix = dev_read_u32_default(dev, "log2-depth", VIDEO_BPP16); uc_plat->size = plat->xres * plat->yres * (1 << plat->bpix) / 8; debug("%s: Frame buffer size %x\n", __func__, uc_plat->size); From patchwork Sun Jan 12 19:06:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221865 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=WUQkPFuM; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wnK60BpCz9s29 for ; Mon, 13 Jan 2020 06:46:17 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id E5440808A5; Sun, 12 Jan 2020 20:46:05 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="WUQkPFuM"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 8533A81831; Sun, 12 Jan 2020 20:07:59 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-il1-x142.google.com (mail-il1-x142.google.com [IPv6:2607:f8b0:4864:20::142]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 1CB458181D for ; Sun, 12 Jan 2020 20:07:47 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x142.google.com with SMTP id t17so6030253ilm.13 for ; Sun, 12 Jan 2020 11:07:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=y/3/FC1XnDVxWzU3k8QMDiKcpDwUp++vQZ53xpXfySI=; b=WUQkPFuM2VamDKIKwlNQeKvgPg25UuUyBHofhg1u2C4HQ5Z57H9lRhTkzrql2rlQvO tXmjXl4Apg14YQqESQyNppzcfny7s0oeqTho24YSvlX9Gb8K/knIRX0PdTE8KTaYndN3 SGLD/HxgWgzXDl6Hkihk7shtQbn8AQTbABvWo= 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=y/3/FC1XnDVxWzU3k8QMDiKcpDwUp++vQZ53xpXfySI=; b=Uyfc0CAawZ0F3+f7VZNGyzQZwTZunQVy7VvY/o6saBSo3Zp9cvFBgAsVATl0ZC6JQe 2Fml1AHUtaYT5r7oPF5ecAogX73RFYj/kCP3KjIlc1Cy8xwfZp9bQZ53MBPDRGT1nIGS fqf+8Q6jRCEt7NvuJkuJXEFaRXC3t+mYeE8kbCvVbrad3OIvxJxkkfwYYwKWL/VFx3kn dlDQsOalR4inK5YVVTFOCn1rzCmvNXsWuOyyci9fuL9pHbWfJ+TIUPuiAT3U3xppcE5Y Y99iVpVNPiWbUOt+HHPBq8nguiwAoeRz8e8LJF4EBjPQqHWWD0ziKI8WLVBU6H3o4zgV GUlA== X-Gm-Message-State: APjAAAVU32/Ubf205fZXe0H+K0WSC5ZHvuYGKRxIuXBvNZhKOJRZOY85 LSXOtSjcDPuvF+8HegmL/ot8y9sR2Ls= X-Google-Smtp-Source: APXvYqzq4/UrGehohRDXF7YdkajaPbdHKFa3sDJlZqLckv+iIcYrYvF1+IXVsQA+xyllhkpcgLOJ7w== X-Received: by 2002:a92:afcf:: with SMTP id v76mr11499043ill.20.1578856064368; Sun, 12 Jan 2020 11:07:44 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:43 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 29/33] dm: core: Require users of devres to include the header Date: Sun, 12 Jan 2020 12:06:20 -0700 Message-Id: <20200112120216.29.I451105ed1149334d1ef6eca303eede6e56b833d1@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-Mailman-Approved-At: Sun, 12 Jan 2020 20:46:02 +0100 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Carlo Caione , Peter Ujfalusi , Miquel Raynal , Marek Szyprowski , Quentin Schulz , Michal Simek , Sergey Kubushyn , Michal Suchanek , titron , Pavel Herrmann , Joe Hershberger , "NXP i.MX U-Boot Team" , Stefan Roese , Fabien Dessenne , u-boot-amlogic@groups.io, Alexander Graf , Fugang Duan , Boris Brezillon , Andy Yan , GSS_MTK_Uboot_upstream , Atish Patra , Heinrich Schuchardt , William Zhang , Roger Quadros , Kyungmin Park , Trent Piepho , Maxime Ripard , Vladimir Oltean , uboot-stm32@st-md-mailman.stormreply.com, Eugeniu Rosca , Marek Vasut , Ryder Lee , Heiko Stuebner , Stefan Agner , Andre Przywara , T Karthik Reddy Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean At present devres.h is included in all files that include dm.h but few make use of it. Also this pulls in linux/compat which adds several more headers. Drop the automatic inclusion and require files to include devres themselves. This provides a good indication of which files use devres. Signed-off-by: Simon Glass Reviewed-by: Anatolij Gustschin --- arch/arm/mach-aspeed/ast2500/clk_ast2500.c | 1 + arch/arm/mach-imx/cmd_nandbcb.c | 1 + arch/arm/mach-meson/board-info.c | 1 + arch/arm/mach-meson/sm.c | 1 + arch/arm/mach-rockchip/px30/clk_px30.c | 1 + arch/arm/mach-rockchip/rk3036/clk_rk3036.c | 1 + arch/arm/mach-rockchip/rk3128/clk_rk3128.c | 1 + arch/arm/mach-rockchip/rk3188/clk_rk3188.c | 1 + arch/arm/mach-rockchip/rk3188/rk3188.c | 1 + arch/arm/mach-rockchip/rk322x/clk_rk322x.c | 1 + arch/arm/mach-rockchip/rk3288/clk_rk3288.c | 1 + arch/arm/mach-rockchip/rk3288/rk3288.c | 1 + arch/arm/mach-rockchip/rk3308/clk_rk3308.c | 1 + arch/arm/mach-rockchip/rk3328/clk_rk3328.c | 1 + arch/arm/mach-rockchip/rk3368/clk_rk3368.c | 1 + arch/arm/mach-rockchip/rk3399/clk_rk3399.c | 1 + arch/arm/mach-rockchip/rv1108/clk_rv1108.c | 1 + arch/arm/mach-stm32mp/pwr_regulator.c | 1 + arch/riscv/lib/andes_plic.c | 1 + arch/riscv/lib/andes_plmt.c | 1 + arch/riscv/lib/sifive_clint.c | 1 + board/google/veyron/veyron.c | 1 + board/st/stm32mp1/stm32mp1.c | 1 + cmd/gpio.c | 1 + cmd/gpt.c | 1 + cmd/mtd.c | 2 ++ cmd/ubi.c | 1 + drivers/adc/rockchip-saradc.c | 1 + drivers/block/blk-uclass.c | 1 + drivers/clk/altera/clk-arria10.c | 1 + drivers/clk/aspeed/clk_ast2500.c | 1 + drivers/clk/at91/clk-generated.c | 1 + drivers/clk/at91/clk-usb.c | 1 + drivers/clk/clk-composite.c | 2 ++ drivers/clk/clk-divider.c | 2 ++ drivers/clk/clk-fixed-factor.c | 2 ++ drivers/clk/clk-gate.c | 2 ++ drivers/clk/clk-mux.c | 2 ++ drivers/clk/clk-ti-sci.c | 1 + drivers/clk/clk-uclass.c | 4 +++- drivers/clk/clk_fixed_factor.c | 1 + drivers/clk/clk_sandbox_ccf.c | 2 ++ drivers/clk/clk_sandbox_test.c | 1 + drivers/clk/clk_versal.c | 1 + drivers/clk/clk_zynqmp.c | 1 + drivers/clk/imx/clk-composite-8m.c | 2 ++ drivers/clk/imx/clk-gate2.c | 2 ++ drivers/clk/imx/clk-pfd.c | 2 ++ drivers/clk/imx/clk-pll14xx.c | 2 ++ drivers/clk/imx/clk-pllv3.c | 2 ++ drivers/clk/meson/axg.c | 1 + drivers/clk/meson/g12a.c | 1 + drivers/clk/meson/gxbb.c | 1 + drivers/clk/rockchip/clk_rk3188.c | 1 + drivers/clk/rockchip/clk_rk3288.c | 1 + drivers/clk/sifive/fu540-prci.c | 1 + drivers/core/devres.c | 1 + drivers/dfu/dfu_mtd.c | 1 + drivers/dma/ti/k3-udma.c | 2 ++ drivers/firmware/ti_sci.c | 1 + drivers/gpio/dwapb_gpio.c | 1 + drivers/gpio/mscc_sgpio.c | 1 + drivers/i2c/ast_i2c.c | 1 + drivers/i2c/designware_i2c.c | 1 + drivers/i2c/meson_i2c.c | 1 + drivers/i2c/muxes/i2c-mux-gpio.c | 1 + drivers/i2c/tegra_i2c.c | 1 + drivers/misc/microchip_flexcom.c | 1 + drivers/misc/tegra186_bpmp.c | 1 + drivers/mmc/am654_sdhci.c | 1 + drivers/mmc/aspeed_sdhci.c | 1 + drivers/mmc/fsl_esdhc_imx.c | 1 + drivers/mmc/omap_hsmmc.c | 2 ++ drivers/mmc/rockchip_sdhci.c | 1 + drivers/mmc/tegra_mmc.c | 1 + drivers/mmc/zynq_sdhci.c | 1 + drivers/mtd/mtd_uboot.c | 1 + drivers/mtd/mtdconcat.c | 1 + drivers/mtd/mtdcore.c | 1 + drivers/mtd/mtdpart.c | 1 + drivers/mtd/nand/bbt.c | 1 + drivers/mtd/nand/raw/atmel_nand.c | 1 + drivers/mtd/nand/raw/brcmnand/bcm63158_nand.c | 1 + drivers/mtd/nand/raw/brcmnand/bcm6838_nand.c | 1 + drivers/mtd/nand/raw/brcmnand/bcm6858_nand.c | 1 + drivers/mtd/nand/raw/brcmnand/brcmnand.c | 2 ++ drivers/mtd/nand/raw/brcmnand/brcmnand_compat.c | 1 + drivers/mtd/nand/raw/denali.c | 2 ++ drivers/mtd/nand/raw/fsl_elbc_nand.c | 1 + drivers/mtd/nand/raw/fsl_ifc_nand.c | 1 + drivers/mtd/nand/raw/mxs_nand_spl.c | 1 + drivers/mtd/nand/raw/nand_base.c | 1 + drivers/mtd/nand/raw/nand_bbt.c | 1 + drivers/mtd/nand/raw/nand_bch.c | 1 + drivers/mtd/nand/raw/nand_timings.c | 1 + drivers/mtd/nand/raw/nand_util.c | 1 + drivers/mtd/nand/raw/pxa3xx_nand.c | 2 ++ drivers/mtd/nand/raw/stm32_fmc2_nand.c | 1 + drivers/mtd/nand/raw/sunxi_nand.c | 2 ++ drivers/mtd/nand/spi/core.c | 1 + drivers/mtd/onenand/onenand_base.c | 1 + drivers/mtd/spi/spi-nor-core.c | 1 + drivers/mtd/ubi/attach.c | 1 + drivers/mtd/ubi/build.c | 1 + drivers/mtd/ubi/debug.c | 1 + drivers/mtd/ubi/eba.c | 1 + drivers/mtd/ubi/fastmap.c | 2 ++ drivers/mtd/ubi/io.c | 1 + drivers/mtd/ubi/kapi.c | 1 + drivers/mtd/ubi/vmt.c | 1 + drivers/mtd/ubi/vtbl.c | 1 + drivers/mtd/ubi/wl.c | 1 + drivers/net/designware.c | 1 + drivers/net/dwmac_socfpga.c | 1 + drivers/net/mvneta.c | 1 + drivers/net/mvpp2.c | 2 ++ drivers/net/phy/dp83867.c | 1 + drivers/net/sni_ave.c | 1 + drivers/net/zynq_gem.c | 1 + drivers/pci/pcie_dw_ti.c | 1 + drivers/pci/pcie_mediatek.c | 1 + drivers/phy/allwinner/phy-sun4i-usb.c | 1 + drivers/phy/marvell/comphy_core.c | 1 + drivers/phy/omap-usb2-phy.c | 1 + drivers/phy/phy-mtk-tphy.c | 1 + drivers/phy/phy-ti-am654.c | 1 + drivers/phy/ti-pipe3-phy.c | 1 + drivers/pinctrl/intel/pinctrl.c | 1 + drivers/pinctrl/mscc/mscc-common.c | 1 + drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 1 + drivers/pinctrl/nxp/pinctrl-imx.c | 1 + drivers/pinctrl/nxp/pinctrl-mxs.c | 1 + drivers/pinctrl/pinctrl_stm32.c | 1 + drivers/pinctrl/renesas/pfc.c | 1 + drivers/power/domain/meson-ee-pwrc.c | 1 + drivers/power/domain/meson-gx-pwrc-vpu.c | 1 + drivers/power/domain/mtk-power-domain.c | 1 + drivers/power/domain/ti-sci-power-domain.c | 1 + drivers/power/regulator/pbias_regulator.c | 1 + drivers/ram/rockchip/dmc-rk3368.c | 1 + drivers/remoteproc/rproc-elf-loader.c | 1 + drivers/remoteproc/stm32_copro.c | 1 + drivers/remoteproc/ti_k3_arm64_rproc.c | 1 + drivers/remoteproc/ti_k3_dsp_rproc.c | 1 + drivers/remoteproc/ti_k3_r5f_rproc.c | 1 + drivers/reset/reset-mediatek.c | 1 + drivers/reset/reset-ti-sci.c | 1 + drivers/reset/reset-uclass.c | 1 + drivers/serial/ns16550.c | 1 + drivers/serial/serial_mtk.c | 3 ++- drivers/serial/serial_omap.c | 1 + drivers/serial/serial_sifive.c | 1 + drivers/serial/serial_zynq.c | 1 + drivers/smem/msm_smem.c | 2 ++ drivers/soc/ti/k3-navss-ringacc.c | 2 ++ drivers/spi/atmel-quadspi.c | 1 + drivers/spi/cadence_qspi.c | 1 + drivers/spi/spi-mem.c | 1 + drivers/spi/ti_qspi.c | 1 + drivers/spi/zynqmp_gqspi.c | 1 + drivers/sysreset/sysreset-ti-sci.c | 1 + drivers/sysreset/sysreset_syscon.c | 1 + drivers/tee/optee/core.c | 1 + drivers/timer/ast_timer.c | 1 + drivers/timer/cadence-ttc.c | 1 + drivers/timer/timer-uclass.c | 1 + drivers/ufs/cdns-platform.c | 1 + drivers/ufs/ti-j721e-ufs.c | 1 + drivers/ufs/ufs.c | 1 + drivers/usb/cdns3/core.c | 1 + drivers/usb/cdns3/gadget.c | 2 ++ drivers/usb/cdns3/host.c | 1 + drivers/usb/dwc3/core.c | 2 ++ drivers/usb/dwc3/dwc3-omap.c | 1 + drivers/usb/dwc3/gadget.c | 1 + drivers/usb/dwc3/ti_usb_phy.c | 1 + drivers/usb/gadget/at91_udc.c | 2 ++ drivers/usb/gadget/composite.c | 1 + drivers/usb/gadget/dwc2_udc_otg.c | 1 + drivers/usb/gadget/f_mass_storage.c | 1 + drivers/usb/gadget/pxa25x_udc.c | 1 + drivers/usb/gadget/udc/udc-core.c | 1 + drivers/usb/host/ehci-generic.c | 1 + drivers/usb/host/ohci-da8xx.c | 1 + drivers/usb/host/ohci-generic.c | 1 + drivers/usb/musb-new/am35x.c | 1 + drivers/usb/musb-new/musb_core.c | 1 + drivers/usb/musb-new/musb_dsps.c | 1 + drivers/usb/musb-new/musb_gadget.c | 1 + drivers/usb/musb-new/musb_host.c | 1 + drivers/usb/musb-new/musb_uboot.c | 1 + drivers/usb/musb-new/omap2430.c | 1 + drivers/video/exynos/exynos_mipi_dsi.c | 1 + drivers/video/mipi_dsi.c | 1 + drivers/video/rockchip/rk3288_mipi.c | 1 + drivers/video/rockchip/rk3399_mipi.c | 1 + drivers/video/rockchip/rk_vop.c | 1 + drivers/video/tegra124/sor.c | 1 + drivers/virtio/virtio_mmio.c | 1 + drivers/virtio/virtio_pci_legacy.c | 1 + drivers/virtio/virtio_pci_modern.c | 1 + drivers/virtio/virtio_sandbox.c | 1 + drivers/watchdog/ast_wdt.c | 1 + drivers/watchdog/cdns_wdt.c | 1 + drivers/watchdog/sp805_wdt.c | 1 + drivers/watchdog/xilinx_tb_wdt.c | 1 + fs/ubifs/debug.c | 1 + fs/ubifs/gc.c | 1 + fs/ubifs/io.c | 1 + fs/ubifs/log.c | 1 + fs/ubifs/lpt.c | 1 + fs/ubifs/lpt_commit.c | 1 + fs/ubifs/master.c | 1 + fs/ubifs/orphan.c | 1 + fs/ubifs/recovery.c | 1 + fs/ubifs/replay.c | 1 + fs/ubifs/sb.c | 1 + fs/ubifs/scan.c | 1 + fs/ubifs/super.c | 1 + fs/ubifs/tnc.c | 1 + fs/ubifs/tnc_misc.c | 1 + fs/ubifs/ubifs.c | 1 + fs/yaffs2/yaffs_allocator.c | 1 + fs/yaffs2/yaffs_checkptrw.c | 1 + fs/yaffs2/yaffs_guts.c | 1 + fs/yaffs2/yaffs_summary.c | 1 + fs/yaffs2/yaffs_yaffs1.c | 1 + fs/yaffs2/yaffs_yaffs2.c | 1 + fs/yaffs2/yaffsfs.c | 1 + include/dm/device.h | 2 -- include/dm/devres.h | 4 ++++ lib/bch.c | 1 + lib/crypto/asymmetric_type.c | 2 ++ lib/crypto/pkcs7_parser.c | 1 + lib/crypto/public_key.c | 2 ++ lib/crypto/x509_cert_parser.c | 1 + lib/crypto/x509_public_key.c | 2 ++ lib/list_sort.c | 1 + test/dm/devres.c | 1 + test/dm/regmap.c | 1 + test/dm/syscon.c | 1 + test/dm/test-fdt.c | 1 + 242 files changed, 275 insertions(+), 4 deletions(-) diff --git a/arch/arm/mach-aspeed/ast2500/clk_ast2500.c b/arch/arm/mach-aspeed/ast2500/clk_ast2500.c index 7d864a4088..3e9f5e57ed 100644 --- a/arch/arm/mach-aspeed/ast2500/clk_ast2500.c +++ b/arch/arm/mach-aspeed/ast2500/clk_ast2500.c @@ -7,6 +7,7 @@ #include #include #include +#include int ast_get_clk(struct udevice **devp) { diff --git a/arch/arm/mach-imx/cmd_nandbcb.c b/arch/arm/mach-imx/cmd_nandbcb.c index 334cc0766e..a1c265f46f 100644 --- a/arch/arm/mach-imx/cmd_nandbcb.c +++ b/arch/arm/mach-imx/cmd_nandbcb.c @@ -11,6 +11,7 @@ #include #include +#include #include #include diff --git a/arch/arm/mach-meson/board-info.c b/arch/arm/mach-meson/board-info.c index 0d3b40a249..4b88afa9b7 100644 --- a/arch/arm/mach-meson/board-info.c +++ b/arch/arm/mach-meson/board-info.c @@ -10,6 +10,7 @@ #include #include #include +#include #define AO_SEC_SD_CFG8 0xe0 #define AO_SEC_SOCINFO_OFFSET AO_SEC_SD_CFG8 diff --git a/arch/arm/mach-meson/sm.c b/arch/arm/mach-meson/sm.c index fabcb3bfd7..fac286b9c8 100644 --- a/arch/arm/mach-meson/sm.c +++ b/arch/arm/mach-meson/sm.c @@ -7,6 +7,7 @@ #include #include +#include #include #include #include diff --git a/arch/arm/mach-rockchip/px30/clk_px30.c b/arch/arm/mach-rockchip/px30/clk_px30.c index 0bd6b471da..98a1bcd224 100644 --- a/arch/arm/mach-rockchip/px30/clk_px30.c +++ b/arch/arm/mach-rockchip/px30/clk_px30.c @@ -8,6 +8,7 @@ #include #include #include +#include int rockchip_get_clk(struct udevice **devp) { diff --git a/arch/arm/mach-rockchip/rk3036/clk_rk3036.c b/arch/arm/mach-rockchip/rk3036/clk_rk3036.c index 20e2ed6813..5d0def3b52 100644 --- a/arch/arm/mach-rockchip/rk3036/clk_rk3036.c +++ b/arch/arm/mach-rockchip/rk3036/clk_rk3036.c @@ -9,6 +9,7 @@ #include #include #include +#include int rockchip_get_clk(struct udevice **devp) { diff --git a/arch/arm/mach-rockchip/rk3128/clk_rk3128.c b/arch/arm/mach-rockchip/rk3128/clk_rk3128.c index 827750bf98..f9ce1f7234 100644 --- a/arch/arm/mach-rockchip/rk3128/clk_rk3128.c +++ b/arch/arm/mach-rockchip/rk3128/clk_rk3128.c @@ -8,6 +8,7 @@ #include #include #include +#include int rockchip_get_clk(struct udevice **devp) { diff --git a/arch/arm/mach-rockchip/rk3188/clk_rk3188.c b/arch/arm/mach-rockchip/rk3188/clk_rk3188.c index 9d4fc37eda..a0dcac3732 100644 --- a/arch/arm/mach-rockchip/rk3188/clk_rk3188.c +++ b/arch/arm/mach-rockchip/rk3188/clk_rk3188.c @@ -9,6 +9,7 @@ #include #include #include +#include int rockchip_get_clk(struct udevice **devp) { diff --git a/arch/arm/mach-rockchip/rk3188/rk3188.c b/arch/arm/mach-rockchip/rk3188/rk3188.c index 1b012f7f67..ecb9af1470 100644 --- a/arch/arm/mach-rockchip/rk3188/rk3188.c +++ b/arch/arm/mach-rockchip/rk3188/rk3188.c @@ -10,6 +10,7 @@ #include #include #include +#include #define GRF_BASE 0x20008000 diff --git a/arch/arm/mach-rockchip/rk322x/clk_rk322x.c b/arch/arm/mach-rockchip/rk322x/clk_rk322x.c index 958c7b82b9..fc5abd736e 100644 --- a/arch/arm/mach-rockchip/rk322x/clk_rk322x.c +++ b/arch/arm/mach-rockchip/rk322x/clk_rk322x.c @@ -8,6 +8,7 @@ #include #include #include +#include int rockchip_get_clk(struct udevice **devp) { diff --git a/arch/arm/mach-rockchip/rk3288/clk_rk3288.c b/arch/arm/mach-rockchip/rk3288/clk_rk3288.c index e64ee86f08..1b97a2e9f2 100644 --- a/arch/arm/mach-rockchip/rk3288/clk_rk3288.c +++ b/arch/arm/mach-rockchip/rk3288/clk_rk3288.c @@ -9,6 +9,7 @@ #include #include #include +#include int rockchip_get_clk(struct udevice **devp) { diff --git a/arch/arm/mach-rockchip/rk3288/rk3288.c b/arch/arm/mach-rockchip/rk3288/rk3288.c index 9572f7ea9c..05ba48ab27 100644 --- a/arch/arm/mach-rockchip/rk3288/rk3288.c +++ b/arch/arm/mach-rockchip/rk3288/rk3288.c @@ -17,6 +17,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; diff --git a/arch/arm/mach-rockchip/rk3308/clk_rk3308.c b/arch/arm/mach-rockchip/rk3308/clk_rk3308.c index 51b43153e8..1feb237224 100644 --- a/arch/arm/mach-rockchip/rk3308/clk_rk3308.c +++ b/arch/arm/mach-rockchip/rk3308/clk_rk3308.c @@ -8,6 +8,7 @@ #include #include #include +#include int rockchip_get_clk(struct udevice **devp) { diff --git a/arch/arm/mach-rockchip/rk3328/clk_rk3328.c b/arch/arm/mach-rockchip/rk3328/clk_rk3328.c index f64f0cbbe5..e5375514de 100644 --- a/arch/arm/mach-rockchip/rk3328/clk_rk3328.c +++ b/arch/arm/mach-rockchip/rk3328/clk_rk3328.c @@ -7,6 +7,7 @@ #include #include #include +#include int rockchip_get_clk(struct udevice **devp) { diff --git a/arch/arm/mach-rockchip/rk3368/clk_rk3368.c b/arch/arm/mach-rockchip/rk3368/clk_rk3368.c index 55e5dd768a..9a33c67bc9 100644 --- a/arch/arm/mach-rockchip/rk3368/clk_rk3368.c +++ b/arch/arm/mach-rockchip/rk3368/clk_rk3368.c @@ -9,6 +9,7 @@ #include #include #include +#include int rockchip_get_clk(struct udevice **devp) { diff --git a/arch/arm/mach-rockchip/rk3399/clk_rk3399.c b/arch/arm/mach-rockchip/rk3399/clk_rk3399.c index f0411c0a21..08f677ac4d 100644 --- a/arch/arm/mach-rockchip/rk3399/clk_rk3399.c +++ b/arch/arm/mach-rockchip/rk3399/clk_rk3399.c @@ -9,6 +9,7 @@ #include #include #include +#include static int rockchip_get_cruclk(struct udevice **devp) { diff --git a/arch/arm/mach-rockchip/rv1108/clk_rv1108.c b/arch/arm/mach-rockchip/rv1108/clk_rv1108.c index 58a7e889cc..b37ae1c494 100644 --- a/arch/arm/mach-rockchip/rv1108/clk_rv1108.c +++ b/arch/arm/mach-rockchip/rv1108/clk_rv1108.c @@ -9,6 +9,7 @@ #include #include #include +#include int rockchip_get_clk(struct udevice **devp) { diff --git a/arch/arm/mach-stm32mp/pwr_regulator.c b/arch/arm/mach-stm32mp/pwr_regulator.c index 9484645dbd..977cc7d348 100644 --- a/arch/arm/mach-stm32mp/pwr_regulator.c +++ b/arch/arm/mach-stm32mp/pwr_regulator.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include diff --git a/arch/riscv/lib/andes_plic.c b/arch/riscv/lib/andes_plic.c index 3868569a65..20529ab3eb 100644 --- a/arch/riscv/lib/andes_plic.c +++ b/arch/riscv/lib/andes_plic.c @@ -17,6 +17,7 @@ #include #include #include +#include /* pending register */ #define PENDING_REG(base, hart) ((ulong)(base) + 0x1000 + ((hart) / 4) * 4) diff --git a/arch/riscv/lib/andes_plmt.c b/arch/riscv/lib/andes_plmt.c index 84f4607500..a7e90ca992 100644 --- a/arch/riscv/lib/andes_plmt.c +++ b/arch/riscv/lib/andes_plmt.c @@ -13,6 +13,7 @@ #include #include #include +#include /* mtime register */ #define MTIME_REG(base) ((ulong)(base)) diff --git a/arch/riscv/lib/sifive_clint.c b/arch/riscv/lib/sifive_clint.c index d7899d16d7..5e0d25720b 100644 --- a/arch/riscv/lib/sifive_clint.c +++ b/arch/riscv/lib/sifive_clint.c @@ -13,6 +13,7 @@ #include #include #include +#include /* MSIP registers */ #define MSIP_REG(base, hart) ((ulong)(base) + (hart) * 4) diff --git a/board/google/veyron/veyron.c b/board/google/veyron/veyron.c index dd2c014c60..6b9c34818b 100644 --- a/board/google/veyron/veyron.c +++ b/board/google/veyron/veyron.c @@ -8,6 +8,7 @@ #include #include #include +#include #include /* diff --git a/board/st/stm32mp1/stm32mp1.c b/board/st/stm32mp1/stm32mp1.c index 1d4a54c902..d57a50de11 100644 --- a/board/st/stm32mp1/stm32mp1.c +++ b/board/st/stm32mp1/stm32mp1.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include diff --git a/cmd/gpio.c b/cmd/gpio.c index eff36ab2af..5f4c7ff114 100644 --- a/cmd/gpio.c +++ b/cmd/gpio.c @@ -11,6 +11,7 @@ #include #include #include +#include __weak int name_to_gpio(const char *name) { diff --git a/cmd/gpt.c b/cmd/gpt.c index 0c4349f4b2..ca17070805 100644 --- a/cmd/gpt.c +++ b/cmd/gpt.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include diff --git a/cmd/mtd.c b/cmd/mtd.c index 1b6b8dda2b..21afce03ca 100644 --- a/cmd/mtd.c +++ b/cmd/mtd.c @@ -14,6 +14,8 @@ #include #include #include +#include +#include #include diff --git a/cmd/ubi.c b/cmd/ubi.c index 22ba5b1a2c..7fb4cdfc2a 100644 --- a/cmd/ubi.c +++ b/cmd/ubi.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/adc/rockchip-saradc.c b/drivers/adc/rockchip-saradc.c index ed773b9642..850142cce3 100644 --- a/drivers/adc/rockchip-saradc.c +++ b/drivers/adc/rockchip-saradc.c @@ -11,6 +11,7 @@ #include #include #include +#include #define SARADC_CTRL_CHN_MASK GENMASK(2, 0) #define SARADC_CTRL_POWER_CTRL BIT(3) diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk-uclass.c index ca8978f0e1..7771114491 100644 --- a/drivers/block/blk-uclass.c +++ b/drivers/block/blk-uclass.c @@ -10,6 +10,7 @@ #include #include #include +#include static const char *if_typename_str[IF_TYPE_COUNT] = { [IF_TYPE_IDE] = "ide", diff --git a/drivers/clk/altera/clk-arria10.c b/drivers/clk/altera/clk-arria10.c index 179869df45..a39cd34fe5 100644 --- a/drivers/clk/altera/clk-arria10.c +++ b/drivers/clk/altera/clk-arria10.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include diff --git a/drivers/clk/aspeed/clk_ast2500.c b/drivers/clk/aspeed/clk_ast2500.c index b3a3f3d4dd..f4a441ad68 100644 --- a/drivers/clk/aspeed/clk_ast2500.c +++ b/drivers/clk/aspeed/clk_ast2500.c @@ -10,6 +10,7 @@ #include #include #include +#include /* * MAC Clock Delay settings, taken from Aspeed SDK diff --git a/drivers/clk/at91/clk-generated.c b/drivers/clk/at91/clk-generated.c index 70b277e26f..d8562e131d 100644 --- a/drivers/clk/at91/clk-generated.c +++ b/drivers/clk/at91/clk-generated.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include "pmc.h" diff --git a/drivers/clk/at91/clk-usb.c b/drivers/clk/at91/clk-usb.c index 24af183b55..c3cb2ba014 100644 --- a/drivers/clk/at91/clk-usb.c +++ b/drivers/clk/at91/clk-usb.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include "pmc.h" diff --git a/drivers/clk/clk-composite.c b/drivers/clk/clk-composite.c index a5626c33d1..414185031e 100644 --- a/drivers/clk/clk-composite.c +++ b/drivers/clk/clk-composite.c @@ -9,8 +9,10 @@ #include #include #include +#include #include #include +#include #include "clk.h" diff --git a/drivers/clk/clk-divider.c b/drivers/clk/clk-divider.c index 822e09b084..d79ae367b8 100644 --- a/drivers/clk/clk-divider.c +++ b/drivers/clk/clk-divider.c @@ -14,10 +14,12 @@ #include #include #include +#include #include #include #include #include +#include #include #include #include diff --git a/drivers/clk/clk-fixed-factor.c b/drivers/clk/clk-fixed-factor.c index 711b0588bc..2ceb6bb171 100644 --- a/drivers/clk/clk-fixed-factor.c +++ b/drivers/clk/clk-fixed-factor.c @@ -9,10 +9,12 @@ #include #include #include +#include #include #include #include #include "clk.h" +#include #define UBOOT_DM_CLK_IMX_FIXED_FACTOR "ccf_clk_fixed_factor" diff --git a/drivers/clk/clk-gate.c b/drivers/clk/clk-gate.c index 70b8794554..6415c2f1b9 100644 --- a/drivers/clk/clk-gate.c +++ b/drivers/clk/clk-gate.c @@ -12,9 +12,11 @@ #include #include #include +#include #include #include #include "clk.h" +#include #define UBOOT_DM_CLK_GATE "clk_gate" diff --git a/drivers/clk/clk-mux.c b/drivers/clk/clk-mux.c index 5acc0b8cbd..b9d2ae6778 100644 --- a/drivers/clk/clk-mux.c +++ b/drivers/clk/clk-mux.c @@ -26,9 +26,11 @@ #include #include #include +#include #include #include #include "clk.h" +#include #define UBOOT_DM_CLK_CCF_MUX "ccf_clk_mux" diff --git a/drivers/clk/clk-ti-sci.c b/drivers/clk/clk-ti-sci.c index 5ef9035ece..4612fbcdc7 100644 --- a/drivers/clk/clk-ti-sci.c +++ b/drivers/clk/clk-ti-sci.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index 7ac580d661..a4f6b15e3d 100644 --- a/drivers/clk/clk-uclass.c +++ b/drivers/clk/clk-uclass.c @@ -10,10 +10,12 @@ #include #include #include -#include #include #include +#include +#include #include +#include static inline const struct clk_ops *clk_dev_ops(struct udevice *dev) { diff --git a/drivers/clk/clk_fixed_factor.c b/drivers/clk/clk_fixed_factor.c index dcdb6ddf5c..cf9c4ae367 100644 --- a/drivers/clk/clk_fixed_factor.c +++ b/drivers/clk/clk_fixed_factor.c @@ -9,6 +9,7 @@ #include #include #include +#include struct clk_fixed_factor { struct clk parent; diff --git a/drivers/clk/clk_sandbox_ccf.c b/drivers/clk/clk_sandbox_ccf.c index 9fa27229e1..0903c817a6 100644 --- a/drivers/clk/clk_sandbox_ccf.c +++ b/drivers/clk/clk_sandbox_ccf.c @@ -11,8 +11,10 @@ #include #include #include +#include #include #include +#include /* * Sandbox implementation of CCF primitives necessary for clk-uclass testing diff --git a/drivers/clk/clk_sandbox_test.c b/drivers/clk/clk_sandbox_test.c index 41954660ea..628110de3e 100644 --- a/drivers/clk/clk_sandbox_test.c +++ b/drivers/clk/clk_sandbox_test.c @@ -7,6 +7,7 @@ #include #include #include +#include struct sandbox_clk_test { struct clk clks[SANDBOX_CLK_TEST_NON_DEVM_COUNT]; diff --git a/drivers/clk/clk_versal.c b/drivers/clk/clk_versal.c index 7e97b0c4bf..66cbef15ab 100644 --- a/drivers/clk/clk_versal.c +++ b/drivers/clk/clk_versal.c @@ -13,6 +13,7 @@ #include #include #include +#include #define MAX_PARENT 100 #define MAX_NODES 6 diff --git a/drivers/clk/clk_zynqmp.c b/drivers/clk/clk_zynqmp.c index 72fc39fa47..a365b565e1 100644 --- a/drivers/clk/clk_zynqmp.c +++ b/drivers/clk/clk_zynqmp.c @@ -11,6 +11,7 @@ #include #include #include +#include static const resource_size_t zynqmp_crf_apb_clkc_base = 0xfd1a0020; static const resource_size_t zynqmp_crl_apb_clkc_base = 0xff5e0020; diff --git a/drivers/clk/imx/clk-composite-8m.c b/drivers/clk/imx/clk-composite-8m.c index 95120d6559..3e99c528de 100644 --- a/drivers/clk/imx/clk-composite-8m.c +++ b/drivers/clk/imx/clk-composite-8m.c @@ -8,9 +8,11 @@ #include #include #include +#include #include #include #include "clk.h" +#include #define UBOOT_DM_CLK_IMX_COMPOSITE "imx_clk_composite" diff --git a/drivers/clk/imx/clk-gate2.c b/drivers/clk/imx/clk-gate2.c index 1b9db6e791..b38890d5ba 100644 --- a/drivers/clk/imx/clk-gate2.c +++ b/drivers/clk/imx/clk-gate2.c @@ -19,9 +19,11 @@ #include #include #include +#include #include #include #include "clk.h" +#include #define UBOOT_DM_CLK_IMX_GATE2 "imx_clk_gate2" diff --git a/drivers/clk/imx/clk-pfd.c b/drivers/clk/imx/clk-pfd.c index 188b2b3b90..f0f2eeb4a7 100644 --- a/drivers/clk/imx/clk-pfd.c +++ b/drivers/clk/imx/clk-pfd.c @@ -19,10 +19,12 @@ #include #include #include +#include #include #include #include #include "clk.h" +#include #define UBOOT_DM_CLK_IMX_PFD "imx_clk_pfd" diff --git a/drivers/clk/imx/clk-pll14xx.c b/drivers/clk/imx/clk-pll14xx.c index 2246beb21b..1673eb26b2 100644 --- a/drivers/clk/imx/clk-pll14xx.c +++ b/drivers/clk/imx/clk-pll14xx.c @@ -10,7 +10,9 @@ #include #include #include +#include #include +#include #include #include #include diff --git a/drivers/clk/imx/clk-pllv3.c b/drivers/clk/imx/clk-pllv3.c index fbb7b24d5e..77efd394e9 100644 --- a/drivers/clk/imx/clk-pllv3.c +++ b/drivers/clk/imx/clk-pllv3.c @@ -9,9 +9,11 @@ #include #include #include +#include #include #include #include "clk.h" +#include #define UBOOT_DM_CLK_IMX_PLLV3 "imx_clk_pllv3" diff --git a/drivers/clk/meson/axg.c b/drivers/clk/meson/axg.c index 32cbf752ae..7035b59a13 100644 --- a/drivers/clk/meson/axg.c +++ b/drivers/clk/meson/axg.c @@ -15,6 +15,7 @@ #include #include #include "clk_meson.h" +#include #define XTAL_RATE 24000000 diff --git a/drivers/clk/meson/g12a.c b/drivers/clk/meson/g12a.c index 1b2523bbf1..686d94ebfe 100644 --- a/drivers/clk/meson/g12a.c +++ b/drivers/clk/meson/g12a.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include "clk_meson.h" diff --git a/drivers/clk/meson/gxbb.c b/drivers/clk/meson/gxbb.c index abb5337e78..e781e08d9d 100644 --- a/drivers/clk/meson/gxbb.c +++ b/drivers/clk/meson/gxbb.c @@ -15,6 +15,7 @@ #include #include #include "clk_meson.h" +#include /* This driver support only basic clock tree operations : * - Can calculate clock frequency on a limited tree diff --git a/drivers/clk/rockchip/clk_rk3188.c b/drivers/clk/rockchip/clk_rk3188.c index 3ea9a81b32..82eea40063 100644 --- a/drivers/clk/rockchip/clk_rk3188.c +++ b/drivers/clk/rockchip/clk_rk3188.c @@ -20,6 +20,7 @@ #include #include #include +#include #include enum rk3188_clk_type { diff --git a/drivers/clk/rockchip/clk_rk3288.c b/drivers/clk/rockchip/clk_rk3288.c index 85d1b67e43..14dfa85942 100644 --- a/drivers/clk/rockchip/clk_rk3288.c +++ b/drivers/clk/rockchip/clk_rk3288.c @@ -21,6 +21,7 @@ #include #include #include +#include #include DECLARE_GLOBAL_DATA_PTR; diff --git a/drivers/clk/sifive/fu540-prci.c b/drivers/clk/sifive/fu540-prci.c index ce0769f2d1..8847178001 100644 --- a/drivers/clk/sifive/fu540-prci.c +++ b/drivers/clk/sifive/fu540-prci.c @@ -35,6 +35,7 @@ #include #include #include +#include #include #include diff --git a/drivers/core/devres.c b/drivers/core/devres.c index 237b42653c..d98e80de26 100644 --- a/drivers/core/devres.c +++ b/drivers/core/devres.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include diff --git a/drivers/dfu/dfu_mtd.c b/drivers/dfu/dfu_mtd.c index 9528a7b4ee..36cd4e945b 100644 --- a/drivers/dfu/dfu_mtd.c +++ b/drivers/dfu/dfu_mtd.c @@ -11,6 +11,7 @@ #include #include #include +#include static bool mtd_is_aligned_with_block_size(struct mtd_info *mtd, u64 size) { diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c index 23d6ed0697..4859b3f32c 100644 --- a/drivers/dma/ti/k3-udma.c +++ b/drivers/dma/ti/k3-udma.c @@ -12,12 +12,14 @@ #include #include #include +#include #include #include #include #include #include #include +#include #include #include #include diff --git a/drivers/firmware/ti_sci.c b/drivers/firmware/ti_sci.c index 62b1dc2006..5e37ee0570 100644 --- a/drivers/firmware/ti_sci.c +++ b/drivers/firmware/ti_sci.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/gpio/dwapb_gpio.c b/drivers/gpio/dwapb_gpio.c index 2eb1547b4f..58e3e7b1f7 100644 --- a/drivers/gpio/dwapb_gpio.c +++ b/drivers/gpio/dwapb_gpio.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/gpio/mscc_sgpio.c b/drivers/gpio/mscc_sgpio.c index c899454ec4..3378ebb442 100644 --- a/drivers/gpio/mscc_sgpio.c +++ b/drivers/gpio/mscc_sgpio.c @@ -13,6 +13,7 @@ #include #include #include +#include #define MSCC_SGPIOS_PER_BANK 32 #define MSCC_SGPIO_BANK_DEPTH 4 diff --git a/drivers/i2c/ast_i2c.c b/drivers/i2c/ast_i2c.c index 763183d649..3f7382a0c9 100644 --- a/drivers/i2c/ast_i2c.c +++ b/drivers/i2c/ast_i2c.c @@ -13,6 +13,7 @@ #include #include #include +#include #include "ast_i2c.h" diff --git a/drivers/i2c/designware_i2c.c b/drivers/i2c/designware_i2c.c index b8cdd1c661..03d6ca09f7 100644 --- a/drivers/i2c/designware_i2c.c +++ b/drivers/i2c/designware_i2c.c @@ -12,6 +12,7 @@ #include #include #include "designware_i2c.h" +#include #ifdef CONFIG_SYS_I2C_DW_ENABLE_STATUS_UNSUPPORTED static int dw_i2c_enable(struct i2c_regs *i2c_base, bool enable) diff --git a/drivers/i2c/meson_i2c.c b/drivers/i2c/meson_i2c.c index ee59bac123..bcf45160d8 100644 --- a/drivers/i2c/meson_i2c.c +++ b/drivers/i2c/meson_i2c.c @@ -7,6 +7,7 @@ #include #include #include +#include #define I2C_TIMEOUT_MS 100 diff --git a/drivers/i2c/muxes/i2c-mux-gpio.c b/drivers/i2c/muxes/i2c-mux-gpio.c index e8b124f4f5..29e283ce25 100644 --- a/drivers/i2c/muxes/i2c-mux-gpio.c +++ b/drivers/i2c/muxes/i2c-mux-gpio.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/i2c/tegra_i2c.c b/drivers/i2c/tegra_i2c.c index 4be41ddbf0..f37db31c3c 100644 --- a/drivers/i2c/tegra_i2c.c +++ b/drivers/i2c/tegra_i2c.c @@ -18,6 +18,7 @@ #endif #include #include +#include enum i2c_type { TYPE_114, diff --git a/drivers/misc/microchip_flexcom.c b/drivers/misc/microchip_flexcom.c index 1bc19edfcb..4cff160d88 100644 --- a/drivers/misc/microchip_flexcom.c +++ b/drivers/misc/microchip_flexcom.c @@ -9,6 +9,7 @@ #include #include #include +#include struct microchip_flexcom_regs { u32 cr; diff --git a/drivers/misc/tegra186_bpmp.c b/drivers/misc/tegra186_bpmp.c index 89e27dd526..489337c3d0 100644 --- a/drivers/misc/tegra186_bpmp.c +++ b/drivers/misc/tegra186_bpmp.c @@ -12,6 +12,7 @@ #include #include #include +#include #define BPMP_IVC_FRAME_COUNT 1 #define BPMP_IVC_FRAME_SIZE 128 diff --git a/drivers/mmc/am654_sdhci.c b/drivers/mmc/am654_sdhci.c index 7cd5516197..37952d6ace 100644 --- a/drivers/mmc/am654_sdhci.c +++ b/drivers/mmc/am654_sdhci.c @@ -12,6 +12,7 @@ #include #include #include +#include /* CTL_CFG Registers */ #define CTL_CFG_2 0x14 diff --git a/drivers/mmc/aspeed_sdhci.c b/drivers/mmc/aspeed_sdhci.c index 1321ec37e1..8929e603f3 100644 --- a/drivers/mmc/aspeed_sdhci.c +++ b/drivers/mmc/aspeed_sdhci.c @@ -9,6 +9,7 @@ #include #include #include +#include struct aspeed_sdhci_plat { struct mmc_config cfg; diff --git a/drivers/mmc/fsl_esdhc_imx.c b/drivers/mmc/fsl_esdhc_imx.c index f7b754bd9d..ab1ef8d77c 100644 --- a/drivers/mmc/fsl_esdhc_imx.c +++ b/drivers/mmc/fsl_esdhc_imx.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mmc/omap_hsmmc.c b/drivers/mmc/omap_hsmmc.c index 5d0cfb2ebd..5334723a9f 100644 --- a/drivers/mmc/omap_hsmmc.c +++ b/drivers/mmc/omap_hsmmc.c @@ -47,6 +47,8 @@ #include #endif #include +#include +#include #include #include diff --git a/drivers/mmc/rockchip_sdhci.c b/drivers/mmc/rockchip_sdhci.c index dd3d5574db..b440996b26 100644 --- a/drivers/mmc/rockchip_sdhci.c +++ b/drivers/mmc/rockchip_sdhci.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mmc/tegra_mmc.c b/drivers/mmc/tegra_mmc.c index 22990fa98b..f022e93552 100644 --- a/drivers/mmc/tegra_mmc.c +++ b/drivers/mmc/tegra_mmc.c @@ -14,6 +14,7 @@ #include #include #include +#include struct tegra_mmc_plat { struct mmc_config cfg; diff --git a/drivers/mmc/zynq_sdhci.c b/drivers/mmc/zynq_sdhci.c index 529eec9c45..83c32a361a 100644 --- a/drivers/mmc/zynq_sdhci.c +++ b/drivers/mmc/zynq_sdhci.c @@ -10,6 +10,7 @@ #include #include #include "mmc_private.h" +#include #include #include #include diff --git a/drivers/mtd/mtd_uboot.c b/drivers/mtd/mtd_uboot.c index 8aeccb016d..17df8b0ffc 100644 --- a/drivers/mtd/mtd_uboot.c +++ b/drivers/mtd/mtd_uboot.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mtd/mtdconcat.c b/drivers/mtd/mtdconcat.c index 592f58dcd3..5621c3fd26 100644 --- a/drivers/mtd/mtdconcat.c +++ b/drivers/mtd/mtdconcat.c @@ -10,6 +10,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c index 838c288318..f8d3f4d246 100644 --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c @@ -9,6 +9,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c index fd8d8e5ea7..56acdbf65b 100644 --- a/drivers/mtd/mtdpart.c +++ b/drivers/mtd/mtdpart.c @@ -9,6 +9,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/mtd/nand/bbt.c b/drivers/mtd/nand/bbt.c index f3d05e6757..133670cb19 100644 --- a/drivers/mtd/nand/bbt.c +++ b/drivers/mtd/nand/bbt.c @@ -10,6 +10,7 @@ #define pr_fmt(fmt) "nand-bbt: " fmt #include +#include #include #ifndef __UBOOT__ #include diff --git a/drivers/mtd/nand/raw/atmel_nand.c b/drivers/mtd/nand/raw/atmel_nand.c index 31ad2cfa88..3526585349 100644 --- a/drivers/mtd/nand/raw/atmel_nand.c +++ b/drivers/mtd/nand/raw/atmel_nand.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include diff --git a/drivers/mtd/nand/raw/brcmnand/bcm63158_nand.c b/drivers/mtd/nand/raw/brcmnand/bcm63158_nand.c index 16b0d4440a..ea7c65a1f6 100644 --- a/drivers/mtd/nand/raw/brcmnand/bcm63158_nand.c +++ b/drivers/mtd/nand/raw/brcmnand/bcm63158_nand.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mtd/nand/raw/brcmnand/bcm6838_nand.c b/drivers/mtd/nand/raw/brcmnand/bcm6838_nand.c index ece944485c..3a136155dd 100644 --- a/drivers/mtd/nand/raw/brcmnand/bcm6838_nand.c +++ b/drivers/mtd/nand/raw/brcmnand/bcm6838_nand.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mtd/nand/raw/brcmnand/bcm6858_nand.c b/drivers/mtd/nand/raw/brcmnand/bcm6858_nand.c index 3586baa4fa..6aca011db2 100644 --- a/drivers/mtd/nand/raw/brcmnand/bcm6858_nand.c +++ b/drivers/mtd/nand/raw/brcmnand/bcm6858_nand.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/raw/brcmnand/brcmnand.c index 0745929253..d3e39661e1 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c @@ -17,6 +17,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand_compat.c b/drivers/mtd/nand/raw/brcmnand/brcmnand_compat.c index 883948355c..bb8aea2d01 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand_compat.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand_compat.c @@ -2,6 +2,7 @@ #include #include "brcmnand_compat.h" +#include static char *devm_kvasprintf(struct udevice *dev, gfp_t gfp, const char *fmt, va_list ap) diff --git a/drivers/mtd/nand/raw/denali.c b/drivers/mtd/nand/raw/denali.c index f0b528485c..0bd7eb7f1f 100644 --- a/drivers/mtd/nand/raw/denali.c +++ b/drivers/mtd/nand/raw/denali.c @@ -8,8 +8,10 @@ #include #include #include +#include #include #include +#include #include #include #include diff --git a/drivers/mtd/nand/raw/fsl_elbc_nand.c b/drivers/mtd/nand/raw/fsl_elbc_nand.c index cbf689af63..0c1bd7b474 100644 --- a/drivers/mtd/nand/raw/fsl_elbc_nand.c +++ b/drivers/mtd/nand/raw/fsl_elbc_nand.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include diff --git a/drivers/mtd/nand/raw/fsl_ifc_nand.c b/drivers/mtd/nand/raw/fsl_ifc_nand.c index e2419e18a9..cf20238782 100644 --- a/drivers/mtd/nand/raw/fsl_ifc_nand.c +++ b/drivers/mtd/nand/raw/fsl_ifc_nand.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include diff --git a/drivers/mtd/nand/raw/mxs_nand_spl.c b/drivers/mtd/nand/raw/mxs_nand_spl.c index 975a91a37d..a653dfa5ed 100644 --- a/drivers/mtd/nand/raw/mxs_nand_spl.c +++ b/drivers/mtd/nand/raw/mxs_nand_spl.c @@ -7,6 +7,7 @@ #include #include #include +#include static struct mtd_info *mtd; static struct nand_chip nand_chip; diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c index aba8ac019d..49d5e261b5 100644 --- a/drivers/mtd/nand/raw/nand_base.c +++ b/drivers/mtd/nand/raw/nand_base.c @@ -34,6 +34,7 @@ #endif #include #include +#include #include #include #include diff --git a/drivers/mtd/nand/raw/nand_bbt.c b/drivers/mtd/nand/raw/nand_bbt.c index ba785c5d53..a6e6e0ef6d 100644 --- a/drivers/mtd/nand/raw/nand_bbt.c +++ b/drivers/mtd/nand/raw/nand_bbt.c @@ -59,6 +59,7 @@ #include #include +#include #include #include #include diff --git a/drivers/mtd/nand/raw/nand_bch.c b/drivers/mtd/nand/raw/nand_bch.c index afa0418168..11a22e021d 100644 --- a/drivers/mtd/nand/raw/nand_bch.c +++ b/drivers/mtd/nand/raw/nand_bch.c @@ -8,6 +8,7 @@ */ #include +#include /*#include */ #include diff --git a/drivers/mtd/nand/raw/nand_timings.c b/drivers/mtd/nand/raw/nand_timings.c index c0545a4fb1..e6aa790391 100644 --- a/drivers/mtd/nand/raw/nand_timings.c +++ b/drivers/mtd/nand/raw/nand_timings.c @@ -9,6 +9,7 @@ * */ #include +#include #include #include diff --git a/drivers/mtd/nand/raw/nand_util.c b/drivers/mtd/nand/raw/nand_util.c index fc2235c1a0..f3c8f7f2cb 100644 --- a/drivers/mtd/nand/raw/nand_util.c +++ b/drivers/mtd/nand/raw/nand_util.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include diff --git a/drivers/mtd/nand/raw/pxa3xx_nand.c b/drivers/mtd/nand/raw/pxa3xx_nand.c index 4d2712df4c..e179a780db 100644 --- a/drivers/mtd/nand/raw/pxa3xx_nand.c +++ b/drivers/mtd/nand/raw/pxa3xx_nand.c @@ -10,6 +10,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/drivers/mtd/nand/raw/stm32_fmc2_nand.c b/drivers/mtd/nand/raw/stm32_fmc2_nand.c index f3179cc21f..1c212daa1d 100644 --- a/drivers/mtd/nand/raw/stm32_fmc2_nand.c +++ b/drivers/mtd/nand/raw/stm32_fmc2_nand.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include diff --git a/drivers/mtd/nand/raw/sunxi_nand.c b/drivers/mtd/nand/raw/sunxi_nand.c index 3ccb168d13..cd5c31e76b 100644 --- a/drivers/mtd/nand/raw/sunxi_nand.c +++ b/drivers/mtd/nand/raw/sunxi_nand.c @@ -28,6 +28,8 @@ #include #include #include +#include +#include #include #include diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c index fba8cc056a..d976c19b7a 100644 --- a/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #endif diff --git a/drivers/mtd/onenand/onenand_base.c b/drivers/mtd/onenand/onenand_base.c index 371e2ecaa7..693bb78b87 100644 --- a/drivers/mtd/onenand/onenand_base.c +++ b/drivers/mtd/onenand/onenand_base.c @@ -21,6 +21,7 @@ #include #include +#include #include #include #include "linux/mtd/flashchip.h" diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c index 6e7fc2311e..277ec68bce 100644 --- a/drivers/mtd/spi/spi-nor-core.c +++ b/drivers/mtd/spi/spi-nor-core.c @@ -10,6 +10,7 @@ */ #include +#include #include #include #include diff --git a/drivers/mtd/ubi/attach.c b/drivers/mtd/ubi/attach.c index 19defd8831..f02a06fc35 100644 --- a/drivers/mtd/ubi/attach.c +++ b/drivers/mtd/ubi/attach.c @@ -70,6 +70,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c index 42c5270c7f..7de65bc7c3 100644 --- a/drivers/mtd/ubi/build.c +++ b/drivers/mtd/ubi/build.c @@ -17,6 +17,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/mtd/ubi/debug.c b/drivers/mtd/ubi/debug.c index f3d348da83..aec2613a09 100644 --- a/drivers/mtd/ubi/debug.c +++ b/drivers/mtd/ubi/debug.c @@ -10,6 +10,7 @@ #include "ubi.h" #ifndef __UBOOT__ #include +#include #include #include #endif diff --git a/drivers/mtd/ubi/eba.c b/drivers/mtd/ubi/eba.c index 0c8b998e7e..8428278e21 100644 --- a/drivers/mtd/ubi/eba.c +++ b/drivers/mtd/ubi/eba.c @@ -29,6 +29,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/mtd/ubi/fastmap.c b/drivers/mtd/ubi/fastmap.c index 646c778e87..a3f5e3e1a9 100644 --- a/drivers/mtd/ubi/fastmap.c +++ b/drivers/mtd/ubi/fastmap.c @@ -7,7 +7,9 @@ */ #ifndef __UBOOT__ +#include #include +#include #include #else #include diff --git a/drivers/mtd/ubi/io.c b/drivers/mtd/ubi/io.c index 608dede492..8ba22d8142 100644 --- a/drivers/mtd/ubi/io.c +++ b/drivers/mtd/ubi/io.c @@ -74,6 +74,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/mtd/ubi/kapi.c b/drivers/mtd/ubi/kapi.c index bcea71b1b2..41680cdad1 100644 --- a/drivers/mtd/ubi/kapi.c +++ b/drivers/mtd/ubi/kapi.c @@ -8,6 +8,7 @@ /* This file mostly implements UBI kernel API functions */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/mtd/ubi/vmt.c b/drivers/mtd/ubi/vmt.c index a2ff1b5769..2114abbe7c 100644 --- a/drivers/mtd/ubi/vmt.c +++ b/drivers/mtd/ubi/vmt.c @@ -11,6 +11,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/mtd/ubi/vtbl.c b/drivers/mtd/ubi/vtbl.c index 9c46ef6695..123c2f344d 100644 --- a/drivers/mtd/ubi/vtbl.c +++ b/drivers/mtd/ubi/vtbl.c @@ -46,6 +46,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/mtd/ubi/wl.c b/drivers/mtd/ubi/wl.c index 89ca90feb3..4038b7f04e 100644 --- a/drivers/mtd/ubi/wl.c +++ b/drivers/mtd/ubi/wl.c @@ -86,6 +86,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/net/designware.c b/drivers/net/designware.c index 19fc34f771..aa33fd511b 100644 --- a/drivers/net/designware.c +++ b/drivers/net/designware.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/dwmac_socfpga.c b/drivers/net/dwmac_socfpga.c index b7bf5dbe69..66a5f95112 100644 --- a/drivers/net/dwmac_socfpga.c +++ b/drivers/net/dwmac_socfpga.c @@ -14,6 +14,7 @@ #include #include #include "designware.h" +#include #include diff --git a/drivers/net/mvneta.c b/drivers/net/mvneta.c index 5fe8500199..505fabd3fa 100644 --- a/drivers/net/mvneta.c +++ b/drivers/net/mvneta.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/mvpp2.c b/drivers/net/mvpp2.c index 917d06b6e0..d120278ab1 100644 --- a/drivers/net/mvpp2.c +++ b/drivers/net/mvpp2.c @@ -17,12 +17,14 @@ #include #include #include +#include #include #include #include #include #include #include +#include #include #include #include diff --git a/drivers/net/phy/dp83867.c b/drivers/net/phy/dp83867.c index a43793cd42..08935d9c15 100644 --- a/drivers/net/phy/dp83867.c +++ b/drivers/net/phy/dp83867.c @@ -5,6 +5,7 @@ */ #include #include +#include #include #include diff --git a/drivers/net/sni_ave.c b/drivers/net/sni_ave.c index 6d333e24ee..64e92abb03 100644 --- a/drivers/net/sni_ave.c +++ b/drivers/net/sni_ave.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c index 78f94148b4..3cf6570fc2 100644 --- a/drivers/net/zynq_gem.c +++ b/drivers/net/zynq_gem.c @@ -25,6 +25,7 @@ #include #include #include +#include #include /* Bit/mask specification */ diff --git a/drivers/pci/pcie_dw_ti.c b/drivers/pci/pcie_dw_ti.c index b37fc2de7f..199a3bb50a 100644 --- a/drivers/pci/pcie_dw_ti.c +++ b/drivers/pci/pcie_dw_ti.c @@ -12,6 +12,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; diff --git a/drivers/pci/pcie_mediatek.c b/drivers/pci/pcie_mediatek.c index a0dcb258b0..1271227c6a 100644 --- a/drivers/pci/pcie_mediatek.c +++ b/drivers/pci/pcie_mediatek.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c index 5e8f87717f..f4ad4c3cc3 100644 --- a/drivers/phy/allwinner/phy-sun4i-usb.c +++ b/drivers/phy/allwinner/phy-sun4i-usb.c @@ -21,6 +21,7 @@ #include #include #include +#include #define REG_ISCR 0x00 #define REG_PHYCTL_A10 0x04 diff --git a/drivers/phy/marvell/comphy_core.c b/drivers/phy/marvell/comphy_core.c index 9c24692629..d52f42df84 100644 --- a/drivers/phy/marvell/comphy_core.c +++ b/drivers/phy/marvell/comphy_core.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include diff --git a/drivers/phy/omap-usb2-phy.c b/drivers/phy/omap-usb2-phy.c index be3bb0d367..321569e4c0 100644 --- a/drivers/phy/omap-usb2-phy.c +++ b/drivers/phy/omap-usb2-phy.c @@ -13,6 +13,7 @@ #include #include #include +#include #define OMAP_USB2_CALIBRATE_FALSE_DISCONNECT BIT(0) diff --git a/drivers/phy/phy-mtk-tphy.c b/drivers/phy/phy-mtk-tphy.c index 3701481256..31345764a7 100644 --- a/drivers/phy/phy-mtk-tphy.c +++ b/drivers/phy/phy-mtk-tphy.c @@ -11,6 +11,7 @@ #include #include #include +#include #include diff --git a/drivers/phy/phy-ti-am654.c b/drivers/phy/phy-ti-am654.c index 39490124ea..1c7db0dd0f 100644 --- a/drivers/phy/phy-ti-am654.c +++ b/drivers/phy/phy-ti-am654.c @@ -18,6 +18,7 @@ #include #include #include +#include #define CMU_R07C 0x7c #define CMU_MASTER_CDN_O BIT(24) diff --git a/drivers/phy/ti-pipe3-phy.c b/drivers/phy/ti-pipe3-phy.c index 0c59552bb8..7fc36319cb 100644 --- a/drivers/phy/ti-pipe3-phy.c +++ b/drivers/phy/ti-pipe3-phy.c @@ -12,6 +12,7 @@ #include #include #include +#include /* PLLCTRL Registers */ #define PLL_STATUS 0x00000004 diff --git a/drivers/pinctrl/intel/pinctrl.c b/drivers/pinctrl/intel/pinctrl.c index 4875a3b0b5..c4287ec406 100644 --- a/drivers/pinctrl/intel/pinctrl.c +++ b/drivers/pinctrl/intel/pinctrl.c @@ -28,6 +28,7 @@ #include #include #include +#include #define GPIO_DW_SIZE(x) (sizeof(u32) * (x)) #define PAD_CFG_OFFSET(x, dw_num) ((x) + GPIO_DW_SIZE(dw_num)) diff --git a/drivers/pinctrl/mscc/mscc-common.c b/drivers/pinctrl/mscc/mscc-common.c index bd3e6ea328..2d76c41dea 100644 --- a/drivers/pinctrl/mscc/mscc-common.c +++ b/drivers/pinctrl/mscc/mscc-common.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c index f197f4a142..da1f091aec 100644 --- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c +++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/pinctrl/nxp/pinctrl-imx.c b/drivers/pinctrl/nxp/pinctrl-imx.c index 69c4144365..77a8a53202 100644 --- a/drivers/pinctrl/nxp/pinctrl-imx.c +++ b/drivers/pinctrl/nxp/pinctrl-imx.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/drivers/pinctrl/nxp/pinctrl-mxs.c b/drivers/pinctrl/nxp/pinctrl-mxs.c index 6f6ca84674..5147bdc3cc 100644 --- a/drivers/pinctrl/nxp/pinctrl-mxs.c +++ b/drivers/pinctrl/nxp/pinctrl-mxs.c @@ -5,6 +5,7 @@ */ #include +#include #include #include #include diff --git a/drivers/pinctrl/pinctrl_stm32.c b/drivers/pinctrl/pinctrl_stm32.c index 3a235ae5a7..e0380c349a 100644 --- a/drivers/pinctrl/pinctrl_stm32.c +++ b/drivers/pinctrl/pinctrl_stm32.c @@ -6,6 +6,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; diff --git a/drivers/pinctrl/renesas/pfc.c b/drivers/pinctrl/renesas/pfc.c index 5ec560ec0f..5ee11615de 100644 --- a/drivers/pinctrl/renesas/pfc.c +++ b/drivers/pinctrl/renesas/pfc.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/power/domain/meson-ee-pwrc.c b/drivers/power/domain/meson-ee-pwrc.c index 7f5d13e872..aa11866591 100644 --- a/drivers/power/domain/meson-ee-pwrc.c +++ b/drivers/power/domain/meson-ee-pwrc.c @@ -13,6 +13,7 @@ #include #include #include +#include /* AO Offsets */ diff --git a/drivers/power/domain/meson-gx-pwrc-vpu.c b/drivers/power/domain/meson-gx-pwrc-vpu.c index bd69aea8dd..02f73548d6 100644 --- a/drivers/power/domain/meson-gx-pwrc-vpu.c +++ b/drivers/power/domain/meson-gx-pwrc-vpu.c @@ -13,6 +13,7 @@ #include #include #include +#include enum { VPU_PWRC_COMPATIBLE_GX = 0, diff --git a/drivers/power/domain/mtk-power-domain.c b/drivers/power/domain/mtk-power-domain.c index 992ee51947..5084bff766 100644 --- a/drivers/power/domain/mtk-power-domain.c +++ b/drivers/power/domain/mtk-power-domain.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include diff --git a/drivers/power/domain/ti-sci-power-domain.c b/drivers/power/domain/ti-sci-power-domain.c index b59af2b13b..3866db589a 100644 --- a/drivers/power/domain/ti-sci-power-domain.c +++ b/drivers/power/domain/ti-sci-power-domain.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include diff --git a/drivers/power/regulator/pbias_regulator.c b/drivers/power/regulator/pbias_regulator.c index 88dc9f273a..60255eeab0 100644 --- a/drivers/power/regulator/pbias_regulator.c +++ b/drivers/power/regulator/pbias_regulator.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/ram/rockchip/dmc-rk3368.c b/drivers/ram/rockchip/dmc-rk3368.c index 9df8f8f4af..7dcfa2943f 100644 --- a/drivers/ram/rockchip/dmc-rk3368.c +++ b/drivers/ram/rockchip/dmc-rk3368.c @@ -18,6 +18,7 @@ #include #include #include +#include struct dram_info { struct ram_info info; diff --git a/drivers/remoteproc/rproc-elf-loader.c b/drivers/remoteproc/rproc-elf-loader.c index 538481241f..b2007fd31d 100644 --- a/drivers/remoteproc/rproc-elf-loader.c +++ b/drivers/remoteproc/rproc-elf-loader.c @@ -7,6 +7,7 @@ #include #include #include +#include /** * struct resource_table - firmware resource table header diff --git a/drivers/remoteproc/stm32_copro.c b/drivers/remoteproc/stm32_copro.c index c25488f54d..80e8dffdbb 100644 --- a/drivers/remoteproc/stm32_copro.c +++ b/drivers/remoteproc/stm32_copro.c @@ -12,6 +12,7 @@ #include #include #include +#include #define RCC_GCR_HOLD_BOOT 0 #define RCC_GCR_RELEASE_BOOT 1 diff --git a/drivers/remoteproc/ti_k3_arm64_rproc.c b/drivers/remoteproc/ti_k3_arm64_rproc.c index 3e35293514..d048cf4161 100644 --- a/drivers/remoteproc/ti_k3_arm64_rproc.c +++ b/drivers/remoteproc/ti_k3_arm64_rproc.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include "ti_sci_proc.h" diff --git a/drivers/remoteproc/ti_k3_dsp_rproc.c b/drivers/remoteproc/ti_k3_dsp_rproc.c index c5dc6b25da..913aca36d6 100644 --- a/drivers/remoteproc/ti_k3_dsp_rproc.c +++ b/drivers/remoteproc/ti_k3_dsp_rproc.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include "ti_sci_proc.h" diff --git a/drivers/remoteproc/ti_k3_r5f_rproc.c b/drivers/remoteproc/ti_k3_r5f_rproc.c index ae1e4b9e04..cecfb0ef86 100644 --- a/drivers/remoteproc/ti_k3_r5f_rproc.c +++ b/drivers/remoteproc/ti_k3_r5f_rproc.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include "ti_sci_proc.h" diff --git a/drivers/reset/reset-mediatek.c b/drivers/reset/reset-mediatek.c index cfbf2af863..4684cbfb6a 100644 --- a/drivers/reset/reset-mediatek.c +++ b/drivers/reset/reset-mediatek.c @@ -12,6 +12,7 @@ #include #include #include +#include struct mediatek_reset_priv { struct regmap *regmap; diff --git a/drivers/reset/reset-ti-sci.c b/drivers/reset/reset-ti-sci.c index 7b6f736f5e..99e3d9ad5c 100644 --- a/drivers/reset/reset-ti-sci.c +++ b/drivers/reset/reset-ti-sci.c @@ -12,6 +12,7 @@ #include #include #include +#include #include /** diff --git a/drivers/reset/reset-uclass.c b/drivers/reset/reset-uclass.c index bf1cba4124..8e6c0a4fd0 100644 --- a/drivers/reset/reset-uclass.c +++ b/drivers/reset/reset-uclass.c @@ -8,6 +8,7 @@ #include #include #include +#include static inline struct reset_ops *reset_dev_ops(struct udevice *dev) { diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c index 754b6e9921..3faf2cd4b9 100644 --- a/drivers/serial/ns16550.c +++ b/drivers/serial/ns16550.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include diff --git a/drivers/serial/serial_mtk.c b/drivers/serial/serial_mtk.c index 18530a4fd1..e63f2306f0 100644 --- a/drivers/serial/serial_mtk.c +++ b/drivers/serial/serial_mtk.c @@ -15,6 +15,7 @@ #include #include #include +#include struct mtk_serial_regs { u32 rbr; @@ -454,4 +455,4 @@ static inline void _debug_uart_putc(int ch) DEBUG_UART_FUNCS -#endif \ No newline at end of file +#endif diff --git a/drivers/serial/serial_omap.c b/drivers/serial/serial_omap.c index a31d73766d..4d4d919358 100644 --- a/drivers/serial/serial_omap.c +++ b/drivers/serial/serial_omap.c @@ -12,6 +12,7 @@ #include #include #include +#include #ifndef CONFIG_SYS_NS16550_CLK #define CONFIG_SYS_NS16550_CLK 0 diff --git a/drivers/serial/serial_sifive.c b/drivers/serial/serial_sifive.c index c142ccdf3d..5a02f0c8fe 100644 --- a/drivers/serial/serial_sifive.c +++ b/drivers/serial/serial_sifive.c @@ -13,6 +13,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; diff --git a/drivers/serial/serial_zynq.c b/drivers/serial/serial_zynq.c index 7e486a68ff..c07375901b 100644 --- a/drivers/serial/serial_zynq.c +++ b/drivers/serial/serial_zynq.c @@ -14,6 +14,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; diff --git a/drivers/smem/msm_smem.c b/drivers/smem/msm_smem.c index 9fa653ad28..711ce626aa 100644 --- a/drivers/smem/msm_smem.c +++ b/drivers/smem/msm_smem.c @@ -8,9 +8,11 @@ #include #include #include +#include #include #include #include +#include #include #include #include diff --git a/drivers/soc/ti/k3-navss-ringacc.c b/drivers/soc/ti/k3-navss-ringacc.c index 64ebc0ba00..2eba1c1d18 100644 --- a/drivers/soc/ti/k3-navss-ringacc.c +++ b/drivers/soc/ti/k3-navss-ringacc.c @@ -11,9 +11,11 @@ #include #include #include +#include #include #include #include +#include #include #include diff --git a/drivers/spi/atmel-quadspi.c b/drivers/spi/atmel-quadspi.c index 7d9a54011d..195ea5fae6 100644 --- a/drivers/spi/atmel-quadspi.c +++ b/drivers/spi/atmel-quadspi.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c index 8fd23a7702..2425f5ad8e 100644 --- a/drivers/spi/cadence_qspi.c +++ b/drivers/spi/cadence_qspi.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include "cadence_qspi.h" diff --git a/drivers/spi/spi-mem.c b/drivers/spi/spi-mem.c index 7788ab9953..c907729b54 100644 --- a/drivers/spi/spi-mem.c +++ b/drivers/spi/spi-mem.c @@ -7,6 +7,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include "internals.h" diff --git a/drivers/spi/ti_qspi.c b/drivers/spi/ti_qspi.c index c3d9e7f2ee..1fdd0ca448 100644 --- a/drivers/spi/ti_qspi.c +++ b/drivers/spi/ti_qspi.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/spi/zynqmp_gqspi.c b/drivers/spi/zynqmp_gqspi.c index 4cca418012..c05d46e084 100644 --- a/drivers/spi/zynqmp_gqspi.c +++ b/drivers/spi/zynqmp_gqspi.c @@ -16,6 +16,7 @@ #include #include #include +#include #define GQSPI_GFIFO_STRT_MODE_MASK BIT(29) #define GQSPI_CONFIG_MODE_EN_MASK (3 << 30) diff --git a/drivers/sysreset/sysreset-ti-sci.c b/drivers/sysreset/sysreset-ti-sci.c index 890a607c4b..6caea3aab3 100644 --- a/drivers/sysreset/sysreset-ti-sci.c +++ b/drivers/sysreset/sysreset-ti-sci.c @@ -10,6 +10,7 @@ #include #include #include +#include #include /** diff --git a/drivers/sysreset/sysreset_syscon.c b/drivers/sysreset/sysreset_syscon.c index d0e586f66f..f64701aab3 100644 --- a/drivers/sysreset/sysreset_syscon.c +++ b/drivers/sysreset/sysreset_syscon.c @@ -13,6 +13,7 @@ #include #include #include +#include struct syscon_reboot_priv { struct regmap *regmap; diff --git a/drivers/tee/optee/core.c b/drivers/tee/optee/core.c index 7f870f2f73..a7b175ee62 100644 --- a/drivers/tee/optee/core.c +++ b/drivers/tee/optee/core.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include "optee_smc.h" diff --git a/drivers/timer/ast_timer.c b/drivers/timer/ast_timer.c index 21ffdbf575..3838601f54 100644 --- a/drivers/timer/ast_timer.c +++ b/drivers/timer/ast_timer.c @@ -9,6 +9,7 @@ #include #include #include +#include #define AST_TICK_TIMER 1 #define AST_TMC_RELOAD_VAL 0xffffffff diff --git a/drivers/timer/cadence-ttc.c b/drivers/timer/cadence-ttc.c index 75263c5375..ed48a145f2 100644 --- a/drivers/timer/cadence-ttc.c +++ b/drivers/timer/cadence-ttc.c @@ -8,6 +8,7 @@ #include #include #include +#include #define CNT_CNTRL_RESET BIT(4) diff --git a/drivers/timer/timer-uclass.c b/drivers/timer/timer-uclass.c index 97a4c74851..b619200f00 100644 --- a/drivers/timer/timer-uclass.c +++ b/drivers/timer/timer-uclass.c @@ -11,6 +11,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; diff --git a/drivers/ufs/cdns-platform.c b/drivers/ufs/cdns-platform.c index c80f4253e4..5bd0c1e0c7 100644 --- a/drivers/ufs/cdns-platform.c +++ b/drivers/ufs/cdns-platform.c @@ -9,6 +9,7 @@ #include #include #include +#include #include "ufs.h" diff --git a/drivers/ufs/ti-j721e-ufs.c b/drivers/ufs/ti-j721e-ufs.c index 24ec3ebea1..6e4d0cd3ac 100644 --- a/drivers/ufs/ti-j721e-ufs.c +++ b/drivers/ufs/ti-j721e-ufs.c @@ -7,6 +7,7 @@ #include #include #include +#include #define UFS_SS_CTRL 0x4 #define UFS_SS_RST_N_PCS BIT(0) diff --git a/drivers/ufs/ufs.c b/drivers/ufs/ufs.c index 23306863d5..512c63a8f2 100644 --- a/drivers/ufs/ufs.c +++ b/drivers/ufs/ufs.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/usb/cdns3/core.c b/drivers/usb/cdns3/core.c index 8c8e02169e..6f5e5af47d 100644 --- a/drivers/usb/cdns3/core.c +++ b/drivers/usb/cdns3/core.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/usb/cdns3/gadget.c b/drivers/usb/cdns3/gadget.c index 0e02b77965..e095760099 100644 --- a/drivers/usb/cdns3/gadget.c +++ b/drivers/usb/cdns3/gadget.c @@ -57,6 +57,8 @@ */ #include +#include +#include #include #include #include diff --git a/drivers/usb/cdns3/host.c b/drivers/usb/cdns3/host.c index 425d9d053d..b44e7df113 100644 --- a/drivers/usb/cdns3/host.c +++ b/drivers/usb/cdns3/host.c @@ -9,6 +9,7 @@ * Pawel Laszczak */ #include +#include #include #include #include diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index 77c555e769..cbf21d31dd 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -18,6 +18,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/drivers/usb/dwc3/dwc3-omap.c b/drivers/usb/dwc3/dwc3-omap.c index 8b19140182..7ffec12fc5 100644 --- a/drivers/usb/dwc3/dwc3-omap.c +++ b/drivers/usb/dwc3/dwc3-omap.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 4353dffb6b..677607ab32 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include diff --git a/drivers/usb/dwc3/ti_usb_phy.c b/drivers/usb/dwc3/ti_usb_phy.c index e7ea12c163..a90868216a 100644 --- a/drivers/usb/dwc3/ti_usb_phy.c +++ b/drivers/usb/dwc3/ti_usb_phy.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/usb/gadget/at91_udc.c b/drivers/usb/gadget/at91_udc.c index 2a6626b443..13dec517f6 100644 --- a/drivers/usb/gadget/at91_udc.c +++ b/drivers/usb/gadget/at91_udc.c @@ -14,6 +14,8 @@ #undef PACKET_TRACE #include +#include +#include #include #include #include diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c index 4a6f4271d5..b2b279358e 100644 --- a/drivers/usb/gadget/composite.c +++ b/drivers/usb/gadget/composite.c @@ -7,6 +7,7 @@ */ #undef DEBUG +#include #include #include diff --git a/drivers/usb/gadget/dwc2_udc_otg.c b/drivers/usb/gadget/dwc2_udc_otg.c index 35f4147840..229a61affd 100644 --- a/drivers/usb/gadget/dwc2_udc_otg.c +++ b/drivers/usb/gadget/dwc2_udc_otg.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include diff --git a/drivers/usb/gadget/f_mass_storage.c b/drivers/usb/gadget/f_mass_storage.c index c1e6506659..5250fc8b26 100644 --- a/drivers/usb/gadget/f_mass_storage.c +++ b/drivers/usb/gadget/f_mass_storage.c @@ -245,6 +245,7 @@ #include #include #include +#include #include #include diff --git a/drivers/usb/gadget/pxa25x_udc.c b/drivers/usb/gadget/pxa25x_udc.c index 09c0a30b2b..6e1e57f9fd 100644 --- a/drivers/usb/gadget/pxa25x_udc.c +++ b/drivers/usb/gadget/pxa25x_udc.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/usb/gadget/udc/udc-core.c b/drivers/usb/gadget/udc/udc-core.c index 8d1d90e3e3..52384b9afb 100644 --- a/drivers/usb/gadget/udc/udc-core.c +++ b/drivers/usb/gadget/udc/udc-core.c @@ -13,6 +13,7 @@ * usb_ */ +#include #include #include #include diff --git a/drivers/usb/host/ehci-generic.c b/drivers/usb/host/ehci-generic.c index 682a070306..80ac876d89 100644 --- a/drivers/usb/host/ehci-generic.c +++ b/drivers/usb/host/ehci-generic.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/drivers/usb/host/ohci-da8xx.c b/drivers/usb/host/ohci-da8xx.c index 233df57b4d..29a702052e 100644 --- a/drivers/usb/host/ohci-da8xx.c +++ b/drivers/usb/host/ohci-da8xx.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/usb/host/ohci-generic.c b/drivers/usb/host/ohci-generic.c index 916ea0b955..7b6ec51704 100644 --- a/drivers/usb/host/ohci-generic.c +++ b/drivers/usb/host/ohci-generic.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/usb/musb-new/am35x.c b/drivers/usb/musb-new/am35x.c index bda099c63f..58cde22615 100644 --- a/drivers/usb/musb-new/am35x.c +++ b/drivers/usb/musb-new/am35x.c @@ -12,6 +12,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/usb/musb-new/musb_core.c b/drivers/usb/musb-new/musb_core.c index ab5e3aa9d1..cc6e0a71c9 100644 --- a/drivers/usb/musb-new/musb_core.c +++ b/drivers/usb/musb-new/musb_core.c @@ -65,6 +65,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/usb/musb-new/musb_dsps.c b/drivers/usb/musb-new/musb_dsps.c index 0c794b310a..d342eeba80 100644 --- a/drivers/usb/musb-new/musb_dsps.c +++ b/drivers/usb/musb-new/musb_dsps.c @@ -15,6 +15,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/usb/musb-new/musb_gadget.c b/drivers/usb/musb-new/musb_gadget.c index b35d33ffed..74b645715d 100644 --- a/drivers/usb/musb-new/musb_gadget.c +++ b/drivers/usb/musb-new/musb_gadget.c @@ -9,6 +9,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/usb/musb-new/musb_host.c b/drivers/usb/musb-new/musb_host.c index 8e92ade471..55ad8ead70 100644 --- a/drivers/usb/musb-new/musb_host.c +++ b/drivers/usb/musb-new/musb_host.c @@ -9,6 +9,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/usb/musb-new/musb_uboot.c b/drivers/usb/musb-new/musb_uboot.c index 9eb593402e..f4d0e1fdc2 100644 --- a/drivers/usb/musb-new/musb_uboot.c +++ b/drivers/usb/musb-new/musb_uboot.c @@ -1,6 +1,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/usb/musb-new/omap2430.c b/drivers/usb/musb-new/omap2430.c index 05059ce3cb..8a45b05613 100644 --- a/drivers/usb/musb-new/omap2430.c +++ b/drivers/usb/musb-new/omap2430.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/video/exynos/exynos_mipi_dsi.c b/drivers/video/exynos/exynos_mipi_dsi.c index 74a66e83d2..ad5ef93e01 100644 --- a/drivers/video/exynos/exynos_mipi_dsi.c +++ b/drivers/video/exynos/exynos_mipi_dsi.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/video/mipi_dsi.c b/drivers/video/mipi_dsi.c index cdc3ef58ab..ecacea1dbe 100644 --- a/drivers/video/mipi_dsi.c +++ b/drivers/video/mipi_dsi.c @@ -38,6 +38,7 @@ #include #include #include +#include /** * DOC: dsi helpers diff --git a/drivers/video/rockchip/rk3288_mipi.c b/drivers/video/rockchip/rk3288_mipi.c index 7c4a4cc53b..a6c222bcd9 100644 --- a/drivers/video/rockchip/rk3288_mipi.c +++ b/drivers/video/rockchip/rk3288_mipi.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/video/rockchip/rk3399_mipi.c b/drivers/video/rockchip/rk3399_mipi.c index a93b73400b..7c696bc1ea 100644 --- a/drivers/video/rockchip/rk3399_mipi.c +++ b/drivers/video/rockchip/rk3399_mipi.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/video/rockchip/rk_vop.c b/drivers/video/rockchip/rk_vop.c index b56c3f336c..e91d4dfa7f 100644 --- a/drivers/video/rockchip/rk_vop.c +++ b/drivers/video/rockchip/rk_vop.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include "rk_vop.h" diff --git a/drivers/video/tegra124/sor.c b/drivers/video/tegra124/sor.c index 172bb14d6c..8dc3df61aa 100644 --- a/drivers/video/tegra124/sor.c +++ b/drivers/video/tegra124/sor.c @@ -15,6 +15,7 @@ #include #include "displayport.h" #include "sor.h" +#include #define DEBUG_SOR 0 diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c index a67b354122..60ece133ab 100644 --- a/drivers/virtio/virtio_mmio.c +++ b/drivers/virtio/virtio_mmio.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include "virtio_mmio.h" diff --git a/drivers/virtio/virtio_pci_legacy.c b/drivers/virtio/virtio_pci_legacy.c index 202e5ab1d3..d9be2601bb 100644 --- a/drivers/virtio/virtio_pci_legacy.c +++ b/drivers/virtio/virtio_pci_legacy.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include "virtio_pci.h" diff --git a/drivers/virtio/virtio_pci_modern.c b/drivers/virtio/virtio_pci_modern.c index da76aea8d1..4673f4ab55 100644 --- a/drivers/virtio/virtio_pci_modern.c +++ b/drivers/virtio/virtio_pci_modern.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include "virtio_pci.h" diff --git a/drivers/virtio/virtio_sandbox.c b/drivers/virtio/virtio_sandbox.c index 2addb1ebc5..61f6a96008 100644 --- a/drivers/virtio/virtio_sandbox.c +++ b/drivers/virtio/virtio_sandbox.c @@ -11,6 +11,7 @@ #include #include #include +#include #include struct virtio_sandbox_priv { diff --git a/drivers/watchdog/ast_wdt.c b/drivers/watchdog/ast_wdt.c index d344d54aee..fe2f6be5a7 100644 --- a/drivers/watchdog/ast_wdt.c +++ b/drivers/watchdog/ast_wdt.c @@ -9,6 +9,7 @@ #include #include #include +#include #define WDT_AST2500 2500 #define WDT_AST2400 2400 diff --git a/drivers/watchdog/cdns_wdt.c b/drivers/watchdog/cdns_wdt.c index 6a608b6371..13952e1e97 100644 --- a/drivers/watchdog/cdns_wdt.c +++ b/drivers/watchdog/cdns_wdt.c @@ -11,6 +11,7 @@ #include #include #include +#include #include DECLARE_GLOBAL_DATA_PTR; diff --git a/drivers/watchdog/sp805_wdt.c b/drivers/watchdog/sp805_wdt.c index f1e781e4e6..ca3ccbe76c 100644 --- a/drivers/watchdog/sp805_wdt.c +++ b/drivers/watchdog/sp805_wdt.c @@ -13,6 +13,7 @@ #include #include #include +#include #define WDTLOAD 0x000 #define WDTCONTROL 0x008 diff --git a/drivers/watchdog/xilinx_tb_wdt.c b/drivers/watchdog/xilinx_tb_wdt.c index 929c8e60d3..5580764da7 100644 --- a/drivers/watchdog/xilinx_tb_wdt.c +++ b/drivers/watchdog/xilinx_tb_wdt.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #define XWT_CSR0_WRS_MASK 0x00000008 /* Reset status Mask */ diff --git a/fs/ubifs/debug.c b/fs/ubifs/debug.c index 782aa9a250..6835f86fec 100644 --- a/fs/ubifs/debug.c +++ b/fs/ubifs/debug.c @@ -16,6 +16,7 @@ */ #include +#include #ifndef __UBOOT__ #include diff --git a/fs/ubifs/gc.c b/fs/ubifs/gc.c index 42f22a487e..f923d07652 100644 --- a/fs/ubifs/gc.c +++ b/fs/ubifs/gc.c @@ -41,6 +41,7 @@ * good, and GC takes extra care when moving them. */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/fs/ubifs/io.c b/fs/ubifs/io.c index 7fe94e1093..8148055f67 100644 --- a/fs/ubifs/io.c +++ b/fs/ubifs/io.c @@ -59,6 +59,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/fs/ubifs/log.c b/fs/ubifs/log.c index 331a891a57..5cbb8aa1b2 100644 --- a/fs/ubifs/log.c +++ b/fs/ubifs/log.c @@ -16,6 +16,7 @@ */ #ifdef __UBOOT__ +#include #include #endif #include "ubifs.h" diff --git a/fs/ubifs/lpt.c b/fs/ubifs/lpt.c index c0076bde74..ebfb1d4dd7 100644 --- a/fs/ubifs/lpt.c +++ b/fs/ubifs/lpt.c @@ -33,6 +33,7 @@ #include "ubifs.h" #ifndef __UBOOT__ +#include #include #include #include diff --git a/fs/ubifs/lpt_commit.c b/fs/ubifs/lpt_commit.c index 260216205d..aa5956c52e 100644 --- a/fs/ubifs/lpt_commit.c +++ b/fs/ubifs/lpt_commit.c @@ -14,6 +14,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/fs/ubifs/master.c b/fs/ubifs/master.c index 5654d45dfb..2740aaee8b 100644 --- a/fs/ubifs/master.c +++ b/fs/ubifs/master.c @@ -12,6 +12,7 @@ #include "ubifs.h" #ifdef __UBOOT__ +#include #include #include #include diff --git a/fs/ubifs/orphan.c b/fs/ubifs/orphan.c index c807ff1beb..a67b3eec93 100644 --- a/fs/ubifs/orphan.c +++ b/fs/ubifs/orphan.c @@ -7,6 +7,7 @@ * Author: Adrian Hunter */ +#include #include #include "ubifs.h" diff --git a/fs/ubifs/recovery.c b/fs/ubifs/recovery.c index b568012fec..3388efe2b7 100644 --- a/fs/ubifs/recovery.c +++ b/fs/ubifs/recovery.c @@ -36,6 +36,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/fs/ubifs/replay.c b/fs/ubifs/replay.c index 4064157f15..3a9fa4130e 100644 --- a/fs/ubifs/replay.c +++ b/fs/ubifs/replay.c @@ -21,6 +21,7 @@ */ #ifdef __UBOOT__ +#include #include #include #endif diff --git a/fs/ubifs/sb.c b/fs/ubifs/sb.c index 52db611d1c..599e1a35fb 100644 --- a/fs/ubifs/sb.c +++ b/fs/ubifs/sb.c @@ -16,6 +16,7 @@ #include "ubifs.h" #ifndef __UBOOT__ +#include #include #include #include diff --git a/fs/ubifs/scan.c b/fs/ubifs/scan.c index 8ff668eec6..876a6ee661 100644 --- a/fs/ubifs/scan.c +++ b/fs/ubifs/scan.c @@ -17,6 +17,7 @@ #ifdef __UBOOT__ #include +#include #include #endif #include "ubifs.h" diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c index 9939b4404f..b38513660b 100644 --- a/fs/ubifs/super.c +++ b/fs/ubifs/super.c @@ -15,6 +15,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/fs/ubifs/tnc.c b/fs/ubifs/tnc.c index 8afc08ad7d..fc6fdaff8d 100644 --- a/fs/ubifs/tnc.c +++ b/fs/ubifs/tnc.c @@ -19,6 +19,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/fs/ubifs/tnc_misc.c b/fs/ubifs/tnc_misc.c index b8ea7e9ddb..dfa9e91903 100644 --- a/fs/ubifs/tnc_misc.c +++ b/fs/ubifs/tnc_misc.c @@ -16,6 +16,7 @@ */ #ifdef __UBOOT__ +#include #include #endif #include "ubifs.h" diff --git a/fs/ubifs/ubifs.c b/fs/ubifs/ubifs.c index 1ffdfe0d90..388451512a 100644 --- a/fs/ubifs/ubifs.c +++ b/fs/ubifs/ubifs.c @@ -16,6 +16,7 @@ #include #include #include "ubifs.h" +#include #include #include diff --git a/fs/yaffs2/yaffs_allocator.c b/fs/yaffs2/yaffs_allocator.c index 611061fb45..961dc22ef3 100644 --- a/fs/yaffs2/yaffs_allocator.c +++ b/fs/yaffs2/yaffs_allocator.c @@ -15,6 +15,7 @@ #include "yaffs_guts.h" #include "yaffs_trace.h" #include "yportenv.h" +#include /* * Each entry in yaffs_tnode_list and yaffs_obj_list hold blocks diff --git a/fs/yaffs2/yaffs_checkptrw.c b/fs/yaffs2/yaffs_checkptrw.c index 997a618aee..628f02bb48 100644 --- a/fs/yaffs2/yaffs_checkptrw.c +++ b/fs/yaffs2/yaffs_checkptrw.c @@ -13,6 +13,7 @@ #include "yaffs_checkptrw.h" #include "yaffs_getblockinfo.h" +#include static int yaffs2_checkpt_space_ok(struct yaffs_dev *dev) { diff --git a/fs/yaffs2/yaffs_guts.c b/fs/yaffs2/yaffs_guts.c index c8b27adda9..e13a73298b 100644 --- a/fs/yaffs2/yaffs_guts.c +++ b/fs/yaffs2/yaffs_guts.c @@ -13,6 +13,7 @@ #include "yportenv.h" #include "yaffs_trace.h" +#include #include "yaffs_guts.h" #include "yaffs_getblockinfo.h" diff --git a/fs/yaffs2/yaffs_summary.c b/fs/yaffs2/yaffs_summary.c index e9e1b5d857..4f9449a844 100644 --- a/fs/yaffs2/yaffs_summary.c +++ b/fs/yaffs2/yaffs_summary.c @@ -28,6 +28,7 @@ #include "yaffs_nand.h" #include "yaffs_getblockinfo.h" #include "yaffs_bitmap.h" +#include /* * The summary is built up in an array of summary tags. diff --git a/fs/yaffs2/yaffs_yaffs1.c b/fs/yaffs2/yaffs_yaffs1.c index 357d8f75dd..8c176b982f 100644 --- a/fs/yaffs2/yaffs_yaffs1.c +++ b/fs/yaffs2/yaffs_yaffs1.c @@ -18,6 +18,7 @@ #include "yaffs_getblockinfo.h" #include "yaffs_nand.h" #include "yaffs_attribs.h" +#include int yaffs1_scan(struct yaffs_dev *dev) { diff --git a/fs/yaffs2/yaffs_yaffs2.c b/fs/yaffs2/yaffs_yaffs2.c index f76dcaeeb1..14d497eb99 100644 --- a/fs/yaffs2/yaffs_yaffs2.c +++ b/fs/yaffs2/yaffs_yaffs2.c @@ -21,6 +21,7 @@ #include "yaffs_verify.h" #include "yaffs_attribs.h" #include "yaffs_summary.h" +#include /* * Checkpoints are really no benefit on very small partitions. diff --git a/fs/yaffs2/yaffsfs.c b/fs/yaffs2/yaffsfs.c index 47abc6beda..510faaeed1 100644 --- a/fs/yaffs2/yaffsfs.c +++ b/fs/yaffs2/yaffsfs.c @@ -17,6 +17,7 @@ #include "yaffscfg.h" #include "yportenv.h" #include "yaffs_trace.h" +#include #define YAFFSFS_MAX_SYMLINK_DEREFERENCES 5 diff --git a/include/dm/device.h b/include/dm/device.h index 1138a09149..a93fa22d5d 100644 --- a/include/dm/device.h +++ b/include/dm/device.h @@ -720,8 +720,6 @@ static inline bool device_is_on_pci_bus(struct udevice *dev) */ int dm_scan_fdt_dev(struct udevice *dev); -#include - /* * REVISIT: * remove the following after resolving conflicts with diff --git a/include/dm/devres.h b/include/dm/devres.h index 9c69196054..17bb1ee8da 100644 --- a/include/dm/devres.h +++ b/include/dm/devres.h @@ -11,6 +11,10 @@ #ifndef _DM_DEVRES_H #define _DM_DEVRES_H +#include + +struct udevice; + /* device resource management */ typedef void (*dr_release_t)(struct udevice *dev, void *res); typedef int (*dr_match_t)(struct udevice *dev, void *res, void *match_data); diff --git a/lib/bch.c b/lib/bch.c index c4fac77d61..86709cc875 100644 --- a/lib/bch.c +++ b/lib/bch.c @@ -56,6 +56,7 @@ #ifndef USE_HOSTCC #include #include +#include #include #else diff --git a/lib/crypto/asymmetric_type.c b/lib/crypto/asymmetric_type.c index e04666c080..7aa55092ac 100644 --- a/lib/crypto/asymmetric_type.c +++ b/lib/crypto/asymmetric_type.c @@ -7,6 +7,7 @@ * Written by David Howells (dhowells@redhat.com) */ #ifndef __UBOOT__ +#include #include #include #endif @@ -14,6 +15,7 @@ #ifdef __UBOOT__ #include #include +#include #include #else #include diff --git a/lib/crypto/pkcs7_parser.c b/lib/crypto/pkcs7_parser.c index bf9e7e888f..f5dda1179f 100644 --- a/lib/crypto/pkcs7_parser.c +++ b/lib/crypto/pkcs7_parser.c @@ -7,6 +7,7 @@ #define pr_fmt(fmt) "PKCS7: "fmt #ifdef __UBOOT__ +#include #include #include #endif diff --git a/lib/crypto/public_key.c b/lib/crypto/public_key.c index 634377472f..8b4821767a 100644 --- a/lib/crypto/public_key.c +++ b/lib/crypto/public_key.c @@ -9,7 +9,9 @@ #define pr_fmt(fmt) "PKEY: "fmt #ifdef __UBOOT__ +#include #include +#include #else #include #include diff --git a/lib/crypto/x509_cert_parser.c b/lib/crypto/x509_cert_parser.c index e6d2a426a0..4e41cffd23 100644 --- a/lib/crypto/x509_cert_parser.c +++ b/lib/crypto/x509_cert_parser.c @@ -6,6 +6,7 @@ */ #define pr_fmt(fmt) "X.509: "fmt +#include #include #ifndef __UBOOT__ #include diff --git a/lib/crypto/x509_public_key.c b/lib/crypto/x509_public_key.c index 04bdb672b4..676c0df174 100644 --- a/lib/crypto/x509_public_key.c +++ b/lib/crypto/x509_public_key.c @@ -8,7 +8,9 @@ #define pr_fmt(fmt) "X.509: "fmt #ifdef __UBOOT__ #include +#include #include +#include #include #else #include diff --git a/lib/list_sort.c b/lib/list_sort.c index e841da53ee..beb7273fd3 100644 --- a/lib/list_sort.c +++ b/lib/list_sort.c @@ -1,4 +1,5 @@ #ifndef __UBOOT__ +#include #include #include #include diff --git a/test/dm/devres.c b/test/dm/devres.c index e7331897de..cbd0972c9b 100644 --- a/test/dm/devres.c +++ b/test/dm/devres.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/test/dm/regmap.c b/test/dm/regmap.c index 6fd1f20656..b21f66732b 100644 --- a/test/dm/regmap.c +++ b/test/dm/regmap.c @@ -10,6 +10,7 @@ #include #include #include +#include #include /* Base test of register maps */ diff --git a/test/dm/syscon.c b/test/dm/syscon.c index 0ff9da7ec6..f1021f374b 100644 --- a/test/dm/syscon.c +++ b/test/dm/syscon.c @@ -9,6 +9,7 @@ #include #include #include +#include #include /* Base test of system controllers */ diff --git a/test/dm/test-fdt.c b/test/dm/test-fdt.c index d59c449ce0..64a94a521b 100644 --- a/test/dm/test-fdt.c +++ b/test/dm/test-fdt.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include From patchwork Sun Jan 12 19:06:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221866 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=YQV0GSqV; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wnKL5CcJz9s29 for ; Mon, 13 Jan 2020 06:46:30 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 05D39816DA; Sun, 12 Jan 2020 20:46:08 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="YQV0GSqV"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 3390681846; Sun, 12 Jan 2020 20:08:11 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-il1-x143.google.com (mail-il1-x143.google.com [IPv6:2607:f8b0:4864:20::143]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 7AA4581827 for ; Sun, 12 Jan 2020 20:07:52 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x143.google.com with SMTP id v15so6089751iln.0 for ; Sun, 12 Jan 2020 11:07:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ccYehl3+Mcf6AGLCATA/giM1Ng0kwcTi5usrcw3X3Fc=; b=YQV0GSqVIMx6aG3ykQLznaEAf3i16GpRnsUFZ+5htST0Nt+eAArwpxpq6uMzj1z8G2 FlQoiww6QJQPpCtToOBnTrtSvhtzfGi8xYW3fc42iV3UQkV4plFOBYFO0v6xSt255Wro 5duZGt4Qu1WXSK+WYSxpudDhoHmzWs5pgUocI= 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=ccYehl3+Mcf6AGLCATA/giM1Ng0kwcTi5usrcw3X3Fc=; b=pRdWrwxTlbHvKwS7m4BIXQ5Xywl5icQBPbo35mw+Gbe3E7i02JOL+egsI5a+tkdPYU 8iFjRRz/bzZfsNyDSb+Jxm2j+padZh4umfhNalCSLoDlWGRoxPOfqmDkocianZ075jhh gyn+/e0QaNrDux74NR62jnaOnY5P9aM/YSfSwj/QngMgyWRy4OPI71ATSpcdV5D+okcK Ln/EXFdW5wVldbVsda+Bp/9nPPgwBHHhiabPvY0LASUCTl7/iZLdFaWxGwFZ0uBlj29I 8PdzKZP1ZQtOmQ27D3CeVOrP/qGeoqnvg2J7Xd+R30cHk6EQaagHsHUAUXpJrVu+eJvO Aohg== X-Gm-Message-State: APjAAAUhipj7Dm9S1jdIQYSNMKKa5cPamDwU4279iYuhjE7Qh3616cYh p3BCr1SBQHA9dELKD6TmnWIeBDI1t7g= X-Google-Smtp-Source: APXvYqxT2VkcAnEe+y7Q31K+kaMSOZ0ff3WDMaE3279k6xf04KEs0+cwdGMpAIESShKT2Q+RbHNA3Q== X-Received: by 2002:a92:d781:: with SMTP id d1mr11347385iln.30.1578856069289; Sun, 12 Jan 2020 11:07:49 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:48 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 30/33] dm: core: Create a new header file for 'compat' features Date: Sun, 12 Jan 2020 12:06:21 -0700 Message-Id: <20200112120216.30.I0e9c76aef442b3fe2efe37efba81c9398573305d@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-Mailman-Approved-At: Sun, 12 Jan 2020 20:46:02 +0100 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Miquel Raynal , Marek Szyprowski , Tien Fong Chee , Quentin Schulz , Ioana Ciocoi Radulescu , Thierry Reding , Thomas Weber , Kevin Scholz , Tero Kristo , Alexey Brodkin , "NXP i.MX U-Boot Team" , Stefan Roese , Fabien Dessenne , Alexander Graf , Matthias Brugger , Boris Brezillon , Andy Yan , GSS_MTK_Uboot_upstream , Christoph Muellner , Samuel Egli , uboot-snps-arc@synopsys.com, titron , Heinrich Schuchardt , Hou Zhiqiang , Michal Suchanek , Paul Emge , Purna Chandra Mandal , Ibai Erkiaga , Maxime Ripard , Eugeniu Rosca , Marek Vasut , Stefan Theil , Ryder Lee , James Doublesin , T Karthik Reddy , Tom Warren , Heiko Stuebner Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean At present dm/device.h includes the linux-compatible features. This requires including linux/compat.h which in turn includes a lot of headers. One of these is malloc.h which we thus end up including in every file in U-Boot. Apart from the inefficiency of this, it is problematic for sandbox which needs to use the system malloc() in some files. Move the compatibility features into a separate header file. Signed-off-by: Simon Glass --- arch/arm/mach-imx/cmd_nandbcb.c | 1 + arch/arm/mach-imx/imx8/image.c | 1 + arch/arm/mach-mvebu/mbus.c | 1 + arch/arm/mach-rockchip/rk3288/rk3288.c | 1 + arch/arm/mach-rockchip/rk3308/rk3308.c | 1 + arch/arm/mach-socfpga/clock_manager_agilex.c | 1 + arch/arm/mach-socfpga/clock_manager_arria10.c | 1 + arch/arm/mach-stm32mp/pwr_regulator.c | 1 + arch/arm/mach-tegra/cboot.c | 1 + arch/arm/mach-zynq/clk.c | 1 + arch/arm/mach-zynq/timer.c | 1 + arch/mips/mach-mtmips/cpu.c | 1 + arch/mips/mach-pic32/cpu.c | 1 + arch/sandbox/cpu/cpu.c | 1 + arch/x86/cpu/apollolake/fsp_s.c | 1 + arch/x86/cpu/apollolake/itss.c | 1 + arch/x86/cpu/apollolake/spl.c | 1 + arch/x86/cpu/apollolake/uart.c | 1 + arch/x86/cpu/qemu/e820.c | 1 + arch/x86/cpu/qfw_cpu.c | 1 + arch/x86/lib/coreboot_table.c | 1 + arch/x86/lib/fsp1/fsp_common.c | 1 + arch/x86/lib/mrccache.c | 1 + arch/x86/lib/tables.c | 1 + board/compulab/common/common.c | 1 + board/corscience/tricorder/tricorder.c | 1 + board/gardena/smart-gateway-mt7688/board.c | 1 + board/ge/common/vpd_reader.c | 1 + board/isee/igep003x/board.c | 1 + board/isee/igep00x0/igep00x0.c | 1 + board/menlo/m53menlo/m53menlo.c | 1 + board/microchip/pic32mzda/pic32mzda.c | 1 + board/overo/overo.c | 1 + board/siemens/common/board.c | 1 + board/siemens/pxm2/board.c | 1 + board/siemens/rut/board.c | 1 + board/st/stm32mp1/stm32mp1.c | 1 + board/synopsys/hsdk/clk-lib.c | 1 + board/technexion/tao3530/tao3530.c | 1 + board/ti/am335x/board.c | 1 + board/ti/am57xx/board.c | 1 + board/timll/devkit8000/devkit8000.c | 1 + cmd/bootefi.c | 1 + cmd/gpio.c | 1 + cmd/host.c | 1 + cmd/rng.c | 1 + cmd/tpm-common.c | 1 + cmd/ubi.c | 1 + cmd/usb_mass_storage.c | 1 + cmd/ximg.c | 1 + common/android_ab.c | 1 + common/autoboot.c | 1 + common/image-fdt.c | 1 + common/image.c | 1 + common/usb.c | 1 + common/usb_hub.c | 1 + drivers/adc/stm32-adc-core.c | 1 + drivers/adc/stm32-adc.c | 1 + drivers/axi/sandbox_store.c | 1 + drivers/block/blk-uclass.c | 1 + drivers/block/sandbox.c | 1 + drivers/clk/altera/clk-arria10.c | 2 + drivers/clk/at91/clk-generated.c | 1 + drivers/clk/at91/clk-h32mx.c | 1 + drivers/clk/at91/clk-peripheral.c | 1 + drivers/clk/clk-cdce9xx.c | 1 + drivers/clk/clk-ti-sci.c | 2 + drivers/clk/clk-uclass.c | 1 + drivers/clk/clk_sandbox.c | 1 + drivers/clk/clk_sandbox_ccf.c | 1 + drivers/clk/clk_sandbox_test.c | 2 + drivers/clk/clk_versal.c | 1 + drivers/clk/clk_vexpress_osc.c | 1 + drivers/clk/clk_zynq.c | 1 + drivers/clk/clk_zynqmp.c | 2 + drivers/clk/imx/clk-imx8.c | 1 + drivers/clk/mvebu/armada-37xx-periph.c | 1 + drivers/clk/mvebu/armada-37xx-tbg.c | 1 + drivers/clk/rockchip/clk_px30.c | 1 + drivers/clk/rockchip/clk_rk3036.c | 1 + drivers/clk/rockchip/clk_rk3128.c | 1 + drivers/clk/rockchip/clk_rk3188.c | 1 + drivers/clk/rockchip/clk_rk322x.c | 1 + drivers/clk/rockchip/clk_rk3288.c | 1 + drivers/clk/rockchip/clk_rk3308.c | 1 + drivers/clk/rockchip/clk_rk3328.c | 1 + drivers/clk/rockchip/clk_rk3368.c | 1 + drivers/clk/rockchip/clk_rk3399.c | 1 + drivers/clk/rockchip/clk_rv1108.c | 1 + drivers/clk/tegra/tegra-car-clk.c | 1 + drivers/clk/uniphier/clk-uniphier-core.c | 1 + drivers/core/devres.c | 1 + drivers/core/of_access.c | 1 + drivers/core/ofnode.c | 1 + drivers/core/syscon-uclass.c | 1 + drivers/ddr/altera/sdram_gen5.c | 1 + drivers/ddr/altera/sdram_soc64.c | 1 + drivers/dma/bcm6348-iudma.c | 1 + drivers/dma/dma-uclass.c | 1 + drivers/dma/sandbox-dma-test.c | 1 + drivers/dma/ti/k3-udma.c | 1 + drivers/firmware/ti_sci.c | 2 + drivers/fpga/fpga.c | 1 + drivers/gpio/74x164_gpio.c | 1 + drivers/gpio/adi_gpio2.c | 1 + drivers/gpio/at91_gpio.c | 1 + drivers/gpio/atmel_pio4.c | 1 + drivers/gpio/da8xx_gpio.c | 1 + drivers/gpio/dwapb_gpio.c | 1 + drivers/gpio/gpio-rcar.c | 2 + drivers/gpio/kona_gpio.c | 1 + drivers/gpio/mpc83xx_gpio.c | 1 + drivers/gpio/mscc_sgpio.c | 1 + drivers/gpio/mvgpio.c | 1 + drivers/gpio/mxs_gpio.c | 1 + drivers/gpio/pca953x_gpio.c | 1 + drivers/gpio/pca9698.c | 1 + drivers/gpio/sh_pfc.c | 1 + drivers/gpio/spear_gpio.c | 1 + drivers/gpio/stm32_gpio.c | 1 + drivers/hwspinlock/hwspinlock-uclass.c | 2 + drivers/hwspinlock/stm32_hwspinlock.c | 1 + drivers/i2c/at91_i2c.c | 1 + drivers/i2c/designware_i2c.c | 2 + drivers/i2c/i2c-uniphier-f.c | 1 + drivers/i2c/i2c-uniphier.c | 1 + drivers/i2c/imx_lpi2c.c | 1 + drivers/i2c/muxes/i2c-arb-gpio-challenge.c | 1 + drivers/i2c/muxes/i2c-mux-gpio.c | 1 + drivers/i2c/muxes/i2c-mux-uclass.c | 1 + drivers/i2c/muxes/pca954x.c | 1 + drivers/i2c/mxc_i2c.c | 1 + drivers/i2c/rcar_i2c.c | 1 + drivers/i2c/stm32f7_i2c.c | 1 + drivers/i2c/xilinx_xiic.c | 1 + drivers/led/led_gpio.c | 1 + drivers/mailbox/k3-sec-proxy.c | 2 + drivers/mailbox/mailbox-uclass.c | 1 + drivers/mailbox/sandbox-mbox-test.c | 1 + drivers/mailbox/sandbox-mbox.c | 1 + drivers/mailbox/stm32-ipcc.c | 2 + drivers/mailbox/tegra-hsp.c | 1 + drivers/mailbox/zynqmp-ipi.c | 1 + drivers/misc/imx8/scu_api.c | 1 + drivers/misc/k3_avs.c | 1 + drivers/misc/p2sb-uclass.c | 1 + drivers/misc/stm32_rcc.c | 1 + drivers/misc/tegra186_bpmp.c | 1 + drivers/misc/vexpress_config.c | 1 + drivers/mmc/am654_sdhci.c | 1 + drivers/mmc/arm_pl180_mmci.c | 1 + drivers/mmc/bcm2835_sdhost.c | 1 + drivers/mmc/fsl_esdhc.c | 1 + drivers/mmc/fsl_esdhc_imx.c | 1 + drivers/mmc/jz_mmc.c | 1 + drivers/mmc/mmc-uclass.c | 2 + drivers/mmc/msm_sdhci.c | 1 + drivers/mmc/mtk-sd.c | 1 + drivers/mmc/renesas-sdhi.c | 2 + drivers/mmc/sdhci-cadence.c | 1 + drivers/mmc/sh_mmcif.c | 1 + drivers/mmc/sh_sdhi.c | 1 + drivers/mmc/snps_dw_mmc.c | 1 + drivers/mmc/socfpga_dw_mmc.c | 1 + drivers/mmc/stm32_sdmmc2.c | 1 + drivers/mmc/tmio-common.c | 1 + drivers/mmc/uniphier-sd.c | 2 + drivers/mmc/zynq_sdhci.c | 1 + drivers/mtd/hbmc-am654.c | 1 + drivers/mtd/mtd_uboot.c | 1 + drivers/mtd/nand/core.c | 1 + drivers/mtd/nand/raw/atmel_nand.c | 1 + drivers/mtd/nand/raw/brcmnand/brcmnand.c | 1 + .../mtd/nand/raw/brcmnand/brcmnand_compat.c | 3 +- drivers/mtd/nand/raw/denali.c | 2 + drivers/mtd/nand/raw/denali_dt.c | 1 + drivers/mtd/nand/raw/pxa3xx_nand.c | 1 + drivers/mtd/nand/raw/sunxi_nand.c | 2 + drivers/mtd/nand/raw/tegra_nand.c | 1 + drivers/mtd/nand/raw/vf610_nfc.c | 1 + drivers/mtd/nand/spi/core.c | 1 + drivers/mtd/nand/spi/gigadevice.c | 1 + drivers/mtd/nand/spi/macronix.c | 1 + drivers/mtd/nand/spi/micron.c | 1 + drivers/mtd/nand/spi/winbond.c | 1 + drivers/mtd/renesas_rpc_hf.c | 2 + drivers/mtd/spi/sf-uclass.c | 1 + drivers/mtd/spi/spi-nor-core.c | 1 + drivers/mtd/spi/spi-nor-tiny.c | 1 + drivers/mtd/ubi/debug.c | 1 + drivers/mtd/ubi/misc.c | 1 + drivers/mtd/ubi/upd.c | 1 + drivers/net/bcm6348-eth.c | 1 + drivers/net/bcm6368-eth.c | 2 + drivers/net/designware.c | 1 + drivers/net/dwc_eth_qos.c | 1 + drivers/net/dwmac_socfpga.c | 1 + drivers/net/e1000.c | 1 + drivers/net/e1000_spi.c | 1 + drivers/net/fsl-mc/dpio/qbman_portal.c | 1 + drivers/net/fsl-mc/mc.c | 1 + drivers/net/fsl_enetc.c | 1 + drivers/net/ftgmac100.c | 2 + drivers/net/higmacv300.c | 1 + drivers/net/mscc_eswitch/jr2_switch.c | 1 + drivers/net/mscc_eswitch/luton_switch.c | 1 + drivers/net/mscc_eswitch/ocelot_switch.c | 1 + drivers/net/mscc_eswitch/serval_switch.c | 1 + drivers/net/mscc_eswitch/servalt_switch.c | 1 + drivers/net/mtk_eth.c | 1 + drivers/net/mvneta.c | 1 + drivers/net/mvpp2.c | 1 + drivers/net/pch_gbe.c | 1 + drivers/net/pfe_eth/pfe_driver.c | 1 + drivers/net/pfe_eth/pfe_eth.c | 1 + drivers/net/pfe_eth/pfe_firmware.c | 1 + drivers/net/pfe_eth/pfe_mdio.c | 1 + drivers/net/phy/fixed.c | 1 + drivers/net/pic32_eth.c | 1 + drivers/net/sandbox-raw-bus.c | 1 + drivers/net/sni_ave.c | 8 +- drivers/net/sun8i_emac.c | 1 + drivers/net/sunxi_emac.c | 1 + drivers/net/ti/am65-cpsw-nuss.c | 2 + drivers/net/ti/cpsw-common.c | 1 + drivers/net/ti/cpsw.c | 1 + drivers/net/ti/cpsw_mdio.c | 1 + drivers/net/zynq_gem.c | 1 + drivers/nvme/nvme.c | 2 + drivers/pci/pci-aardvark.c | 1 + drivers/pci/pci-uclass.c | 1 + drivers/pci/pci_mvebu.c | 1 + drivers/pci/pcie_dw_ti.c | 1 + drivers/pci/pcie_fsl.c | 1 + drivers/pci/pcie_imx.c | 1 + drivers/pci/pcie_intel_fpga.c | 1 + drivers/pci/pcie_mediatek.c | 1 + drivers/phy/allwinner/phy-sun4i-usb.c | 1 + drivers/phy/bcm6318-usbh-phy.c | 1 + drivers/phy/bcm6348-usbh-phy.c | 1 + drivers/phy/bcm6358-usbh-phy.c | 1 + drivers/phy/bcm6368-usbh-phy.c | 1 + drivers/phy/marvell/comphy_core.c | 1 + drivers/phy/meson-g12a-usb2.c | 1 + drivers/phy/meson-g12a-usb3-pcie.c | 1 + drivers/phy/meson-gxl-usb2.c | 1 + drivers/phy/meson-gxl-usb3.c | 1 + drivers/phy/phy-mtk-tphy.c | 2 + drivers/phy/phy-rcar-gen2.c | 2 + drivers/phy/phy-rcar-gen3.c | 1 + drivers/phy/phy-stm32-usbphyc.c | 1 + drivers/phy/phy-ti-am654.c | 1 + drivers/pinctrl/broadcom/pinctrl-bcm6838.c | 1 + drivers/pinctrl/intel/pinctrl.c | 1 + drivers/pinctrl/meson/pinctrl-meson.c | 2 + drivers/pinctrl/mscc/mscc-common.c | 1 + .../pinctrl/mtmips/pinctrl-mtmips-common.c | 1 + drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 2 + drivers/pinctrl/nxp/pinctrl-imx.c | 2 + drivers/pinctrl/nxp/pinctrl-mxs.c | 1 + drivers/pinctrl/pinctrl-generic.c | 1 + drivers/pinctrl/pinctrl-single.c | 1 + drivers/pinctrl/pinctrl-stmfx.c | 1 + drivers/pinctrl/pinctrl-uclass.c | 2 + drivers/pinctrl/pinctrl_stm32.c | 2 + drivers/pinctrl/renesas/pfc.c | 1 + .../pinctrl/uniphier/pinctrl-uniphier-core.c | 1 + drivers/power/domain/bcm6328-power-domain.c | 1 + .../power/domain/imx8-power-domain-legacy.c | 1 + drivers/power/domain/imx8-power-domain.c | 1 + drivers/power/domain/imx8m-power-domain.c | 1 + drivers/power/domain/meson-ee-pwrc.c | 1 + drivers/power/domain/meson-gx-pwrc-vpu.c | 1 + drivers/power/domain/mtk-power-domain.c | 1 + drivers/power/domain/power-domain-uclass.c | 1 + .../power/domain/sandbox-power-domain-test.c | 1 + drivers/power/domain/sandbox-power-domain.c | 1 + drivers/power/domain/tegra186-power-domain.c | 1 + drivers/power/domain/ti-sci-power-domain.c | 2 + drivers/power/pmic/fan53555.c | 1 + drivers/power/pmic/i2c_pmic_emul.c | 1 + drivers/power/pmic/stpmic1.c | 1 + drivers/power/regulator/pwm_regulator.c | 1 + drivers/power/regulator/stm32-vrefbuf.c | 1 + drivers/power/regulator/tps62360_regulator.c | 1 + drivers/ram/k3-am654-ddrss.c | 1 + drivers/ram/k3-j721e/k3-j721e-ddrss.c | 1 + drivers/ram/stm32_sdram.c | 1 + drivers/remoteproc/k3_system_controller.c | 1 + drivers/remoteproc/rproc-elf-loader.c | 3 +- drivers/remoteproc/stm32_copro.c | 1 + drivers/remoteproc/ti_k3_arm64_rproc.c | 1 + drivers/remoteproc/ti_k3_dsp_rproc.c | 2 + drivers/remoteproc/ti_k3_r5f_rproc.c | 2 + drivers/reset/reset-bcm6345.c | 1 + drivers/reset/reset-hisilicon.c | 1 + drivers/reset/reset-imx7.c | 1 + drivers/reset/reset-mediatek.c | 1 + drivers/reset/reset-meson.c | 1 + drivers/reset/reset-mtmips.c | 1 + drivers/reset/reset-rockchip.c | 1 + drivers/reset/reset-socfpga.c | 1 + drivers/reset/reset-sunxi.c | 1 + drivers/reset/reset-ti-sci.c | 2 + drivers/reset/reset-uclass.c | 1 + drivers/reset/reset-uniphier.c | 2 + drivers/reset/sandbox-reset-test.c | 1 + drivers/reset/sandbox-reset.c | 1 + drivers/reset/sti-reset.c | 1 + drivers/reset/stm32-reset.c | 1 + drivers/reset/tegra-car-reset.c | 1 + drivers/reset/tegra186-reset.c | 1 + drivers/rtc/ds3232.c | 1 + drivers/rtc/rv3029.c | 1 + drivers/rtc/stm32_rtc.c | 2 + drivers/serial/atmel_usart.c | 1 + drivers/serial/serial-uclass.c | 1 + drivers/serial/serial_bcm6345.c | 1 + drivers/serial/serial_lpuart.c | 1 + drivers/serial/serial_msm.c | 1 + drivers/serial/serial_pic32.c | 1 + drivers/serial/serial_stm32.c | 1 + drivers/serial/serial_zynq.c | 1 + drivers/smem/msm_smem.c | 1 + drivers/soc/ti/k3-navss-ringacc.c | 1 + drivers/sound/sound-uclass.c | 1 + drivers/spi/atmel-quadspi.c | 2 + drivers/spi/bcm63xx_hsspi.c | 1 + drivers/spi/bcm63xx_spi.c | 1 + drivers/spi/cadence_qspi.c | 1 + drivers/spi/designware_spi.c | 1 + drivers/spi/mvebu_a3700_spi.c | 1 + drivers/spi/mxc_spi.c | 1 + drivers/spi/spi-mem-nodm.c | 1 + drivers/spi/spi-mem.c | 1 + drivers/spi/spi-sunxi.c | 1 + drivers/spi/stm32_qspi.c | 1 + drivers/spi/stm32_spi.c | 2 + drivers/spi/uniphier_spi.c | 1 + drivers/spi/zynqmp_gqspi.c | 1 + drivers/spmi/spmi-msm.c | 1 + drivers/sysreset/sysreset-ti-sci.c | 1 + drivers/tee/optee/core.c | 1 + drivers/tee/optee/rpmb.c | 1 + drivers/tee/optee/supplicant.c | 1 + drivers/tee/tee-uclass.c | 3 +- drivers/timer/dw-apb-timer.c | 2 + drivers/timer/ostm_timer.c | 1 + drivers/timer/stm32_timer.c | 1 + drivers/ufs/cdns-platform.c | 1 + drivers/ufs/ti-j721e-ufs.c | 1 + drivers/ufs/ufs.c | 1 + drivers/usb/cdns3/cdns3-ti.c | 1 + drivers/usb/cdns3/core.c | 1 + drivers/usb/cdns3/drd.c | 1 + drivers/usb/cdns3/ep0.c | 1 + drivers/usb/cdns3/gadget.c | 1 + drivers/usb/dwc3/core.c | 1 + drivers/usb/dwc3/dwc3-omap.c | 1 + drivers/usb/dwc3/dwc3-uniphier.c | 1 + drivers/usb/dwc3/ep0.c | 1 + drivers/usb/dwc3/gadget.c | 1 + drivers/usb/dwc3/ti_usb_phy.c | 1 + drivers/usb/gadget/dwc2_udc_otg.c | 1 + drivers/usb/gadget/storage_common.c | 1 + drivers/usb/gadget/udc/udc-core.c | 1 + drivers/usb/host/dwc2.c | 1 + drivers/usb/host/ehci-atmel.c | 1 + drivers/usb/host/ehci-generic.c | 1 + drivers/usb/host/ehci-hcd.c | 1 + drivers/usb/host/ohci-da8xx.c | 2 + drivers/usb/host/ohci-generic.c | 1 + drivers/usb/host/r8a66597-hcd.c | 1 + drivers/usb/host/xhci-rcar.c | 2 + drivers/usb/musb-new/am35x.c | 1 + drivers/usb/musb-new/da8xx.c | 1 + drivers/usb/musb-new/musb_core.c | 1 + drivers/usb/musb-new/musb_dsps.c | 1 + drivers/usb/musb-new/musb_gadget.c | 1 + drivers/usb/musb-new/musb_gadget_ep0.c | 1 + drivers/usb/musb-new/musb_host.c | 1 + drivers/usb/musb-new/musb_uboot.c | 1 + drivers/usb/musb-new/omap2430.c | 1 + drivers/usb/musb-new/pic32.c | 1 + drivers/usb/musb-new/sunxi.c | 2 + drivers/usb/musb-new/ti-musb.c | 1 + drivers/usb/phy/omap_usb_phy.c | 1 + drivers/video/atmel_hlcdfb.c | 1 + drivers/video/console_truetype.c | 1 + drivers/video/da8xx-fb.c | 1 + drivers/video/dw_mipi_dsi.c | 1 + drivers/video/hitachi_tx18d42vm_lcd.c | 1 + drivers/video/mali_dp.c | 2 + drivers/video/mvebu_lcd.c | 1 + drivers/video/mxsfb.c | 1 + drivers/video/orisetech_otm8009a.c | 1 + drivers/video/pwm_backlight.c | 1 + drivers/video/raydium-rm68200.c | 1 + drivers/video/rockchip/rk3288_hdmi.c | 1 + drivers/video/rockchip/rk_edp.c | 1 + drivers/video/sandbox_osd.c | 1 + drivers/video/scf0403_lcd.c | 1 + drivers/video/ssd2828.c | 1 + drivers/video/stm32/stm32_dsi.c | 1 + drivers/video/stm32/stm32_ltdc.c | 1 + drivers/video/video-uclass.c | 1 + drivers/virtio/virtio-uclass.c | 1 + drivers/virtio/virtio_ring.c | 1 + drivers/w1-eeprom/ds2502.c | 1 + drivers/w1/mxc_w1.c | 1 + drivers/watchdog/armada-37xx-wdt.c | 1 + drivers/watchdog/cdns_wdt.c | 1 + fs/ext4/ext4_write.c | 1 + fs/ext4/ext4fs.c | 1 + fs/fat/fat_write.c | 1 + fs/sandbox/sandboxfs.c | 1 + fs/ubifs/lprops.c | 1 + fs/ubifs/ubifs.c | 1 + fs/yaffs2/yaffs_nandif.c | 1 + fs/yaffs2/yaffs_uboot_glue.c | 1 + include/dm/device.h | 71 --------------- include/dm/device_compat.h | 86 +++++++++++++++++++ include/linux/clk-provider.h | 1 + lib/bch.c | 1 + lib/binman.c | 1 + lib/bzip2/bzlib.c | 1 + lib/crypto/rsa_helper.c | 1 + lib/efi/efi.c | 1 + lib/efi/efi_app.c | 1 + lib/efi/efi_stub.c | 1 + lib/efi_driver/efi_block_device.c | 1 + lib/efi_driver/efi_uclass.c | 1 + lib/efi_loader/efi_console.c | 1 + lib/efi_loader/efi_runtime.c | 1 + lib/fdtdec.c | 1 + lib/libavb/avb_cmdline.c | 1 + lib/libavb/avb_descriptor.c | 1 + lib/libavb/avb_rsa.c | 1 + lib/libavb/avb_slot_verify.c | 1 + lib/libavb/avb_sysdeps_posix.c | 1 + lib/libavb/avb_util.c | 1 + lib/linux_compat.c | 1 + lib/lmb.c | 1 + lib/rsa/rsa-sign.c | 1 + lib/rsa/rsa-verify.c | 1 + lib/zstd/decompress.c | 1 + lib/zstd/zstd_common.c | 1 + net/mdio-uclass.c | 3 + post/post.c | 1 + test/dm/clk.c | 1 + test/dm/dma.c | 1 + test/dm/gpio.c | 1 + test/dm/mailbox.c | 1 + test/dm/power-domain.c | 1 + test/dm/reset.c | 1 + test/dm/spmi.c | 1 + test/dm/tee.c | 1 + test/dm/video.c | 1 + test/lib/lmb.c | 1 + test/unicode_ut.c | 1 + 460 files changed, 593 insertions(+), 77 deletions(-) create mode 100644 include/dm/device_compat.h diff --git a/arch/arm/mach-imx/cmd_nandbcb.c b/arch/arm/mach-imx/cmd_nandbcb.c index a1c265f46f..b3e59b1b00 100644 --- a/arch/arm/mach-imx/cmd_nandbcb.c +++ b/arch/arm/mach-imx/cmd_nandbcb.c @@ -10,6 +10,7 @@ */ #include +#include #include #include diff --git a/arch/arm/mach-imx/imx8/image.c b/arch/arm/mach-imx/imx8/image.c index 58a29e8a03..c956a8092d 100644 --- a/arch/arm/mach-imx/imx8/image.c +++ b/arch/arm/mach-imx/imx8/image.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/arch/arm/mach-mvebu/mbus.c b/arch/arm/mach-mvebu/mbus.c index c68e93ba10..a95db5e5c3 100644 --- a/arch/arm/mach-mvebu/mbus.c +++ b/arch/arm/mach-mvebu/mbus.c @@ -47,6 +47,7 @@ */ #include +#include #include #include #include diff --git a/arch/arm/mach-rockchip/rk3288/rk3288.c b/arch/arm/mach-rockchip/rk3288/rk3288.c index 05ba48ab27..7b1f8c3cc8 100644 --- a/arch/arm/mach-rockchip/rk3288/rk3288.c +++ b/arch/arm/mach-rockchip/rk3288/rk3288.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/arch/arm/mach-rockchip/rk3308/rk3308.c b/arch/arm/mach-rockchip/rk3308/rk3308.c index b6815ddc55..edf5994709 100644 --- a/arch/arm/mach-rockchip/rk3308/rk3308.c +++ b/arch/arm/mach-rockchip/rk3308/rk3308.c @@ -3,6 +3,7 @@ *Copyright (c) 2018 Rockchip Electronics Co., Ltd */ #include +#include #include #include #include diff --git a/arch/arm/mach-socfpga/clock_manager_agilex.c b/arch/arm/mach-socfpga/clock_manager_agilex.c index 791066d25b..4ee2b7b4bb 100644 --- a/arch/arm/mach-socfpga/clock_manager_agilex.c +++ b/arch/arm/mach-socfpga/clock_manager_agilex.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/arch/arm/mach-socfpga/clock_manager_arria10.c b/arch/arm/mach-socfpga/clock_manager_arria10.c index 392f2eb915..d7c8eaf47d 100644 --- a/arch/arm/mach-socfpga/clock_manager_arria10.c +++ b/arch/arm/mach-socfpga/clock_manager_arria10.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/arch/arm/mach-stm32mp/pwr_regulator.c b/arch/arm/mach-stm32mp/pwr_regulator.c index 977cc7d348..4559ef599d 100644 --- a/arch/arm/mach-stm32mp/pwr_regulator.c +++ b/arch/arm/mach-stm32mp/pwr_regulator.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/arch/arm/mach-tegra/cboot.c b/arch/arm/mach-tegra/cboot.c index 0762144ecf..4906fa1598 100644 --- a/arch/arm/mach-tegra/cboot.c +++ b/arch/arm/mach-tegra/cboot.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include diff --git a/arch/arm/mach-zynq/clk.c b/arch/arm/mach-zynq/clk.c index 1a6acd46cd..b578f6538a 100644 --- a/arch/arm/mach-zynq/clk.c +++ b/arch/arm/mach-zynq/clk.c @@ -6,6 +6,7 @@ #include #include #include +#include #include DECLARE_GLOBAL_DATA_PTR; diff --git a/arch/arm/mach-zynq/timer.c b/arch/arm/mach-zynq/timer.c index 8658abb457..666fa7bdde 100644 --- a/arch/arm/mach-zynq/timer.c +++ b/arch/arm/mach-zynq/timer.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include diff --git a/arch/mips/mach-mtmips/cpu.c b/arch/mips/mach-mtmips/cpu.c index 7afc2c5940..8c28bbcc00 100644 --- a/arch/mips/mach-mtmips/cpu.c +++ b/arch/mips/mach-mtmips/cpu.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/arch/mips/mach-pic32/cpu.c b/arch/mips/mach-pic32/cpu.c index 8bb12a52c6..8075d93d41 100644 --- a/arch/mips/mach-pic32/cpu.c +++ b/arch/mips/mach-pic32/cpu.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/arch/sandbox/cpu/cpu.c b/arch/sandbox/cpu/cpu.c index ff7430393f..56ee3f5826 100644 --- a/arch/sandbox/cpu/cpu.c +++ b/arch/sandbox/cpu/cpu.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/arch/x86/cpu/apollolake/fsp_s.c b/arch/x86/cpu/apollolake/fsp_s.c index 9804227f80..92ecacf98a 100644 --- a/arch/x86/cpu/apollolake/fsp_s.c +++ b/arch/x86/cpu/apollolake/fsp_s.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/arch/x86/cpu/apollolake/itss.c b/arch/x86/cpu/apollolake/itss.c index 8789f8e6bb..a44770b7d4 100644 --- a/arch/x86/cpu/apollolake/itss.c +++ b/arch/x86/cpu/apollolake/itss.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include diff --git a/arch/x86/cpu/apollolake/spl.c b/arch/x86/cpu/apollolake/spl.c index 7ab7243311..d32f2a9898 100644 --- a/arch/x86/cpu/apollolake/spl.c +++ b/arch/x86/cpu/apollolake/spl.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include diff --git a/arch/x86/cpu/apollolake/uart.c b/arch/x86/cpu/apollolake/uart.c index f2b356eb44..f368f7d2db 100644 --- a/arch/x86/cpu/apollolake/uart.c +++ b/arch/x86/cpu/apollolake/uart.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/arch/x86/cpu/qemu/e820.c b/arch/x86/cpu/qemu/e820.c index a4136eb98c..0da36bddea 100644 --- a/arch/x86/cpu/qemu/e820.c +++ b/arch/x86/cpu/qemu/e820.c @@ -8,6 +8,7 @@ #include #include +#include #include #include diff --git a/arch/x86/cpu/qfw_cpu.c b/arch/x86/cpu/qfw_cpu.c index 49e9dfcf69..349bab1583 100644 --- a/arch/x86/cpu/qfw_cpu.c +++ b/arch/x86/cpu/qfw_cpu.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include diff --git a/arch/x86/lib/coreboot_table.c b/arch/x86/lib/coreboot_table.c index 8685aa3046..2943e11d2a 100644 --- a/arch/x86/lib/coreboot_table.c +++ b/arch/x86/lib/coreboot_table.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/arch/x86/lib/fsp1/fsp_common.c b/arch/x86/lib/fsp1/fsp_common.c index ec9c218778..aee2a05044 100644 --- a/arch/x86/lib/fsp1/fsp_common.c +++ b/arch/x86/lib/fsp1/fsp_common.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/arch/x86/lib/mrccache.c b/arch/x86/lib/mrccache.c index b9420a4cab..8914960226 100644 --- a/arch/x86/lib/mrccache.c +++ b/arch/x86/lib/mrccache.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/arch/x86/lib/tables.c b/arch/x86/lib/tables.c index 99f1429363..7aea722d0b 100644 --- a/arch/x86/lib/tables.c +++ b/arch/x86/lib/tables.c @@ -4,6 +4,7 @@ */ #include +#include #include #include #include diff --git a/board/compulab/common/common.c b/board/compulab/common/common.c index cbac112dd8..2f92c6564d 100644 --- a/board/compulab/common/common.c +++ b/board/compulab/common/common.c @@ -6,6 +6,7 @@ */ #include +#include #include #include #include diff --git a/board/corscience/tricorder/tricorder.c b/board/corscience/tricorder/tricorder.c index da33f8441c..cec819b36f 100644 --- a/board/corscience/tricorder/tricorder.c +++ b/board/corscience/tricorder/tricorder.c @@ -10,6 +10,7 @@ * Frederik Kriewitz */ #include +#include #include #include #include diff --git a/board/gardena/smart-gateway-mt7688/board.c b/board/gardena/smart-gateway-mt7688/board.c index ae03f0a434..48cf3091e9 100644 --- a/board/gardena/smart-gateway-mt7688/board.c +++ b/board/gardena/smart-gateway-mt7688/board.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/board/ge/common/vpd_reader.c b/board/ge/common/vpd_reader.c index 12410d9b71..94eeab9748 100644 --- a/board/ge/common/vpd_reader.c +++ b/board/ge/common/vpd_reader.c @@ -4,6 +4,7 @@ */ #include "vpd_reader.h" +#include #include #include diff --git a/board/isee/igep003x/board.c b/board/isee/igep003x/board.c index bc9fdcd1e6..b0f8d8a314 100644 --- a/board/isee/igep003x/board.c +++ b/board/isee/igep003x/board.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/board/isee/igep00x0/igep00x0.c b/board/isee/igep00x0/igep00x0.c index 74fc5f0890..1b871fdcc5 100644 --- a/board/isee/igep00x0/igep00x0.c +++ b/board/isee/igep00x0/igep00x0.c @@ -5,6 +5,7 @@ */ #include #include +#include #include #include #include diff --git a/board/menlo/m53menlo/m53menlo.c b/board/menlo/m53menlo/m53menlo.c index 065e6a2ccc..70a13aa17b 100644 --- a/board/menlo/m53menlo/m53menlo.c +++ b/board/menlo/m53menlo/m53menlo.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/board/microchip/pic32mzda/pic32mzda.c b/board/microchip/pic32mzda/pic32mzda.c index 8bfdee91e5..aa8aab39ce 100644 --- a/board/microchip/pic32mzda/pic32mzda.c +++ b/board/microchip/pic32mzda/pic32mzda.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include diff --git a/board/overo/overo.c b/board/overo/overo.c index 442028a764..baa7997477 100644 --- a/board/overo/overo.c +++ b/board/overo/overo.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include diff --git a/board/siemens/common/board.c b/board/siemens/common/board.c index 5f5e2eb544..24429d2837 100644 --- a/board/siemens/common/board.c +++ b/board/siemens/common/board.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include diff --git a/board/siemens/pxm2/board.c b/board/siemens/pxm2/board.c index b5a10ebf8b..58bb5bab1a 100644 --- a/board/siemens/pxm2/board.c +++ b/board/siemens/pxm2/board.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include diff --git a/board/siemens/rut/board.c b/board/siemens/rut/board.c index d7d9738a6d..bd4eaa4f3a 100644 --- a/board/siemens/rut/board.c +++ b/board/siemens/rut/board.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include diff --git a/board/st/stm32mp1/stm32mp1.c b/board/st/stm32mp1/stm32mp1.c index d57a50de11..0e17478175 100644 --- a/board/st/stm32mp1/stm32mp1.c +++ b/board/st/stm32mp1/stm32mp1.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include diff --git a/board/synopsys/hsdk/clk-lib.c b/board/synopsys/hsdk/clk-lib.c index 6c75ce0870..6b6bb70e3c 100644 --- a/board/synopsys/hsdk/clk-lib.c +++ b/board/synopsys/hsdk/clk-lib.c @@ -5,6 +5,7 @@ */ #include +#include #include #include "clk-lib.h" diff --git a/board/technexion/tao3530/tao3530.c b/board/technexion/tao3530/tao3530.c index 22d26e550e..7d7c427392 100644 --- a/board/technexion/tao3530/tao3530.c +++ b/board/technexion/tao3530/tao3530.c @@ -4,6 +4,7 @@ * Tapani Utriainen */ #include +#include #include #include #include diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c index 3d7f73843c..01b28e8da4 100644 --- a/board/ti/am335x/board.c +++ b/board/ti/am335x/board.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include diff --git a/board/ti/am57xx/board.c b/board/ti/am57xx/board.c index c755821b74..9e97fdd97e 100644 --- a/board/ti/am57xx/board.c +++ b/board/ti/am57xx/board.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/board/timll/devkit8000/devkit8000.c b/board/timll/devkit8000/devkit8000.c index 490d8cbcd0..b037d725c3 100644 --- a/board/timll/devkit8000/devkit8000.c +++ b/board/timll/devkit8000/devkit8000.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include diff --git a/cmd/bootefi.c b/cmd/bootefi.c index 56bdff33c6..d347bd5ec0 100644 --- a/cmd/bootefi.c +++ b/cmd/bootefi.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include diff --git a/cmd/gpio.c b/cmd/gpio.c index 5f4c7ff114..8ce8ba909d 100644 --- a/cmd/gpio.c +++ b/cmd/gpio.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include diff --git a/cmd/host.c b/cmd/host.c index 98c4d2a099..eefc4f255e 100644 --- a/cmd/host.c +++ b/cmd/host.c @@ -8,6 +8,7 @@ #include #include #include +#include #include static int host_curr_device = -1; diff --git a/cmd/rng.c b/cmd/rng.c index 36ca7a101c..76367fed94 100644 --- a/cmd/rng.c +++ b/cmd/rng.c @@ -8,6 +8,7 @@ #include #include #include +#include #include static int do_rng(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) diff --git a/cmd/tpm-common.c b/cmd/tpm-common.c index 38900fb159..9eecb12ec2 100644 --- a/cmd/tpm-common.c +++ b/cmd/tpm-common.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/cmd/ubi.c b/cmd/ubi.c index 7fb4cdfc2a..cecf251fdb 100644 --- a/cmd/ubi.c +++ b/cmd/ubi.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include diff --git a/cmd/usb_mass_storage.c b/cmd/usb_mass_storage.c index 570cf3aa50..c5c6899787 100644 --- a/cmd/usb_mass_storage.c +++ b/cmd/usb_mass_storage.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/cmd/ximg.c b/cmd/ximg.c index 22b2037a33..5c26d1d04f 100644 --- a/cmd/ximg.c +++ b/cmd/ximg.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #if defined(CONFIG_BZIP2) diff --git a/common/android_ab.c b/common/android_ab.c index 6c4df419b2..e0fe32d24d 100644 --- a/common/android_ab.c +++ b/common/android_ab.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include diff --git a/common/autoboot.c b/common/autoboot.c index 94a1b4abeb..4ea9be6da9 100644 --- a/common/autoboot.c +++ b/common/autoboot.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include diff --git a/common/image-fdt.c b/common/image-fdt.c index 48388488d9..3b69d5f60f 100644 --- a/common/image-fdt.c +++ b/common/image-fdt.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include diff --git a/common/image.c b/common/image.c index 75d5dd944f..d44983b028 100644 --- a/common/image.c +++ b/common/image.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include diff --git a/common/usb.c b/common/usb.c index d9bcb5a57e..349e838f1d 100644 --- a/common/usb.c +++ b/common/usb.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include diff --git a/common/usb_hub.c b/common/usb_hub.c index 25c2ac4345..c642b683e7 100644 --- a/common/usb_hub.c +++ b/common/usb_hub.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/adc/stm32-adc-core.c b/drivers/adc/stm32-adc-core.c index 04b6a8a2f5..2ca0fb4f10 100644 --- a/drivers/adc/stm32-adc-core.c +++ b/drivers/adc/stm32-adc-core.c @@ -8,6 +8,7 @@ #include #include +#include #include #include "stm32-adc-core.h" diff --git a/drivers/adc/stm32-adc.c b/drivers/adc/stm32-adc.c index 029338e4af..ca1ac3e757 100644 --- a/drivers/adc/stm32-adc.c +++ b/drivers/adc/stm32-adc.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include "stm32-adc-core.h" diff --git a/drivers/axi/sandbox_store.c b/drivers/axi/sandbox_store.c index d724f19079..a6f483ed25 100644 --- a/drivers/axi/sandbox_store.c +++ b/drivers/axi/sandbox_store.c @@ -7,6 +7,7 @@ #include #include #include +#include /** * struct sandbox_store_priv - Private data structure of a AXI store device diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk-uclass.c index 7771114491..7c39aa5f2f 100644 --- a/drivers/block/blk-uclass.c +++ b/drivers/block/blk-uclass.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/block/sandbox.c b/drivers/block/sandbox.c index d3b1aaaba3..cca2237136 100644 --- a/drivers/block/sandbox.c +++ b/drivers/block/sandbox.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include diff --git a/drivers/clk/altera/clk-arria10.c b/drivers/clk/altera/clk-arria10.c index a39cd34fe5..affeb31fc2 100644 --- a/drivers/clk/altera/clk-arria10.c +++ b/drivers/clk/altera/clk-arria10.c @@ -4,9 +4,11 @@ */ #include +#include #include #include #include +#include #include #include #include diff --git a/drivers/clk/at91/clk-generated.c b/drivers/clk/at91/clk-generated.c index d8562e131d..a80f259a72 100644 --- a/drivers/clk/at91/clk-generated.c +++ b/drivers/clk/at91/clk-generated.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/clk/at91/clk-h32mx.c b/drivers/clk/at91/clk-h32mx.c index 8f02d73d8d..86bb71f612 100644 --- a/drivers/clk/at91/clk-h32mx.c +++ b/drivers/clk/at91/clk-h32mx.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/clk/at91/clk-peripheral.c b/drivers/clk/at91/clk-peripheral.c index c880af8155..c55e6214b2 100644 --- a/drivers/clk/at91/clk-peripheral.c +++ b/drivers/clk/at91/clk-peripheral.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include "pmc.h" diff --git a/drivers/clk/clk-cdce9xx.c b/drivers/clk/clk-cdce9xx.c index 5d1489ab0e..f1f76b0a4d 100644 --- a/drivers/clk/clk-cdce9xx.c +++ b/drivers/clk/clk-cdce9xx.c @@ -13,6 +13,7 @@ #include #include #include +#include #define MAX_NUMBER_OF_PLLS 4 #define MAX_NUMER_OF_OUTPUTS 9 diff --git a/drivers/clk/clk-ti-sci.c b/drivers/clk/clk-ti-sci.c index 4612fbcdc7..d65ee963f0 100644 --- a/drivers/clk/clk-ti-sci.c +++ b/drivers/clk/clk-ti-sci.c @@ -12,6 +12,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index a4f6b15e3d..4544f4c7f7 100644 --- a/drivers/clk/clk-uclass.c +++ b/drivers/clk/clk-uclass.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/clk/clk_sandbox.c b/drivers/clk/clk_sandbox.c index cc084b0644..768fbb7c52 100644 --- a/drivers/clk/clk_sandbox.c +++ b/drivers/clk/clk_sandbox.c @@ -7,6 +7,7 @@ #include #include #include +#include #include struct sandbox_clk_priv { diff --git a/drivers/clk/clk_sandbox_ccf.c b/drivers/clk/clk_sandbox_ccf.c index 0903c817a6..3543bea70d 100644 --- a/drivers/clk/clk_sandbox_ccf.c +++ b/drivers/clk/clk_sandbox_ccf.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/clk/clk_sandbox_test.c b/drivers/clk/clk_sandbox_test.c index 628110de3e..873383856f 100644 --- a/drivers/clk/clk_sandbox_test.c +++ b/drivers/clk/clk_sandbox_test.c @@ -6,7 +6,9 @@ #include #include #include +#include #include +#include #include struct sandbox_clk_test { diff --git a/drivers/clk/clk_versal.c b/drivers/clk/clk_versal.c index 66cbef15ab..9d4d2149e3 100644 --- a/drivers/clk/clk_versal.c +++ b/drivers/clk/clk_versal.c @@ -5,6 +5,7 @@ */ #include +#include #include #include #include diff --git a/drivers/clk/clk_vexpress_osc.c b/drivers/clk/clk_vexpress_osc.c index c692a6d0b8..82e589e239 100644 --- a/drivers/clk/clk_vexpress_osc.c +++ b/drivers/clk/clk_vexpress_osc.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/clk/clk_zynq.c b/drivers/clk/clk_zynq.c index b09c37db40..4ca1cc0d52 100644 --- a/drivers/clk/clk_zynq.c +++ b/drivers/clk/clk_zynq.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/clk/clk_zynqmp.c b/drivers/clk/clk_zynqmp.c index a365b565e1..e0eb897da8 100644 --- a/drivers/clk/clk_zynqmp.c +++ b/drivers/clk/clk_zynqmp.c @@ -6,6 +6,8 @@ */ #include +#include +#include #include #include #include diff --git a/drivers/clk/imx/clk-imx8.c b/drivers/clk/imx/clk-imx8.c index a755e26501..671054d9be 100644 --- a/drivers/clk/imx/clk-imx8.c +++ b/drivers/clk/imx/clk-imx8.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/clk/mvebu/armada-37xx-periph.c b/drivers/clk/mvebu/armada-37xx-periph.c index b1a35968e1..068e48ea04 100644 --- a/drivers/clk/mvebu/armada-37xx-periph.c +++ b/drivers/clk/mvebu/armada-37xx-periph.c @@ -15,6 +15,7 @@ #include #include #include +#include #define TBG_SEL 0x0 #define DIV_SEL0 0x4 diff --git a/drivers/clk/mvebu/armada-37xx-tbg.c b/drivers/clk/mvebu/armada-37xx-tbg.c index aa7ccd690f..233926e9b6 100644 --- a/drivers/clk/mvebu/armada-37xx-tbg.c +++ b/drivers/clk/mvebu/armada-37xx-tbg.c @@ -14,6 +14,7 @@ #include #include #include +#include #define NUM_TBG 4 diff --git a/drivers/clk/rockchip/clk_px30.c b/drivers/clk/rockchip/clk_px30.c index 36764c128b..b88534145e 100644 --- a/drivers/clk/rockchip/clk_px30.c +++ b/drivers/clk/rockchip/clk_px30.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/clk/rockchip/clk_rk3036.c b/drivers/clk/rockchip/clk_rk3036.c index 6d5ae3d003..6e085c4136 100644 --- a/drivers/clk/rockchip/clk_rk3036.c +++ b/drivers/clk/rockchip/clk_rk3036.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/clk/rockchip/clk_rk3128.c b/drivers/clk/rockchip/clk_rk3128.c index efda8c830b..a6f7902941 100644 --- a/drivers/clk/rockchip/clk_rk3128.c +++ b/drivers/clk/rockchip/clk_rk3128.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/clk/rockchip/clk_rk3188.c b/drivers/clk/rockchip/clk_rk3188.c index 82eea40063..2b82a40d28 100644 --- a/drivers/clk/rockchip/clk_rk3188.c +++ b/drivers/clk/rockchip/clk_rk3188.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/clk/rockchip/clk_rk322x.c b/drivers/clk/rockchip/clk_rk322x.c index 6e8a164d62..ef33adbf29 100644 --- a/drivers/clk/rockchip/clk_rk322x.c +++ b/drivers/clk/rockchip/clk_rk322x.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/clk/rockchip/clk_rk3288.c b/drivers/clk/rockchip/clk_rk3288.c index 14dfa85942..ebb6283471 100644 --- a/drivers/clk/rockchip/clk_rk3288.c +++ b/drivers/clk/rockchip/clk_rk3288.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/clk/rockchip/clk_rk3308.c b/drivers/clk/rockchip/clk_rk3308.c index f212c5ffc2..c0f1285e4c 100644 --- a/drivers/clk/rockchip/clk_rk3308.c +++ b/drivers/clk/rockchip/clk_rk3308.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/clk/rockchip/clk_rk3328.c b/drivers/clk/rockchip/clk_rk3328.c index e700a1bc25..8e867c58df 100644 --- a/drivers/clk/rockchip/clk_rk3328.c +++ b/drivers/clk/rockchip/clk_rk3328.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/clk/rockchip/clk_rk3368.c b/drivers/clk/rockchip/clk_rk3368.c index b51d529ade..2cce1b967d 100644 --- a/drivers/clk/rockchip/clk_rk3368.c +++ b/drivers/clk/rockchip/clk_rk3368.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/clk/rockchip/clk_rk3399.c b/drivers/clk/rockchip/clk_rk3399.c index 9020a9f202..e0890d0075 100644 --- a/drivers/clk/rockchip/clk_rk3399.c +++ b/drivers/clk/rockchip/clk_rk3399.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/clk/rockchip/clk_rv1108.c b/drivers/clk/rockchip/clk_rv1108.c index 97fdd099ef..da9c48b962 100644 --- a/drivers/clk/rockchip/clk_rv1108.c +++ b/drivers/clk/rockchip/clk_rv1108.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/clk/tegra/tegra-car-clk.c b/drivers/clk/tegra/tegra-car-clk.c index 07e8734b3a..6083f14e75 100644 --- a/drivers/clk/tegra/tegra-car-clk.c +++ b/drivers/clk/tegra/tegra-car-clk.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include diff --git a/drivers/clk/uniphier/clk-uniphier-core.c b/drivers/clk/uniphier/clk-uniphier-core.c index 1da63819e7..9f24050992 100644 --- a/drivers/clk/uniphier/clk-uniphier-core.c +++ b/drivers/clk/uniphier/clk-uniphier-core.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/core/devres.c b/drivers/core/devres.c index d98e80de26..457e1309c5 100644 --- a/drivers/core/devres.c +++ b/drivers/core/devres.c @@ -10,6 +10,7 @@ #define LOG_CATEGORY LOGC_DEVRES #include +#include #include #include #include diff --git a/drivers/core/of_access.c b/drivers/core/of_access.c index 945b81448c..acd745c121 100644 --- a/drivers/core/of_access.c +++ b/drivers/core/of_access.c @@ -20,6 +20,7 @@ */ #include +#include #include #include #include diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c index 8f0eab2ca6..e523c2e2bf 100644 --- a/drivers/core/ofnode.c +++ b/drivers/core/ofnode.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/core/syscon-uclass.c b/drivers/core/syscon-uclass.c index 5bb38e329c..ac2de47515 100644 --- a/drivers/core/syscon-uclass.c +++ b/drivers/core/syscon-uclass.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/ddr/altera/sdram_gen5.c b/drivers/ddr/altera/sdram_gen5.c index 435f42bc0a..7488fe7e7c 100644 --- a/drivers/ddr/altera/sdram_gen5.c +++ b/drivers/ddr/altera/sdram_gen5.c @@ -14,6 +14,7 @@ #include #include #include +#include #include "sequencer.h" diff --git a/drivers/ddr/altera/sdram_soc64.c b/drivers/ddr/altera/sdram_soc64.c index 985a108b1c..1f321e3f58 100644 --- a/drivers/ddr/altera/sdram_soc64.c +++ b/drivers/ddr/altera/sdram_soc64.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #define PGTABLE_OFF 0x4000 diff --git a/drivers/dma/bcm6348-iudma.c b/drivers/dma/bcm6348-iudma.c index 96250eb5d2..d99460f2fb 100644 --- a/drivers/dma/bcm6348-iudma.c +++ b/drivers/dma/bcm6348-iudma.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/dma/dma-uclass.c b/drivers/dma/dma-uclass.c index a0159d7888..9d5a7fc796 100644 --- a/drivers/dma/dma-uclass.c +++ b/drivers/dma/dma-uclass.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/dma/sandbox-dma-test.c b/drivers/dma/sandbox-dma-test.c index 5aa7838ff5..2d020e0f8f 100644 --- a/drivers/dma/sandbox-dma-test.c +++ b/drivers/dma/sandbox-dma-test.c @@ -9,6 +9,7 @@ #include #include +#include #include #include #include diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c index 4859b3f32c..e55b9a6ecf 100644 --- a/drivers/dma/ti/k3-udma.c +++ b/drivers/dma/ti/k3-udma.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/firmware/ti_sci.c b/drivers/firmware/ti_sci.c index 5e37ee0570..99b2e5dfed 100644 --- a/drivers/firmware/ti_sci.c +++ b/drivers/firmware/ti_sci.c @@ -11,7 +11,9 @@ #include #include #include +#include #include +#include #include #include #include diff --git a/drivers/fpga/fpga.c b/drivers/fpga/fpga.c index 7e8bd7eae8..0917871d49 100644 --- a/drivers/fpga/fpga.c +++ b/drivers/fpga/fpga.c @@ -9,6 +9,7 @@ #include /* xilinx specific definitions */ #include /* altera specific definitions */ #include +#include /* Local definitions */ #ifndef CONFIG_MAX_FPGA_DEVICES diff --git a/drivers/gpio/74x164_gpio.c b/drivers/gpio/74x164_gpio.c index dcb1c1b369..64717a6780 100644 --- a/drivers/gpio/74x164_gpio.c +++ b/drivers/gpio/74x164_gpio.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include diff --git a/drivers/gpio/adi_gpio2.c b/drivers/gpio/adi_gpio2.c index 1012f2d8eb..9d293b6994 100644 --- a/drivers/gpio/adi_gpio2.c +++ b/drivers/gpio/adi_gpio2.c @@ -8,6 +8,7 @@ */ #include +#include #include #include diff --git a/drivers/gpio/at91_gpio.c b/drivers/gpio/at91_gpio.c index 5ea3e77b2d..3621cf2408 100644 --- a/drivers/gpio/at91_gpio.c +++ b/drivers/gpio/at91_gpio.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/gpio/atmel_pio4.c b/drivers/gpio/atmel_pio4.c index 8e6f32de1f..a3f5e7a2e0 100644 --- a/drivers/gpio/atmel_pio4.c +++ b/drivers/gpio/atmel_pio4.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/gpio/da8xx_gpio.c b/drivers/gpio/da8xx_gpio.c index bd5a366aef..eb1b22c187 100644 --- a/drivers/gpio/da8xx_gpio.c +++ b/drivers/gpio/da8xx_gpio.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/gpio/dwapb_gpio.c b/drivers/gpio/dwapb_gpio.c index 58e3e7b1f7..e3439eebb5 100644 --- a/drivers/gpio/dwapb_gpio.c +++ b/drivers/gpio/dwapb_gpio.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c index a8c5b7f879..9dc4cd6042 100644 --- a/drivers/gpio/gpio-rcar.c +++ b/drivers/gpio/gpio-rcar.c @@ -6,6 +6,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/drivers/gpio/kona_gpio.c b/drivers/gpio/kona_gpio.c index 912a4cac59..29791882a3 100644 --- a/drivers/gpio/kona_gpio.c +++ b/drivers/gpio/kona_gpio.c @@ -4,6 +4,7 @@ */ #include +#include #include #include diff --git a/drivers/gpio/mpc83xx_gpio.c b/drivers/gpio/mpc83xx_gpio.c index dcd78e7e88..276a3b350d 100644 --- a/drivers/gpio/mpc83xx_gpio.c +++ b/drivers/gpio/mpc83xx_gpio.c @@ -4,6 +4,7 @@ */ #include +#include #include #include #include diff --git a/drivers/gpio/mscc_sgpio.c b/drivers/gpio/mscc_sgpio.c index 3378ebb442..c65ca81728 100644 --- a/drivers/gpio/mscc_sgpio.c +++ b/drivers/gpio/mscc_sgpio.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #define MSCC_SGPIOS_PER_BANK 32 diff --git a/drivers/gpio/mvgpio.c b/drivers/gpio/mvgpio.c index ea2f689d60..12e7197daf 100644 --- a/drivers/gpio/mvgpio.c +++ b/drivers/gpio/mvgpio.c @@ -9,6 +9,7 @@ */ #include +#include #include #include #include "mvgpio.h" diff --git a/drivers/gpio/mxs_gpio.c b/drivers/gpio/mxs_gpio.c index 77778e9ce5..405e9ac135 100644 --- a/drivers/gpio/mxs_gpio.c +++ b/drivers/gpio/mxs_gpio.c @@ -7,6 +7,7 @@ */ #include +#include #include #include #include diff --git a/drivers/gpio/pca953x_gpio.c b/drivers/gpio/pca953x_gpio.c index 07a3356b3c..5527e575e9 100644 --- a/drivers/gpio/pca953x_gpio.c +++ b/drivers/gpio/pca953x_gpio.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #define PCA953X_INPUT 0 diff --git a/drivers/gpio/pca9698.c b/drivers/gpio/pca9698.c index ab0c4c1b97..11274c7810 100644 --- a/drivers/gpio/pca9698.c +++ b/drivers/gpio/pca9698.c @@ -10,6 +10,7 @@ #include #include +#include #include #include diff --git a/drivers/gpio/sh_pfc.c b/drivers/gpio/sh_pfc.c index ad8da9ef28..6320a6280d 100644 --- a/drivers/gpio/sh_pfc.c +++ b/drivers/gpio/sh_pfc.c @@ -10,6 +10,7 @@ */ #include +#include #include #include #include diff --git a/drivers/gpio/spear_gpio.c b/drivers/gpio/spear_gpio.c index 525aa3b9ac..4e4cd12545 100644 --- a/drivers/gpio/spear_gpio.c +++ b/drivers/gpio/spear_gpio.c @@ -8,6 +8,7 @@ */ #include +#include #include #include #include diff --git a/drivers/gpio/stm32_gpio.c b/drivers/gpio/stm32_gpio.c index 302a434947..f55f834e7d 100644 --- a/drivers/gpio/stm32_gpio.c +++ b/drivers/gpio/stm32_gpio.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include diff --git a/drivers/hwspinlock/hwspinlock-uclass.c b/drivers/hwspinlock/hwspinlock-uclass.c index 195f079707..61d226bcbb 100644 --- a/drivers/hwspinlock/hwspinlock-uclass.c +++ b/drivers/hwspinlock/hwspinlock-uclass.c @@ -8,6 +8,8 @@ #include #include #include +#include +#include static inline const struct hwspinlock_ops * hwspinlock_dev_ops(struct udevice *dev) diff --git a/drivers/hwspinlock/stm32_hwspinlock.c b/drivers/hwspinlock/stm32_hwspinlock.c index a32bde4906..74afb4aec2 100644 --- a/drivers/hwspinlock/stm32_hwspinlock.c +++ b/drivers/hwspinlock/stm32_hwspinlock.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #define STM32_MUTEX_COREID BIT(8) diff --git a/drivers/i2c/at91_i2c.c b/drivers/i2c/at91_i2c.c index 846b3d5320..c817ed6bf9 100644 --- a/drivers/i2c/at91_i2c.c +++ b/drivers/i2c/at91_i2c.c @@ -5,6 +5,7 @@ * (C) Copyright 2016 Songjun Wu */ +#include #include #include #include diff --git a/drivers/i2c/designware_i2c.c b/drivers/i2c/designware_i2c.c index 03d6ca09f7..5dedb43acf 100644 --- a/drivers/i2c/designware_i2c.c +++ b/drivers/i2c/designware_i2c.c @@ -8,10 +8,12 @@ #include #include #include +#include #include #include #include #include "designware_i2c.h" +#include #include #ifdef CONFIG_SYS_I2C_DW_ENABLE_STATUS_UNSUPPORTED diff --git a/drivers/i2c/i2c-uniphier-f.c b/drivers/i2c/i2c-uniphier-f.c index ced606bf36..3fbf3d5576 100644 --- a/drivers/i2c/i2c-uniphier-f.c +++ b/drivers/i2c/i2c-uniphier-f.c @@ -5,6 +5,7 @@ * Author: Masahiro Yamada */ +#include #include #include #include diff --git a/drivers/i2c/i2c-uniphier.c b/drivers/i2c/i2c-uniphier.c index e427415e7e..00a610598a 100644 --- a/drivers/i2c/i2c-uniphier.c +++ b/drivers/i2c/i2c-uniphier.c @@ -5,6 +5,7 @@ * Author: Masahiro Yamada */ +#include #include #include #include diff --git a/drivers/i2c/imx_lpi2c.c b/drivers/i2c/imx_lpi2c.c index 2de99d019e..7af5364d93 100644 --- a/drivers/i2c/imx_lpi2c.c +++ b/drivers/i2c/imx_lpi2c.c @@ -13,6 +13,7 @@ #include #include #include +#include #define LPI2C_FIFO_SIZE 4 #define LPI2C_NACK_TOUT_MS 1 diff --git a/drivers/i2c/muxes/i2c-arb-gpio-challenge.c b/drivers/i2c/muxes/i2c-arb-gpio-challenge.c index 413aaa6ba3..5029c71adc 100644 --- a/drivers/i2c/muxes/i2c-arb-gpio-challenge.c +++ b/drivers/i2c/muxes/i2c-arb-gpio-challenge.c @@ -8,6 +8,7 @@ #include #include #include +#include #include DECLARE_GLOBAL_DATA_PTR; diff --git a/drivers/i2c/muxes/i2c-mux-gpio.c b/drivers/i2c/muxes/i2c-mux-gpio.c index 29e283ce25..0575bd8937 100644 --- a/drivers/i2c/muxes/i2c-mux-gpio.c +++ b/drivers/i2c/muxes/i2c-mux-gpio.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/i2c/muxes/i2c-mux-uclass.c b/drivers/i2c/muxes/i2c-mux-uclass.c index 8b1149997a..9a3dd7ec4a 100644 --- a/drivers/i2c/muxes/i2c-mux-uclass.c +++ b/drivers/i2c/muxes/i2c-mux-uclass.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include diff --git a/drivers/i2c/muxes/pca954x.c b/drivers/i2c/muxes/pca954x.c index bb2935f8ec..be90a7b24a 100644 --- a/drivers/i2c/muxes/pca954x.c +++ b/drivers/i2c/muxes/pca954x.c @@ -9,6 +9,7 @@ #include #include #include +#include #include diff --git a/drivers/i2c/mxc_i2c.c b/drivers/i2c/mxc_i2c.c index 786b5a2226..5afb6a2958 100644 --- a/drivers/i2c/mxc_i2c.c +++ b/drivers/i2c/mxc_i2c.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/i2c/rcar_i2c.c b/drivers/i2c/rcar_i2c.c index 2ebae349ed..112f374a95 100644 --- a/drivers/i2c/rcar_i2c.c +++ b/drivers/i2c/rcar_i2c.c @@ -17,6 +17,7 @@ #include #include #include +#include #define RCAR_I2C_ICSCR 0x00 /* slave ctrl */ #define RCAR_I2C_ICMCR 0x04 /* master ctrl */ diff --git a/drivers/i2c/stm32f7_i2c.c b/drivers/i2c/stm32f7_i2c.c index 2b18735fea..9aa6dc8c02 100644 --- a/drivers/i2c/stm32f7_i2c.c +++ b/drivers/i2c/stm32f7_i2c.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include diff --git a/drivers/i2c/xilinx_xiic.c b/drivers/i2c/xilinx_xiic.c index 5ce0f869c7..149bd327bd 100644 --- a/drivers/i2c/xilinx_xiic.c +++ b/drivers/i2c/xilinx_xiic.c @@ -15,6 +15,7 @@ #include #include #include +#include struct xilinx_xiic_priv { void __iomem *base; diff --git a/drivers/led/led_gpio.c b/drivers/led/led_gpio.c index 93f6b913c6..af6b8245c9 100644 --- a/drivers/led/led_gpio.c +++ b/drivers/led/led_gpio.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include diff --git a/drivers/mailbox/k3-sec-proxy.c b/drivers/mailbox/k3-sec-proxy.c index 1194c6f029..a560209f03 100644 --- a/drivers/mailbox/k3-sec-proxy.c +++ b/drivers/mailbox/k3-sec-proxy.c @@ -7,7 +7,9 @@ */ #include +#include #include +#include #include #include #include diff --git a/drivers/mailbox/mailbox-uclass.c b/drivers/mailbox/mailbox-uclass.c index a6d2d1f5b8..291f5c218e 100644 --- a/drivers/mailbox/mailbox-uclass.c +++ b/drivers/mailbox/mailbox-uclass.c @@ -7,6 +7,7 @@ #include #include #include +#include #include static inline struct mbox_ops *mbox_dev_ops(struct udevice *dev) diff --git a/drivers/mailbox/sandbox-mbox-test.c b/drivers/mailbox/sandbox-mbox-test.c index ba1bb1cf95..faca8fcc44 100644 --- a/drivers/mailbox/sandbox-mbox-test.c +++ b/drivers/mailbox/sandbox-mbox-test.c @@ -6,6 +6,7 @@ #include #include #include +#include #include struct sandbox_mbox_test { diff --git a/drivers/mailbox/sandbox-mbox.c b/drivers/mailbox/sandbox-mbox.c index 442ca633a1..25e23eb05b 100644 --- a/drivers/mailbox/sandbox-mbox.c +++ b/drivers/mailbox/sandbox-mbox.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include diff --git a/drivers/mailbox/stm32-ipcc.c b/drivers/mailbox/stm32-ipcc.c index d4035a85f2..13e642ab70 100644 --- a/drivers/mailbox/stm32-ipcc.c +++ b/drivers/mailbox/stm32-ipcc.c @@ -7,7 +7,9 @@ #include #include #include +#include #include +#include /* * IPCC has one set of registers per CPU diff --git a/drivers/mailbox/tegra-hsp.c b/drivers/mailbox/tegra-hsp.c index c463e6a2be..60f6a38321 100644 --- a/drivers/mailbox/tegra-hsp.c +++ b/drivers/mailbox/tegra-hsp.c @@ -4,6 +4,7 @@ */ #include +#include #include #include #include diff --git a/drivers/mailbox/zynqmp-ipi.c b/drivers/mailbox/zynqmp-ipi.c index c181a7b817..17b46545f5 100644 --- a/drivers/mailbox/zynqmp-ipi.c +++ b/drivers/mailbox/zynqmp-ipi.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/misc/imx8/scu_api.c b/drivers/misc/imx8/scu_api.c index b2fdeef13a..1079099dbc 100644 --- a/drivers/misc/imx8/scu_api.c +++ b/drivers/misc/imx8/scu_api.c @@ -6,6 +6,7 @@ */ #include +#include #include #include #include diff --git a/drivers/misc/k3_avs.c b/drivers/misc/k3_avs.c index c19c3c0646..47e42738e0 100644 --- a/drivers/misc/k3_avs.c +++ b/drivers/misc/k3_avs.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #define AM6_VTM_DEVINFO(i) (priv->base + 0x100 + 0x20 * (i)) diff --git a/drivers/misc/p2sb-uclass.c b/drivers/misc/p2sb-uclass.c index a198700b5f..9fe0aca342 100644 --- a/drivers/misc/p2sb-uclass.c +++ b/drivers/misc/p2sb-uclass.c @@ -8,6 +8,7 @@ #include #include +#include #include #include #include diff --git a/drivers/misc/stm32_rcc.c b/drivers/misc/stm32_rcc.c index e7efcdeafa..980b84453e 100644 --- a/drivers/misc/stm32_rcc.c +++ b/drivers/misc/stm32_rcc.c @@ -9,6 +9,7 @@ #include #include #include +#include #include struct stm32_rcc_clk stm32_rcc_clk_f42x = { diff --git a/drivers/misc/tegra186_bpmp.c b/drivers/misc/tegra186_bpmp.c index 489337c3d0..ce2b925173 100644 --- a/drivers/misc/tegra186_bpmp.c +++ b/drivers/misc/tegra186_bpmp.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/drivers/misc/vexpress_config.c b/drivers/misc/vexpress_config.c index 9f5baa5288..53d7e1d154 100644 --- a/drivers/misc/vexpress_config.c +++ b/drivers/misc/vexpress_config.c @@ -6,6 +6,7 @@ */ #include #include +#include #include #include #include diff --git a/drivers/mmc/am654_sdhci.c b/drivers/mmc/am654_sdhci.c index 37952d6ace..bbfe177f63 100644 --- a/drivers/mmc/am654_sdhci.c +++ b/drivers/mmc/am654_sdhci.c @@ -12,6 +12,7 @@ #include #include #include +#include #include /* CTL_CFG Registers */ diff --git a/drivers/mmc/arm_pl180_mmci.c b/drivers/mmc/arm_pl180_mmci.c index ea8eb0d509..d396afc14c 100644 --- a/drivers/mmc/arm_pl180_mmci.c +++ b/drivers/mmc/arm_pl180_mmci.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include diff --git a/drivers/mmc/bcm2835_sdhost.c b/drivers/mmc/bcm2835_sdhost.c index 7f70acaf39..8cebf99c58 100644 --- a/drivers/mmc/bcm2835_sdhost.c +++ b/drivers/mmc/bcm2835_sdhost.c @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c index 1e7d606cd8..15b3183afa 100644 --- a/drivers/mmc/fsl_esdhc.c +++ b/drivers/mmc/fsl_esdhc.c @@ -22,6 +22,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; diff --git a/drivers/mmc/fsl_esdhc_imx.c b/drivers/mmc/fsl_esdhc_imx.c index ab1ef8d77c..0acd2c4f02 100644 --- a/drivers/mmc/fsl_esdhc_imx.c +++ b/drivers/mmc/fsl_esdhc_imx.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mmc/jz_mmc.c b/drivers/mmc/jz_mmc.c index cb2a7c3eb5..8d4f886cb4 100644 --- a/drivers/mmc/jz_mmc.c +++ b/drivers/mmc/jz_mmc.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include diff --git a/drivers/mmc/mmc-uclass.c b/drivers/mmc/mmc-uclass.c index c7a832ca90..0b90a97650 100644 --- a/drivers/mmc/mmc-uclass.c +++ b/drivers/mmc/mmc-uclass.c @@ -8,7 +8,9 @@ #include #include #include +#include #include +#include #include "mmc_private.h" int dm_mmc_send_cmd(struct udevice *dev, struct mmc_cmd *cmd, diff --git a/drivers/mmc/msm_sdhci.c b/drivers/mmc/msm_sdhci.c index cae42ec4ac..da3ae2ec35 100644 --- a/drivers/mmc/msm_sdhci.c +++ b/drivers/mmc/msm_sdhci.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mmc/mtk-sd.c b/drivers/mmc/mtk-sd.c index eaa584a4df..3f458f583f 100644 --- a/drivers/mmc/mtk-sd.c +++ b/drivers/mmc/mtk-sd.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mmc/renesas-sdhi.c b/drivers/mmc/renesas-sdhi.c index e01ac310e9..c3b13136f8 100644 --- a/drivers/mmc/renesas-sdhi.c +++ b/drivers/mmc/renesas-sdhi.c @@ -6,8 +6,10 @@ #include #include #include +#include #include #include +#include #include #include #include diff --git a/drivers/mmc/sdhci-cadence.c b/drivers/mmc/sdhci-cadence.c index 4736263bf2..e9108dabd1 100644 --- a/drivers/mmc/sdhci-cadence.c +++ b/drivers/mmc/sdhci-cadence.c @@ -6,6 +6,7 @@ #include #include +#include #include #include #include diff --git a/drivers/mmc/sh_mmcif.c b/drivers/mmc/sh_mmcif.c index c8875ce8f8..29bbb4b3a6 100644 --- a/drivers/mmc/sh_mmcif.c +++ b/drivers/mmc/sh_mmcif.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mmc/sh_sdhi.c b/drivers/mmc/sh_sdhi.c index e38e8abfef..2202158c88 100644 --- a/drivers/mmc/sh_sdhi.c +++ b/drivers/mmc/sh_sdhi.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mmc/snps_dw_mmc.c b/drivers/mmc/snps_dw_mmc.c index 5a413f0ec7..c606ef011b 100644 --- a/drivers/mmc/snps_dw_mmc.c +++ b/drivers/mmc/snps_dw_mmc.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mmc/socfpga_dw_mmc.c b/drivers/mmc/socfpga_dw_mmc.c index 568a3e77d3..786cdc700a 100644 --- a/drivers/mmc/socfpga_dw_mmc.c +++ b/drivers/mmc/socfpga_dw_mmc.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mmc/stm32_sdmmc2.c b/drivers/mmc/stm32_sdmmc2.c index 0a7a2fe624..6f3b2ad653 100644 --- a/drivers/mmc/stm32_sdmmc2.c +++ b/drivers/mmc/stm32_sdmmc2.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mmc/tmio-common.c b/drivers/mmc/tmio-common.c index 669410d97f..36868c2d5f 100644 --- a/drivers/mmc/tmio-common.c +++ b/drivers/mmc/tmio-common.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mmc/uniphier-sd.c b/drivers/mmc/uniphier-sd.c index 8f89bda233..4dbe71fa2e 100644 --- a/drivers/mmc/uniphier-sd.c +++ b/drivers/mmc/uniphier-sd.c @@ -7,8 +7,10 @@ #include #include #include +#include #include #include +#include #include #include #include diff --git a/drivers/mmc/zynq_sdhci.c b/drivers/mmc/zynq_sdhci.c index 83c32a361a..24fabeee95 100644 --- a/drivers/mmc/zynq_sdhci.c +++ b/drivers/mmc/zynq_sdhci.c @@ -10,6 +10,7 @@ #include #include #include "mmc_private.h" +#include #include #include #include diff --git a/drivers/mtd/hbmc-am654.c b/drivers/mtd/hbmc-am654.c index 5a560f1253..846b0e832b 100644 --- a/drivers/mtd/hbmc-am654.c +++ b/drivers/mtd/hbmc-am654.c @@ -8,6 +8,7 @@ #include #include #include +#include #define FSS_SYSC_REG 0x4 diff --git a/drivers/mtd/mtd_uboot.c b/drivers/mtd/mtd_uboot.c index 17df8b0ffc..db20a6b0b2 100644 --- a/drivers/mtd/mtd_uboot.c +++ b/drivers/mtd/mtd_uboot.c @@ -5,6 +5,7 @@ */ #include #include +#include #include #include #include diff --git a/drivers/mtd/nand/core.c b/drivers/mtd/nand/core.c index 3abaef23c5..bc0accf8c6 100644 --- a/drivers/mtd/nand/core.c +++ b/drivers/mtd/nand/core.c @@ -11,6 +11,7 @@ #include #ifndef __UBOOT__ +#include #include #endif #include diff --git a/drivers/mtd/nand/raw/atmel_nand.c b/drivers/mtd/nand/raw/atmel_nand.c index 3526585349..996d3dbb71 100644 --- a/drivers/mtd/nand/raw/atmel_nand.c +++ b/drivers/mtd/nand/raw/atmel_nand.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/raw/brcmnand/brcmnand.c index d3e39661e1..5232328e1e 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand_compat.c b/drivers/mtd/nand/raw/brcmnand/brcmnand_compat.c index bb8aea2d01..c58679834e 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand_compat.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand_compat.c @@ -1,8 +1,9 @@ // SPDX-License-Identifier: GPL-2.0+ #include -#include "brcmnand_compat.h" +#include #include +#include "brcmnand_compat.h" static char *devm_kvasprintf(struct udevice *dev, gfp_t gfp, const char *fmt, va_list ap) diff --git a/drivers/mtd/nand/raw/denali.c b/drivers/mtd/nand/raw/denali.c index 0bd7eb7f1f..07f5e24a63 100644 --- a/drivers/mtd/nand/raw/denali.c +++ b/drivers/mtd/nand/raw/denali.c @@ -7,7 +7,9 @@ #include #include +#include #include +#include #include #include #include diff --git a/drivers/mtd/nand/raw/denali_dt.c b/drivers/mtd/nand/raw/denali_dt.c index 0ce81324b9..80c741c3fd 100644 --- a/drivers/mtd/nand/raw/denali_dt.c +++ b/drivers/mtd/nand/raw/denali_dt.c @@ -6,6 +6,7 @@ #include #include +#include #include #include #include diff --git a/drivers/mtd/nand/raw/pxa3xx_nand.c b/drivers/mtd/nand/raw/pxa3xx_nand.c index e179a780db..03f210bdb0 100644 --- a/drivers/mtd/nand/raw/pxa3xx_nand.c +++ b/drivers/mtd/nand/raw/pxa3xx_nand.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mtd/nand/raw/sunxi_nand.c b/drivers/mtd/nand/raw/sunxi_nand.c index cd5c31e76b..9b99be10e6 100644 --- a/drivers/mtd/nand/raw/sunxi_nand.c +++ b/drivers/mtd/nand/raw/sunxi_nand.c @@ -26,8 +26,10 @@ #include #include +#include #include #include +#include #include #include diff --git a/drivers/mtd/nand/raw/tegra_nand.c b/drivers/mtd/nand/raw/tegra_nand.c index 74acdfb308..ae699d1da5 100644 --- a/drivers/mtd/nand/raw/tegra_nand.c +++ b/drivers/mtd/nand/raw/tegra_nand.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mtd/nand/raw/vf610_nfc.c b/drivers/mtd/nand/raw/vf610_nfc.c index 3326c2b096..52c8a94778 100644 --- a/drivers/mtd/nand/raw/vf610_nfc.c +++ b/drivers/mtd/nand/raw/vf610_nfc.c @@ -23,6 +23,7 @@ #include #include +#include #include #include diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c index d976c19b7a..cd624ec6ae 100644 --- a/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #endif diff --git a/drivers/mtd/nand/spi/gigadevice.c b/drivers/mtd/nand/spi/gigadevice.c index e329c3cfc0..0b228dcb5b 100644 --- a/drivers/mtd/nand/spi/gigadevice.c +++ b/drivers/mtd/nand/spi/gigadevice.c @@ -7,6 +7,7 @@ */ #ifndef __UBOOT__ +#include #include #include #endif diff --git a/drivers/mtd/nand/spi/macronix.c b/drivers/mtd/nand/spi/macronix.c index 1119677f6f..67d092be2c 100644 --- a/drivers/mtd/nand/spi/macronix.c +++ b/drivers/mtd/nand/spi/macronix.c @@ -6,6 +6,7 @@ */ #ifndef __UBOOT__ +#include #include #include #endif diff --git a/drivers/mtd/nand/spi/micron.c b/drivers/mtd/nand/spi/micron.c index 9c24542f96..687306e33e 100644 --- a/drivers/mtd/nand/spi/micron.c +++ b/drivers/mtd/nand/spi/micron.c @@ -7,6 +7,7 @@ */ #ifndef __UBOOT__ +#include #include #include #endif diff --git a/drivers/mtd/nand/spi/winbond.c b/drivers/mtd/nand/spi/winbond.c index f3446e71b9..6151ada26a 100644 --- a/drivers/mtd/nand/spi/winbond.c +++ b/drivers/mtd/nand/spi/winbond.c @@ -8,6 +8,7 @@ */ #ifndef __UBOOT__ +#include #include #include #endif diff --git a/drivers/mtd/renesas_rpc_hf.c b/drivers/mtd/renesas_rpc_hf.c index f5c6515c9b..fc2aa22d7f 100644 --- a/drivers/mtd/renesas_rpc_hf.c +++ b/drivers/mtd/renesas_rpc_hf.c @@ -8,9 +8,11 @@ */ #include +#include #include #include #include +#include #include #include #include diff --git a/drivers/mtd/spi/sf-uclass.c b/drivers/mtd/spi/sf-uclass.c index c6107522be..5ebcca590a 100644 --- a/drivers/mtd/spi/sf-uclass.c +++ b/drivers/mtd/spi/sf-uclass.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c index 277ec68bce..e9a889103f 100644 --- a/drivers/mtd/spi/spi-nor-core.c +++ b/drivers/mtd/spi/spi-nor-core.c @@ -10,6 +10,7 @@ */ #include +#include #include #include #include diff --git a/drivers/mtd/spi/spi-nor-tiny.c b/drivers/mtd/spi/spi-nor-tiny.c index c19d468d62..ccc0ab07af 100644 --- a/drivers/mtd/spi/spi-nor-tiny.c +++ b/drivers/mtd/spi/spi-nor-tiny.c @@ -10,6 +10,7 @@ */ #include +#include #include #include #include diff --git a/drivers/mtd/ubi/debug.c b/drivers/mtd/ubi/debug.c index aec2613a09..d2b7ca5e33 100644 --- a/drivers/mtd/ubi/debug.c +++ b/drivers/mtd/ubi/debug.c @@ -6,6 +6,7 @@ */ #include +#include #include #include "ubi.h" #ifndef __UBOOT__ diff --git a/drivers/mtd/ubi/misc.c b/drivers/mtd/ubi/misc.c index 685324d7d2..3f7ee59c94 100644 --- a/drivers/mtd/ubi/misc.c +++ b/drivers/mtd/ubi/misc.c @@ -7,6 +7,7 @@ /* Here we keep miscellaneous functions which are used all over the UBI code */ +#include #include #include "ubi.h" diff --git a/drivers/mtd/ubi/upd.c b/drivers/mtd/ubi/upd.c index d0a6a1bd18..0f7951c859 100644 --- a/drivers/mtd/ubi/upd.c +++ b/drivers/mtd/ubi/upd.c @@ -26,6 +26,7 @@ */ #ifndef __UBOOT__ +#include #include #else #include diff --git a/drivers/net/bcm6348-eth.c b/drivers/net/bcm6348-eth.c index 7100e68bd2..fe3532930a 100644 --- a/drivers/net/bcm6348-eth.c +++ b/drivers/net/bcm6348-eth.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/bcm6368-eth.c b/drivers/net/bcm6368-eth.c index 110985ed1d..1200049007 100644 --- a/drivers/net/bcm6368-eth.c +++ b/drivers/net/bcm6368-eth.c @@ -10,11 +10,13 @@ #include #include #include +#include #include #include #include #include #include +#include #define ETH_PORT_STR "brcm,enetsw-port" diff --git a/drivers/net/designware.c b/drivers/net/designware.c index aa33fd511b..baac277a84 100644 --- a/drivers/net/designware.c +++ b/drivers/net/designware.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/dwc_eth_qos.c b/drivers/net/dwc_eth_qos.c index 4632111635..0564bebf76 100644 --- a/drivers/net/dwc_eth_qos.c +++ b/drivers/net/dwc_eth_qos.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/dwmac_socfpga.c b/drivers/net/dwmac_socfpga.c index 66a5f95112..e93561dffa 100644 --- a/drivers/net/dwmac_socfpga.c +++ b/drivers/net/dwmac_socfpga.c @@ -14,6 +14,7 @@ #include #include #include "designware.h" +#include #include #include diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c index 0946011844..9212920549 100644 --- a/drivers/net/e1000.c +++ b/drivers/net/e1000.c @@ -33,6 +33,7 @@ tested on both gig copper and gig fiber boards #include #include #include +#include #include #include #include "e1000.h" diff --git a/drivers/net/e1000_spi.c b/drivers/net/e1000_spi.c index aecd290d72..52b3c79794 100644 --- a/drivers/net/e1000_spi.c +++ b/drivers/net/e1000_spi.c @@ -1,6 +1,7 @@ #include #include #include "e1000.h" +#include #include /*----------------------------------------------------------------------- diff --git a/drivers/net/fsl-mc/dpio/qbman_portal.c b/drivers/net/fsl-mc/dpio/qbman_portal.c index c51354cfa1..e161b4e077 100644 --- a/drivers/net/fsl-mc/dpio/qbman_portal.c +++ b/drivers/net/fsl-mc/dpio/qbman_portal.c @@ -3,6 +3,7 @@ * Copyright (C) 2014 Freescale Semiconductor */ +#include #include #include "qbman_portal.h" diff --git a/drivers/net/fsl-mc/mc.c b/drivers/net/fsl-mc/mc.c index 8ff43a91c7..07bbcc9b23 100644 --- a/drivers/net/fsl-mc/mc.c +++ b/drivers/net/fsl-mc/mc.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/fsl_enetc.c b/drivers/net/fsl_enetc.c index 02c1ee70d9..9ac7cea51d 100644 --- a/drivers/net/fsl_enetc.c +++ b/drivers/net/fsl_enetc.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/ftgmac100.c b/drivers/net/ftgmac100.c index ebb74339b2..40e6b3ba39 100644 --- a/drivers/net/ftgmac100.c +++ b/drivers/net/ftgmac100.c @@ -14,9 +14,11 @@ #include #include #include +#include #include #include #include +#include #include #include diff --git a/drivers/net/higmacv300.c b/drivers/net/higmacv300.c index 897741ab82..0c1dd6834a 100644 --- a/drivers/net/higmacv300.c +++ b/drivers/net/higmacv300.c @@ -4,6 +4,7 @@ */ #include +#include #include #include #include diff --git a/drivers/net/mscc_eswitch/jr2_switch.c b/drivers/net/mscc_eswitch/jr2_switch.c index 665517775e..33dd002146 100644 --- a/drivers/net/mscc_eswitch/jr2_switch.c +++ b/drivers/net/mscc_eswitch/jr2_switch.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/mscc_eswitch/luton_switch.c b/drivers/net/mscc_eswitch/luton_switch.c index dffe81d873..9d24c005c1 100644 --- a/drivers/net/mscc_eswitch/luton_switch.c +++ b/drivers/net/mscc_eswitch/luton_switch.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/mscc_eswitch/ocelot_switch.c b/drivers/net/mscc_eswitch/ocelot_switch.c index 0ba84ab78a..fe48f371c3 100644 --- a/drivers/net/mscc_eswitch/ocelot_switch.c +++ b/drivers/net/mscc_eswitch/ocelot_switch.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/mscc_eswitch/serval_switch.c b/drivers/net/mscc_eswitch/serval_switch.c index 1a21360a96..f05fa42ff3 100644 --- a/drivers/net/mscc_eswitch/serval_switch.c +++ b/drivers/net/mscc_eswitch/serval_switch.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/mscc_eswitch/servalt_switch.c b/drivers/net/mscc_eswitch/servalt_switch.c index d20ec49d56..bf95a38354 100644 --- a/drivers/net/mscc_eswitch/servalt_switch.c +++ b/drivers/net/mscc_eswitch/servalt_switch.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/mtk_eth.c b/drivers/net/mtk_eth.c index c22e590387..77589b2a04 100644 --- a/drivers/net/mtk_eth.c +++ b/drivers/net/mtk_eth.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/mvneta.c b/drivers/net/mvneta.c index 505fabd3fa..d737400a20 100644 --- a/drivers/net/mvneta.c +++ b/drivers/net/mvneta.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/mvpp2.c b/drivers/net/mvpp2.c index d120278ab1..9f300cc484 100644 --- a/drivers/net/mvpp2.c +++ b/drivers/net/mvpp2.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/pch_gbe.c b/drivers/net/pch_gbe.c index e4507bf7fd..b2823701a4 100644 --- a/drivers/net/pch_gbe.c +++ b/drivers/net/pch_gbe.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/pfe_eth/pfe_driver.c b/drivers/net/pfe_eth/pfe_driver.c index 14a8c68276..f70a235217 100644 --- a/drivers/net/pfe_eth/pfe_driver.c +++ b/drivers/net/pfe_eth/pfe_driver.c @@ -4,6 +4,7 @@ * Copyright 2017 NXP */ +#include #include #include diff --git a/drivers/net/pfe_eth/pfe_eth.c b/drivers/net/pfe_eth/pfe_eth.c index c525674fb8..1b5d11ef32 100644 --- a/drivers/net/pfe_eth/pfe_eth.c +++ b/drivers/net/pfe_eth/pfe_eth.c @@ -6,6 +6,7 @@ #include #include +#include #include #include #include diff --git a/drivers/net/pfe_eth/pfe_firmware.c b/drivers/net/pfe_eth/pfe_firmware.c index e4563f192b..13112d9c1a 100644 --- a/drivers/net/pfe_eth/pfe_firmware.c +++ b/drivers/net/pfe_eth/pfe_firmware.c @@ -10,6 +10,7 @@ * files. */ +#include #include #include #ifdef CONFIG_CHAIN_OF_TRUST diff --git a/drivers/net/pfe_eth/pfe_mdio.c b/drivers/net/pfe_eth/pfe_mdio.c index 62309670fa..b990e7fbe2 100644 --- a/drivers/net/pfe_eth/pfe_mdio.c +++ b/drivers/net/pfe_eth/pfe_mdio.c @@ -5,6 +5,7 @@ */ #include #include +#include #include #include #include diff --git a/drivers/net/phy/fixed.c b/drivers/net/phy/fixed.c index 0ae0edd0e1..9d9f746e1d 100644 --- a/drivers/net/phy/fixed.c +++ b/drivers/net/phy/fixed.c @@ -7,6 +7,7 @@ #include #include +#include #include #include #include diff --git a/drivers/net/pic32_eth.c b/drivers/net/pic32_eth.c index 3458440b6f..e966be038a 100644 --- a/drivers/net/pic32_eth.c +++ b/drivers/net/pic32_eth.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/sandbox-raw-bus.c b/drivers/net/sandbox-raw-bus.c index 0086f25fc1..fb1ba5a8c8 100644 --- a/drivers/net/sandbox-raw-bus.c +++ b/drivers/net/sandbox-raw-bus.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include diff --git a/drivers/net/sni_ave.c b/drivers/net/sni_ave.c index 64e92abb03..5d66a63a8b 100644 --- a/drivers/net/sni_ave.c +++ b/drivers/net/sni_ave.c @@ -8,14 +8,16 @@ #include #include #include -#include -#include -#include +#include #include #include #include #include #include +#include +#include +#include +#include #define AVE_GRST_DELAY_MSEC 40 #define AVE_MIN_XMITSIZE 60 diff --git a/drivers/net/sun8i_emac.c b/drivers/net/sun8i_emac.c index 6f10578c88..1ae776b446 100644 --- a/drivers/net/sun8i_emac.c +++ b/drivers/net/sun8i_emac.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/sunxi_emac.c b/drivers/net/sunxi_emac.c index 9a5f7fd3c7..a9874e4220 100644 --- a/drivers/net/sunxi_emac.c +++ b/drivers/net/sunxi_emac.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/ti/am65-cpsw-nuss.c b/drivers/net/ti/am65-cpsw-nuss.c index 2590486810..2b77213001 100644 --- a/drivers/net/ti/am65-cpsw-nuss.c +++ b/drivers/net/ti/am65-cpsw-nuss.c @@ -7,10 +7,12 @@ */ #include +#include #include #include #include #include +#include #include #include #include diff --git a/drivers/net/ti/cpsw-common.c b/drivers/net/ti/cpsw-common.c index 21b8bbda3d..ca93edb70e 100644 --- a/drivers/net/ti/cpsw-common.c +++ b/drivers/net/ti/cpsw-common.c @@ -10,6 +10,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; diff --git a/drivers/net/ti/cpsw.c b/drivers/net/ti/cpsw.c index 57625623c2..04b01a8129 100644 --- a/drivers/net/ti/cpsw.c +++ b/drivers/net/ti/cpsw.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/ti/cpsw_mdio.c b/drivers/net/ti/cpsw_mdio.c index 6e8f652011..1fa520be0f 100644 --- a/drivers/net/ti/cpsw_mdio.c +++ b/drivers/net/ti/cpsw_mdio.c @@ -6,6 +6,7 @@ */ #include +#include #include #include #include diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c index 3cf6570fc2..38e743ebb0 100644 --- a/drivers/net/zynq_gem.c +++ b/drivers/net/zynq_gem.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c index 2593eb174b..ef4382da1a 100644 --- a/drivers/nvme/nvme.c +++ b/drivers/nvme/nvme.c @@ -8,10 +8,12 @@ #include #include #include +#include #include #include #include #include +#include #include "nvme.h" #define NVME_Q_DEPTH 2 diff --git a/drivers/pci/pci-aardvark.c b/drivers/pci/pci-aardvark.c index aa0b4bc845..bf0b7611ba 100644 --- a/drivers/pci/pci-aardvark.c +++ b/drivers/pci/pci-aardvark.c @@ -29,6 +29,7 @@ #include #include #include +#include #include /* PCIe core registers */ diff --git a/drivers/pci/pci-uclass.c b/drivers/pci/pci-uclass.c index 5be2dfd0bf..3240a00ac7 100644 --- a/drivers/pci/pci-uclass.c +++ b/drivers/pci/pci-uclass.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/pci/pci_mvebu.c b/drivers/pci/pci_mvebu.c index f9b08f38a1..ba6c41cb3b 100644 --- a/drivers/pci/pci_mvebu.c +++ b/drivers/pci/pci_mvebu.c @@ -11,6 +11,7 @@ #include #include +#include #include #include #include diff --git a/drivers/pci/pcie_dw_ti.c b/drivers/pci/pcie_dw_ti.c index 199a3bb50a..8938d43802 100644 --- a/drivers/pci/pcie_dw_ti.c +++ b/drivers/pci/pcie_dw_ti.c @@ -12,6 +12,7 @@ #include #include #include +#include #include DECLARE_GLOBAL_DATA_PTR; diff --git a/drivers/pci/pcie_fsl.c b/drivers/pci/pcie_fsl.c index ab25aeee73..b5b72c9abc 100644 --- a/drivers/pci/pcie_fsl.c +++ b/drivers/pci/pcie_fsl.c @@ -15,6 +15,7 @@ #include #include #include "pcie_fsl.h" +#include LIST_HEAD(fsl_pcie_list); diff --git a/drivers/pci/pcie_imx.c b/drivers/pci/pcie_imx.c index 3621636cb2..24ee746b26 100644 --- a/drivers/pci/pcie_imx.c +++ b/drivers/pci/pcie_imx.c @@ -11,6 +11,7 @@ #include #include +#include #include #include #include diff --git a/drivers/pci/pcie_intel_fpga.c b/drivers/pci/pcie_intel_fpga.c index a5ea4888f3..4731ba4623 100644 --- a/drivers/pci/pcie_intel_fpga.c +++ b/drivers/pci/pcie_intel_fpga.c @@ -10,6 +10,7 @@ #include #include #include +#include #define RP_TX_REG0 0x2000 #define RP_TX_CNTRL 0x2004 diff --git a/drivers/pci/pcie_mediatek.c b/drivers/pci/pcie_mediatek.c index 1271227c6a..3ec697af0f 100644 --- a/drivers/pci/pcie_mediatek.c +++ b/drivers/pci/pcie_mediatek.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c index f4ad4c3cc3..22f2b206f3 100644 --- a/drivers/phy/allwinner/phy-sun4i-usb.c +++ b/drivers/phy/allwinner/phy-sun4i-usb.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #define REG_ISCR 0x00 diff --git a/drivers/phy/bcm6318-usbh-phy.c b/drivers/phy/bcm6318-usbh-phy.c index de055a3585..2de343de29 100644 --- a/drivers/phy/bcm6318-usbh-phy.c +++ b/drivers/phy/bcm6318-usbh-phy.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/phy/bcm6348-usbh-phy.c b/drivers/phy/bcm6348-usbh-phy.c index e7761e3b28..ed9f02b375 100644 --- a/drivers/phy/bcm6348-usbh-phy.c +++ b/drivers/phy/bcm6348-usbh-phy.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/phy/bcm6358-usbh-phy.c b/drivers/phy/bcm6358-usbh-phy.c index 189a1c11d3..f0fda0290e 100644 --- a/drivers/phy/bcm6358-usbh-phy.c +++ b/drivers/phy/bcm6358-usbh-phy.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/phy/bcm6368-usbh-phy.c b/drivers/phy/bcm6368-usbh-phy.c index 99da97aa0c..53d1f45bb9 100644 --- a/drivers/phy/bcm6368-usbh-phy.c +++ b/drivers/phy/bcm6368-usbh-phy.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/phy/marvell/comphy_core.c b/drivers/phy/marvell/comphy_core.c index d52f42df84..244beef18d 100644 --- a/drivers/phy/marvell/comphy_core.c +++ b/drivers/phy/marvell/comphy_core.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/phy/meson-g12a-usb2.c b/drivers/phy/meson-g12a-usb2.c index ad1a77fcfc..c23bc87d0f 100644 --- a/drivers/phy/meson-g12a-usb2.c +++ b/drivers/phy/meson-g12a-usb2.c @@ -8,6 +8,7 @@ */ #include +#include #include #include #include diff --git a/drivers/phy/meson-g12a-usb3-pcie.c b/drivers/phy/meson-g12a-usb3-pcie.c index 920675dc99..82655f26dd 100644 --- a/drivers/phy/meson-g12a-usb3-pcie.c +++ b/drivers/phy/meson-g12a-usb3-pcie.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/phy/meson-gxl-usb2.c b/drivers/phy/meson-gxl-usb2.c index 86e69c73ba..c98d12b627 100644 --- a/drivers/phy/meson-gxl-usb2.c +++ b/drivers/phy/meson-gxl-usb2.c @@ -8,6 +8,7 @@ */ #include +#include #include #include #include diff --git a/drivers/phy/meson-gxl-usb3.c b/drivers/phy/meson-gxl-usb3.c index 5cbbd4d8f7..c2a8593b39 100644 --- a/drivers/phy/meson-gxl-usb3.c +++ b/drivers/phy/meson-gxl-usb3.c @@ -8,6 +8,7 @@ */ #include +#include #include #include #include diff --git a/drivers/phy/phy-mtk-tphy.c b/drivers/phy/phy-mtk-tphy.c index 31345764a7..2455af8eb7 100644 --- a/drivers/phy/phy-mtk-tphy.c +++ b/drivers/phy/phy-mtk-tphy.c @@ -9,8 +9,10 @@ #include #include #include +#include #include #include +#include #include #include diff --git a/drivers/phy/phy-rcar-gen2.c b/drivers/phy/phy-rcar-gen2.c index ee70b81d88..e93130aee6 100644 --- a/drivers/phy/phy-rcar-gen2.c +++ b/drivers/phy/phy-rcar-gen2.c @@ -11,10 +11,12 @@ #include #include #include +#include #include #include #include #include +#include #include #include diff --git a/drivers/phy/phy-rcar-gen3.c b/drivers/phy/phy-rcar-gen3.c index b662935626..ce39cd8f9e 100644 --- a/drivers/phy/phy-rcar-gen3.c +++ b/drivers/phy/phy-rcar-gen3.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/phy/phy-stm32-usbphyc.c b/drivers/phy/phy-stm32-usbphyc.c index 6f1119036d..6ba37213cb 100644 --- a/drivers/phy/phy-stm32-usbphyc.c +++ b/drivers/phy/phy-stm32-usbphyc.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include diff --git a/drivers/phy/phy-ti-am654.c b/drivers/phy/phy-ti-am654.c index 1c7db0dd0f..0b2b2410b2 100644 --- a/drivers/phy/phy-ti-am654.c +++ b/drivers/phy/phy-ti-am654.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/pinctrl/broadcom/pinctrl-bcm6838.c b/drivers/pinctrl/broadcom/pinctrl-bcm6838.c index 48c0b6b374..6c8a990f57 100644 --- a/drivers/pinctrl/broadcom/pinctrl-bcm6838.c +++ b/drivers/pinctrl/broadcom/pinctrl-bcm6838.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #define BCM6838_CMD_LOAD_MUX 0x21 diff --git a/drivers/pinctrl/intel/pinctrl.c b/drivers/pinctrl/intel/pinctrl.c index c4287ec406..db70762e00 100644 --- a/drivers/pinctrl/intel/pinctrl.c +++ b/drivers/pinctrl/intel/pinctrl.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/pinctrl/meson/pinctrl-meson.c b/drivers/pinctrl/meson/pinctrl-meson.c index f664d76b54..7fbe2810a2 100644 --- a/drivers/pinctrl/meson/pinctrl-meson.c +++ b/drivers/pinctrl/meson/pinctrl-meson.c @@ -5,7 +5,9 @@ #include #include +#include #include +#include #include #include #include diff --git a/drivers/pinctrl/mscc/mscc-common.c b/drivers/pinctrl/mscc/mscc-common.c index 2d76c41dea..90c54b45c3 100644 --- a/drivers/pinctrl/mscc/mscc-common.c +++ b/drivers/pinctrl/mscc/mscc-common.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/pinctrl/mtmips/pinctrl-mtmips-common.c b/drivers/pinctrl/mtmips/pinctrl-mtmips-common.c index ee6a9d1fc8..e361916eb2 100644 --- a/drivers/pinctrl/mtmips/pinctrl-mtmips-common.c +++ b/drivers/pinctrl/mtmips/pinctrl-mtmips-common.c @@ -7,6 +7,7 @@ #include #include +#include #include #include diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c index da1f091aec..6e0bcae991 100644 --- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c +++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c @@ -19,7 +19,9 @@ #include #include #include +#include #include +#include #include #include #include diff --git a/drivers/pinctrl/nxp/pinctrl-imx.c b/drivers/pinctrl/nxp/pinctrl-imx.c index 77a8a53202..474c38a049 100644 --- a/drivers/pinctrl/nxp/pinctrl-imx.c +++ b/drivers/pinctrl/nxp/pinctrl-imx.c @@ -4,7 +4,9 @@ */ #include +#include #include +#include #include #include #include diff --git a/drivers/pinctrl/nxp/pinctrl-mxs.c b/drivers/pinctrl/nxp/pinctrl-mxs.c index 5147bdc3cc..8d61dfe863 100644 --- a/drivers/pinctrl/nxp/pinctrl-mxs.c +++ b/drivers/pinctrl/nxp/pinctrl-mxs.c @@ -5,6 +5,7 @@ */ #include +#include #include #include #include diff --git a/drivers/pinctrl/pinctrl-generic.c b/drivers/pinctrl/pinctrl-generic.c index eecf0f5dc1..1098366b5f 100644 --- a/drivers/pinctrl/pinctrl-generic.c +++ b/drivers/pinctrl/pinctrl-generic.c @@ -5,6 +5,7 @@ #include #include +#include #include #include diff --git a/drivers/pinctrl/pinctrl-single.c b/drivers/pinctrl/pinctrl-single.c index 1dfc97dcea..380b0da271 100644 --- a/drivers/pinctrl/pinctrl-single.c +++ b/drivers/pinctrl/pinctrl-single.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/drivers/pinctrl/pinctrl-stmfx.c b/drivers/pinctrl/pinctrl-stmfx.c index 0b5a0433cd..c8e61e2918 100644 --- a/drivers/pinctrl/pinctrl-stmfx.c +++ b/drivers/pinctrl/pinctrl-stmfx.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/pinctrl/pinctrl-uclass.c b/drivers/pinctrl/pinctrl-uclass.c index 3425ed11b1..aba8810474 100644 --- a/drivers/pinctrl/pinctrl-uclass.c +++ b/drivers/pinctrl/pinctrl-uclass.c @@ -4,6 +4,8 @@ */ #include +#include +#include #include #include #include diff --git a/drivers/pinctrl/pinctrl_stm32.c b/drivers/pinctrl/pinctrl_stm32.c index e0380c349a..9926235b52 100644 --- a/drivers/pinctrl/pinctrl_stm32.c +++ b/drivers/pinctrl/pinctrl_stm32.c @@ -1,9 +1,11 @@ #include #include #include +#include #include #include #include +#include #include #include #include diff --git a/drivers/pinctrl/renesas/pfc.c b/drivers/pinctrl/renesas/pfc.c index 5ee11615de..ab64f4f0c8 100644 --- a/drivers/pinctrl/renesas/pfc.c +++ b/drivers/pinctrl/renesas/pfc.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-core.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-core.c index a5935e84de..abeba965c4 100644 --- a/drivers/pinctrl/uniphier/pinctrl-uniphier-core.c +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-core.c @@ -6,6 +6,7 @@ #include #include +#include #include #include #include diff --git a/drivers/power/domain/bcm6328-power-domain.c b/drivers/power/domain/bcm6328-power-domain.c index 425451e4cd..a6426bee27 100644 --- a/drivers/power/domain/bcm6328-power-domain.c +++ b/drivers/power/domain/bcm6328-power-domain.c @@ -5,6 +5,7 @@ #include #include +#include #include #include diff --git a/drivers/power/domain/imx8-power-domain-legacy.c b/drivers/power/domain/imx8-power-domain-legacy.c index 74fcb05c15..6f01a60b34 100644 --- a/drivers/power/domain/imx8-power-domain-legacy.c +++ b/drivers/power/domain/imx8-power-domain-legacy.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/drivers/power/domain/imx8-power-domain.c b/drivers/power/domain/imx8-power-domain.c index 8e328f02c2..571146e19d 100644 --- a/drivers/power/domain/imx8-power-domain.c +++ b/drivers/power/domain/imx8-power-domain.c @@ -6,6 +6,7 @@ #define DEBUG #include #include +#include #include #include #include diff --git a/drivers/power/domain/imx8m-power-domain.c b/drivers/power/domain/imx8m-power-domain.c index fbfd17718b..5b6467cda7 100644 --- a/drivers/power/domain/imx8m-power-domain.c +++ b/drivers/power/domain/imx8m-power-domain.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/drivers/power/domain/meson-ee-pwrc.c b/drivers/power/domain/meson-ee-pwrc.c index aa11866591..7082c80bfa 100644 --- a/drivers/power/domain/meson-ee-pwrc.c +++ b/drivers/power/domain/meson-ee-pwrc.c @@ -6,6 +6,7 @@ #include #include +#include #include #include #include diff --git a/drivers/power/domain/meson-gx-pwrc-vpu.c b/drivers/power/domain/meson-gx-pwrc-vpu.c index 02f73548d6..12cdfcdd1f 100644 --- a/drivers/power/domain/meson-gx-pwrc-vpu.c +++ b/drivers/power/domain/meson-gx-pwrc-vpu.c @@ -8,6 +8,7 @@ #include #include +#include #include #include #include diff --git a/drivers/power/domain/mtk-power-domain.c b/drivers/power/domain/mtk-power-domain.c index 5084bff766..f73c1e463d 100644 --- a/drivers/power/domain/mtk-power-domain.c +++ b/drivers/power/domain/mtk-power-domain.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/power/domain/power-domain-uclass.c b/drivers/power/domain/power-domain-uclass.c index be0a8026f6..d9c623b56e 100644 --- a/drivers/power/domain/power-domain-uclass.c +++ b/drivers/power/domain/power-domain-uclass.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/drivers/power/domain/sandbox-power-domain-test.c b/drivers/power/domain/sandbox-power-domain-test.c index 148b6b1707..2191a94146 100644 --- a/drivers/power/domain/sandbox-power-domain-test.c +++ b/drivers/power/domain/sandbox-power-domain-test.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/drivers/power/domain/sandbox-power-domain.c b/drivers/power/domain/sandbox-power-domain.c index a5ae235d53..3a834a9f1e 100644 --- a/drivers/power/domain/sandbox-power-domain.c +++ b/drivers/power/domain/sandbox-power-domain.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/drivers/power/domain/tegra186-power-domain.c b/drivers/power/domain/tegra186-power-domain.c index d2a25ca333..e87244197f 100644 --- a/drivers/power/domain/tegra186-power-domain.c +++ b/drivers/power/domain/tegra186-power-domain.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/drivers/power/domain/ti-sci-power-domain.c b/drivers/power/domain/ti-sci-power-domain.c index 3866db589a..a5866703ae 100644 --- a/drivers/power/domain/ti-sci-power-domain.c +++ b/drivers/power/domain/ti-sci-power-domain.c @@ -11,7 +11,9 @@ #include #include #include +#include #include +#include #include #include #include diff --git a/drivers/power/pmic/fan53555.c b/drivers/power/pmic/fan53555.c index 11304d2146..a5f855ce2a 100644 --- a/drivers/power/pmic/fan53555.c +++ b/drivers/power/pmic/fan53555.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/power/pmic/i2c_pmic_emul.c b/drivers/power/pmic/i2c_pmic_emul.c index 80efc0265d..4926d872fa 100644 --- a/drivers/power/pmic/i2c_pmic_emul.c +++ b/drivers/power/pmic/i2c_pmic_emul.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include diff --git a/drivers/power/pmic/stpmic1.c b/drivers/power/pmic/stpmic1.c index 2297af4157..2c85410b1b 100644 --- a/drivers/power/pmic/stpmic1.c +++ b/drivers/power/pmic/stpmic1.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/power/regulator/pwm_regulator.c b/drivers/power/regulator/pwm_regulator.c index cd05c9b603..4030144dd3 100644 --- a/drivers/power/regulator/pwm_regulator.c +++ b/drivers/power/regulator/pwm_regulator.c @@ -11,6 +11,7 @@ #include #include #include +#include #include DECLARE_GLOBAL_DATA_PTR; diff --git a/drivers/power/regulator/stm32-vrefbuf.c b/drivers/power/regulator/stm32-vrefbuf.c index 645528e84e..08a10f05b4 100644 --- a/drivers/power/regulator/stm32-vrefbuf.c +++ b/drivers/power/regulator/stm32-vrefbuf.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/power/regulator/tps62360_regulator.c b/drivers/power/regulator/tps62360_regulator.c index 3b123f503c..1180b2b414 100644 --- a/drivers/power/regulator/tps62360_regulator.c +++ b/drivers/power/regulator/tps62360_regulator.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #define TPS62360_REG_SET0 0 diff --git a/drivers/ram/k3-am654-ddrss.c b/drivers/ram/k3-am654-ddrss.c index 7015d8cfe7..8cf74861a8 100644 --- a/drivers/ram/k3-am654-ddrss.c +++ b/drivers/ram/k3-am654-ddrss.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include "k3-am654-ddrss.h" diff --git a/drivers/ram/k3-j721e/k3-j721e-ddrss.c b/drivers/ram/k3-j721e/k3-j721e-ddrss.c index 9feb0aa766..493404109b 100644 --- a/drivers/ram/k3-j721e/k3-j721e-ddrss.c +++ b/drivers/ram/k3-j721e/k3-j721e-ddrss.c @@ -12,6 +12,7 @@ #include #include #include +#include #include "lpddr4_obj_if.h" #include "lpddr4_if.h" diff --git a/drivers/ram/stm32_sdram.c b/drivers/ram/stm32_sdram.c index f6cac8eb90..2d03333b1b 100644 --- a/drivers/ram/stm32_sdram.c +++ b/drivers/ram/stm32_sdram.c @@ -9,6 +9,7 @@ #include #include #include +#include #define MEM_MODE_MASK GENMASK(2, 0) #define SWP_FMC_OFFSET 10 diff --git a/drivers/remoteproc/k3_system_controller.c b/drivers/remoteproc/k3_system_controller.c index 44e56c759f..88430299c9 100644 --- a/drivers/remoteproc/k3_system_controller.c +++ b/drivers/remoteproc/k3_system_controller.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #define K3_MSG_R5_TO_M3_M3FW 0x8105 diff --git a/drivers/remoteproc/rproc-elf-loader.c b/drivers/remoteproc/rproc-elf-loader.c index b2007fd31d..c7931ee44f 100644 --- a/drivers/remoteproc/rproc-elf-loader.c +++ b/drivers/remoteproc/rproc-elf-loader.c @@ -7,7 +7,8 @@ #include #include #include -#include +#include +#include /** * struct resource_table - firmware resource table header diff --git a/drivers/remoteproc/stm32_copro.c b/drivers/remoteproc/stm32_copro.c index 80e8dffdbb..e9dce0d173 100644 --- a/drivers/remoteproc/stm32_copro.c +++ b/drivers/remoteproc/stm32_copro.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #define RCC_GCR_HOLD_BOOT 0 diff --git a/drivers/remoteproc/ti_k3_arm64_rproc.c b/drivers/remoteproc/ti_k3_arm64_rproc.c index d048cf4161..28c6ddb691 100644 --- a/drivers/remoteproc/ti_k3_arm64_rproc.c +++ b/drivers/remoteproc/ti_k3_arm64_rproc.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include "ti_sci_proc.h" diff --git a/drivers/remoteproc/ti_k3_dsp_rproc.c b/drivers/remoteproc/ti_k3_dsp_rproc.c index 913aca36d6..09e050ffb2 100644 --- a/drivers/remoteproc/ti_k3_dsp_rproc.c +++ b/drivers/remoteproc/ti_k3_dsp_rproc.c @@ -9,12 +9,14 @@ #include #include +#include #include #include #include #include #include #include +#include #include #include #include "ti_sci_proc.h" diff --git a/drivers/remoteproc/ti_k3_r5f_rproc.c b/drivers/remoteproc/ti_k3_r5f_rproc.c index cecfb0ef86..ea56689552 100644 --- a/drivers/remoteproc/ti_k3_r5f_rproc.c +++ b/drivers/remoteproc/ti_k3_r5f_rproc.c @@ -8,11 +8,13 @@ #include #include +#include #include #include #include #include #include +#include #include #include #include diff --git a/drivers/reset/reset-bcm6345.c b/drivers/reset/reset-bcm6345.c index bbaaea9bb3..c1f1e7f70b 100644 --- a/drivers/reset/reset-bcm6345.c +++ b/drivers/reset/reset-bcm6345.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include diff --git a/drivers/reset/reset-hisilicon.c b/drivers/reset/reset-hisilicon.c index d449e3d25e..a678b8f745 100644 --- a/drivers/reset/reset-hisilicon.c +++ b/drivers/reset/reset-hisilicon.c @@ -3,6 +3,7 @@ * Copyright (c) 2019, Linaro Limited */ +#include #include #include #include diff --git a/drivers/reset/reset-imx7.c b/drivers/reset/reset-imx7.c index a2bad65a3b..a61855e9ed 100644 --- a/drivers/reset/reset-imx7.c +++ b/drivers/reset/reset-imx7.c @@ -3,6 +3,7 @@ * Copyright (c) 2017, Impinj, Inc. */ +#include #include #include #include diff --git a/drivers/reset/reset-mediatek.c b/drivers/reset/reset-mediatek.c index 4684cbfb6a..6d17f52ac7 100644 --- a/drivers/reset/reset-mediatek.c +++ b/drivers/reset/reset-mediatek.c @@ -8,6 +8,7 @@ #include #include +#include #include #include #include diff --git a/drivers/reset/reset-meson.c b/drivers/reset/reset-meson.c index 9026e034c3..70f96355b3 100644 --- a/drivers/reset/reset-meson.c +++ b/drivers/reset/reset-meson.c @@ -8,6 +8,7 @@ #include #include +#include #include #include diff --git a/drivers/reset/reset-mtmips.c b/drivers/reset/reset-mtmips.c index 71254a93dd..677de0a6f9 100644 --- a/drivers/reset/reset-mtmips.c +++ b/drivers/reset/reset-mtmips.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include diff --git a/drivers/reset/reset-rockchip.c b/drivers/reset/reset-rockchip.c index 4fb9571b18..100afc8103 100644 --- a/drivers/reset/reset-rockchip.c +++ b/drivers/reset/reset-rockchip.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/drivers/reset/reset-socfpga.c b/drivers/reset/reset-socfpga.c index 98524eb2b7..3ad5e35cc2 100644 --- a/drivers/reset/reset-socfpga.c +++ b/drivers/reset/reset-socfpga.c @@ -14,6 +14,7 @@ #include #include +#include #include #include #include diff --git a/drivers/reset/reset-sunxi.c b/drivers/reset/reset-sunxi.c index 1c717b20c3..f21bf3b1ae 100644 --- a/drivers/reset/reset-sunxi.c +++ b/drivers/reset/reset-sunxi.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/reset/reset-ti-sci.c b/drivers/reset/reset-ti-sci.c index 99e3d9ad5c..f5d82b5681 100644 --- a/drivers/reset/reset-ti-sci.c +++ b/drivers/reset/reset-ti-sci.c @@ -11,7 +11,9 @@ #include #include #include +#include #include +#include #include #include diff --git a/drivers/reset/reset-uclass.c b/drivers/reset/reset-uclass.c index 8e6c0a4fd0..8ec8e462e6 100644 --- a/drivers/reset/reset-uclass.c +++ b/drivers/reset/reset-uclass.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/reset/reset-uniphier.c b/drivers/reset/reset-uniphier.c index 97f7b0ed5f..348f3886d1 100644 --- a/drivers/reset/reset-uniphier.c +++ b/drivers/reset/reset-uniphier.c @@ -6,7 +6,9 @@ #include #include +#include #include +#include #include #include #include diff --git a/drivers/reset/sandbox-reset-test.c b/drivers/reset/sandbox-reset-test.c index 95ce2ca117..ae79be0730 100644 --- a/drivers/reset/sandbox-reset-test.c +++ b/drivers/reset/sandbox-reset-test.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/drivers/reset/sandbox-reset.c b/drivers/reset/sandbox-reset.c index c03fce3531..bdf53a3de9 100644 --- a/drivers/reset/sandbox-reset.c +++ b/drivers/reset/sandbox-reset.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/drivers/reset/sti-reset.c b/drivers/reset/sti-reset.c index 614da9da59..31b3e48e0e 100644 --- a/drivers/reset/sti-reset.c +++ b/drivers/reset/sti-reset.c @@ -6,6 +6,7 @@ #include #include +#include #include #include #include diff --git a/drivers/reset/stm32-reset.c b/drivers/reset/stm32-reset.c index 4d7745abce..5dda522a4e 100644 --- a/drivers/reset/stm32-reset.c +++ b/drivers/reset/stm32-reset.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/reset/tegra-car-reset.c b/drivers/reset/tegra-car-reset.c index 886ea04e2e..23c6facff2 100644 --- a/drivers/reset/tegra-car-reset.c +++ b/drivers/reset/tegra-car-reset.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/drivers/reset/tegra186-reset.c b/drivers/reset/tegra186-reset.c index 84ed77b96f..e85f42b3a3 100644 --- a/drivers/reset/tegra186-reset.c +++ b/drivers/reset/tegra186-reset.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/drivers/rtc/ds3232.c b/drivers/rtc/ds3232.c index 09a106aa4e..e3b3579c4a 100644 --- a/drivers/rtc/ds3232.c +++ b/drivers/rtc/ds3232.c @@ -8,6 +8,7 @@ #include #include #include +#include /* * RTC register addresses diff --git a/drivers/rtc/rv3029.c b/drivers/rtc/rv3029.c index 2367062777..87c4320d5f 100644 --- a/drivers/rtc/rv3029.c +++ b/drivers/rtc/rv3029.c @@ -13,6 +13,7 @@ #include #include #include +#include #define RTC_RV3029_PAGE_LEN 7 diff --git a/drivers/rtc/stm32_rtc.c b/drivers/rtc/stm32_rtc.c index 2674714442..3e12f57ce0 100644 --- a/drivers/rtc/stm32_rtc.c +++ b/drivers/rtc/stm32_rtc.c @@ -5,8 +5,10 @@ #include #include #include +#include #include #include +#include #include #define STM32_RTC_TR 0x00 diff --git a/drivers/serial/atmel_usart.c b/drivers/serial/atmel_usart.c index c450a4e08a..98d209072d 100644 --- a/drivers/serial/atmel_usart.c +++ b/drivers/serial/atmel_usart.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/serial/serial-uclass.c b/drivers/serial/serial-uclass.c index 0f5f1fa406..30f9b8c939 100644 --- a/drivers/serial/serial-uclass.c +++ b/drivers/serial/serial-uclass.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/serial/serial_bcm6345.c b/drivers/serial/serial_bcm6345.c index 9ad8c770d5..5b963ce45b 100644 --- a/drivers/serial/serial_bcm6345.c +++ b/drivers/serial/serial_bcm6345.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/serial/serial_lpuart.c b/drivers/serial/serial_lpuart.c index 4b0a964d1b..41e2d18b9f 100644 --- a/drivers/serial/serial_lpuart.c +++ b/drivers/serial/serial_lpuart.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/serial/serial_msm.c b/drivers/serial/serial_msm.c index c462394dbd..0cc1aadce4 100644 --- a/drivers/serial/serial_msm.c +++ b/drivers/serial/serial_msm.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/serial/serial_pic32.c b/drivers/serial/serial_pic32.c index 84600b1201..bac506ed79 100644 --- a/drivers/serial/serial_pic32.c +++ b/drivers/serial/serial_pic32.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/serial/serial_stm32.c b/drivers/serial/serial_stm32.c index 00a8e7249b..016082814f 100644 --- a/drivers/serial/serial_stm32.c +++ b/drivers/serial/serial_stm32.c @@ -13,6 +13,7 @@ #include #include #include "serial_stm32.h" +#include static void _stm32_serial_setbrg(fdt_addr_t base, struct stm32_uart_info *uart_info, diff --git a/drivers/serial/serial_zynq.c b/drivers/serial/serial_zynq.c index c07375901b..e4e4c39285 100644 --- a/drivers/serial/serial_zynq.c +++ b/drivers/serial/serial_zynq.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/smem/msm_smem.c b/drivers/smem/msm_smem.c index 711ce626aa..5557fd29ce 100644 --- a/drivers/smem/msm_smem.c +++ b/drivers/smem/msm_smem.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/soc/ti/k3-navss-ringacc.c b/drivers/soc/ti/k3-navss-ringacc.c index 2eba1c1d18..ec8741b50c 100644 --- a/drivers/soc/ti/k3-navss-ringacc.c +++ b/drivers/soc/ti/k3-navss-ringacc.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/sound/sound-uclass.c b/drivers/sound/sound-uclass.c index bada0c2ba5..d9b3a38f18 100644 --- a/drivers/sound/sound-uclass.c +++ b/drivers/sound/sound-uclass.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #define SOUND_BITS_IN_BYTE 8 diff --git a/drivers/spi/atmel-quadspi.c b/drivers/spi/atmel-quadspi.c index 195ea5fae6..a09bf884e8 100644 --- a/drivers/spi/atmel-quadspi.c +++ b/drivers/spi/atmel-quadspi.c @@ -9,12 +9,14 @@ * Author: Piotr Bugalski */ +#include #include #include #include #include #include #include +#include #include #include #include diff --git a/drivers/spi/bcm63xx_hsspi.c b/drivers/spi/bcm63xx_hsspi.c index 529adfbc4e..f88702df4d 100644 --- a/drivers/spi/bcm63xx_hsspi.c +++ b/drivers/spi/bcm63xx_hsspi.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/spi/bcm63xx_spi.c b/drivers/spi/bcm63xx_spi.c index 69f88c9e08..719f53d08e 100644 --- a/drivers/spi/bcm63xx_spi.c +++ b/drivers/spi/bcm63xx_spi.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c index 2425f5ad8e..3e50de7e0b 100644 --- a/drivers/spi/cadence_qspi.c +++ b/drivers/spi/cadence_qspi.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include "cadence_qspi.h" diff --git a/drivers/spi/designware_spi.c b/drivers/spi/designware_spi.c index 66ff8eeccd..2dc16736a3 100644 --- a/drivers/spi/designware_spi.c +++ b/drivers/spi/designware_spi.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/spi/mvebu_a3700_spi.c b/drivers/spi/mvebu_a3700_spi.c index 99ad505f24..1469771619 100644 --- a/drivers/spi/mvebu_a3700_spi.c +++ b/drivers/spi/mvebu_a3700_spi.c @@ -12,6 +12,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; diff --git a/drivers/spi/mxc_spi.c b/drivers/spi/mxc_spi.c index d94aaf9fdb..4d1317c364 100644 --- a/drivers/spi/mxc_spi.c +++ b/drivers/spi/mxc_spi.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/spi/spi-mem-nodm.c b/drivers/spi/spi-mem-nodm.c index 4447d44991..83dde4806e 100644 --- a/drivers/spi/spi-mem-nodm.c +++ b/drivers/spi/spi-mem-nodm.c @@ -3,6 +3,7 @@ * Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/ */ +#include #include #include diff --git a/drivers/spi/spi-mem.c b/drivers/spi/spi-mem.c index c907729b54..312fac76dd 100644 --- a/drivers/spi/spi-mem.c +++ b/drivers/spi/spi-mem.c @@ -12,6 +12,7 @@ #include #include "internals.h" #else +#include #include #include #endif diff --git a/drivers/spi/spi-sunxi.c b/drivers/spi/spi-sunxi.c index dbfeac77ee..c59fee10a8 100644 --- a/drivers/spi/spi-sunxi.c +++ b/drivers/spi/spi-sunxi.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include diff --git a/drivers/spi/stm32_qspi.c b/drivers/spi/stm32_qspi.c index 958c394a1a..6857a87dc5 100644 --- a/drivers/spi/stm32_qspi.c +++ b/drivers/spi/stm32_qspi.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/spi/stm32_spi.c b/drivers/spi/stm32_spi.c index 75b6006b45..ebf2b98fcd 100644 --- a/drivers/spi/stm32_spi.c +++ b/drivers/spi/stm32_spi.c @@ -8,8 +8,10 @@ #include #include #include +#include #include #include +#include #include #include diff --git a/drivers/spi/uniphier_spi.c b/drivers/spi/uniphier_spi.c index e47b969864..153fbb2889 100644 --- a/drivers/spi/uniphier_spi.c +++ b/drivers/spi/uniphier_spi.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/spi/zynqmp_gqspi.c b/drivers/spi/zynqmp_gqspi.c index c05d46e084..02b78df843 100644 --- a/drivers/spi/zynqmp_gqspi.c +++ b/drivers/spi/zynqmp_gqspi.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #define GQSPI_GFIFO_STRT_MODE_MASK BIT(29) diff --git a/drivers/spmi/spmi-msm.c b/drivers/spmi/spmi-msm.c index 6f1114699e..ed93faffcb 100644 --- a/drivers/spmi/spmi-msm.c +++ b/drivers/spmi/spmi-msm.c @@ -12,6 +12,7 @@ #include #include #include +#include #include DECLARE_GLOBAL_DATA_PTR; diff --git a/drivers/sysreset/sysreset-ti-sci.c b/drivers/sysreset/sysreset-ti-sci.c index 6caea3aab3..e7fcfcd4d1 100644 --- a/drivers/sysreset/sysreset-ti-sci.c +++ b/drivers/sysreset/sysreset-ti-sci.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include diff --git a/drivers/tee/optee/core.c b/drivers/tee/optee/core.c index a7b175ee62..9fb5e658f9 100644 --- a/drivers/tee/optee/core.c +++ b/drivers/tee/optee/core.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/tee/optee/rpmb.c b/drivers/tee/optee/rpmb.c index cf1ce77e6e..0804fc963c 100644 --- a/drivers/tee/optee/rpmb.c +++ b/drivers/tee/optee/rpmb.c @@ -8,6 +8,7 @@ #include #include #include +#include #include "optee_msg.h" #include "optee_private.h" diff --git a/drivers/tee/optee/supplicant.c b/drivers/tee/optee/supplicant.c index c5726ecb91..ae042b9a20 100644 --- a/drivers/tee/optee/supplicant.c +++ b/drivers/tee/optee/supplicant.c @@ -5,6 +5,7 @@ #include #include +#include #include #include diff --git a/drivers/tee/tee-uclass.c b/drivers/tee/tee-uclass.c index abb88c0fee..1fb3c16a14 100644 --- a/drivers/tee/tee-uclass.c +++ b/drivers/tee/tee-uclass.c @@ -5,9 +5,10 @@ #include #include +#include +#include #include #include -#include /** * struct tee_uclass_priv - information of a TEE, stored by the uclass diff --git a/drivers/timer/dw-apb-timer.c b/drivers/timer/dw-apb-timer.c index fad22be8c9..35271b20c8 100644 --- a/drivers/timer/dw-apb-timer.c +++ b/drivers/timer/dw-apb-timer.c @@ -8,8 +8,10 @@ #include #include #include +#include #include #include +#include #include #include diff --git a/drivers/timer/ostm_timer.c b/drivers/timer/ostm_timer.c index f0e25093ca..48a5055b05 100644 --- a/drivers/timer/ostm_timer.c +++ b/drivers/timer/ostm_timer.c @@ -6,6 +6,7 @@ */ #include +#include #include #include #include diff --git a/drivers/timer/stm32_timer.c b/drivers/timer/stm32_timer.c index 76315100e2..76d99a2b86 100644 --- a/drivers/timer/stm32_timer.c +++ b/drivers/timer/stm32_timer.c @@ -9,6 +9,7 @@ #include #include #include +#include #include diff --git a/drivers/ufs/cdns-platform.c b/drivers/ufs/cdns-platform.c index 5bd0c1e0c7..41ee6a60c9 100644 --- a/drivers/ufs/cdns-platform.c +++ b/drivers/ufs/cdns-platform.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include "ufs.h" diff --git a/drivers/ufs/ti-j721e-ufs.c b/drivers/ufs/ti-j721e-ufs.c index 6e4d0cd3ac..4990fba6eb 100644 --- a/drivers/ufs/ti-j721e-ufs.c +++ b/drivers/ufs/ti-j721e-ufs.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #define UFS_SS_CTRL 0x4 diff --git a/drivers/ufs/ufs.c b/drivers/ufs/ufs.c index 512c63a8f2..c9346c2edc 100644 --- a/drivers/ufs/ufs.c +++ b/drivers/ufs/ufs.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/usb/cdns3/cdns3-ti.c b/drivers/usb/cdns3/cdns3-ti.c index 2fa0104f1b..652cd5cb17 100644 --- a/drivers/usb/cdns3/cdns3-ti.c +++ b/drivers/usb/cdns3/cdns3-ti.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/usb/cdns3/core.c b/drivers/usb/cdns3/core.c index 6f5e5af47d..f947e6983c 100644 --- a/drivers/usb/cdns3/core.c +++ b/drivers/usb/cdns3/core.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/usb/cdns3/drd.c b/drivers/usb/cdns3/drd.c index 13eb4899d4..47874fec29 100644 --- a/drivers/usb/cdns3/drd.c +++ b/drivers/usb/cdns3/drd.c @@ -11,6 +11,7 @@ * */ #include +#include #include #include #include diff --git a/drivers/usb/cdns3/ep0.c b/drivers/usb/cdns3/ep0.c index 0b6d9cf727..d530c9790b 100644 --- a/drivers/usb/cdns3/ep0.c +++ b/drivers/usb/cdns3/ep0.c @@ -11,6 +11,7 @@ */ #include +#include #include #include diff --git a/drivers/usb/cdns3/gadget.c b/drivers/usb/cdns3/gadget.c index e095760099..22e90a5717 100644 --- a/drivers/usb/cdns3/gadget.c +++ b/drivers/usb/cdns3/gadget.c @@ -57,6 +57,7 @@ */ #include +#include #include #include #include diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index cbf21d31dd..c5066529b7 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/usb/dwc3/dwc3-omap.c b/drivers/usb/dwc3/dwc3-omap.c index 7ffec12fc5..9596bf144c 100644 --- a/drivers/usb/dwc3/dwc3-omap.c +++ b/drivers/usb/dwc3/dwc3-omap.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/usb/dwc3/dwc3-uniphier.c b/drivers/usb/dwc3/dwc3-uniphier.c index 6e9c52189d..88317b19ac 100644 --- a/drivers/usb/dwc3/dwc3-uniphier.c +++ b/drivers/usb/dwc3/dwc3-uniphier.c @@ -7,6 +7,7 @@ */ #include +#include #include #include #include diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c index 0c8c11d743..4af58941d8 100644 --- a/drivers/usb/dwc3/ep0.c +++ b/drivers/usb/dwc3/ep0.c @@ -14,6 +14,7 @@ */ #include #include +#include #include #include diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 677607ab32..1502d67362 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/usb/dwc3/ti_usb_phy.c b/drivers/usb/dwc3/ti_usb_phy.c index a90868216a..6b0166a1e0 100644 --- a/drivers/usb/dwc3/ti_usb_phy.c +++ b/drivers/usb/dwc3/ti_usb_phy.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/usb/gadget/dwc2_udc_otg.c b/drivers/usb/gadget/dwc2_udc_otg.c index 229a61affd..3778cac0bc 100644 --- a/drivers/usb/gadget/dwc2_udc_otg.c +++ b/drivers/usb/gadget/dwc2_udc_otg.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include diff --git a/drivers/usb/gadget/storage_common.c b/drivers/usb/gadget/storage_common.c index 4bbd030aad..f40779b13a 100644 --- a/drivers/usb/gadget/storage_common.c +++ b/drivers/usb/gadget/storage_common.c @@ -269,6 +269,7 @@ struct device_attribute { int i; }; #define ETOOSMALL 525 #include +#include /*-------------------------------------------------------------------------*/ diff --git a/drivers/usb/gadget/udc/udc-core.c b/drivers/usb/gadget/udc/udc-core.c index 52384b9afb..a33ab5c95d 100644 --- a/drivers/usb/gadget/udc/udc-core.c +++ b/drivers/usb/gadget/udc/udc-core.c @@ -13,6 +13,7 @@ * usb_ */ +#include #include #include #include diff --git a/drivers/usb/host/dwc2.c b/drivers/usb/host/dwc2.c index b9c56f763b..e4efaf1e59 100644 --- a/drivers/usb/host/dwc2.c +++ b/drivers/usb/host/dwc2.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include diff --git a/drivers/usb/host/ehci-atmel.c b/drivers/usb/host/ehci-atmel.c index 6900848df1..67eec0e0bb 100644 --- a/drivers/usb/host/ehci-atmel.c +++ b/drivers/usb/host/ehci-atmel.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/usb/host/ehci-generic.c b/drivers/usb/host/ehci-generic.c index 80ac876d89..0643681846 100644 --- a/drivers/usb/host/ehci-generic.c +++ b/drivers/usb/host/ehci-generic.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index ef20c3c982..1cc02052f5 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include "ehci.h" diff --git a/drivers/usb/host/ohci-da8xx.c b/drivers/usb/host/ohci-da8xx.c index 29a702052e..692018243c 100644 --- a/drivers/usb/host/ohci-da8xx.c +++ b/drivers/usb/host/ohci-da8xx.c @@ -4,9 +4,11 @@ */ #include +#include #include #include #include +#include #include #include #include diff --git a/drivers/usb/host/ohci-generic.c b/drivers/usb/host/ohci-generic.c index 7b6ec51704..04d5fdb2a8 100644 --- a/drivers/usb/host/ohci-generic.c +++ b/drivers/usb/host/ohci-generic.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/usb/host/r8a66597-hcd.c b/drivers/usb/host/r8a66597-hcd.c index a37696d83f..8fc9d211db 100644 --- a/drivers/usb/host/r8a66597-hcd.c +++ b/drivers/usb/host/r8a66597-hcd.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include diff --git a/drivers/usb/host/xhci-rcar.c b/drivers/usb/host/xhci-rcar.c index c4d8811343..d86584b847 100644 --- a/drivers/usb/host/xhci-rcar.c +++ b/drivers/usb/host/xhci-rcar.c @@ -9,8 +9,10 @@ #include #include #include +#include #include #include +#include #include #include "xhci-rcar-r8a779x_usb3_v3.h" diff --git a/drivers/usb/musb-new/am35x.c b/drivers/usb/musb-new/am35x.c index 58cde22615..6e5be90fe5 100644 --- a/drivers/usb/musb-new/am35x.c +++ b/drivers/usb/musb-new/am35x.c @@ -12,6 +12,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/usb/musb-new/da8xx.c b/drivers/usb/musb-new/da8xx.c index 899b30db68..2ddcf33b5f 100644 --- a/drivers/usb/musb-new/da8xx.c +++ b/drivers/usb/musb-new/da8xx.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/usb/musb-new/musb_core.c b/drivers/usb/musb-new/musb_core.c index cc6e0a71c9..f678aa4826 100644 --- a/drivers/usb/musb-new/musb_core.c +++ b/drivers/usb/musb-new/musb_core.c @@ -65,6 +65,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/usb/musb-new/musb_dsps.c b/drivers/usb/musb-new/musb_dsps.c index d342eeba80..eb590885bc 100644 --- a/drivers/usb/musb-new/musb_dsps.c +++ b/drivers/usb/musb-new/musb_dsps.c @@ -15,6 +15,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/usb/musb-new/musb_gadget.c b/drivers/usb/musb-new/musb_gadget.c index 74b645715d..35d2123ddd 100644 --- a/drivers/usb/musb-new/musb_gadget.c +++ b/drivers/usb/musb-new/musb_gadget.c @@ -9,6 +9,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/usb/musb-new/musb_gadget_ep0.c b/drivers/usb/musb-new/musb_gadget_ep0.c index 3ef8fe1373..79e8222e3b 100644 --- a/drivers/usb/musb-new/musb_gadget_ep0.c +++ b/drivers/usb/musb-new/musb_gadget_ep0.c @@ -9,6 +9,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/usb/musb-new/musb_host.c b/drivers/usb/musb-new/musb_host.c index 55ad8ead70..b98f0ed40e 100644 --- a/drivers/usb/musb-new/musb_host.c +++ b/drivers/usb/musb-new/musb_host.c @@ -9,6 +9,7 @@ */ #ifndef __UBOOT__ +#include #include #include #include diff --git a/drivers/usb/musb-new/musb_uboot.c b/drivers/usb/musb-new/musb_uboot.c index f4d0e1fdc2..72f14b9343 100644 --- a/drivers/usb/musb-new/musb_uboot.c +++ b/drivers/usb/musb-new/musb_uboot.c @@ -1,5 +1,6 @@ #include #include +#include #include #include #include diff --git a/drivers/usb/musb-new/omap2430.c b/drivers/usb/musb-new/omap2430.c index 8a45b05613..0d34dcfc5d 100644 --- a/drivers/usb/musb-new/omap2430.c +++ b/drivers/usb/musb-new/omap2430.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/usb/musb-new/pic32.c b/drivers/usb/musb-new/pic32.c index 3a19900e21..c7867fef8a 100644 --- a/drivers/usb/musb-new/pic32.c +++ b/drivers/usb/musb-new/pic32.c @@ -10,6 +10,7 @@ */ #include +#include #include #include "linux-compat.h" #include "musb_core.h" diff --git a/drivers/usb/musb-new/sunxi.c b/drivers/usb/musb-new/sunxi.c index 45eecfeee6..98bf736978 100644 --- a/drivers/usb/musb-new/sunxi.c +++ b/drivers/usb/musb-new/sunxi.c @@ -19,12 +19,14 @@ #include #include #include +#include #include #include #include #include #include #include +#include #include #include #include diff --git a/drivers/usb/musb-new/ti-musb.c b/drivers/usb/musb-new/ti-musb.c index 20ca2731b4..00759f3e83 100644 --- a/drivers/usb/musb-new/ti-musb.c +++ b/drivers/usb/musb-new/ti-musb.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/usb/phy/omap_usb_phy.c b/drivers/usb/phy/omap_usb_phy.c index 897e6f19f7..9209942430 100644 --- a/drivers/usb/phy/omap_usb_phy.c +++ b/drivers/usb/phy/omap_usb_phy.c @@ -10,6 +10,7 @@ #include #include +#include #include #include #include diff --git a/drivers/video/atmel_hlcdfb.c b/drivers/video/atmel_hlcdfb.c index 734bc12c7b..62acccedf3 100644 --- a/drivers/video/atmel_hlcdfb.c +++ b/drivers/video/atmel_hlcdfb.c @@ -7,6 +7,7 @@ #include #include +#include #include #include #include diff --git a/drivers/video/console_truetype.c b/drivers/video/console_truetype.c index 0a725c5c15..6d7661db89 100644 --- a/drivers/video/console_truetype.c +++ b/drivers/video/console_truetype.c @@ -5,6 +5,7 @@ #include #include +#include #include #include diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c index 285633b14d..5fb68865ef 100644 --- a/drivers/video/da8xx-fb.c +++ b/drivers/video/da8xx-fb.c @@ -13,6 +13,7 @@ */ #include +#include #include #include #include diff --git a/drivers/video/dw_mipi_dsi.c b/drivers/video/dw_mipi_dsi.c index 83d7c7b2c0..5dd75e7ec8 100644 --- a/drivers/video/dw_mipi_dsi.c +++ b/drivers/video/dw_mipi_dsi.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include diff --git a/drivers/video/hitachi_tx18d42vm_lcd.c b/drivers/video/hitachi_tx18d42vm_lcd.c index 1629f558d0..a57abd23f7 100644 --- a/drivers/video/hitachi_tx18d42vm_lcd.c +++ b/drivers/video/hitachi_tx18d42vm_lcd.c @@ -6,6 +6,7 @@ */ #include +#include #include #include diff --git a/drivers/video/mali_dp.c b/drivers/video/mali_dp.c index 71151a87aa..87a75a9ca2 100644 --- a/drivers/video/mali_dp.c +++ b/drivers/video/mali_dp.c @@ -6,6 +6,7 @@ */ #define DEBUG #include +#include #include #include #ifdef CONFIG_DISPLAY @@ -16,6 +17,7 @@ #include #include #include +#include #include #define MALIDP_CORE_ID 0x0018 diff --git a/drivers/video/mvebu_lcd.c b/drivers/video/mvebu_lcd.c index dc6254514a..3ff5b28ae2 100644 --- a/drivers/video/mvebu_lcd.c +++ b/drivers/video/mvebu_lcd.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c index c52981053e..6f80fbaaf3 100644 --- a/drivers/video/mxsfb.c +++ b/drivers/video/mxsfb.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/video/orisetech_otm8009a.c b/drivers/video/orisetech_otm8009a.c index 89d9cfdbb3..650ed07239 100644 --- a/drivers/video/orisetech_otm8009a.c +++ b/drivers/video/orisetech_otm8009a.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #define OTM8009A_BACKLIGHT_DEFAULT 240 diff --git a/drivers/video/pwm_backlight.c b/drivers/video/pwm_backlight.c index ad20bf2441..742579aba7 100644 --- a/drivers/video/pwm_backlight.c +++ b/drivers/video/pwm_backlight.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/video/raydium-rm68200.c b/drivers/video/raydium-rm68200.c index 91555e26ed..853dbc52d6 100644 --- a/drivers/video/raydium-rm68200.c +++ b/drivers/video/raydium-rm68200.c @@ -13,6 +13,7 @@ #include #include #include +#include #include /*** Manufacturer Command Set ***/ diff --git a/drivers/video/rockchip/rk3288_hdmi.c b/drivers/video/rockchip/rk3288_hdmi.c index 3d25ce924c..51eb41540b 100644 --- a/drivers/video/rockchip/rk3288_hdmi.c +++ b/drivers/video/rockchip/rk3288_hdmi.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/video/rockchip/rk_edp.c b/drivers/video/rockchip/rk_edp.c index 4330725a25..8703df0ec0 100644 --- a/drivers/video/rockchip/rk_edp.c +++ b/drivers/video/rockchip/rk_edp.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/video/sandbox_osd.c b/drivers/video/sandbox_osd.c index dd84489add..7e722326b3 100644 --- a/drivers/video/sandbox_osd.c +++ b/drivers/video/sandbox_osd.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include "sandbox_osd.h" diff --git a/drivers/video/scf0403_lcd.c b/drivers/video/scf0403_lcd.c index 58564e8cfe..60075a6cf3 100644 --- a/drivers/video/scf0403_lcd.c +++ b/drivers/video/scf0403_lcd.c @@ -14,6 +14,7 @@ */ #include +#include #include #include diff --git a/drivers/video/ssd2828.c b/drivers/video/ssd2828.c index 4d40dca0c8..83566bc6d6 100644 --- a/drivers/video/ssd2828.c +++ b/drivers/video/ssd2828.c @@ -10,6 +10,7 @@ */ #include +#include #include #include #include diff --git a/drivers/video/stm32/stm32_dsi.c b/drivers/video/stm32/stm32_dsi.c index 12895a8f5d..ded03b109c 100644 --- a/drivers/video/stm32/stm32_dsi.c +++ b/drivers/video/stm32/stm32_dsi.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/video/stm32/stm32_ltdc.c b/drivers/video/stm32/stm32_ltdc.c index 59ff692b0b..be7e9bff01 100644 --- a/drivers/video/stm32/stm32_ltdc.c +++ b/drivers/video/stm32/stm32_ltdc.c @@ -16,6 +16,7 @@ #include #include #include +#include struct stm32_ltdc_priv { void __iomem *regs; diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c index 12057c8a5b..3d658e61d7 100644 --- a/drivers/video/video-uclass.c +++ b/drivers/video/video-uclass.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/virtio/virtio-uclass.c b/drivers/virtio/virtio-uclass.c index 436faa46ee..23f281cd6e 100644 --- a/drivers/virtio/virtio-uclass.c +++ b/drivers/virtio/virtio-uclass.c @@ -17,6 +17,7 @@ #include #include +#include #include #include #include diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c index 0eeb3501c2..45c48a927a 100644 --- a/drivers/virtio/virtio_ring.c +++ b/drivers/virtio/virtio_ring.c @@ -12,6 +12,7 @@ #include #include #include +#include int virtqueue_add(struct virtqueue *vq, struct virtio_sg *sgs[], unsigned int out_sgs, unsigned int in_sgs) diff --git a/drivers/w1-eeprom/ds2502.c b/drivers/w1-eeprom/ds2502.c index 76ca460ed7..19ee4b17ea 100644 --- a/drivers/w1-eeprom/ds2502.c +++ b/drivers/w1-eeprom/ds2502.c @@ -22,6 +22,7 @@ #include #include +#include #include #include #include diff --git a/drivers/w1/mxc_w1.c b/drivers/w1/mxc_w1.c index 9279ba32b8..08715c6a66 100644 --- a/drivers/w1/mxc_w1.c +++ b/drivers/w1/mxc_w1.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include diff --git a/drivers/watchdog/armada-37xx-wdt.c b/drivers/watchdog/armada-37xx-wdt.c index 91cd8a6e6a..5da8e56505 100644 --- a/drivers/watchdog/armada-37xx-wdt.c +++ b/drivers/watchdog/armada-37xx-wdt.c @@ -11,6 +11,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; diff --git a/drivers/watchdog/cdns_wdt.c b/drivers/watchdog/cdns_wdt.c index 13952e1e97..775f06a6e1 100644 --- a/drivers/watchdog/cdns_wdt.c +++ b/drivers/watchdog/cdns_wdt.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include diff --git a/fs/ext4/ext4_write.c b/fs/ext4/ext4_write.c index 3368bd8c00..67aeba1339 100644 --- a/fs/ext4/ext4_write.c +++ b/fs/ext4/ext4_write.c @@ -22,6 +22,7 @@ #include +#include #include #include #include diff --git a/fs/ext4/ext4fs.c b/fs/ext4/ext4fs.c index 37b31d9f0f..1c616a26a2 100644 --- a/fs/ext4/ext4fs.c +++ b/fs/ext4/ext4fs.c @@ -25,6 +25,7 @@ #include #include "ext4_common.h" #include +#include int ext4fs_symlinknest; struct ext_filesystem ext_fs; diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c index 729cf39630..320a8a7a87 100644 --- a/fs/fat/fat_write.c +++ b/fs/fat/fat_write.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/fs/sandbox/sandboxfs.c b/fs/sandbox/sandboxfs.c index 1e253611c3..af47224b6c 100644 --- a/fs/sandbox/sandboxfs.c +++ b/fs/sandbox/sandboxfs.c @@ -5,6 +5,7 @@ #include #include +#include #include int sandbox_fs_set_blk_dev(struct blk_desc *rbdd, disk_partition_t *info) diff --git a/fs/ubifs/lprops.c b/fs/ubifs/lprops.c index 5473d33997..a7c45dd5ec 100644 --- a/fs/ubifs/lprops.c +++ b/fs/ubifs/lprops.c @@ -17,6 +17,7 @@ */ #ifdef __UBOOT__ +#include #include #endif #include "ubifs.h" diff --git a/fs/ubifs/ubifs.c b/fs/ubifs/ubifs.c index 388451512a..e097d28444 100644 --- a/fs/ubifs/ubifs.c +++ b/fs/ubifs/ubifs.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include "ubifs.h" #include diff --git a/fs/yaffs2/yaffs_nandif.c b/fs/yaffs2/yaffs_nandif.c index 79b00ab3b7..ee5a172060 100644 --- a/fs/yaffs2/yaffs_nandif.c +++ b/fs/yaffs2/yaffs_nandif.c @@ -13,6 +13,7 @@ #include "yportenv.h" #include "yaffs_guts.h" +#include #include "yaffs_nandif.h" diff --git a/fs/yaffs2/yaffs_uboot_glue.c b/fs/yaffs2/yaffs_uboot_glue.c index 2a70e4a543..7a15a02974 100644 --- a/fs/yaffs2/yaffs_uboot_glue.c +++ b/fs/yaffs2/yaffs_uboot_glue.c @@ -21,6 +21,7 @@ #include #include +#include #include #include "nand.h" diff --git a/include/dm/device.h b/include/dm/device.h index a93fa22d5d..4c79832597 100644 --- a/include/dm/device.h +++ b/include/dm/device.h @@ -720,75 +720,4 @@ static inline bool device_is_on_pci_bus(struct udevice *dev) */ int dm_scan_fdt_dev(struct udevice *dev); -/* - * REVISIT: - * remove the following after resolving conflicts with - */ -#ifdef dev_dbg -#undef dev_dbg -#endif -#ifdef dev_vdbg -#undef dev_vdbg -#endif -#ifdef dev_info -#undef dev_info -#endif -#ifdef dev_err -#undef dev_err -#endif -#ifdef dev_warn -#undef dev_warn -#endif - -/* - * REVISIT: - * print device name like Linux - */ -#define dev_printk(dev, fmt, ...) \ -({ \ - printk(fmt, ##__VA_ARGS__); \ -}) - -#define __dev_printk(level, dev, fmt, ...) \ -({ \ - if (level < CONFIG_VAL(LOGLEVEL)) \ - dev_printk(dev, fmt, ##__VA_ARGS__); \ -}) - -#define dev_emerg(dev, fmt, ...) \ - __dev_printk(0, dev, fmt, ##__VA_ARGS__) -#define dev_alert(dev, fmt, ...) \ - __dev_printk(1, dev, fmt, ##__VA_ARGS__) -#define dev_crit(dev, fmt, ...) \ - __dev_printk(2, dev, fmt, ##__VA_ARGS__) -#define dev_err(dev, fmt, ...) \ - __dev_printk(3, dev, fmt, ##__VA_ARGS__) -#define dev_warn(dev, fmt, ...) \ - __dev_printk(4, dev, fmt, ##__VA_ARGS__) -#define dev_notice(dev, fmt, ...) \ - __dev_printk(5, dev, fmt, ##__VA_ARGS__) -#define dev_info(dev, fmt, ...) \ - __dev_printk(6, dev, fmt, ##__VA_ARGS__) - -#ifdef DEBUG -#define dev_dbg(dev, fmt, ...) \ - __dev_printk(7, dev, fmt, ##__VA_ARGS__) -#else -#define dev_dbg(dev, fmt, ...) \ -({ \ - if (0) \ - __dev_printk(7, dev, fmt, ##__VA_ARGS__); \ -}) -#endif - -#ifdef VERBOSE_DEBUG -#define dev_vdbg dev_dbg -#else -#define dev_vdbg(dev, fmt, ...) \ -({ \ - if (0) \ - __dev_printk(7, dev, fmt, ##__VA_ARGS__); \ -}) -#endif - #endif diff --git a/include/dm/device_compat.h b/include/dm/device_compat.h new file mode 100644 index 0000000000..3d8cd09f4c --- /dev/null +++ b/include/dm/device_compat.h @@ -0,0 +1,86 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright (c) 2013 Google, Inc + * + * (C) Copyright 2012 + * Pavel Herrmann + * Marek Vasut + */ + +#ifndef _DM_DEVICE_COMPAT_H +#define _DM_DEVICE_COMPAT_H + +#include + +/* + * REVISIT: + * remove the following after resolving conflicts with + */ +#ifdef dev_dbg +#undef dev_dbg +#endif +#ifdef dev_vdbg +#undef dev_vdbg +#endif +#ifdef dev_info +#undef dev_info +#endif +#ifdef dev_err +#undef dev_err +#endif +#ifdef dev_warn +#undef dev_warn +#endif + +/* + * REVISIT: + * print device name like Linux + */ +#define dev_printk(dev, fmt, ...) \ +({ \ + printk(fmt, ##__VA_ARGS__); \ +}) + +#define __dev_printk(level, dev, fmt, ...) \ +({ \ + if (level < CONFIG_VAL(LOGLEVEL)) \ + dev_printk(dev, fmt, ##__VA_ARGS__); \ +}) + +#define dev_emerg(dev, fmt, ...) \ + __dev_printk(0, dev, fmt, ##__VA_ARGS__) +#define dev_alert(dev, fmt, ...) \ + __dev_printk(1, dev, fmt, ##__VA_ARGS__) +#define dev_crit(dev, fmt, ...) \ + __dev_printk(2, dev, fmt, ##__VA_ARGS__) +#define dev_err(dev, fmt, ...) \ + __dev_printk(3, dev, fmt, ##__VA_ARGS__) +#define dev_warn(dev, fmt, ...) \ + __dev_printk(4, dev, fmt, ##__VA_ARGS__) +#define dev_notice(dev, fmt, ...) \ + __dev_printk(5, dev, fmt, ##__VA_ARGS__) +#define dev_info(dev, fmt, ...) \ + __dev_printk(6, dev, fmt, ##__VA_ARGS__) + +#ifdef DEBUG +#define dev_dbg(dev, fmt, ...) \ + __dev_printk(7, dev, fmt, ##__VA_ARGS__) +#else +#define dev_dbg(dev, fmt, ...) \ +({ \ + if (0) \ + __dev_printk(7, dev, fmt, ##__VA_ARGS__); \ +}) +#endif + +#ifdef VERBOSE_DEBUG +#define dev_vdbg dev_dbg +#else +#define dev_vdbg(dev, fmt, ...) \ +({ \ + if (0) \ + __dev_printk(7, dev, fmt, ##__VA_ARGS__); \ +}) +#endif + +#endif diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h index 02ff1a311a..c5a1a77ee5 100644 --- a/include/linux/clk-provider.h +++ b/include/linux/clk-provider.h @@ -9,6 +9,7 @@ #ifndef __LINUX_CLK_PROVIDER_H #define __LINUX_CLK_PROVIDER_H #include +#include static inline void clk_dm(ulong id, struct clk *clk) { diff --git a/lib/bch.c b/lib/bch.c index 86709cc875..8945d8d4cf 100644 --- a/lib/bch.c +++ b/lib/bch.c @@ -55,6 +55,7 @@ #ifndef USE_HOSTCC #include +#include #include #include diff --git a/lib/binman.c b/lib/binman.c index 1774bdf2e5..6cf6dcfdad 100644 --- a/lib/binman.c +++ b/lib/binman.c @@ -9,6 +9,7 @@ #include #include #include +#include struct binman_info { ofnode image; diff --git a/lib/bzip2/bzlib.c b/lib/bzip2/bzlib.c index 9262e4055e..377b269b06 100644 --- a/lib/bzip2/bzlib.c +++ b/lib/bzip2/bzlib.c @@ -1,5 +1,6 @@ #include #include +#include #include /* diff --git a/lib/crypto/rsa_helper.c b/lib/crypto/rsa_helper.c index aca627a4a6..cc0c0d6637 100644 --- a/lib/crypto/rsa_helper.c +++ b/lib/crypto/rsa_helper.c @@ -6,6 +6,7 @@ * Authors: Tadeusz Struk */ #ifndef __UBOOT__ +#include #include #include #endif diff --git a/lib/efi/efi.c b/lib/efi/efi.c index 7cba57b131..0c16a5fdd3 100644 --- a/lib/efi/efi.c +++ b/lib/efi/efi.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/lib/efi/efi_app.c b/lib/efi/efi_app.c index 0047998ee0..f40549be4c 100644 --- a/lib/efi/efi_app.c +++ b/lib/efi/efi_app.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include diff --git a/lib/efi/efi_stub.c b/lib/efi/efi_stub.c index 6dd93ff435..7d650d512e 100644 --- a/lib/efi/efi_stub.c +++ b/lib/efi/efi_stub.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include diff --git a/lib/efi_driver/efi_block_device.c b/lib/efi_driver/efi_block_device.c index cf02341931..33e66fcad2 100644 --- a/lib/efi_driver/efi_block_device.c +++ b/lib/efi_driver/efi_block_device.c @@ -29,6 +29,7 @@ */ #include +#include #include #include diff --git a/lib/efi_driver/efi_uclass.c b/lib/efi_driver/efi_uclass.c index b14746e6b1..6ce257f448 100644 --- a/lib/efi_driver/efi_uclass.c +++ b/lib/efi_driver/efi_uclass.c @@ -18,6 +18,7 @@ */ #include +#include /** * check_node_type() - check node type diff --git a/lib/efi_loader/efi_console.c b/lib/efi_loader/efi_console.c index 8494044799..ac0dec1146 100644 --- a/lib/efi_loader/efi_console.c +++ b/lib/efi_loader/efi_console.c @@ -7,6 +7,7 @@ #include #include +#include #include #include #include diff --git a/lib/efi_loader/efi_runtime.c b/lib/efi_loader/efi_runtime.c index df0485cdad..4b3c843b2c 100644 --- a/lib/efi_loader/efi_runtime.c +++ b/lib/efi_loader/efi_runtime.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include diff --git a/lib/fdtdec.c b/lib/fdtdec.c index 61af3472e6..0e07145d92 100644 --- a/lib/fdtdec.c +++ b/lib/fdtdec.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/lib/libavb/avb_cmdline.c b/lib/libavb/avb_cmdline.c index 684c512bb9..dd859d3467 100644 --- a/lib/libavb/avb_cmdline.c +++ b/lib/libavb/avb_cmdline.c @@ -7,6 +7,7 @@ #include "avb_sha.h" #include "avb_util.h" #include "avb_version.h" +#include #define NUM_GUIDS 3 diff --git a/lib/libavb/avb_descriptor.c b/lib/libavb/avb_descriptor.c index 9f03b9777a..86b8d1b994 100644 --- a/lib/libavb/avb_descriptor.c +++ b/lib/libavb/avb_descriptor.c @@ -6,6 +6,7 @@ #include "avb_descriptor.h" #include "avb_util.h" #include "avb_vbmeta_image.h" +#include bool avb_descriptor_validate_and_byteswap(const AvbDescriptor* src, AvbDescriptor* dest) { diff --git a/lib/libavb/avb_rsa.c b/lib/libavb/avb_rsa.c index bbf15626b8..d7bf8905be 100644 --- a/lib/libavb/avb_rsa.c +++ b/lib/libavb/avb_rsa.c @@ -12,6 +12,7 @@ #include "avb_sha.h" #include "avb_util.h" #include "avb_vbmeta_image.h" +#include typedef struct IAvbKey { unsigned int len; /* Length of n[] in number of uint32_t */ diff --git a/lib/libavb/avb_slot_verify.c b/lib/libavb/avb_slot_verify.c index c0defdf9c9..58baf522fc 100644 --- a/lib/libavb/avb_slot_verify.c +++ b/lib/libavb/avb_slot_verify.c @@ -14,6 +14,7 @@ #include "avb_util.h" #include "avb_vbmeta_image.h" #include "avb_version.h" +#include /* Maximum number of partitions that can be loaded with avb_slot_verify(). */ #define MAX_NUMBER_OF_LOADED_PARTITIONS 32 diff --git a/lib/libavb/avb_sysdeps_posix.c b/lib/libavb/avb_sysdeps_posix.c index 4ccf41e428..1ad5135fae 100644 --- a/lib/libavb/avb_sysdeps_posix.c +++ b/lib/libavb/avb_sysdeps_posix.c @@ -3,6 +3,7 @@ * Copyright (C) 2016 The Android Open Source Project */ +#include #include #include diff --git a/lib/libavb/avb_util.c b/lib/libavb/avb_util.c index 405d625351..94773b77e7 100644 --- a/lib/libavb/avb_util.c +++ b/lib/libavb/avb_util.c @@ -4,6 +4,7 @@ */ #include "avb_util.h" +#include #include diff --git a/lib/linux_compat.c b/lib/linux_compat.c index 3f440deaa0..89a6fd6ec9 100644 --- a/lib/linux_compat.c +++ b/lib/linux_compat.c @@ -1,5 +1,6 @@ #include +#include #include #include diff --git a/lib/lmb.c b/lib/lmb.c index b3b84e4d37..07b9308adf 100644 --- a/lib/lmb.c +++ b/lib/lmb.c @@ -8,6 +8,7 @@ #include #include +#include #define LMB_ALLOC_ANYWHERE 0 diff --git a/lib/rsa/rsa-sign.c b/lib/rsa/rsa-sign.c index 5b5905aeb5..6400ef63d6 100644 --- a/lib/rsa/rsa-sign.c +++ b/lib/rsa/rsa-sign.c @@ -4,6 +4,7 @@ */ #include "mkimage.h" +#include #include #include #include diff --git a/lib/rsa/rsa-verify.c b/lib/rsa/rsa-verify.c index 82dc513260..326a5e4ea9 100644 --- a/lib/rsa/rsa-verify.c +++ b/lib/rsa/rsa-verify.c @@ -6,6 +6,7 @@ #ifndef USE_HOSTCC #include #include +#include #include #include #include diff --git a/lib/zstd/decompress.c b/lib/zstd/decompress.c index ac5ab528bb..ae3be3f02a 100644 --- a/lib/zstd/decompress.c +++ b/lib/zstd/decompress.c @@ -23,6 +23,7 @@ #include "huf.h" #include "mem.h" /* low level memory routines */ #include "zstd_internal.h" +#include #include #include #include /* memcpy, memmove, memset */ diff --git a/lib/zstd/zstd_common.c b/lib/zstd/zstd_common.c index 9a217e1573..6b2c79eeb6 100644 --- a/lib/zstd/zstd_common.c +++ b/lib/zstd/zstd_common.c @@ -9,6 +9,7 @@ ***************************************/ #include "error_private.h" #include "zstd_internal.h" /* declaration of ZSTD_isError, ZSTD_getErrorName, ZSTD_getErrorCode, ZSTD_getErrorString, ZSTD_versionNumber */ +#include #include /*=************************************************************** diff --git a/net/mdio-uclass.c b/net/mdio-uclass.c index f75e4df626..8e7872155a 100644 --- a/net/mdio-uclass.c +++ b/net/mdio-uclass.c @@ -6,9 +6,12 @@ #include #include +#include #include #include +#include #include +#include /* DT node properties for MAC-PHY interface */ #define PHY_MODE_STR_CNT 2 diff --git a/post/post.c b/post/post.c index f27138ddaa..696a60f70a 100644 --- a/post/post.c +++ b/post/post.c @@ -6,6 +6,7 @@ #include #include +#include #include #include #include diff --git a/test/dm/clk.c b/test/dm/clk.c index 31335a543f..003b78934f 100644 --- a/test/dm/clk.c +++ b/test/dm/clk.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include diff --git a/test/dm/dma.c b/test/dm/dma.c index b56d17731d..12cba57a56 100644 --- a/test/dm/dma.c +++ b/test/dm/dma.c @@ -8,6 +8,7 @@ #include #include +#include #include #include #include diff --git a/test/dm/gpio.c b/test/dm/gpio.c index bb4b20cea9..349123a657 100644 --- a/test/dm/gpio.c +++ b/test/dm/gpio.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include diff --git a/test/dm/mailbox.c b/test/dm/mailbox.c index 4562d2ac4f..e6c521b8b5 100644 --- a/test/dm/mailbox.c +++ b/test/dm/mailbox.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/test/dm/power-domain.c b/test/dm/power-domain.c index 48318218a9..8baf5d09d1 100644 --- a/test/dm/power-domain.c +++ b/test/dm/power-domain.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/test/dm/reset.c b/test/dm/reset.c index c61daed490..8370820428 100644 --- a/test/dm/reset.c +++ b/test/dm/reset.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/test/dm/spmi.c b/test/dm/spmi.c index e6a910859e..668b7e133f 100644 --- a/test/dm/spmi.c +++ b/test/dm/spmi.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include diff --git a/test/dm/tee.c b/test/dm/tee.c index 22f05a4219..d40f13d291 100644 --- a/test/dm/tee.c +++ b/test/dm/tee.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/test/dm/video.c b/test/dm/video.c index 3151ebb73f..f72979fac4 100644 --- a/test/dm/video.c +++ b/test/dm/video.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/test/lib/lmb.c b/test/lib/lmb.c index ec68227bb6..1336b54b11 100644 --- a/test/lib/lmb.c +++ b/test/lib/lmb.c @@ -5,6 +5,7 @@ #include #include +#include #include #include diff --git a/test/unicode_ut.c b/test/unicode_ut.c index 47532a64df..4d99c20bc0 100644 --- a/test/unicode_ut.c +++ b/test/unicode_ut.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include From patchwork Sun Jan 12 19:06:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221861 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=JFWyRDcu; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmYX40wpz9s29 for ; Mon, 13 Jan 2020 06:12:00 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 4D5DC8183D; Sun, 12 Jan 2020 20:08:05 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="JFWyRDcu"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 283418182B; Sun, 12 Jan 2020 20:07:55 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-il1-x144.google.com (mail-il1-x144.google.com [IPv6:2607:f8b0:4864:20::144]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 4D23581824 for ; Sun, 12 Jan 2020 20:07:52 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x144.google.com with SMTP id c4so6058141ilo.7 for ; Sun, 12 Jan 2020 11:07:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=yT5bD+cOl+tEuFs62gYuS2RrmBvMkwtGWsWjgzZwJV0=; b=JFWyRDculdYcJiH6DWqN9rMUI/a/BTKlK6/9J1DvO2wvU401RS+3Nkwk5eucHOnq2m NdJ83JQw03JM4hywYYqJEmwvT6NrhcoJq9L+dZtfRvclisIPh58m4aCDQufiLtmiQhez OewGmTWzhoA/ESSxfnCVRTq3g0I65q8uRhAKk= 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=yT5bD+cOl+tEuFs62gYuS2RrmBvMkwtGWsWjgzZwJV0=; b=BwcWJFHpvkQoAuThPESNs/hOr62NawiBsAQ0OtL82vwsQkIYQAXh6QGs4Y61SLGEM3 kwqM5lHdW5rHD+GSBB3xG3OZMXfc54zsbLoxACQaMxURBbiplA2Lyfy42R1TDL3h3nQ8 GT1ixv0paAW80IYWMlYS0/9AKyXw6/zRJPLQ3+v65VK5lKEAhhqU1OnRzOASk4FZwItW 5G+xZoFD+7FCjUBBXsXXFJMn2C2CECvnQ31hFDRFVfR/dNledS7KpGfUrPVA7F4LKiLR Ej71OjPwsiFe/BhrJrVXzxt8cAfIlpeplSqQksAK+nm56k8jeHiRNmASZ8Ma3mJvx+nU dhwg== X-Gm-Message-State: APjAAAUU6DktQCBzyTyjvGMaZbR9wh4NPpNbkOzeMvkCD+s4L6/7MwFY TteVM1D4RehUe91r2GfkkRQgLtnMqDU= X-Google-Smtp-Source: APXvYqw1PMR5G3jR2LKqI+kAznOlsFFqFBKWOC4NNFrwIzrNZt+m2ujeAnYyHAvuljJkVsG8pq9S9g== X-Received: by 2002:a92:db4f:: with SMTP id w15mr11128123ilq.182.1578856071165; Sun, 12 Jan 2020 11:07:51 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:50 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 31/33] dm: core: Drop the inclusion of linux/compat.h in dm.h Date: Sun, 12 Jan 2020 12:06:22 -0700 Message-Id: <20200112120216.31.I0e9c76aef442b3fe2efe37efba81c9398573305d@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Carlo Caione , Joe Hershberger , Pavel Herrmann , Jorge Ramirez-Ortiz Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean Most files don't need this header and it pulls in quite of lots of stuff, malloc() in particular. Drop it. Signed-off-by: Simon Glass --- board/hisilicon/poplar/poplar.c | 2 +- include/dm/device.h | 1 - include/linux/compat.h | 3 +++ include/phy.h | 1 + 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/board/hisilicon/poplar/poplar.c b/board/hisilicon/poplar/poplar.c index 4926419a90..717e726b28 100644 --- a/board/hisilicon/poplar/poplar.c +++ b/board/hisilicon/poplar/poplar.c @@ -4,8 +4,8 @@ * Jorge Ramirez-Ortiz */ -#include #include +#include #include #include #include diff --git a/include/dm/device.h b/include/dm/device.h index 4c79832597..cb1cd27738 100644 --- a/include/dm/device.h +++ b/include/dm/device.h @@ -14,7 +14,6 @@ #include #include #include -#include #include #include #include diff --git a/include/linux/compat.h b/include/linux/compat.h index d0f51baab4..171188a76f 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h @@ -123,7 +123,10 @@ static inline void kmem_cache_destroy(struct kmem_cache *cachep) #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) +/* This is also defined in ARMv8's mmu.h */ +#ifndef PAGE_SIZE #define PAGE_SIZE 4096 +#endif /* drivers/char/random.c */ #define get_random_bytes(...) diff --git a/include/phy.h b/include/phy.h index 6ace9b3a0c..42cfc59ec0 100644 --- a/include/phy.h +++ b/include/phy.h @@ -10,6 +10,7 @@ #define _PHY_H #include +#include #include #include #include From patchwork Sun Jan 12 19:06:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221862 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=CJh1i4ZG; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wmYj72zWz9sPW for ; Mon, 13 Jan 2020 06:12:09 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 642EB81841; Sun, 12 Jan 2020 20:08:07 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="CJh1i4ZG"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 2AD0E81830; Sun, 12 Jan 2020 20:07:57 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-il1-x142.google.com (mail-il1-x142.google.com [IPv6:2607:f8b0:4864:20::142]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id D959F8182A for ; Sun, 12 Jan 2020 20:07:53 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x142.google.com with SMTP id x5so6057338ila.6 for ; Sun, 12 Jan 2020 11:07:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=z+uStdwcxHckP/aCDkWNP/19UjyvFBFB1evLtEwhJWc=; b=CJh1i4ZGjDjEbQvX3QQyrm7Qlq1fFjFF9sBlzpEsyINVudItqGGvOHO06RRTt0NrDe SLP44HzvvYD48WBWeL4qL88IePlSJXMkE20O5+iFFqFNhYYwX//ESHDc2lztbpnLQXcy 1nhw/xV8OEfIu6FkDzRLZLDWvZU2wcTDDK+yM= 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=z+uStdwcxHckP/aCDkWNP/19UjyvFBFB1evLtEwhJWc=; b=goXAZ/w/PJGtwynFXIlvK+EFpMYvawW7TzAHRcZirX/GMqxhXlASf1kupRZUXRd/4+ c1abvv1rAedZY/p4+VdFog+121hXKUa3oFXNmEzkglzmQYa3XSnngnUVBi0xg18V/L7S 429f3aWop+t1OttnPVJlMRbd+3MCCgMdPxzssDSjFkQeNyv6JqAJeLjelkd6mcKFI71T vxTUMtLWrpdUbQTdpqFtPR+zTA41cM2eQGuCzCDMZaMqKLa4vs0mMZUPiIzBHVcWUUQS 8kMfzXj0lMa0HdkV7gIUdC32uaYNCAQf7PvJHka8AYUvRXXTIa1CpylIPndpmJpluXzN RKfw== X-Gm-Message-State: APjAAAUGQtQBLmtagrj+1GCLQrGA/CnzD77XLVZxqBeB9xIQHUZbmXA+ /6MzJ5LA3abpcjN20lQGn2oGpnAYQl0= X-Google-Smtp-Source: APXvYqzmAWagnuME2aBQBLK6Gy0wCXdR2inp407/0x1hD2klnxX3f2oCF/h94Q9L4kimAptumCutsg== X-Received: by 2002:a92:5d8d:: with SMTP id e13mr11421064ilg.285.1578856072731; Sun, 12 Jan 2020 11:07:52 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:52 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 32/33] sandbox: Complete migration away from os_malloc() Date: Sun, 12 Jan 2020 12:06:23 -0700 Message-Id: <20200112120216.32.I98bcf2c9d3516b00a2b4205dc94e7eb330ff6cfd@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean Now that we can use direct access to the system malloc() in sandbox, drop the remaining uses of os_malloc(). The only one remaining now is for the RAM buffer, which we do want to be at a known adress, so this is intended. Signed-off-by: Simon Glass --- drivers/misc/cros_ec_sandbox.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/misc/cros_ec_sandbox.c b/drivers/misc/cros_ec_sandbox.c index 4fcb2d96f5..9dd6a18b2b 100644 --- a/drivers/misc/cros_ec_sandbox.c +++ b/drivers/misc/cros_ec_sandbox.c @@ -11,10 +11,10 @@ #include #include #include -#include #include #include #include +#include #include #include #include @@ -115,7 +115,7 @@ static int cros_ec_read_state(const void *blob, int node) prop = fdt_getprop(blob, node, "flash-data", &len); if (prop) { ec->flash_data_len = len; - ec->flash_data = os_malloc(len); + ec->flash_data = malloc(len); if (!ec->flash_data) return -ENOMEM; memcpy(ec->flash_data, prop, len); @@ -545,14 +545,14 @@ int cros_ec_probe(struct udevice *dev) ec->flash_data_len != ec->ec_config.flash.length) { printf("EC data length is %x, expected %x, discarding data\n", ec->flash_data_len, ec->ec_config.flash.length); - os_free(ec->flash_data); + free(ec->flash_data); ec->flash_data = NULL; } /* Otherwise allocate the memory */ if (!ec->flash_data) { ec->flash_data_len = ec->ec_config.flash.length; - ec->flash_data = os_malloc(ec->flash_data_len); + ec->flash_data = malloc(ec->flash_data_len); if (!ec->flash_data) return -ENOMEM; } From patchwork Sun Jan 12 19:06:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221867 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=OGUCQoTm; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47wnKc436gz9s29 for ; Mon, 13 Jan 2020 06:46:44 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 576328172A; Sun, 12 Jan 2020 20:46:10 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="OGUCQoTm"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 0BA6681845; Sun, 12 Jan 2020 20:08:20 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,LOTS_OF_MONEY,NORMAL_HTTP_TO_IP, NUMERIC_HTTP_ADDR,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd2b.google.com (mail-io1-xd2b.google.com [IPv6:2607:f8b0:4864:20::d2b]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 9D60781837 for ; Sun, 12 Jan 2020 20:07:58 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd2b.google.com with SMTP id n21so7251482ioo.10 for ; Sun, 12 Jan 2020 11:07:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=FjlnvMGDI1lhxLPQvAZ8hwlOXoJEbXy0Ui1bR0CzSpE=; b=OGUCQoTmAPlHCrmbTyzoAcg0HNJydWu70p6rGpjRNKkcKSUGf17h4o4dK5TDoC8U5k 0z4UaFltUSeNd+hODnj64fONwMhbtvugSd+kFyqaAZGeNc6/LQa4uJbhiP40FJHM0v/d 1pCBoeB7+RSfo5DOpEDOcoxvZ6mtJFDOG+8SQ= 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=FjlnvMGDI1lhxLPQvAZ8hwlOXoJEbXy0Ui1bR0CzSpE=; b=fWiXEbRABetYMvqFLxd6kaTSPjUsU4k1mMfkRjruxpF2OyUz0ebEsGS9n5nFxt5mp8 ZrJgsCOQ7aKYaBK6OaFW+MeeGa0MNWF+H7LJOrcfOkCgVWQMSllBpSRtkU3GmL4D1coa m4Vw5nAcymFqul3C8u+sX/xeos4ijnklyFvfu4frGLZC7Zxd/DnZpeGm6TSl3aarhWLu rSbAVEcpaCI6VcB/pV6QWz3USgaaj07WsEpDqWEMVLLhma2KBPaKboS2rk2uMeg6hdX1 uLQW4t499Hry/xH7NGUCY/juyGoANBJSsWAMOeax89uxK8atcRucWk8bcc6bNDl8F9hd bBgA== X-Gm-Message-State: APjAAAVS2zx7nP3b2a9V8X+Znkj1o2N1SHO2YLXGE0YBVhtdVmRD6skw IalCDrNC2H4C4w17fUnw1ij2E0xd4Kc= X-Google-Smtp-Source: APXvYqzIdDZB9TMdiIQ9kR8FV7m/4K4gd69lmmfRTs5BAGN74jSlDo/jp2URNoL/GG3CESAymDqckQ== X-Received: by 2002:a02:c951:: with SMTP id u17mr11782821jao.27.1578856074695; Sun, 12 Jan 2020 11:07:54 -0800 (PST) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id r22sm3039219ilb.25.2020.01.12.11.07.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 11:07:54 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Subject: [PATCH 33/33] video: Drop the Nimbus font Date: Sun, 12 Jan 2020 12:06:24 -0700 Message-Id: <20200112120216.33.I67e948dd60876c66ea0579007800dbf0da3c6ce8@changeid> X-Mailer: git-send-email 2.25.0.rc1.283.g88dfdc4193-goog In-Reply-To: <20200112190624.79077-1-sjg@chromium.org> References: <20200112190624.79077-1-sjg@chromium.org> MIME-Version: 1.0 X-Mailman-Approved-At: Sun, 12 Jan 2020 20:46:02 +0100 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean There is some concern that this font may be GPLv3 rather than GPLv2. This is is not desirable in U-Boot. Replace it with Roboto which has an Apache license. See discussion here: https://www.mail-archive.com/u-boot@lists.denx.de/msg335913.html Signed-off-by: Simon Glass --- doc/README.video | 2 +- drivers/video/console_truetype.c | 6 +++--- drivers/video/fonts/Kconfig | 20 +++++++++--------- drivers/video/fonts/Makefile | 2 +- drivers/video/fonts/nimbus_sans_l_regular.ttf | Bin 61660 -> 0 bytes drivers/video/fonts/roboto_regular.ttf | Bin 0 -> 162876 bytes 6 files changed, 15 insertions(+), 15 deletions(-) delete mode 100644 drivers/video/fonts/nimbus_sans_l_regular.ttf create mode 100644 drivers/video/fonts/roboto_regular.ttf GIT binary patch literal 162876 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 literal 0 HcmV?d00001 diff --git a/doc/README.video b/doc/README.video index ced35bd2db..ee8ac0ce16 100644 --- a/doc/README.video +++ b/doc/README.video @@ -84,7 +84,7 @@ U-Boot supports the use of antialiased TrueType fonts on some platforms. This has been tested in x86, ARMv7 and sandbox. To enable this, select CONFIG_CONSOLE_TRUETYPE. You can choose between several -fonts, with CONSOLE_TRUETYPE_NIMBUS being the default. +fonts, with CONSOLE_TRUETYPE_ROBOTO being the default. TrueType support requires floating point at present. On ARMv7 platforms you need to disable use of the private libgcc. You can do this by disabling diff --git a/drivers/video/console_truetype.c b/drivers/video/console_truetype.c index 6d7661db89..73444c2f82 100644 --- a/drivers/video/console_truetype.c +++ b/drivers/video/console_truetype.c @@ -466,14 +466,14 @@ struct font_info { .end = __ttf_ ## _name ## _end, \ } -FONT_DECL(nimbus_sans_l_regular); +FONT_DECL(roboto_regular); FONT_DECL(ankacoder_c75_r); FONT_DECL(rufscript010); FONT_DECL(cantoraone_regular); static struct font_info font_table[] = { -#ifdef CONFIG_CONSOLE_TRUETYPE_NIMBUS - FONT_ENTRY(nimbus_sans_l_regular), +#ifdef CONFIG_CONSOLE_TRUETYPE_ROBOTO + FONT_ENTRY(roboto_regular), #endif #ifdef CONFIG_CONSOLE_TRUETYPE_ANKACODER FONT_ENTRY(ankacoder_c75_r), diff --git a/drivers/video/fonts/Kconfig b/drivers/video/fonts/Kconfig index c692fa9602..1b8b59311e 100644 --- a/drivers/video/fonts/Kconfig +++ b/drivers/video/fonts/Kconfig @@ -4,19 +4,19 @@ menu "TrueType Fonts" -config CONSOLE_TRUETYPE_NIMBUS - bool "Nimbus Sans Regular" +config CONSOLE_TRUETYPE_ROBOTO + bool "Roboto Regular" depends on CONSOLE_TRUETYPE default y help - Nimbus Sans L is a version of Nimbus Sans using Adobe font sources. - It was designed in 1987. A subset of Nimbus Sans L were released - under the GPL. Although the characters are not exactly the same, - Nimbus Sans L has metrics almost identical to Helvetica and Arial. - (From Wikipedia, the free encyclopedia) - From: https://fontlibrary.org/en/font/nimbus-sans-l - License: GNU GPL v3 - http://www.gnu.org/copyleft/gpl.html + Roboto was created in 2011 by Christian Robertson at Google, and + received a significant redesign in 2014. It is a sans-serif grotesque, + which is the same classification as Helvetica and Akzidenz-Grotesk. + Roboto is the default font on the Android mobile phone operating + system. + From: https://fontlibrary.org/en/font/roboto + License: Apache 2.0 + https://www.apache.org/licenses/LICENSE-2.0 config CONSOLE_TRUETYPE_ANKACODER bool "Anka Coder Narrow" diff --git a/drivers/video/fonts/Makefile b/drivers/video/fonts/Makefile index 4fca120b73..30e583276e 100644 --- a/drivers/video/fonts/Makefile +++ b/drivers/video/fonts/Makefile @@ -3,7 +3,7 @@ # (C) Copyright 2000-2007 # Wolfgang Denk, DENX Software Engineering, wd@denx.de. -obj-$(CONFIG_CONSOLE_TRUETYPE_NIMBUS) += nimbus_sans_l_regular.o +obj-$(CONFIG_CONSOLE_TRUETYPE_ROBOTO) += roboto_regular.o obj-$(CONFIG_CONSOLE_TRUETYPE_ANKACODER) += ankacoder_c75_r.o obj-$(CONFIG_CONSOLE_TRUETYPE_RUFSCRIPT) += rufscript010.o obj-$(CONFIG_CONSOLE_TRUETYPE_CANTORAONE) += cantoraone_regular.o diff --git a/drivers/video/fonts/nimbus_sans_l_regular.ttf b/drivers/video/fonts/nimbus_sans_l_regular.ttf deleted file mode 100644 index 3bd694d8ee55d8eaf468abad40bf072896a757d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61660 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