From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eugeniy.Paltsev@synopsys.com (Eugeniy Paltsev) Date: Thu, 31 Aug 2017 13:33:56 +0000 Subject: [PATCH v3] earlycon: initialise baud field of earlycon device structure In-Reply-To: <20170821162213.27102-1-Eugeniy.Paltsev@synopsys.com> References: <20170821162213.27102-1-Eugeniy.Paltsev@synopsys.com> List-ID: Message-ID: <1504186436.15555.24.camel@synopsys.com> To: linux-snps-arc@lists.infradead.org Hi, Maybe you have any comments or remarks about this patch? And if you don't could you please apply it. Thanks. On Mon, 2017-08-21@19:22 +0300, Eugeniy Paltsev wrote: > For now baud field of earlycon structure device is't initialised at all > in of_setup_earlycon (in opposit? to register_earlycon). > > So when I use stdout-path to point earlycon device > (like stdout-path = &serial or stdout-path = "serial:115200n8") > baud field of earlycon device structure remains uninitialised and > earlycon initialization is not performed correctly as > of_setup_earlycon is used. > When pass all arguments via bootargs > (like bootargs = "earlycon=uart8250,mmio32,0xf0005000,115200n8") > initialization is performed correctly as register_earlycon is used. > > So initialise baud field of earlycon device structure by value of > "current-speed" property from device tree or from options > (if they exist) when we use of_setup_earlycon > > Signed-off-by: Eugeniy Paltsev > --- > Changes v2 -> v3: > ?* Use simple_strtoul instead of kstrtoul as with kstrtoul we can't parse > ???options string which includes arguments except baudrate (like "115200n8") > > Changes v1 -> v2: > ?* Use standart property name "current-speed" instead of custom "baud" > > NOTE: > I don't add parsing of the other standard options here because we don't > have any place to store them. When we parce and set options of the 'real' > uart device (using uart_parse_options + uart_set_options) we populate > ktermios structure an pass it to port->ops->set_termios callback of > uart_port structure. So it is processing by uart driver itself. But we don't > register such callbacks for earlycon. So we are only able to parse baud > value, which can be stored in baud field of earlycon_device structure. > > ?drivers/tty/serial/earlycon.c | 5 +++++ > ?1 file changed, 5 insertions(+) > > diff --git a/drivers/tty/serial/earlycon.c b/drivers/tty/serial/earlycon.c > index c365154..82e813b 100644 > --- a/drivers/tty/serial/earlycon.c > +++ b/drivers/tty/serial/earlycon.c > @@ -282,7 +282,12 @@ int __init of_setup_earlycon(const struct earlycon_id *match, > ? } > ? } > ? > + val = of_get_flat_dt_prop(node, "current-speed", NULL); > + if (val) > + early_console_dev.baud = be32_to_cpu(*val); > + > ? if (options) { > + early_console_dev.baud = simple_strtoul(options, NULL, 0); > ? strlcpy(early_console_dev.options, options, > ? sizeof(early_console_dev.options)); > ? } -- ?Eugeniy Paltsev From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eugeniy Paltsev Subject: Re: [PATCH v3] earlycon: initialise baud field of earlycon device structure Date: Thu, 31 Aug 2017 13:33:56 +0000 Message-ID: <1504186436.15555.24.camel@synopsys.com> References: <20170821162213.27102-1-Eugeniy.Paltsev@synopsys.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170821162213.27102-1-Eugeniy.Paltsev@synopsys.com> Content-Language: en-US Content-ID: <51650AB86316B14CA0CD9006D658CD6E@internal.synopsys.com> Sender: linux-kernel-owner@vger.kernel.org To: "linux-serial@vger.kernel.org" Cc: "linux-kernel@vger.kernel.org" , "jslaby@suse.com" , "gregkh@linuxfoundation.org" , "linux-snps-arc@lists.infradead.org" List-Id: linux-serial@vger.kernel.org SGksDQoNCk1heWJlIHlvdSBoYXZlIGFueSBjb21tZW50cyBvciByZW1hcmtzIGFib3V0IHRoaXMg cGF0Y2g/DQpBbmQgaWYgeW91IGRvbid0IGNvdWxkIHlvdSBwbGVhc2UgYXBwbHkgaXQuDQoNClRo YW5rcy4NCg0KT24gTW9uLCAyMDE3LTA4LTIxIGF0IDE5OjIyICswMzAwLCBFdWdlbml5IFBhbHRz ZXYgd3JvdGU6DQo+IEZvciBub3cgYmF1ZCBmaWVsZCBvZiBlYXJseWNvbiBzdHJ1Y3R1cmUgZGV2 aWNlIGlzJ3QgaW5pdGlhbGlzZWQgYXQgYWxsDQo+IGluIG9mX3NldHVwX2Vhcmx5Y29uIChpbiBv cHBvc2l00LUgdG8gcmVnaXN0ZXJfZWFybHljb24pLg0KPiANCj4gU28gd2hlbiBJIHVzZSBzdGRv dXQtcGF0aCB0byBwb2ludCBlYXJseWNvbiBkZXZpY2UNCj4gKGxpa2Ugc3Rkb3V0LXBhdGggPSAm c2VyaWFsIG9yIHN0ZG91dC1wYXRoID0gInNlcmlhbDoxMTUyMDBuOCIpDQo+IGJhdWQgZmllbGQg b2YgZWFybHljb24gZGV2aWNlIHN0cnVjdHVyZSByZW1haW5zIHVuaW5pdGlhbGlzZWQgYW5kDQo+ IGVhcmx5Y29uIGluaXRpYWxpemF0aW9uIGlzIG5vdCBwZXJmb3JtZWQgY29ycmVjdGx5IGFzDQo+ IG9mX3NldHVwX2Vhcmx5Y29uIGlzIHVzZWQuDQo+IFdoZW4gcGFzcyBhbGwgYXJndW1lbnRzIHZp YSBib290YXJncw0KPiAobGlrZSBib290YXJncyA9ICJlYXJseWNvbj11YXJ0ODI1MCxtbWlvMzIs MHhmMDAwNTAwMCwxMTUyMDBuOCIpDQo+IGluaXRpYWxpemF0aW9uIGlzIHBlcmZvcm1lZCBjb3Jy ZWN0bHkgYXMgcmVnaXN0ZXJfZWFybHljb24gaXMgdXNlZC4NCj4gDQo+IFNvIGluaXRpYWxpc2Ug YmF1ZCBmaWVsZCBvZiBlYXJseWNvbiBkZXZpY2Ugc3RydWN0dXJlIGJ5IHZhbHVlIG9mDQo+ICJj dXJyZW50LXNwZWVkIiBwcm9wZXJ0eSBmcm9tIGRldmljZSB0cmVlIG9yIGZyb20gb3B0aW9ucw0K PiAoaWYgdGhleSBleGlzdCkgd2hlbiB3ZSB1c2Ugb2Zfc2V0dXBfZWFybHljb24NCj4gDQo+IFNp Z25lZC1vZmYtYnk6IEV1Z2VuaXkgUGFsdHNldiA8RXVnZW5peS5QYWx0c2V2QHN5bm9wc3lzLmNv bT4NCj4gLS0tDQo+IENoYW5nZXMgdjIgLT4gdjM6DQo+IMKgKiBVc2Ugc2ltcGxlX3N0cnRvdWwg aW5zdGVhZCBvZiBrc3RydG91bCBhcyB3aXRoIGtzdHJ0b3VsIHdlIGNhbid0IHBhcnNlDQo+IMKg wqDCoG9wdGlvbnMgc3RyaW5nIHdoaWNoIGluY2x1ZGVzIGFyZ3VtZW50cyBleGNlcHQgYmF1ZHJh dGUgKGxpa2UgIjExNTIwMG44IikNCj4gDQo+IENoYW5nZXMgdjEgLT4gdjI6DQo+IMKgKiBVc2Ug c3RhbmRhcnQgcHJvcGVydHkgbmFtZSAiY3VycmVudC1zcGVlZCIgaW5zdGVhZCBvZiBjdXN0b20g ImJhdWQiDQo+IA0KPiBOT1RFOg0KPiBJIGRvbid0IGFkZCBwYXJzaW5nIG9mIHRoZSBvdGhlciBz dGFuZGFyZCBvcHRpb25zIGhlcmUgYmVjYXVzZSB3ZSBkb24ndA0KPiBoYXZlIGFueSBwbGFjZSB0 byBzdG9yZSB0aGVtLiBXaGVuIHdlIHBhcmNlIGFuZCBzZXQgb3B0aW9ucyBvZiB0aGUgJ3JlYWwn DQo+IHVhcnQgZGV2aWNlICh1c2luZyB1YXJ0X3BhcnNlX29wdGlvbnMgKyB1YXJ0X3NldF9vcHRp b25zKSB3ZSBwb3B1bGF0ZQ0KPiBrdGVybWlvcyBzdHJ1Y3R1cmUgYW4gcGFzcyBpdCB0byBwb3J0 LT5vcHMtPnNldF90ZXJtaW9zIGNhbGxiYWNrIG9mDQo+IHVhcnRfcG9ydCBzdHJ1Y3R1cmUuIFNv IGl0IGlzIHByb2Nlc3NpbmcgYnkgdWFydCBkcml2ZXIgaXRzZWxmLiBCdXQgd2UgZG9uJ3QNCj4g cmVnaXN0ZXIgc3VjaCBjYWxsYmFja3MgZm9yIGVhcmx5Y29uLiBTbyB3ZSBhcmUgb25seSBhYmxl IHRvIHBhcnNlIGJhdWQNCj4gdmFsdWUsIHdoaWNoIGNhbiBiZSBzdG9yZWQgaW4gYmF1ZCBmaWVs ZCBvZiBlYXJseWNvbl9kZXZpY2Ugc3RydWN0dXJlLg0KPiANCj4gwqBkcml2ZXJzL3R0eS9zZXJp YWwvZWFybHljb24uYyB8IDUgKysrKysNCj4gwqAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25z KCspDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy90dHkvc2VyaWFsL2Vhcmx5Y29uLmMgYi9k cml2ZXJzL3R0eS9zZXJpYWwvZWFybHljb24uYw0KPiBpbmRleCBjMzY1MTU0Li44MmU4MTNiIDEw MDY0NA0KPiAtLS0gYS9kcml2ZXJzL3R0eS9zZXJpYWwvZWFybHljb24uYw0KPiArKysgYi9kcml2 ZXJzL3R0eS9zZXJpYWwvZWFybHljb24uYw0KPiBAQCAtMjgyLDcgKzI4MiwxMiBAQCBpbnQgX19p bml0IG9mX3NldHVwX2Vhcmx5Y29uKGNvbnN0IHN0cnVjdCBlYXJseWNvbl9pZCAqbWF0Y2gsDQo+ IMKgCQl9DQo+IMKgCX0NCj4gwqANCj4gKwl2YWwgPSBvZl9nZXRfZmxhdF9kdF9wcm9wKG5vZGUs ICJjdXJyZW50LXNwZWVkIiwgTlVMTCk7DQo+ICsJaWYgKHZhbCkNCj4gKwkJZWFybHlfY29uc29s ZV9kZXYuYmF1ZCA9IGJlMzJfdG9fY3B1KCp2YWwpOw0KPiArDQo+IMKgCWlmIChvcHRpb25zKSB7 DQo+ICsJCWVhcmx5X2NvbnNvbGVfZGV2LmJhdWQgPSBzaW1wbGVfc3RydG91bChvcHRpb25zLCBO VUxMLCAwKTsNCj4gwqAJCXN0cmxjcHkoZWFybHlfY29uc29sZV9kZXYub3B0aW9ucywgb3B0aW9u cywNCj4gwqAJCQlzaXplb2YoZWFybHlfY29uc29sZV9kZXYub3B0aW9ucykpOw0KPiDCoAl9DQot LSANCsKgRXVnZW5peSBQYWx0c2V2