Received: by 10.223.176.46 with SMTP id f43csp1470783wra; Wed, 24 Jan 2018 17:42:16 -0800 (PST) X-Google-Smtp-Source: AH8x225Wr25np3lf4nygPRHzCskSf4j7nclvYY6EzDIKljjcQAgNLPkuZ+kLInYmWpQk5he8w8Tf X-Received: by 10.99.170.10 with SMTP id e10mr2907064pgf.81.1516844536462; Wed, 24 Jan 2018 17:42:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516844536; cv=none; d=google.com; s=arc-20160816; b=CkrD+PjV5BYNj3g2yZZ490A3j6pN/sETTnsHMVFCM8Cn/gYpsMN2hnqt0OOZ9qCZR6 tnPEcbGCM4Rm+9/X0/xp54uLhRHpUpAxtMxBJMysFplrc5yk2RNGo715AStF8B4vWNzj doiQ2UWR5YmvwKCzJNKH0nvZfHYi0uMm/RzsAuXLfwe2Q3hCvOI5oHBpHUiY4dNqlhO3 rRl3NYbdiIJlAuJLYn1OTRL2S97krLuau8Z67U7lz3TSKGKi9YJfWlC67PdbnrbFNb2S +Y6Gycq1CgCPBLcMayHmiFDLKl8qctD0H9Z96QpKug8lqE7wmY0XvCQnOxAupNBvhX0Q VVXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:dkim-signature :arc-authentication-results; bh=LXzbNdM3VkMaIOG5ELxBk+dRJy/rUtamYLoQX0ZsKWA=; b=Pw4Gc/4U/tFRbiq7ZNMk+YEmfFxLj3X2MTYNJEv2G00HEwfShYrVol41tO33sguyL2 koVGsek7ZsExSH5VDk6l0Wyo3inztgm0pdZiw1oyPXXmHyTv4/VgM+IKRn2nqarF6nVn xvkWEsI0JozwCaBX0dhePHgf7fOtfKqyjHnE8Ci2cfAqPXEtH/8ekug+198YfB4lr3Yl TevoWtreXh/Zj3HMDCnnNQK1k6Yd6iRQE4wzr7dC0PG3g1W/RALOHY2yzetPkZothIaO Y2adp9L8ipDP+cUyNi3F567+cR4kIcy8WfL7678rluubNO8LgR11g+ZZi4Qrg/Sdxvp2 5FCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sholland.org header.s=fm1 header.b=rJtW0vBb; dkim=pass header.i=@messagingengine.com header.s=fm1 header.b=B2Dg8On5; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m15-v6si1111791pln.714.2018.01.24.17.42.02; Wed, 24 Jan 2018 17:42:16 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@sholland.org header.s=fm1 header.b=rJtW0vBb; dkim=pass header.i=@messagingengine.com header.s=fm1 header.b=B2Dg8On5; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752656AbeAYBle (ORCPT + 99 others); Wed, 24 Jan 2018 20:41:34 -0500 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:59749 "EHLO out3-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751199AbeAYBl1 (ORCPT ); Wed, 24 Jan 2018 20:41:27 -0500 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id F3F0022651; Wed, 24 Jan 2018 20:41:26 -0500 (EST) Received: from frontend1 ([10.202.2.160]) by compute5.internal (MEProxy); Wed, 24 Jan 2018 20:41:27 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sholland.org; h= cc:date:from:in-reply-to:message-id:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=LXzbNdM3VkMaIOG5E LxBk+dRJy/rUtamYLoQX0ZsKWA=; b=rJtW0vBbUAWM9Q2YMhv4LcnyQrKahHMmm 7bn1oY3EqHk4l1dVK1bTrWTcoN3gbqKyLt48eaiQYSTgBUFpl8wFheqx+OYjZLsO /P6VPP+SpRRnFyXe+SiXLEWsjuTDUDWOUJK2l8KHi/inumRR9b4WIDcvoJqsD/mY QojYzsw7FdYbEjlxeGSjwoxECHL8aB6ia+iIBMDeRSqKVTL2UhEX1Ot0P63+b3rQ oqbsk3xfYqA4fa4UpthR+dUlGolNWjUw/kKFpX147jshuXi/mmbw8xcwVUH8nRf8 laRYTOzuit6TB1G0nYBvbVOaaKcWrfmd0Ld6pk5ssw3wJ0wDBzvIg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; bh=LXzbNdM3VkMaIOG5ELxBk+dRJy/rUtamYLoQX0ZsKWA=; b=B2Dg8On5 Egcun66+9rNiVauiNNfAkMhOaHXKKDnAdSL07NQS0oSKazcEowDp1YPasCMN5trg Yr52RM12dsJD/3ZllSTpekoWLpN3Ia9MesSghgDkKRyv7nPtGnbpXQaFIRWqj0pB +7Vb37qOcJ4zCB28ZevytzcfbMfAS1HSj1TVqJr+prrD03n6PY0rcUFVkFQyKqFN J9YP5oQnjDswfzsXclT9e2n6AVdB3yGesI8chDeXcV73xK/EweKTaSRzkBexSlG8 0xBLMrbYhsan3WtVm2OZBPaGk6XmqC7DmpWrRFTYA2DF8cSC6ns+3momqltYdglQ bPfom45ERgfIqA== X-ME-Sender: Received: from indium.zzz.sholland.net (unknown [99.198.199.144]) by mail.messagingengine.com (Postfix) with ESMTPA id D28A37E4C6; Wed, 24 Jan 2018 20:41:25 -0500 (EST) From: Samuel Holland To: linux-kernel@vger.kernel.org, Greg Kroah-Hartman Cc: coreboot@coreboot.org, Thierry Escande , Wei-Ning Huang , Julius Werner , Dmitry Torokhov , Guenter Roeck , Samuel Holland Subject: [PATCH 3/5] firmware: vpd: Probe via coreboot bus Date: Wed, 24 Jan 2018 19:41:18 -0600 Message-Id: <20180125014120.20851-4-samuel@sholland.org> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20180125014120.20851-1-samuel@sholland.org> References: <20180125014120.20851-1-samuel@sholland.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Remove the ad-hoc coreboot table search. Now the driver will only be probed when the necessary coreboot table entry has already been found. Furthermore, since the coreboot bus takes care of creating the device, a separate platform device is no longer needed. Signed-off-by: Samuel Holland --- drivers/firmware/google/vpd.c | 43 ++++++++++++------------------------------- 1 file changed, 12 insertions(+), 31 deletions(-) diff --git a/drivers/firmware/google/vpd.c b/drivers/firmware/google/vpd.c index e4b40f2b4627..e9db895916c3 100644 --- a/drivers/firmware/google/vpd.c +++ b/drivers/firmware/google/vpd.c @@ -286,20 +286,15 @@ static int vpd_sections_init(phys_addr_t physaddr) return 0; } -static int vpd_probe(struct platform_device *pdev) +static int vpd_probe(struct coreboot_device *dev) { int ret; - struct lb_cbmem_ref entry; - - ret = coreboot_table_find(CB_TAG_VPD, &entry, sizeof(entry)); - if (ret) - return ret; vpd_kobj = kobject_create_and_add("vpd", firmware_kobj); if (!vpd_kobj) return -ENOMEM; - ret = vpd_sections_init(entry.cbmem_addr); + ret = vpd_sections_init(dev->cbmem_ref.cbmem_addr); if (ret) { kobject_put(vpd_kobj); return ret; @@ -308,7 +303,7 @@ static int vpd_probe(struct platform_device *pdev) return 0; } -static int vpd_remove(struct platform_device *pdev) +static int vpd_remove(struct coreboot_device *dev) { vpd_section_destroy(&ro_vpd); vpd_section_destroy(&rw_vpd); @@ -318,41 +313,27 @@ static int vpd_remove(struct platform_device *pdev) return 0; } -static struct platform_driver vpd_driver = { +static struct coreboot_driver vpd_driver = { .probe = vpd_probe, .remove = vpd_remove, - .driver = { + .drv = { .name = "vpd", }, + .tag = CB_TAG_VPD, }; -static struct platform_device *vpd_pdev; - -static int __init vpd_platform_init(void) +static int __init coreboot_vpd_init(void) { - int ret; - - ret = platform_driver_register(&vpd_driver); - if (ret) - return ret; - - vpd_pdev = platform_device_register_simple("vpd", -1, NULL, 0); - if (IS_ERR(vpd_pdev)) { - platform_driver_unregister(&vpd_driver); - return PTR_ERR(vpd_pdev); - } - - return 0; + return coreboot_driver_register(&vpd_driver); } -static void __exit vpd_platform_exit(void) +static void __exit coreboot_vpd_exit(void) { - platform_device_unregister(vpd_pdev); - platform_driver_unregister(&vpd_driver); + coreboot_driver_unregister(&vpd_driver); } -module_init(vpd_platform_init); -module_exit(vpd_platform_exit); +module_init(coreboot_vpd_init); +module_exit(coreboot_vpd_exit); MODULE_AUTHOR("Google, Inc."); MODULE_LICENSE("GPL"); -- 2.13.6