From patchwork Fri Feb 8 08:15:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 1038524 X-Patchwork-Delegate: agraf@suse.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="j2yLF2g4"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43wpCK1CrVz9sNG for ; Fri, 8 Feb 2019 19:25:16 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id A5410C22027; Fri, 8 Feb 2019 08:23:37 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 3DCBFC22018; Fri, 8 Feb 2019 08:15:56 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 366B8C22050; Fri, 8 Feb 2019 08:15:43 +0000 (UTC) Received: from mail-yw1-f53.google.com (mail-yw1-f53.google.com [209.85.161.53]) by lists.denx.de (Postfix) with ESMTPS id 9D284C2201B for ; Fri, 8 Feb 2019 08:15:29 +0000 (UTC) Received: by mail-yw1-f53.google.com with SMTP id c67so1057784ywa.7 for ; Fri, 08 Feb 2019 00:15:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6XvVnShLZZxum6QWIZpOt21TIxQSViPht+4obFJ5/3A=; b=j2yLF2g4uS5K6FZ4vcw6j6nebTWHXGK7uFAYDIIG1qh+arsLY60LLP96TpjqVn4GdU WE3qHUFUEPLyq86w4eXE0LLFWvb1LxMRwKDWcQr8giKdLyWuhYqIJaGGhwPvixfmw/e9 mVmVh+7yPwNEPNwmEvF5NAo7h8Tn0sObsl4Nr5MPZ+tEf4S6CuPhmbOV+MtncPt48FGV jN+icN5EWc5MRaBQJbrPtz58eJCu6ubueGKlNjwQwVOf6gYpUkUKFueuykF2nH44brw4 0C7YEI+tSAyr4S1yLyNeKGpOM6aOlb5VmSoeAVCdCfY3WYeacHqFIFaiw4D2WC0IKVn+ m1uw== 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=6XvVnShLZZxum6QWIZpOt21TIxQSViPht+4obFJ5/3A=; b=e+PfD+pujCatH9AfIEjxVhTn1jQp6NY8nEd7kywXZhkqle7HASRdYch7R8V8pY964r 6iSkFUM1zEej7duQjkBr20KxVBejIS3fsX0yELgWM/Sh3EE2a3hVIMphUFK1zPRtidPX 9K+SlpUIMWxqQ8obtfS2Mbf8lnHyrhBiv2MxcizMcoZiqMaFNsZCTr8BYSdTbVpxMAAk VUWiR9wIzAKv/llDTIPOLnEr22XQoK+GaqBPXuEX9OS0nxnRnwHaeQYZ0FiwPhIXFT/I DJurw9ROlzUn3wBiJ+U+7W2KMrLkK3S4C4E1/eAUf1OlRmOgmhMCUCosCTstr+qB1JA3 kBag== X-Gm-Message-State: AHQUAuZOOqE3GfLCB+oVp2TmjJjBC2fqlys2wRZE59KhA8MPmvaXpbCi OEp3SSReuW+bPmUhJaFtL5/91Q== X-Google-Smtp-Source: AHgI3IZAzO2Guz0NsHSIzTKbcKbUbVfjyqs2lS7+7uo2tzXvtnGE9PvgrmwrsWoMSFm4e29eOHx3Xg== X-Received: by 2002:a81:de09:: with SMTP id k9mr16683227ywj.384.1549613728602; Fri, 08 Feb 2019 00:15:28 -0800 (PST) Received: from linaro.org ([121.95.100.191]) by smtp.googlemail.com with ESMTPSA id r20sm738390ywa.13.2019.02.08.00.15.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 00:15:28 -0800 (PST) From: AKASHI Takahiro To: trini@konsulko.com, agraf@suse.de, xypron.glpk@gmx.de, sjg@chromium.org Date: Fri, 8 Feb 2019 17:15:41 +0900 Message-Id: <20190208081542.2813-15-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190208081542.2813-1-takahiro.akashi@linaro.org> References: <20190208081542.2813-1-takahiro.akashi@linaro.org> MIME-Version: 1.0 Cc: u-boot@lists.denx.de Subject: [U-Boot] [RFC v2 14/15] efi_driver: converted to DM X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 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" Signed-off-by: AKASHI Takahiro --- lib/efi_driver/efi_block_device.c | 4 ---- lib/efi_driver/efi_uclass.c | 27 ++++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/lib/efi_driver/efi_block_device.c b/lib/efi_driver/efi_block_device.c index acef1b20867e..f3e7ebf6dc5e 100644 --- a/lib/efi_driver/efi_block_device.c +++ b/lib/efi_driver/efi_block_device.c @@ -118,16 +118,12 @@ static int efi_bl_bind(efi_handle_t handle, void *interface) struct udevice *bdev, *parent = dm_root(); int ret, devnum; char *name; - struct efi_object *obj = efi_search_obj(handle); struct efi_block_io *io = interface; int disks; struct efi_blk_platdata *platdata; EFI_PRINT("%s: handle %p, interface %p\n", __func__, handle, io); - if (!obj) - return -ENOENT; - devnum = blk_find_max_devnum(IF_TYPE_EFI); if (devnum == -ENODEV) devnum = 0; diff --git a/lib/efi_driver/efi_uclass.c b/lib/efi_driver/efi_uclass.c index d42612a5ee03..bf6bc79837ba 100644 --- a/lib/efi_driver/efi_uclass.c +++ b/lib/efi_driver/efi_uclass.c @@ -18,6 +18,8 @@ */ #include +#include +#include /** * check_node_type() - check node type @@ -272,8 +274,18 @@ static efi_status_t efi_add_driver(struct driver *drv) bp->bp.version = 0xffffffff; bp->ops = drv->ops; - ret = efi_create_handle(&bp->bp.driver_binding_handle); + ret = device_bind_driver(efi_root, drv->name, drv->name, + &bp->bp.driver_binding_handle); + if (ret) { + free(bp); + goto out; + } + + ret = efi_add_handle(bp->bp.driver_binding_handle); if (ret != EFI_SUCCESS) { +#ifdef CONFIG_DM_DEVICE_REMOVE + device_unbind(bp->bp.driver_binding_handle); +#endif free(bp); goto out; } @@ -349,3 +361,16 @@ UCLASS_DRIVER(efi_driver) = { .init = efi_uc_init, .destroy = efi_uc_destroy, }; + +static int efi_driver_binding_probe(struct udevice *dev) +{ + device_set_name(dev, "DRIVER_BINDING"); + + return 0; +} + +U_BOOT_DRIVER(efi_driver_binding) = { + .name = "efi_driver_binding", + .id = UCLASS_EFI_PROTOCOL, + .probe = efi_driver_binding_probe, +};