From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by befuddled.reisers.ca (Postfix, from userid 65534) id F3AE51F0ACD; Tue, 24 Jan 2017 16:52:35 -0500 (EST) Received: from mail-qt0-x22d.google.com (mail-qt0-x22d.google.com [IPv6:2607:f8b0:400d:c0d::22d]) by befuddled.reisers.ca (Postfix) with ESMTPS id B3A9F1F0AC9 for ; Tue, 24 Jan 2017 16:52:33 -0500 (EST) Received: by mail-qt0-x22d.google.com with SMTP id v23so47077qtb.0 for ; Tue, 24 Jan 2017 13:52:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=0YsD69eBhd4H2DupFgNBsbY/UCIbtlOakkOt3J2o1Kc=; b=nDIg05ywiiNCYuuF0RR75hOJT11mfFrNHblhj+EmCA/NU2l+zwxQQT+lCPX3LPqJjY MS/UJDnIbTll0JZJivqki0hi2rehGKekDP5TKzWrZZYwU8bClpXpy+4sELmHD0U6JS93 0KBqDNrFDhJNtf7LuImuxDWgFozedexJHsTqDeMQchh7AX93os/fxwMOdeE1dP872uUJ djBOIqGJFCKNIG/BFoBAb3eGobrVxneiSmirgoJlXpEjzKUzx4g3edtRLTrqdjX10z2m bjEXYIlvWgIOEbu/ifBG5YXPo7j00Ka//SyEqGFxo+rfUsrzAvhvSi3u7M3EOgVuq3Hd mWvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=0YsD69eBhd4H2DupFgNBsbY/UCIbtlOakkOt3J2o1Kc=; b=R8IbTL2PtGDHcxXDEz9lZuPGb/xz3vMAUJoQxdrOlGIUynkFlHHI2oMiMKE+n5bnKw shgnR2XtXEPf8Owd3yFrt485HqqiwHoCwHfFwp6NXf7DHi8Hz9hqTbCSlC/ok43MHnS1 H+6sjdZ0suIGHLqbCwgsIWKDCJn4K7Miw9x3tl5uw/oExaDKmEWPtU9rNEUBbpvgnKfM pEbT4lXUlTfsVi3Ow+DKvuFP4IZdrzQyK1vn5qaqHwx96gw9bTg5faLoK3NHWrW81lpo +jmi2bs8i44/i28kRZ8Bi9oIOWUfQ/+Uj2+TfJTg2w8fIXezfN0UMLoBJEmY21QCa5TS 3m+Q== X-Gm-Message-State: AIkVDXIJhbHGsPMk30yp8YQIcClM8DEK0JGhm5/16HDQEq8TAceCmQByInfE7JewkLMUE7Rt1QxnGHKlF88oVg== X-Received: by 10.200.51.186 with SMTP id c55mr30515710qtb.270.1485294747221; Tue, 24 Jan 2017 13:52:27 -0800 (PST) MIME-Version: 1.0 Received: by 10.200.44.8 with HTTP; Tue, 24 Jan 2017 13:52:26 -0800 (PST) In-Reply-To: <20170124083045.GN2695@var.home> References: <20161220010836.GN2895@var.home> <20170124083045.GN2695@var.home> From: Okash Khawaja Date: Tue, 24 Jan 2017 21:52:26 +0000 Message-ID: Subject: Re: Line discipline To: Samuel Thibault Cc: "Speakup is a screen review system for Linux." Content-Type: multipart/mixed; boundary=001a1145ea58cc14940546de2160 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 X-BeenThere: speakup@linux-speakup.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Speakup is a screen review system for Linux." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jan 2017 21:52:36 -0000 --001a1145ea58cc14940546de2160 Content-Type: text/plain; charset=UTF-8 Hi, On Tue, Jan 24, 2017 at 8:30 AM, Samuel Thibault wrote: > Okash Khawaja, on Tue 24 Jan 2017 06:16:46 +0000, wrote: >> Combined the refactor changes with your tty code to test speakup_dummy. It >> seems okay > > Good :) > >> except for problem when unloading speakup.ko - it is in use so can't >> be unloaded. I have just got this so investigating it. > > I guess it's a release issue on the tty or such. Could you share your > code so we can investigate too? > >> One question. Using your code, we can obtain tty, cache it and use it directly >> for all subsequent writes. Why then use ldisc? > > To be able to read characters. There is no "read" operation in the tty. > We'll receive characters through the receive_buf callback. Thanks for clarification. > > Samuel I have attached the relevant diff. This is applied after the refactor changes which allow us to use tty version of spk_serial_out(). Also I've just hacked it together to test speakup_dummy - other synths won't work after this change. Please not that since I haven't been able to look into it yet, it might be a trivial error on my part. --001a1145ea58cc14940546de2160 Content-Type: text/plain; charset=US-ASCII; name="speakup-ldisc.diff" Content-Disposition: attachment; filename="speakup-ldisc.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iyc232xu0 ZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9zcGVha3VwL3NlcmlhbGlvLmMgYi9kcml2ZXJz L3N0YWdpbmcvc3BlYWt1cC9zZXJpYWxpby5jCmluZGV4IGQ4Yjg5MWYuLjYxYzgyYmEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy9zcGVha3VwL3NlcmlhbGlvLmMKKysrIGIvZHJpdmVycy9z dGFnaW5nL3NwZWFrdXAvc2VyaWFsaW8uYwpAQCAtMjE3LDkgKzIxNywxOSBAQCBpbnQgc3BrX3Nl cmlhbF9vdXQoY29uc3QgY2hhciBjaCkKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHNwa19zZXJpYWxf b3V0KTsKIAorZXh0ZXJuIHN0cnVjdCB0dHlfc3RydWN0ICpzcGVha3VwX3R0eTsKKwogaW50IHNw a19zZXJpYWxfb3V0X3R0eShjb25zdCBjaGFyIGNoKQogewotCXJldHVybiBzcGtfc2VyaWFsX291 dChjaCk7CisJLy8gcmV0dXJuIHNwa19zZXJpYWxfb3V0KGNoKTsKKwkKKwlwcl93YXJuKCJzcGtf c2VyaWFsX291dF90dHkoKTogY2g9JWMsIHNwZWFrdXBfdHR5PTB4JXhcbiIsIGNoLCBzcGVha3Vw X3R0eSk7CisKKwlpZiAoc3BlYWt1cF90dHkgJiYgc3BlYWt1cF90dHktPm9wcy0+d3JpdGUpIHsK KwkJc3BlYWt1cF90dHktPm9wcy0+d3JpdGUoc3BlYWt1cF90dHksICZjaCwgMSk7CisJCXJldHVy biAxOworCX0KKwlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHNwa19zZXJpYWxfb3V0 X3R0eSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9zcGVha3VwL3N5bnRoLmMgYi9k cml2ZXJzL3N0YWdpbmcvc3BlYWt1cC9zeW50aC5jCmluZGV4IDQyNTQzOGIuLmRkMTkyYTYgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy9zcGVha3VwL3N5bnRoLmMKKysrIGIvZHJpdmVycy9z dGFnaW5nL3NwZWFrdXAvc3ludGguYwpAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUgPGxpbnV4 L3NjaGVkLmg+CiAjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KICNpbmNsdWRlIDxsaW51eC9rdGhy ZWFkLmg+CisjaW5jbHVkZSA8bGludXgvdHR5Lmg+CiAKICNpbmNsdWRlICJzcGtfcHJpdi5oIgog I2luY2x1ZGUgInNwZWFrdXAuaCIKQEAgLTQ0LDggKzQ1LDExNiBAQCBFWFBPUlRfU1lNQk9MX0dQ TChzcGVha3VwX2luZm8pOwogCiBzdGF0aWMgaW50IGRvX3N5bnRoX2luaXQoc3RydWN0IHNwa19z eW50aCAqaW5fc3ludGgpOwogCitzdHJ1Y3QgdHR5X3N0cnVjdCAqc3BlYWt1cF90dHk7CitFWFBP UlRfU1lNQk9MX0dQTChzcGVha3VwX3R0eSk7CisKK3N0YXRpYyBpbnQgc3BlYWt1cF9sZGlzY19v cGVuKHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpCit7ICAgCisgICAgaW50IHJ2OworCisgICAgLy8g b2thc2hUT0RPOiBjaGVjayBmb3IgZXJyb3JzCisKKyAgICBwcl93YXJuKCJzcGVha3VwX3Rlc3Rf b3BlbigpOiB0dHktPm5hbWU6ICVzOyB0dHktPmxkaXNjLT5vcHMtPm5hbWU6ICVzXG4iLAorICAg ICAgICB0dHktPm5hbWUsIHR0eS0+bGRpc2MtPm9wcy0+bmFtZSk7CisgICAgcnYgPSB0dHktPm9w cy0+d3JpdGUodHR5LCAiaGkgbGRpc2NcbiIsIDkpOworICAgIHByX3dhcm4oInNwZWFrdXBfdGVz dF9vcGVuKCk6IGRvbmUgd3JpdGluZy4gcnY9JWRcbiIsIHJ2KTsKKyAgICBzcGVha3VwX3R0eSA9 IHR0eTsKKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBzcGVha3VwX2xkaXNjX2Ns b3NlKHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpCit7CisgICAgcHJfd2Fybigic3BlYWt1cF90ZXN0 X2Nsb3NlKClcbiIpOworICAgIHNwZWFrdXBfdHR5ID0gTlVMTDsKK30KKworc3RhdGljIHN0cnVj dCB0dHlfbGRpc2Nfb3BzIHNwZWFrdXBfbGRpc2Nfb3BzID0geworICAgIC5vd25lciAgICAgICAg ICA9IFRISVNfTU9EVUxFLAorICAgIC5tYWdpYyAgICAgICAgICA9IFRUWV9MRElTQ19NQUdJQywK KyAgICAubmFtZSAgICAgICAgICAgPSAic3BlYWt1cF9sZGlzYyIsCisgICAgLm9wZW4gICAgICAg ICAgID0gc3BlYWt1cF9sZGlzY19vcGVuLAorICAgIC5jbG9zZSAgICAgICAgICA9IHNwZWFrdXBf bGRpc2NfY2xvc2UsCit9OworCisKK3N0YXRpYyBpbnQgaW5pdGlhbGlzZV9sZGlzYyh2b2lkKQor eworICAgIGludCByZXQgPSAwOworICAgIHN0cnVjdCB0dHlfc3RydWN0ICp0dHk7CisKKyAgICBy ZXQgPSB0dHlfcmVnaXN0ZXJfbGRpc2MoTl9TUEVBS1VQLCAmc3BlYWt1cF9sZGlzY19vcHMpOwor ICAgIGlmIChyZXQpIHsKKyAgICAgICAgcHJfZXJyKCJzcGVha3VwX3Rlc3RfaW5pdCgpOiBFcnJv ciByZWdpc3RlcmluZyBsaW5lIGRpc2NpcGxpbmUuXG4iKTsKKyAgICAgICAgcmV0dXJuIHJldDsK KyAgICB9CisKKworICAgIHR0eSA9IHR0eV9vcGVuX2J5X2RyaXZlcihNS0RFVig0LCA2NCksIE5V TEwsIE5VTEwpOworICAgIGlmIChJU19FUlIodHR5KSkKKyAgICAgICAgcmV0dXJuIFBUUl9FUlIo dHR5KTsKKworICAgIHByaW50aygiZ290IHR0eSAlcFxuIiwgdHR5KTsKKworICAgIGlmICh0dHkt Pm9wcy0+b3BlbikKKyAgICAgICAgcmV0ID0gdHR5LT5vcHMtPm9wZW4odHR5LCBOVUxMKTsKKyAg ICBlbHNlCisgICAgICAgIHJldCA9IC1FTk9ERVY7CisKKy8qIHRvIGJlIHB1dCBpbiBsZGlzYyBv cGVuICovCisgICAgaWYgKHR0eS0+b3BzLT53cml0ZSA9PSBOVUxMKQorICAgICAgICByZXQgPSAt RU9QTk9UU1VQUDsKKy8qICovCisKKyAgICBpZiAocmV0KSB7CisgICAgICAgIHR0eV91bmxvY2so dHR5KTsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisgICAgICAgIAorICAgIGNsZWFyX2Jp dChUVFlfSFVQUEVELCAmdHR5LT5mbGFncyk7CisgICAgdHR5X3VubG9jayh0dHkpOworCisgICAg dHR5X3NldF9sZGlzYyh0dHksIE5fU1BFQUtVUCk7CisgICAgcHJfd2FybigiPj4+IGZpbmlzaGVk IGNhbGxpbmcgdHR5X3NldF9sZGlzY1xuIik7CisKKyAgICB0dHktPm9wcy0+d3JpdGUodHR5LCAi dGVzdFxuIiwgNSk7CisKKyAgICByZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCByZWxlYXNl X2xkaXNjKHZvaWQpCit7CisJaW50IGlkeDsKKworCWlmICghc3BlYWt1cF90dHkpCisJCXJldHVy bjsKKworICAgICAgICB0dHlfbG9jayhzcGVha3VwX3R0eSk7CisgICAgICAgIGlkeCA9IHNwZWFr dXBfdHR5LT5pbmRleDsKKworI2lmIDAKKyAgICAgICAgaWYgKHR0eV9yZWxlYXNlX2NoZWNrcyh0 dHksIGlkeCkpIHsKKyAgICAgICAgICAgICAgICB0dHlfdW5sb2NrKHR0eSk7CisgICAgICAgICAg ICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyNlbmRpZgorCisgICAgICAgIGlmIChzcGVha3Vw X3R0eS0+b3BzLT5jbG9zZSkKKyAgICAgICAgICAgICAgICBzcGVha3VwX3R0eS0+b3BzLT5jbG9z ZShzcGVha3VwX3R0eSwgTlVMTCk7CisgICAgICAgIHR0eV91bmxvY2soc3BlYWt1cF90dHkpOwor I2lmIDAKKyAgICAgICAgdHR5X2ZsdXNoX3dvcmtzKHR0eSk7CisjZW5kaWYKKyNpZiAwCisgICAg ICAgIG11dGV4X2xvY2soJnR0eV9tdXRleCk7CisgICAgICAgIHJlbGVhc2VfdHR5KHR0eSwgaWR4 KTsKKyAgICAgICAgbXV0ZXhfdW5sb2NrKCZ0dHlfbXV0ZXgpOworI2VuZGlmCit9CisKIGludCBz cGtfc2VyaWFsX3N5bnRoX3Byb2JlKHN0cnVjdCBzcGtfc3ludGggKnN5bnRoKQogeworLyoKIAlj b25zdCBzdHJ1Y3Qgb2xkX3NlcmlhbF9wb3J0ICpzZXI7CiAJaW50IGZhaWxlZCA9IDA7CiAKQEAg LTY4LDcgKzE3NywxMCBAQCBpbnQgc3BrX3NlcmlhbF9zeW50aF9wcm9iZShzdHJ1Y3Qgc3BrX3N5 bnRoICpzeW50aCkKIAl9CiAJcHJfaW5mbygiJXM6IHR0eVMlaSwgRHJpdmVyIFZlcnNpb24gJXNc biIsCiAJCXN5bnRoLT5sb25nX25hbWUsIHN5bnRoLT5zZXIsIHN5bnRoLT52ZXJzaW9uKTsKKyov CisJaW5pdGlhbGlzZV9sZGlzYygpOwogCXN5bnRoLT5hbGl2ZSA9IDE7CisJCiAJcmV0dXJuIDA7 CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChzcGtfc2VyaWFsX3N5bnRoX3Byb2JlKTsKQEAgLTQyMSw2 ICs1MzMsMTAgQEAgdm9pZCBzeW50aF9yZWxlYXNlKHZvaWQpCiAJc3RydWN0IHZhcl90ICp2YXI7 CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAorCS8vIG9rYXNoVE9ETzogbWF5YmUgc3BlYWt1cF90 dHkgc2hvdWxkIGJlIHBhcnQgb2Ygc3ludGguCisJCisJcmVsZWFzZV9sZGlzYygpOworCiAJaWYg KHN5bnRoID09IE5VTEwpCiAJCXJldHVybjsKIAlzcGluX2xvY2tfaXJxc2F2ZSgmc3BlYWt1cF9p bmZvLnNwaW5sb2NrLCBmbGFncyk7CkBAIC00MzIsNyArNTQ4LDcgQEAgdm9pZCBzeW50aF9yZWxl YXNlKHZvaWQpCiAJCXN5c2ZzX3JlbW92ZV9ncm91cChzcGVha3VwX2tvYmosICZzeW50aC0+YXR0 cmlidXRlcyk7CiAJZm9yICh2YXIgPSBzeW50aC0+dmFyczsgdmFyLT52YXJfaWQgIT0gTUFYVkFS UzsgdmFyKyspCiAJCXNwZWFrdXBfdW5yZWdpc3Rlcl92YXIodmFyLT52YXJfaWQpOwotCXNwa19z dG9wX3NlcmlhbF9pbnRlcnJ1cHQoKTsKKy8vCXNwa19zdG9wX3NlcmlhbF9pbnRlcnJ1cHQoKTsK IAlzeW50aC0+cmVsZWFzZSgpOwogCXN5bnRoID0gTlVMTDsKIH0K --001a1145ea58cc14940546de2160--