From patchwork Thu Nov 19 08:57:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 11916875 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=-17.2 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 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 AE86BC2D0E4 for ; Thu, 19 Nov 2020 08:57:44 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (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 30E3524698 for ; Thu, 19 Nov 2020 08:57:44 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="ZMMybzGr" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 30E3524698 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from list by lists.xenproject.org with outflank-mailman.30476.60504 (Exim 4.92) (envelope-from ) id 1kffky-0006bR-AR; Thu, 19 Nov 2020 08:57:32 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 30476.60504; Thu, 19 Nov 2020 08:57:32 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kffky-0006bK-7L; Thu, 19 Nov 2020 08:57:32 +0000 Received: by outflank-mailman (input) for mailman id 30476; Thu, 19 Nov 2020 08:57:31 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kffkw-0006bC-VJ for xen-devel@lists.xenproject.org; Thu, 19 Nov 2020 08:57:30 +0000 Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 4d9b6822-4248-42c4-86e4-73d5d80acc65; Thu, 19 Nov 2020 08:57:27 +0000 (UTC) Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 51832AD31; Thu, 19 Nov 2020 08:57:26 +0000 (UTC) Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kffkw-0006bC-VJ for xen-devel@lists.xenproject.org; Thu, 19 Nov 2020 08:57:30 +0000 X-Inumbo-ID: 4d9b6822-4248-42c4-86e4-73d5d80acc65 Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 4d9b6822-4248-42c4-86e4-73d5d80acc65; Thu, 19 Nov 2020 08:57:27 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1605776246; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8Guw0AQQoq43qB5JEnxwYm1Qf9NsGyB6m+V3JYlUK1A=; b=ZMMybzGrav5v7RcHRWg0QW5hjxpgBcsp+mFzm3EBHU6B217u4x5piBxrA/s716qDYIjQM8 NBhn8c+0GRSL4miKYo8Koe94RllmlxYwA8g/xOu/uocca6btofzGY+10qlfwTSiwqkD8rN rOQAuTawWpIlKZiFLgvKK1Knkg4+qnQ= Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 51832AD31; Thu, 19 Nov 2020 08:57:26 +0000 (UTC) Subject: [PATCH 1/2] ns16550: "com=" command line options are x86-specific From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , George Dunlap , Ian Jackson , Julien Grall , Stefano Stabellini , Wei Liu References: Message-ID: <90d680ae-c0b9-ec4c-ebd3-eea26d286cac@suse.com> Date: Thu, 19 Nov 2020 09:57:25 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.4.3 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Pure code motion (plus the addition of "#ifdef CONFIG_X86); no functional change intended. Reported-by: Julien Grall Signed-off-by: Jan Beulich --- a/docs/misc/xen-command-line.pandoc +++ b/docs/misc/xen-command-line.pandoc @@ -318,8 +318,8 @@ Interrupts. Specifying zero disables CM Flag to indicate whether to probe for a CMOS Real Time Clock irrespective of ACPI indicating none to be there. -### com1 -### com2 +### com1 (x86) +### com2 (x86) > `= [/][,[DPS][,[|pci|amt][,[|msi][,[][,[]]]]]]` Both option `com1` and `com2` follow the same format. --- a/xen/drivers/char/ns16550.c +++ b/xen/drivers/char/ns16550.c @@ -31,38 +31,6 @@ #include #endif -/* - * Configure serial port with a string: - * [/][,DPS[,[,[,[,]]]]]. - * The tail of the string can be omitted if platform defaults are sufficient. - * If the baud rate is pre-configured, perhaps by a bootloader, then 'auto' - * can be specified in place of a numeric baud rate. Polled mode is specified - * by requesting irq 0. - */ -static char __initdata opt_com1[128] = ""; -static char __initdata opt_com2[128] = ""; -string_param("com1", opt_com1); -string_param("com2", opt_com2); - -enum serial_param_type { - baud, - clock_hz, - data_bits, - io_base, - irq, - parity, - reg_shift, - reg_width, - stop_bits, -#ifdef CONFIG_HAS_PCI - bridge_bdf, - device, - port_bdf, -#endif - /* List all parameters before this line. */ - num_serial_params -}; - static struct ns16550 { int baud, clock_hz, data_bits, parity, stop_bits, fifo_size, irq; u64 io_base; /* I/O port or memory-mapped I/O address. */ @@ -98,32 +66,6 @@ static struct ns16550 { #endif } ns16550_com[2] = { { 0 } }; -struct serial_param_var { - char name[12]; - enum serial_param_type type; -}; - -/* - * Enum struct keeping a table of all accepted parameter names for parsing - * com_console_options for serial port com1 and com2. - */ -static const struct serial_param_var __initconst sp_vars[] = { - {"baud", baud}, - {"clock-hz", clock_hz}, - {"data-bits", data_bits}, - {"io-base", io_base}, - {"irq", irq}, - {"parity", parity}, - {"reg-shift", reg_shift}, - {"reg-width", reg_width}, - {"stop-bits", stop_bits}, -#ifdef CONFIG_HAS_PCI - {"bridge", bridge_bdf}, - {"dev", device}, - {"port", port_bdf}, -#endif -}; - #ifdef CONFIG_HAS_PCI struct ns16550_config { u16 vendor_id; @@ -980,6 +922,19 @@ static struct uart_driver __read_mostly #endif }; +static void ns16550_init_common(struct ns16550 *uart) +{ + uart->clock_hz = UART_CLOCK_HZ; + + /* Default is no transmit FIFO. */ + uart->fifo_size = 1; + + /* Default lsr_mask = UART_LSR_THRE */ + uart->lsr_mask = UART_LSR_THRE; +} + +#ifdef CONFIG_X86 + static int __init parse_parity_char(int c) { switch ( c ) @@ -1214,6 +1169,64 @@ pci_uart_config(struct ns16550 *uart, bo #endif /* + * Configure serial port with a string: + * [/][,DPS[,[,[,[,]]]]]. + * The tail of the string can be omitted if platform defaults are sufficient. + * If the baud rate is pre-configured, perhaps by a bootloader, then 'auto' + * can be specified in place of a numeric baud rate. Polled mode is specified + * by requesting irq 0. + */ +static char __initdata opt_com1[128] = ""; +static char __initdata opt_com2[128] = ""; +string_param("com1", opt_com1); +string_param("com2", opt_com2); + +enum serial_param_type { + baud, + clock_hz, + data_bits, + io_base, + irq, + parity, + reg_shift, + reg_width, + stop_bits, +#ifdef CONFIG_HAS_PCI + bridge_bdf, + device, + port_bdf, +#endif + /* List all parameters before this line. */ + num_serial_params +}; + +struct serial_param_var { + char name[12]; + enum serial_param_type type; +}; + +/* + * Enum struct keeping a table of all accepted parameter names for parsing + * com_console_options for serial port com1 and com2. + */ +static const struct serial_param_var __initconst sp_vars[] = { + {"baud", baud}, + {"clock-hz", clock_hz}, + {"data-bits", data_bits}, + {"io-base", io_base}, + {"irq", irq}, + {"parity", parity}, + {"reg-shift", reg_shift}, + {"reg-width", reg_width}, + {"stop-bits", stop_bits}, +#ifdef CONFIG_HAS_PCI + {"bridge", bridge_bdf}, + {"dev", device}, + {"port", port_bdf}, +#endif +}; + +/* * Used to parse name value pairs and return which value it is along with * pointer for the extracted value. */ @@ -1501,17 +1514,6 @@ static void __init ns16550_parse_port_co serial_register_uart(uart - ns16550_com, &ns16550_driver, uart); } -static void ns16550_init_common(struct ns16550 *uart) -{ - uart->clock_hz = UART_CLOCK_HZ; - - /* Default is no transmit FIFO. */ - uart->fifo_size = 1; - - /* Default lsr_mask = UART_LSR_THRE */ - uart->lsr_mask = UART_LSR_THRE; -} - void __init ns16550_init(int index, struct ns16550_defaults *defaults) { struct ns16550 *uart; @@ -1538,6 +1540,8 @@ void __init ns16550_init(int index, stru ns16550_parse_port_config(uart, (index == 0) ? opt_com1 : opt_com2); } +#endif /* CONFIG_X86 */ + #ifdef CONFIG_HAS_DEVICE_TREE static int __init ns16550_uart_dt_init(struct dt_device_node *dev, const void *data) From patchwork Thu Nov 19 08:57:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 11916877 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=-17.2 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 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 CD0ECC388F9 for ; Thu, 19 Nov 2020 08:58:04 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (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 5E2532158C for ; Thu, 19 Nov 2020 08:58:04 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="f08MdXrg" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5E2532158C Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from list by lists.xenproject.org with outflank-mailman.30481.60517 (Exim 4.92) (envelope-from ) id 1kfflL-0006iP-Jh; Thu, 19 Nov 2020 08:57:55 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 30481.60517; Thu, 19 Nov 2020 08:57:55 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kfflL-0006iH-Gj; Thu, 19 Nov 2020 08:57:55 +0000 Received: by outflank-mailman (input) for mailman id 30481; Thu, 19 Nov 2020 08:57:54 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kfflK-0006hJ-Bp for xen-devel@lists.xenproject.org; Thu, 19 Nov 2020 08:57:54 +0000 Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 39181b60-33e7-40bd-9e5d-fe6ef796f688; Thu, 19 Nov 2020 08:57:53 +0000 (UTC) Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 8CFAEAD2F; Thu, 19 Nov 2020 08:57:52 +0000 (UTC) Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kfflK-0006hJ-Bp for xen-devel@lists.xenproject.org; Thu, 19 Nov 2020 08:57:54 +0000 X-Inumbo-ID: 39181b60-33e7-40bd-9e5d-fe6ef796f688 Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 39181b60-33e7-40bd-9e5d-fe6ef796f688; Thu, 19 Nov 2020 08:57:53 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1605776272; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=crdjdM7DkXckInu6b41yqI+iMgZG4mEeVJLCAwg6n94=; b=f08MdXrgrVvmsx1/OmMAn7evZs1MuyGyfJ2FgL2Ow/nYJmYC0/CfEdCIfOgIw8D4sSMq1T nI422J0yc8a/yHtyRB5EtmMebeNakNMFzT+9f80qOmpsx/RSWWVJi98tImcT9kN40fu/uj VMwDDJB4lthuxvZcuiXOpDNROSB5OAg= Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 8CFAEAD2F; Thu, 19 Nov 2020 08:57:52 +0000 (UTC) Subject: [PATCH 2/2] ns16550: drop stray "#ifdef CONFIG_HAS_PCI" From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , George Dunlap , Ian Jackson , Julien Grall , Stefano Stabellini , Wei Liu References: Message-ID: Date: Thu, 19 Nov 2020 09:57:52 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.4.3 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US There's no point wrapping the function invocation when - the function body is already suitably wrapped, - the function itself is unconditionally available. Reported-by: Julien Grall Signed-off-by: Jan Beulich --- a/xen/drivers/char/ns16550.c +++ b/xen/drivers/char/ns16550.c @@ -968,9 +968,7 @@ static int __init check_existence(struct return 1; /* Everything is MMIO */ #endif -#ifdef CONFIG_HAS_PCI pci_serial_early_init(uart); -#endif /* * Do a simple existence test first; if we fail this,