Received: by 2002:a05:7412:40d:b0:e2:908c:2ebd with SMTP id 13csp568870rdf; Tue, 21 Nov 2023 09:57:39 -0800 (PST) X-Google-Smtp-Source: AGHT+IFkDqq//btz7IwYr3lttUBkiNN5nnC7fHsMILsQL9OXp76QoyrTwHsaGR9niaIqU/3Epy87 X-Received: by 2002:a05:6a21:1c87:b0:189:c852:561e with SMTP id sf7-20020a056a211c8700b00189c852561emr7904667pzb.1.1700589459621; Tue, 21 Nov 2023 09:57:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700589459; cv=none; d=google.com; s=arc-20160816; b=mTKUVb3aPG2ntZnwwpJOkUmiBXinwWAk9AqKDgoKgEeRsbB9Owak70xQsNIzNUiC5k v1KQozw0HZjdMaUUXI2FzOYHpCiKCgll8hBxwrubQmILonPTziXKQyMDql4u3viuuLf1 I/ECVP28gBKjhky4s1QzMNYiVMBpgRnEVBLemth8IVkFeRcODVRt2HBY+fYChzhNkfBW daf7AaluGmC+zJfAjDiE4RbnNaboQRHrfEWonZ+KMc9FAa4sJcv1WDN4Zz/0kPH+QNtz +NLIbcHeqI084us46Kl3Yv3cX6cr2CNVpWHUtpwfhepY8U4+7Fvso4ev6z7bL880D9q8 o4Fw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:organization:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=wCCv/3l6Kg5OcZHyranfcmq/Q4jAiFlXEa3AtqGJ/G0=; fh=F+/72WZh2iI3WXRJoTGDNrtPioTGM+NfsnC4rGns7CQ=; b=CNuuMTUmszHNLFCzaKTuQN3yuPRG0uazikClgLhgHMx72BzkyI+n5YmRoIOkAR6lTj LJcjfRxD+14Fu2nSejvnGzz4Prt1j0rsJ549/eccrHZjdG4u+jXf4/5ZvzlJ1doy7b4u fPdIYune3KR+K4oobZ4iQhmxtIy4IFi/u33JuWQiK9mO6JHqmCsX5MSB1h83iuyuwq9r zpJ6i2r1V+m2vwMNEyQS5NucL4oDflxSzk9MZZqaiXKzgq9EKron7y1vDt0nlZdNI5yt zLXH1DwU177FFM39fVJumL4r/NIuIAIOmzyGp4Qnv3pKk/D7H6cFUT7n0cbPYu5yPvEN uGpg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=dhszuT5b; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id h2-20020a056a00230200b006cbbd597aa1si2011581pfh.242.2023.11.21.09.57.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Nov 2023 09:57:39 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=dhszuT5b; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 6299B8083B11; Tue, 21 Nov 2023 09:57:14 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233912AbjKUR4v (ORCPT + 99 others); Tue, 21 Nov 2023 12:56:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39880 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231310AbjKUR4u (ORCPT ); Tue, 21 Nov 2023 12:56:50 -0500 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.20]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0962F18E; Tue, 21 Nov 2023 09:56:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1700589407; x=1732125407; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=2/r5O9ktbRjHHos+aJ5yv6QP/Ema933SZY47PqTAdhM=; b=dhszuT5bveA8GlC+AZJUPYnOFeuWaFObdzngxxxnYCo/gqi6CJdO61fN Pheux+uRRM58BsBL987var1Pi4PSQEhdpdZeIH/RmEj8JJhAiK1smxLdM aoj44Rc6heylnevq2dcjFDuss98fFzMb8yrYHnodryU7Ww03OzpGSI4TB 2kP7vAyGmc36Lled+LiprSaXUBm5sbI4JqL4iY93XMmIxeXBjCEFAZkJ1 ZYvVwnTAPTmJOttvJuPxO+gBCoesq607m8j+6NeBR3oLfyClAWyJ/E/wE fwm4hstnLTvglkwtrCVGPmr19YL8Zb9Hl+SfbpQ7PZy/DYLq5HQm1kC4J g==; X-IronPort-AV: E=McAfee;i="6600,9927,10901"; a="382289970" X-IronPort-AV: E=Sophos;i="6.04,216,1695711600"; d="scan'208";a="382289970" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Nov 2023 09:56:46 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10901"; a="766716011" X-IronPort-AV: E=Sophos;i="6.04,216,1695711600"; d="scan'208";a="766716011" Received: from smile.fi.intel.com ([10.237.72.54]) by orsmga002.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Nov 2023 09:56:42 -0800 Received: from andy by smile.fi.intel.com with local (Exim 4.97) (envelope-from ) id 1r5UzH-0000000Fshq-0kmd; Tue, 21 Nov 2023 19:56:39 +0200 Date: Tue, 21 Nov 2023 19:56:38 +0200 From: Andy Shevchenko To: Tony Lindgren Cc: Greg Kroah-Hartman , Jiri Slaby , "David S . Miller" , Petr Mladek , Sergey Senozhatsky , Steven Rostedt , Dhruva Gole , Ilpo =?iso-8859-1?Q?J=E4rvinen?= , John Ogness , Johan Hovold , Sebastian Andrzej Siewior , Vignesh Raghavendra , linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org Subject: Re: [PATCH v3 2/3] serial: core: Add support for DEVNAME:0.0 style naming for kernel console Message-ID: References: <20231121113203.61341-1-tony@atomide.com> <20231121113203.61341-3-tony@atomide.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231121113203.61341-3-tony@atomide.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Tue, 21 Nov 2023 09:57:14 -0800 (PST) On Tue, Nov 21, 2023 at 01:31:56PM +0200, Tony Lindgren wrote: > We can now add hardware based addressing for serial ports. Starting with > commit 84a9582fd203 ("serial: core: Start managing serial controllers to > enable runtime PM"), and all the related fixes to this commit, the serial > core now knows to which serial port controller the ports are connected. > > The serial ports can be addressed with DEVNAME:0.0 style naming. The names > are something like 00:04:0.0 for a serial port on qemu, and something like > 2800000.serial:0.0 on platform device using systems like ARM64 for example. > > The DEVNAME is the unique serial port hardware controller device name, AKA > the name for port->dev. The 0.0 are the serial core controller id and port > id. > > Typically 0.0 are used for each controller and port instance unless the > serial port hardware controller has multiple controllers or ports. > > Using DEVNAME:0.0 style naming actually solves two long term issues for > addressing the serial ports: > > 1. According to Andy Shevchenko, using DEVNAME:0.0 style naming fixes an > issue where depending on the BIOS settings, the kernel serial port ttyS > instance number may change if HSUART is enabled > > 2. Device tree using architectures no longer necessarily need to specify > aliases to find a specific serial port, and we can just allocate the > ttyS instance numbers dynamically in whatever probe order > > To do this, let's match the hardware addressing style console name to > the character device name used, and add a preferred console using the > character device device name. ... > +int serial_base_add_preferred_console(struct uart_driver *drv, > + struct uart_port *port) > +{ > + const char *port_match __free(kfree); > + int ret; > + > + port_match = kasprintf(GFP_KERNEL, "%s:%i.%i", dev_name(port->dev), > + port->ctrl_id, port->port_id); > + if (!port_match) > + return -ENOMEM; > + > + /* Translate a hardware addressing style console=DEVNAME:0.0 */ > + ret = add_preferred_console_match(port_match, drv->dev_name, port->line); > + if (ret && ret != -ENOENT) > + return ret; > + > + return 0; Maybe ret = add_preferred_console_match(port_match, drv->dev_name, port->line); if (ret == -ENOENT) return 0; return ret; > +} -- With Best Regards, Andy Shevchenko