From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4C2B11F63FE for ; Tue, 7 Jan 2025 20:19:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736281159; cv=none; b=oTIn0VxA6VX/IYhYCALr4YcHHPXcYCTA4YkEaQRFvsHnif2XSBvfAqNAhnOWXaSaRWmwhAp+m5EyR6TvjSrRGg78Z7W7k81yROVNiYA/5ZYmkR0FNiD0FbnFxSfpDdRpNhXG9fs1gN2iZcz6tDxnWJ1fEjVkETMIX5qX/bXFINQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736281159; c=relaxed/simple; bh=mnIduovjk4ZeXNSMbqsHEPiXih4u9LOJP0xl/aMzljQ=; h=Date:From:Subject:To:Cc:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=JBY65sxkVy2YbJ+SP1VrfKHcMypHlTP0xi2CeBwg1Dbz3G06hcduMD53q73PFjvRBD5ctpduBGJn5FgWoDqGV5CAxW3YIkO2Bzkb8ZWt+MKhriTLj3yzlXX1hlW8PN9SeeML72oxwirIhaSsb50vkknRmjcgPoNNwHosYw4fQDg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=unrealasia.net; spf=pass smtp.mailfrom=unrealasia.net; dkim=pass (2048-bit key) header.d=unrealasia-net.20230601.gappssmtp.com header.i=@unrealasia-net.20230601.gappssmtp.com header.b=mOEKgCHt; arc=none smtp.client-ip=209.85.214.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=unrealasia.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=unrealasia.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=unrealasia-net.20230601.gappssmtp.com header.i=@unrealasia-net.20230601.gappssmtp.com header.b="mOEKgCHt" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-216281bc30fso17741895ad.0 for ; Tue, 07 Jan 2025 12:19:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unrealasia-net.20230601.gappssmtp.com; s=20230601; t=1736281155; x=1736885955; darn=vger.kernel.org; h=mime-version:references:in-reply-to:message-id:cc:to:subject:from :date:from:to:cc:subject:date:message-id:reply-to; bh=rRQriJLZjFTTEtwiNoQuJ/k3ZU8Wdh3DPUOyQok7IvU=; b=mOEKgCHt/J1L9reCLFQ0U+8eqR/Q71tyTLyzj6DWcI5nBu3ef+MT8Y8I1a4vMFr3xd MLdRGRKY4/Cyrs+ctjh0lJG98PxZZyp7i1CDHspZWXt4BWcNn6yaETlWvN90jT+39fou QijVc3tNPdh0FpmSENPWfCvysw5lRRc9TwBir44nvVUlWeXSFzSEkQgqYhiDj9NAWISR kjaphGG82fnwR6BTuS/n1GFS0FCh2xdKIWfZpr40ok1KtH/Y9GcT/jhxCszVdpRn7u1o IU3HrSYhqy+XCcYQqNtOWdq7X6h5JNIZOuZnw4KW/jiTwqmLO1CdiGSOFD/kpCdeWDw4 arVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736281155; x=1736885955; h=mime-version:references:in-reply-to:message-id:cc:to:subject:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=rRQriJLZjFTTEtwiNoQuJ/k3ZU8Wdh3DPUOyQok7IvU=; b=ivzuT46N88iK0ApHnc4TXnWCTGgzAzuj1UxTsrC8viJbUmfeZK9X5Rkochw2GFUFAY iPwnoH6y2worMYiVoG2Dv6mUbqCK01s9z3ZKzRittB666At/3NL29MKFFxIGOP/DYKzv eYhMUa9wTXhXR/DeALnJTvODdlErbA4UVXFHWZ0hL6lXprcOREVEZes7iE9lwUc4cv4B nhsHRH477+fCzBtpdZLCkVxvUvPESe+FqRvO8Lj2HkxciJSR+uSiCdMWPbaGb5hgyjgd jQFRs1TVKFvN7Flf8ex7MqCc/yTMWuN4KWd6QVwUiFcUIanYHE2p17awgWNuB8ZJPdrw eiEw== X-Forwarded-Encrypted: i=1; AJvYcCVgnzWS0qV7Ovch94o9843hIGJ6A/5jVZ/cxPGCfbdU6smg5SaWNOlJMoF7HDKGK+OGl3ARyZ82b9OoP3c=@vger.kernel.org X-Gm-Message-State: AOJu0YwNNPtNQSmlYvxOD+NydiUzzWN3CLRTGCRc6llM98TK9FJbpEok Pr6gMvJCXo62h0fi6lybFeK2+hU/cW5739UHiVBepjXTGDelRS+BW7hqzBvPXpkPsSLot2DrYup tHZROtBnufcM= X-Gm-Gg: ASbGncvpEXltCMKiAJ94O/OKFsna3LDim6WZFuXsZ2Em3wTflFYVY5yEhztvR3/5exb r5KCeCD08Re9TO0A74cHhd0fAQm5fLE9Z60QIT32NjiHQ2FalHDwhs2kYy76WzdmlbIRhEvvJrr att0LAvD/MAIy1aOpxVBPRZxpCoEMdI/jhupUIyA98OMtLzTAn37hY+vvZ/nB33tQ1D9thNggai kggI6+YKK+KercDiTl3grz103baBTnVXLrwA5ym1DMpAyDCroMZK+S9bHo7qeBCUcXC X-Google-Smtp-Source: AGHT+IGOYgUTUN3yERTuzrMDjitsm/6ZgYUze4hkaWMI8oXcs78IucQwdZz/57+VjW4FX9oqhcVrsQ== X-Received: by 2002:a17:902:ebc6:b0:217:8557:5246 with SMTP id d9443c01a7336-21a840030ddmr4767365ad.55.1736281155317; Tue, 07 Jan 2025 12:19:15 -0800 (PST) Received: from muhammads-ThinkPad ([2001:e68:5473:b14:efc3:bbb3:b5f:51a3]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-219dc964a8bsm313404725ad.8.2025.01.07.12.19.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jan 2025 12:19:14 -0800 (PST) Date: Wed, 08 Jan 2025 04:19:05 +0800 From: Muhammad Nuzaihan Subject: Re:Re: [PATCH net-next v4] wwan dev: Add port for NMEA channel for WWAN devices To: Slark Xiao Cc: Loic Poulain , Sergey Ryazanov , Johannes Berg , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Message-Id: In-Reply-To: <3c7d38cb.5336.1943f5e66de.Coremail.slark_xiao@163.com> References: <20250105124819.6950-1-zaihan@unrealasia.net> <3c7d38cb.5336.1943f5e66de.Coremail.slark_xiao@163.com> X-Mailer: geary/40.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-R071HAPMSzOXD91HCltm" --=-R071HAPMSzOXD91HCltm Content-Type: text/plain; charset=us-ascii; format=flowed Hi Everyone, Sorry for the last (HTML) email. Seemed i forgot Gmail sends HTML email by default and Geary client was broken. Slark - I've got some vague idea on how it can be implemented with GNSS according to your helpful last email which helps clear some things. But the patch i'm giving does not work. (NULL deference err, possibly due to gdev being NULL). Just sharing on some progress i've made. I'm still looking at it and trying to figure out though. On Tue, Jan 7 2025 at 02:05:38 PM +0800, Slark Xiao wrote: > > At 2025-01-07 03:44:35, "Loic Poulain" > wrote: >> Hi Muhammad, >> >> + Slark >> >> On Sun, 5 Jan 2025 at 13:53, Muhammad Nuzaihan >> wrote: >>> >>> Based on the code: drivers/bus/mhi/host/pci_generic.c >>> which already has NMEA channel (mhi_quectel_em1xx_channels) >>> support in recent kernels but it is never exposed >>> as a port. >>> >>> This commit exposes that NMEA channel to a port >>> to allow tty/gpsd programs to read through >>> the /dev/wwan0nmea0 port. >>> >>> Tested this change on a new kernel and module >>> built and now NMEA (mhi0_NMEA) statements are >>> available (attached) through /dev/wwan0nmea0 port on bootup. >>> >>> Signed-off-by: Muhammad Nuzaihan Bin Kamal Luddin >>> >> >> This works for sure but I'm not entirely convinced NMEA should be >> exposed as a modem control port. In your previous patch version >> Sergey >> pointed to a discussion we had regarding exposing that port as WWAN >> child device through the regular GNSS subsystem, which would require >> some generic bridge in the WWAN subsystem. >> >> Slark, did you have an opportunity to look at the GNSS solution? >> >> Regards, >> Loic > > Hi Loic, > This solution same as what I did in last time. We got a wwan0nmea0 > device but this > device can't support flow control. > Also, this is not the solution what Sergey expected, I think. > Please refer to the target we talked last time: > ///////////////////// >>>> Basically, components should interact like this: >>>> >>>> Modem PCIe driver <-> WWAN core <-> GNSS core <-> /dev/gnss0 >>>> >>>> We need the GNSS core to export the modem NMEA port as instance of >>>> 'gnss' class. >>>> >>>> We need WWAN core between the modem driver and the GSNN core >>>> because we >>>> need a common parent for GNSS port and modem control port (e.g. >>>> AT, >>>> MBIM). Since we are already exporting control ports via the WWAN >>>> subsystem, the GNSS port should also be exported through the WWAN >>>> subsystem. To keep devices hierarchy like this: >>>> >>>> .--> AT port >>>> PCIe dev -> WWAN dev -| >>>> '--> GNSS port >>>> >>>> Back to the implementation. Probably we should introduce a new >>>> port >>>> type, e.g. WWAN_PORT_NMEA. And this port type should have a >>>> special >>>> handling in the WWAN core. >>>> >>> Similar like what I did in my local. I named it as WWAN_PORT_GNSS >>> and >>> put it as same level with AT port. >>> >>>> wwan_create_port() function should not directly create a char >>>> device. >>>> Instead, it should call gnss_allocate_device() and >>>> gnss_register_device() to register the port with GNSS subsystem. > //////////////////// > > Thanks > --=-R071HAPMSzOXD91HCltm Content-Type: text/x-patch Content-Disposition: attachment; filename=expose-nmea-to-gnss.patch Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3d3YW4vd3dhbl9jb3JlLmMgYi9kcml2ZXJzL25ldC93 d2FuL3d3YW5fY29yZS5jCmluZGV4IGViZjU3NGYyYjEyNi4uYWJkNzZlZjA5N2JjIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC93d2FuL3d3YW5fY29yZS5jCisrKyBiL2RyaXZlcnMvbmV0L3d3YW4v d3dhbl9jb3JlLmMKQEAgLTYsNiArNiw3IEBACiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNp bmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KKyNpbmNsdWRl IDxsaW51eC9nbnNzLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4 L2lkci5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgpAQCAtMzQyLDEwICszNDMsNiBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IHsKIAkJLm5hbWUgPSAiTUlQQyIsCiAJCS5kZXZzdWYgPSAibWlw YyIsCiAJfSwKLQlbV1dBTl9QT1JUX05NRUFdID0gewotCQkubmFtZSA9ICJOTUVBIiwKLQkJLmRl dnN1ZiA9ICJubWVhIiwKLQl9LAogfTsKIAogc3RhdGljIHNzaXplX3QgdHlwZV9zaG93KHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCkBAIC00NjAsNiAr NDU3LDE0IEBAIHN0cnVjdCB3d2FuX3BvcnQgKnd3YW5fY3JlYXRlX3BvcnQoc3RydWN0IGRldmlj ZSAqcGFyZW50LAogCWlmICh0eXBlID4gV1dBTl9QT1JUX01BWCB8fCAhb3BzKQogCQlyZXR1cm4g RVJSX1BUUigtRUlOVkFMKTsKIAorICAgICAgICAvKiBOTUVBIGNoZWNrIHRvIGF0dGFjaCBHTlNT IHBvcnQgKi8KKyAgICAgICAgaWYgKHR5cGUgPT0gV1dBTl9QT1JUX05NRUEpIHsKKyAgICAgICAg ICAgICAgICBzdHJ1Y3QgZ25zc19kZXZpY2UgKmdkZXYgPSBnbnNzX2FsbG9jYXRlX2RldmljZShw YXJlbnQpOworCisgICAgICAgICAgICAgICAgaWYgKGdkZXYpCisgICAgICAgICAgICAgICAgICAg ICAgICBnbnNzX3JlZ2lzdGVyX2RldmljZShnZGV2KTsKKyAgICAgICAgfQorCiAJLyogQSBwb3J0 IGlzIGFsd2F5cyBhIGNoaWxkIG9mIGEgV1dBTiBkZXZpY2UsIHJldHJpZXZlIChhbGxvY2F0ZSBv cgogCSAqIHBpY2spIHRoZSBXV0FOIGRldmljZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcGFyZW50 IGRldmljZS4KIAkgKi8K --=-R071HAPMSzOXD91HCltm--