From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 86504C433ED for ; Fri, 9 Apr 2021 19:26:30 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E6948610C8 for ; Fri, 9 Apr 2021 19:26:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E6948610C8 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=equinix.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Content-ID:In-Reply-To:References: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=YDpIaEov+u3Cu3Fc7wY2R2dfw5pxYG/9xKGUYDitj2Q=; b=Kn5Eb6+pQfMQiIQlPtj07ZnPJ AWwt6gw4mR06Xv1RmlMMdEXkfE0IyFJD20ahMqLHZsbsMrMuc7jvUpI/W5eaIDIubbcRKh+twr4Bu 5bFAnpmrCEC1RAfOKv++D0lcRoWhOBk8bL5nr/Ey1CwtlF3TWJLkYd5qDNUWey8hVzKHrWcMqR7J4 NaQxJcHAoyF5eeTsFbRM3dGFe4Y/Puw6NeV3/qRzzUp/k/FhzGXL2gZ/IHw9kr7mzK4tNp4qMvd7c Y7e6NXbdlAXC+WMtGTRx9smZEuzdDOzOaqZcYzLCV1sO8yzKQsnIrc6i/Ydpx1InJ/wDjD+kWNI82 UaNfTbHcg==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lUwjC-001Pid-67; Fri, 09 Apr 2021 19:23:38 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lUwhl-001Pcw-OE for linux-arm-kernel@desiato.infradead.org; Fri, 09 Apr 2021 19:22:20 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=MIME-Version: Content-Transfer-Encoding:Content-ID:Content-Type:In-Reply-To:References: Message-ID:Date:Subject:CC:To:From:Sender:Reply-To:Content-Description; bh=xI+8E+S8M5qGrDi/51B1D8E0Sh4qglFIhdAdQ/sJ1Fw=; b=QNbBo9KQtiJNNSnY81KWCaoLOM oXO4iop2XM57uiuXEy/z8soGKKSeJFHJw4mx7gIQdU8defkb6NWLaqU+Dh93ak3gb1Y0E8DPsO51t pD3k2i05NJdE84hWbfeJg5ME4gx3crkr0aaFPhm+lVF3Sw74bD1wglyN+A1991QK6DVbmZhGcBRIc otmlhkUfUwjZzN7DTkWJgQU1Lb8ulNXd74KyWRiSVyMm+W1YeUoR7xwA1mj7HqBAQcpz+Zds6t+AQ AKh35tRGHwJRM88tPPK0KVCaOsPsGf5b3WN6LBKTQGBfrURMZXxKZFj0Cq9IhtkZ0eavnTTJ4ewID hyxiK/1Q==; Received: from mx0a-00268f01.pphosted.com ([148.163.148.236]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lUwhi-004l3f-24 for linux-arm-kernel@lists.infradead.org; Fri, 09 Apr 2021 19:22:07 +0000 Received: from pps.filterd (m0105196.ppops.net [127.0.0.1]) by mx0a-00268f01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 139JDw8q015572; Fri, 9 Apr 2021 19:21:38 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2043.outbound.protection.outlook.com [104.47.66.43]) by mx0a-00268f01.pphosted.com with ESMTP id 37ts0e0v0y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 09 Apr 2021 19:21:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TVFErZcovNmJgSHGsUPsc08r+sSe05ms77VUkTEVWNhim4aSXdQucUJb2j2YG3i5RqKxeBLyO79Jk0k1+5duxcFO5S3BrwCP/+VPneHhBpXid8g5pso88psfsJvenG8Fc/NeSAYN+pJbjmqXb8j83molEuM9o28pE5X2GxtlYm1Aktm305zoXCvUBc5J1BdbXlYxfMN1GdO6rn/pyUT7WR7bm6pQqV1vEMYdU+MJ+FAA0fxOfpxsfnUaGUe6fu91ESVsnH5/fQc410+3pk31cglFRH+5GinnxsGXXimZjcjjerg/rvoa4TZh8Z3sMk44vj46BCQtf7sVaOTazW+nTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xI+8E+S8M5qGrDi/51B1D8E0Sh4qglFIhdAdQ/sJ1Fw=; b=DHzv0mRVCjjUQ1+7pfI98pnlJJsQoi0W5HOt3A3ckKULAbPZrbSy6OC/HOVMMxd0ZhtZSeX+kYULd2X59AAmekgEVvYIGoYq6msOjzEkD4MTw8DOE4mEwgVgQqrO5Ax7k8ml7W9B8QJrwrPZBPNgb+uqGEjFwicrd6n9Jv4WKRbEYlortxQPSKLvrNixkPKjtd8LEbJ7oxuOASNEvZTWL8eOcn6J2pThZ4BZbNR+JmmQ9gFlwPFWK1A7yZWq72xonZ3/pHC1En0TFoD0Q7Ki/2xrPREWdMKBenozBhfTJeb9pMWpT3rzlI8zxtEMBuMwDj1biE33tWKpiX79ISEHxQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=equinix.com; dmarc=pass action=none header.from=equinix.com; dkim=pass header.d=equinix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=equinixinc.onmicrosoft.com; s=selector2-equinixinc-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xI+8E+S8M5qGrDi/51B1D8E0Sh4qglFIhdAdQ/sJ1Fw=; b=C9J1KG4H6oJ9Glk4Z0LQAd+Dja1gEEPxNcM2MjhTCQyXqK7D4t1gsphUNw3LiyRI6VxlSdvVPuuwmewYE59KqSPWp16p6DbKbzhE4oi31eYYaGW7UqnlWsbtI3LkRUtMf1RlNbX3/8mBDF1GdF88OJrP+KguRw4e3O+2kQBaSlE= Received: from DM5PR04MB0762.namprd04.prod.outlook.com (2603:10b6:3:f3::13) by DM5PR04MB0363.namprd04.prod.outlook.com (2603:10b6:3:aa::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.17; Fri, 9 Apr 2021 19:21:34 +0000 Received: from DM5PR04MB0762.namprd04.prod.outlook.com ([fe80::4c98:aeb:87a8:13ad]) by DM5PR04MB0762.namprd04.prod.outlook.com ([fe80::4c98:aeb:87a8:13ad%5]) with mapi id 15.20.4020.017; Fri, 9 Apr 2021 19:21:34 +0000 From: Zev Weiss To: Andrew Jeffery CC: "openipmi-developer@lists.sourceforge.net" , "openbmc@lists.ozlabs.org" , Corey Minyard , "devicetree@vger.kernel.org" , Ryan Chen , Tomer Maimon , "linux-aspeed@lists.ozlabs.org" , Avi Fishman , Patrick Venture , Linus Walleij , "linux-kernel@vger.kernel.org" , Tali Perry , "linux-gpio@vger.kernel.org" , Rob Herring , Lee Jones , "Chia-Wei, Wang" , "linux-arm-kernel@lists.infradead.org" , Benjamin Fair Subject: Re: [PATCH v2 09/21] ipmi: kcs_bmc: Split out kcs_bmc_cdev_ipmi Thread-Topic: [PATCH v2 09/21] ipmi: kcs_bmc: Split out kcs_bmc_cdev_ipmi Thread-Index: AQHXLXWNu7Ns/9FES0+M3VsE9hbh+g== Date: Fri, 9 Apr 2021 19:21:34 +0000 Message-ID: References: <20210319062752.145730-1-andrew@aj.id.au> <20210319062752.145730-9-andrew@aj.id.au> <6aa7c000-da09-4058-96b4-f330193c7fc6@www.fastmail.com> In-Reply-To: <6aa7c000-da09-4058-96b4-f330193c7fc6@www.fastmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: aj.id.au; dkim=none (message not signed) header.d=none;aj.id.au; dmarc=none action=none header.from=equinix.com; x-originating-ip: [24.181.166.149] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b78edeb7-6517-4bb0-96f7-08d8fb8cb043 x-ms-traffictypediagnostic: DM5PR04MB0363: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6108; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: sWApSuL5aOLs/5LaEo9UuBeGrVVHqkt8GsOuC+AOEjq5gD5/WaSSwgmrSdfckR4FQ3JAW9ldI/msAQvFrxvm9kFkWmhoetWnnxyT5edrVzuMmrZvUPAEbXIcMr7rpfzGSWpE1PSCHnukP1OsBUWwBslg8wSn+VLuaXeJrv9MbMXOM8swHygSSbLl2PA2bVR6vphyry/KC7qdvf4AeotYsaoTNLXO+qGSu6etXHojWqASi+DZpdVREvVp38FO/iZNOxIoyrI0InVfECmt6p/VLmR9uoSFtSiuzQ8yt/f4lytwUWB03eEk9UmqHQnA1jzmKmCPegYTHdoCeyYrFh4NcJtYm21Lwzo3+VTJeh8XC2+/nSP6qkfiu9aqO00XG9CaLnXEK3jY3jt56KQGnu/zQ/RnEr6WsQmDHXymgg6O8cfc/B2meAWOWmp1PbXKD1RFMUGqvjlVd3rPTXI+ma53MbmRWALVBsPNgVlzbLUzsH91yCo77+pIltpcTJx8RmztDxjrGFYVkvDQWePlbrn5E45rrbTmQHVurakst272VXi0mlE0vE93CkBySrGbQmvyVuQB9SG9Z8WlwYojs2jIQ2WLybvX3T5JogimOF08xmDexs7/LTF+tUoYCWJOLGTxmNRNhK5gpt5VOLu1Kf+lCnk0d/Z93NwMjEEDJi0HyQE= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM5PR04MB0762.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(7916004)(4636009)(39850400004)(396003)(366004)(376002)(136003)(346002)(2906002)(9686003)(4326008)(8676002)(6916009)(76116006)(6512007)(6486002)(26005)(478600001)(6506007)(54906003)(316002)(66556008)(64756008)(66446008)(66476007)(86362001)(7416002)(38100700001)(5660300002)(8936002)(71200400001)(83380400001)(33716001)(66946007)(186003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?5RziUrrUH7yddksiCh537+Jl/q7G5V+0znAhSki2qtDWWN/Sp+d40hO4O18S?= =?us-ascii?Q?QBVeTmyNASBRdDuyzfLO33fKjXdCXKhQfFpJZ1/xeOA7E/z71SJiOx/ZAv+i?= =?us-ascii?Q?jRiE2XTfOdXgODtoj6Dydu2okx7tR9zWulSLptdo/HiYsD76mZTr2QkePyUf?= =?us-ascii?Q?Fs/DdLVqPOBpngQ1FY88hGYn57vrVLL6db3ONTt+SQye0lbxqqO7DvAjiqoW?= =?us-ascii?Q?3xOTDtK32DAOA5FifCNMF3KTy9pgeS6KjwO+xJI1ysf/4EEoJJfFKhgAAuo0?= =?us-ascii?Q?8YGMtVa+eSSs+OTUg4H3ncoC7nOB9EXWTUvlPkVQhWujhFy1zMew9Sbwornj?= =?us-ascii?Q?T/v8FTpmxA5356Lxn9sE4xCROmr4yWnHJQxdyp06fNVU9xfur9zJ517NDP4/?= =?us-ascii?Q?p9iTwPw/nhPOCtgtq1JsDuSOBshG6QuqjUNqvTqgg2MKV98gPpu9HtngBQhq?= =?us-ascii?Q?6DAYIzjOcx35WEX4zgrcH5K2LtMU6O1UTIocReb4VGOBDYIeIsPYBhmiTO3Q?= =?us-ascii?Q?hyGzo5yulnb6jguCig0kBW1Z2kTK/VpNu0vIyt4IfNAZRl6i3xQWwTdqlp2m?= =?us-ascii?Q?0yeJUnu03a2Mmbf8DdL4NyFITSl+CzRpOxuBCqaoS9i8rwCAUYIVuu0j6Plx?= =?us-ascii?Q?0h5bMSx3HNyvxj6PczhYG1AJfNxXA8maygNynCxhGRiRi8sBizxSJPSDPNm7?= =?us-ascii?Q?QvP6bfliJDWERZ4Ywg9yA6QZRrVQ01XXRH8sSUNzSkyqw2pGTNkMgYSX1d28?= =?us-ascii?Q?XkoLVpIYH3fi2MphuzTzW11Nk+fKBKAmTJSZOFQpLpirhBkYbdA9DOs8Y7Ac?= =?us-ascii?Q?m+Usy66WTDDxOcSSTW10eLwacmdHFxddACOqdunJdF5R/Am2w3CPal+s8tCD?= =?us-ascii?Q?KOv1DKXZHcSTldSZ2KmPTJqzZMsMGv0D39fUVFmYb3VBfhgyV5Z+pntYTVdL?= =?us-ascii?Q?2XPi9uJz/m0ZzNLwJCoG08cUQ0L8lFe4Fy7H/s8nUKr2UkCMTS6TAY18Yd0S?= =?us-ascii?Q?Kw5hBwtHfa4eq6aMVwyFci8Z8e/wy4UN1Y2c4ZZrsI6CwoFCfrb2REz1Xxob?= =?us-ascii?Q?FkPK189uEdy//MBKL3cm21GDqJtHygduiOBfQAZkqv6zCI7sjeCCuHEdsCX5?= =?us-ascii?Q?OhgB1eqitnY6gwhRVAaWIbK6Yfi6UjpJRll7mTmZXGM71rLFQxn4Dd20DgV9?= =?us-ascii?Q?Vwwi729XGJr7bdcuP1UWZWrr6g/ZJnzIuuAGm8FYpUKU0xV8NvQelxiqvIbE?= =?us-ascii?Q?elNItWRpp0I1iq32AcG0pV85utunrcM4TUFmAybHRnRuLTne4Y0myBT+SwhQ?= =?us-ascii?Q?f7ToOZ5ElIYtFfj7UYxobajpG5/nEwaeIamuvWNsmOx4bw=3D=3D?= x-ms-exchange-transport-forked: True Content-ID: MIME-Version: 1.0 X-OriginatorOrg: equinix.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM5PR04MB0762.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b78edeb7-6517-4bb0-96f7-08d8fb8cb043 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Apr 2021 19:21:34.3348 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72adb271-2fc7-4afe-a5ee-9de6a59f6bfb X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: bRtgpqSObKy3Lc2ce09KZ4+HBPby/itdP3kOpjZ6q8jQ20OzNHFku6YqW29SNmerTwdBmt20+lmeKZbxRRfuyg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR04MB0363 X-Proofpoint-ORIG-GUID: 1G8bx9LvoGyVfGnvHFLVJZ-QsxY7yCAi X-Proofpoint-GUID: 1G8bx9LvoGyVfGnvHFLVJZ-QsxY7yCAi X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391, 18.0.761 definitions=2021-04-09_07:2021-04-09, 2021-04-09 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 phishscore=0 bulkscore=0 spamscore=0 priorityscore=1501 suspectscore=0 adultscore=0 clxscore=1015 malwarescore=0 impostorscore=0 mlxlogscore=999 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104090138 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210409_122206_178314_74E14677 X-CRM114-Status: GOOD ( 17.16 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Fri, Apr 09, 2021 at 12:48:21AM CDT, Andrew Jeffery wrote: > > >On Fri, 9 Apr 2021, at 13:26, Zev Weiss wrote: >> On Fri, Mar 19, 2021 at 01:27:40AM CDT, Andrew Jeffery wrote: >> >Take steps towards defining a coherent API to separate the KCS device >> >drivers from the userspace interface. Decreasing the coupling will >> >improve the separation of concerns and enable the introduction of >> >alternative userspace interfaces. >> > >> >For now, simply split the chardev logic out to a separate file. The code >> >continues to build into the same module. >> > >> >Signed-off-by: Andrew Jeffery >> >--- >> > drivers/char/ipmi/Makefile | 2 +- >> > drivers/char/ipmi/kcs_bmc.c | 423 +------------------------ >> > drivers/char/ipmi/kcs_bmc.h | 10 +- >> > drivers/char/ipmi/kcs_bmc_cdev_ipmi.c | 428 ++++++++++++++++++++++++++ >> > 4 files changed, 451 insertions(+), 412 deletions(-) >> > create mode 100644 drivers/char/ipmi/kcs_bmc_cdev_ipmi.c >> > >> >diff --git a/drivers/char/ipmi/Makefile b/drivers/char/ipmi/Makefile >> >index 0822adc2ec41..a302bc865370 100644 >> >--- a/drivers/char/ipmi/Makefile >> >+++ b/drivers/char/ipmi/Makefile >> >@@ -22,7 +22,7 @@ obj-$(CONFIG_IPMI_SSIF) += ipmi_ssif.o >> > obj-$(CONFIG_IPMI_POWERNV) += ipmi_powernv.o >> > obj-$(CONFIG_IPMI_WATCHDOG) += ipmi_watchdog.o >> > obj-$(CONFIG_IPMI_POWEROFF) += ipmi_poweroff.o >> >-obj-$(CONFIG_IPMI_KCS_BMC) += kcs_bmc.o >> >+obj-$(CONFIG_IPMI_KCS_BMC) += kcs_bmc.o kcs_bmc_cdev_ipmi.o >> > obj-$(CONFIG_ASPEED_BT_IPMI_BMC) += bt-bmc.o >> > obj-$(CONFIG_ASPEED_KCS_IPMI_BMC) += kcs_bmc_aspeed.o >> > obj-$(CONFIG_NPCM7XX_KCS_IPMI_BMC) += kcs_bmc_npcm7xx.o >> >diff --git a/drivers/char/ipmi/kcs_bmc.c b/drivers/char/ipmi/kcs_bmc.c >> >index c4336c1f2d6d..ef5c48ffe74a 100644 >> >--- a/drivers/char/ipmi/kcs_bmc.c >> >+++ b/drivers/char/ipmi/kcs_bmc.c >> >@@ -3,446 +3,51 @@ >> > * Copyright (c) 2015-2018, Intel Corporation. >> > */ >> > >> >-#define pr_fmt(fmt) "kcs-bmc: " fmt >> >- >> >-#include >> >-#include >> >-#include >> > #include >> >-#include >> >-#include >> >-#include >> >-#include >> > >> > #include "kcs_bmc.h" >> > >> >-#define DEVICE_NAME "ipmi-kcs" >> >- >> >-#define KCS_MSG_BUFSIZ 1000 >> >- >> >-#define KCS_ZERO_DATA 0 >> >- >> >- >> >-/* IPMI 2.0 - Table 9-1, KCS Interface Status Register Bits */ >> >-#define KCS_STATUS_STATE(state) (state << 6) >> >-#define KCS_STATUS_STATE_MASK GENMASK(7, 6) >> >-#define KCS_STATUS_CMD_DAT BIT(3) >> >-#define KCS_STATUS_SMS_ATN BIT(2) >> >-#define KCS_STATUS_IBF BIT(1) >> >-#define KCS_STATUS_OBF BIT(0) >> >- >> >-/* IPMI 2.0 - Table 9-2, KCS Interface State Bits */ >> >-enum kcs_states { >> >- IDLE_STATE = 0, >> >- READ_STATE = 1, >> >- WRITE_STATE = 2, >> >- ERROR_STATE = 3, >> >-}; >> >- >> >-/* IPMI 2.0 - Table 9-3, KCS Interface Control Codes */ >> >-#define KCS_CMD_GET_STATUS_ABORT 0x60 >> >-#define KCS_CMD_WRITE_START 0x61 >> >-#define KCS_CMD_WRITE_END 0x62 >> >-#define KCS_CMD_READ_BYTE 0x68 >> >- >> >-static inline u8 kcs_bmc_read_data(struct kcs_bmc *kcs_bmc) >> >+u8 kcs_bmc_read_data(struct kcs_bmc *kcs_bmc) >> > { >> > return kcs_bmc->io_inputb(kcs_bmc, kcs_bmc->ioreg.idr); >> > } >> >+EXPORT_SYMBOL(kcs_bmc_read_data); >> > >> >-static inline void kcs_bmc_write_data(struct kcs_bmc *kcs_bmc, u8 data) >> >+void kcs_bmc_write_data(struct kcs_bmc *kcs_bmc, u8 data) >> > { >> > kcs_bmc->io_outputb(kcs_bmc, kcs_bmc->ioreg.odr, data); >> > } >> >+EXPORT_SYMBOL(kcs_bmc_write_data); >> > >> >-static inline u8 kcs_bmc_read_status(struct kcs_bmc *kcs_bmc) >> >+u8 kcs_bmc_read_status(struct kcs_bmc *kcs_bmc) >> > { >> > return kcs_bmc->io_inputb(kcs_bmc, kcs_bmc->ioreg.str); >> > } >> >+EXPORT_SYMBOL(kcs_bmc_read_status); >> > >> >-static inline void kcs_bmc_write_status(struct kcs_bmc *kcs_bmc, u8 data) >> >+void kcs_bmc_write_status(struct kcs_bmc *kcs_bmc, u8 data) >> > { >> > kcs_bmc->io_outputb(kcs_bmc, kcs_bmc->ioreg.str, data); >> > } >> >+EXPORT_SYMBOL(kcs_bmc_write_status); >> > >> >-static void kcs_bmc_update_status(struct kcs_bmc *kcs_bmc, u8 mask, u8 val) >> >+void kcs_bmc_update_status(struct kcs_bmc *kcs_bmc, u8 mask, u8 val) >> > { >> > kcs_bmc->io_updateb(kcs_bmc, kcs_bmc->ioreg.str, mask, val); >> > } >> >+EXPORT_SYMBOL(kcs_bmc_update_status); >> > >> >-static inline void set_state(struct kcs_bmc *kcs_bmc, u8 state) >> >-{ >> >- kcs_bmc_update_status(kcs_bmc, KCS_STATUS_STATE_MASK, >> >- KCS_STATUS_STATE(state)); >> >-} >> >- >> >-static void kcs_force_abort(struct kcs_bmc *kcs_bmc) >> >-{ >> >- set_state(kcs_bmc, ERROR_STATE); >> >- kcs_bmc_read_data(kcs_bmc); >> >- kcs_bmc_write_data(kcs_bmc, KCS_ZERO_DATA); >> >- >> >- kcs_bmc->phase = KCS_PHASE_ERROR; >> >- kcs_bmc->data_in_avail = false; >> >- kcs_bmc->data_in_idx = 0; >> >-} >> >- >> >-static void kcs_bmc_handle_data(struct kcs_bmc *kcs_bmc) >> >-{ >> >- u8 data; >> >- >> >- switch (kcs_bmc->phase) { >> >- case KCS_PHASE_WRITE_START: >> >- kcs_bmc->phase = KCS_PHASE_WRITE_DATA; >> >- fallthrough; >> >- >> >- case KCS_PHASE_WRITE_DATA: >> >- if (kcs_bmc->data_in_idx < KCS_MSG_BUFSIZ) { >> >- set_state(kcs_bmc, WRITE_STATE); >> >- kcs_bmc_write_data(kcs_bmc, KCS_ZERO_DATA); >> >- kcs_bmc->data_in[kcs_bmc->data_in_idx++] = >> >- kcs_bmc_read_data(kcs_bmc); >> >- } else { >> >- kcs_force_abort(kcs_bmc); >> >- kcs_bmc->error = KCS_LENGTH_ERROR; >> >- } >> >- break; >> >- >> >- case KCS_PHASE_WRITE_END_CMD: >> >- if (kcs_bmc->data_in_idx < KCS_MSG_BUFSIZ) { >> >- set_state(kcs_bmc, READ_STATE); >> >- kcs_bmc->data_in[kcs_bmc->data_in_idx++] = >> >- kcs_bmc_read_data(kcs_bmc); >> >- kcs_bmc->phase = KCS_PHASE_WRITE_DONE; >> >- kcs_bmc->data_in_avail = true; >> >- wake_up_interruptible(&kcs_bmc->queue); >> >- } else { >> >- kcs_force_abort(kcs_bmc); >> >- kcs_bmc->error = KCS_LENGTH_ERROR; >> >- } >> >- break; >> >- >> >- case KCS_PHASE_READ: >> >- if (kcs_bmc->data_out_idx == kcs_bmc->data_out_len) >> >- set_state(kcs_bmc, IDLE_STATE); >> >- >> >- data = kcs_bmc_read_data(kcs_bmc); >> >- if (data != KCS_CMD_READ_BYTE) { >> >- set_state(kcs_bmc, ERROR_STATE); >> >- kcs_bmc_write_data(kcs_bmc, KCS_ZERO_DATA); >> >- break; >> >- } >> >- >> >- if (kcs_bmc->data_out_idx == kcs_bmc->data_out_len) { >> >- kcs_bmc_write_data(kcs_bmc, KCS_ZERO_DATA); >> >- kcs_bmc->phase = KCS_PHASE_IDLE; >> >- break; >> >- } >> >- >> >- kcs_bmc_write_data(kcs_bmc, >> >- kcs_bmc->data_out[kcs_bmc->data_out_idx++]); >> >- break; >> >- >> >- case KCS_PHASE_ABORT_ERROR1: >> >- set_state(kcs_bmc, READ_STATE); >> >- kcs_bmc_read_data(kcs_bmc); >> >- kcs_bmc_write_data(kcs_bmc, kcs_bmc->error); >> >- kcs_bmc->phase = KCS_PHASE_ABORT_ERROR2; >> >- break; >> >- >> >- case KCS_PHASE_ABORT_ERROR2: >> >- set_state(kcs_bmc, IDLE_STATE); >> >- kcs_bmc_read_data(kcs_bmc); >> >- kcs_bmc_write_data(kcs_bmc, KCS_ZERO_DATA); >> >- kcs_bmc->phase = KCS_PHASE_IDLE; >> >- break; >> >- >> >- default: >> >- kcs_force_abort(kcs_bmc); >> >- break; >> >- } >> >-} >> >- >> >-static void kcs_bmc_handle_cmd(struct kcs_bmc *kcs_bmc) >> >-{ >> >- u8 cmd; >> >- >> >- set_state(kcs_bmc, WRITE_STATE); >> >- kcs_bmc_write_data(kcs_bmc, KCS_ZERO_DATA); >> >- >> >- cmd = kcs_bmc_read_data(kcs_bmc); >> >- switch (cmd) { >> >- case KCS_CMD_WRITE_START: >> >- kcs_bmc->phase = KCS_PHASE_WRITE_START; >> >- kcs_bmc->error = KCS_NO_ERROR; >> >- kcs_bmc->data_in_avail = false; >> >- kcs_bmc->data_in_idx = 0; >> >- break; >> >- >> >- case KCS_CMD_WRITE_END: >> >- if (kcs_bmc->phase != KCS_PHASE_WRITE_DATA) { >> >- kcs_force_abort(kcs_bmc); >> >- break; >> >- } >> >- >> >- kcs_bmc->phase = KCS_PHASE_WRITE_END_CMD; >> >- break; >> >- >> >- case KCS_CMD_GET_STATUS_ABORT: >> >- if (kcs_bmc->error == KCS_NO_ERROR) >> >- kcs_bmc->error = KCS_ABORTED_BY_COMMAND; >> >- >> >- kcs_bmc->phase = KCS_PHASE_ABORT_ERROR1; >> >- kcs_bmc->data_in_avail = false; >> >- kcs_bmc->data_in_idx = 0; >> >- break; >> >- >> >- default: >> >- kcs_force_abort(kcs_bmc); >> >- kcs_bmc->error = KCS_ILLEGAL_CONTROL_CODE; >> >- break; >> >- } >> >-} >> >- >> >+int kcs_bmc_ipmi_event(struct kcs_bmc *kcs_bmc); >> >> This declaration looks a bit out of place here; should it be in >> kcs_bmc.h instead? > >These are only temporary and get removed later on in the series after >some shuffling of the code. > Okay -- there were a couple others further down in the patch that I'm pretty sure were strictly redundant and could perhaps be cleaned up (kcs_bmc_ipmi_event and kcs_bmc_ipmi_alloc in kcs_bmc_cdev_ipmi.c), but aside from that: Reviewed-by: Zev Weiss _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel