Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp1535656ybc; Tue, 12 Nov 2019 23:47:36 -0800 (PST) X-Google-Smtp-Source: APXvYqwt+jlOK/rnDmVdDND0KSqnKm17pR1Jd2E35MtN0M5XReLEVbDGhzQzigyJqaivjd2vmq2V X-Received: by 2002:a05:6402:70e:: with SMTP id w14mr2031830edx.95.1573631256365; Tue, 12 Nov 2019 23:47:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1573631256; cv=none; d=google.com; s=arc-20160816; b=cTqkO9vXpvJEYmLTAylRWTbEgKoDpwkU0k0XHEHABcP8aJB51H+0scZI+FRJztuROF 0nn35itw20iroa/jjkKXfJSkaWZ0CfQFJpplC9SWIDBk/DBnPOzsJL4ip6Yt9IcdpxpG 0oAlumyg9J+wlOwL8KFl79k9Gr80ddNKC2rK4MbW4HQx1iOXF4l0HGxAW0sEDw0HLtqr HqwuBqF64I6laIIm5gMAEEamiAkWgeXSGyAQ5bg6aVFnVStDryCEPm0kUq0+O2zehPyr ELszuHkmc5xaz8Q8hVkFvh3W4h49Zn5ctGIeMvDzKbMVPzmQ0RaG/jkvBpw9GjZhe4ht 4FVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:to:references:message-id :content-transfer-encoding:cc:date:in-reply-to:from:subject :mime-version:dkim-signature; bh=B5UaMl8b4UFCWhCr451ZpAWkPQoBej5IKxFSCate++4=; b=gczioJUK2jylcEBsXtlEC+0lNSqyaao+tWQyXCv+4FmfxpCiyZXpKFsWtBnx+eaeOA lhPBD5/u87zHWQ73Dqn+C/WZrgUoo2Kr5UdCEl3yNbktLOaPzD+6osMAmiN4oOLoUm/n Qj8T2JHY+BVe7Mm/UfDRucIbgCQ1feif2Q2GFemhMm4b3I4lPrs+MW3afgNiOqdZmiiz 9Tvu2bQHxrKwwc3G0g/hbxQjhii+f/IfCIkIdxuIYfkfGFK4AxwDbL0USMSzEplTVpIc kaUyO+0Hoh7Xrzb3x3y5KHBss0J6mkGZ26jafAW8xIaeN/uxn5f7f5KDHnJTnW+sNlDW 22mg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@endlessm-com.20150623.gappssmtp.com header.s=20150623 header.b=D2hwmaqL; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q15si649732ejm.31.2019.11.12.23.46.58; Tue, 12 Nov 2019 23:47:36 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@endlessm-com.20150623.gappssmtp.com header.s=20150623 header.b=D2hwmaqL; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726107AbfKMHqp (ORCPT + 99 others); Wed, 13 Nov 2019 02:46:45 -0500 Received: from mail-pf1-f196.google.com ([209.85.210.196]:36299 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726074AbfKMHqp (ORCPT ); Wed, 13 Nov 2019 02:46:45 -0500 Received: by mail-pf1-f196.google.com with SMTP id b19so1081982pfd.3 for ; Tue, 12 Nov 2019 23:46:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=endlessm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=B5UaMl8b4UFCWhCr451ZpAWkPQoBej5IKxFSCate++4=; b=D2hwmaqLY4aU+GURmRbWzY07JcsDByj4w85U4ZNJVqJRFl0mghgW1AKlR5J+qcQA2y L2aPEl7Ry+oUBObPOjNWDG3Otu9e2yBwFhFMDcKyYGcWQTT01O69GzrAdYgn+ezqCZi4 D7ZDnMjkd50a1XSdLDnkAlgxT/74GqaOGGom1dcUAcV022NKPDbuCxhBexWnCrzowaXz Aw0Vc0SKqQGOuKAyOdZS8ZkXnutjL7/3yj49YHVgWqmrPH/mNB+KURzy+1qeCVenm+b4 2qFJMsnvpOc46nqXZ/X4MRWfnCZ2TPJ5I74MOENJGWI9AKQ2tcGoMWulfNdWkitoRVyN q6CQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=B5UaMl8b4UFCWhCr451ZpAWkPQoBej5IKxFSCate++4=; b=Ia4zrCpxCAvKV3kaWqc9SMUCC+LznRWpkyVRRvYw5V3ZW0jOA79cafJd0XcliXGtfV ixFEkF96clzNxUMEgBlp7VdQTgKamKHT4lCgKGQzXnXPvRsgSXEOS9wc41f8plrW+HJf hgxiSaT4WVd/9Fvf4l7dRIxTr+ugwb4ABQggEF/idqmq8QUdaWmmejqTq17Me8jXE7g5 gIMhugVVXBAv/9qMeiqbASU+mR5WijIpBUanVfafuLtTeIHMie9HSG+ldERwSfock2WP B1e2LDppjX14jGoih9b0wiwEe4Sd/Vf+FVD76nvdYH2WUPnjkYMMK6YAYKQZ33KV/4QG EaNA== X-Gm-Message-State: APjAAAXaWOcYELCyQTk643dBNA/C6rjXTMMotdomlMUjlEN/jV2PflbP g1rpfXIJReTTLYOWFfjOa3dV/Q== X-Received: by 2002:aa7:8d8b:: with SMTP id i11mr2686390pfr.45.1573631204022; Tue, 12 Nov 2019 23:46:44 -0800 (PST) Received: from [10.158.21.189] ([101.9.161.91]) by smtp.gmail.com with ESMTPSA id n72sm1417301pjc.4.2019.11.12.23.46.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 12 Nov 2019 23:46:43 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (1.0) Subject: Re: [PATCH 3/4] rtw88: pci: enable CLKREQ function if host supports it From: Chris Chiu X-Mailer: iPhone Mail (16F203) In-Reply-To: Date: Wed, 13 Nov 2019 15:46:41 +0800 Cc: Kalle Valo , linux-wireless , Brian Norris Content-Transfer-Encoding: quoted-printable Message-Id: References: <20191107111603.12317-1-yhchuang@realtek.com> <20191107111603.12317-4-yhchuang@realtek.com> To: Tony Chuang Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Tony Chuang =E6=96=BC 2019=E5=B9=B411=E6=9C=8813=E6=97= =A5 =E4=B8=8B=E5=8D=883:16 =E5=AF=AB=E9=81=93=EF=BC=9A >>> On Thu, Nov 7, 2019 at 7:16 PM wrote: >>>=20 >>> From: Yan-Hsuan Chuang >>>=20 >>> By Realtek's design, there are two HW modules associated for CLKREQ, >>> one is responsible to follow the PCIE host settings, and another >>> is to actually working on it. But the module that is actually working >>> on it is default disabled, and driver should enable that module if >>> host and device have successfully sync'ed with each other. >>>=20 >>> The module is default disabled because sometimes the host does not >>> support it, and if there is any incorrect settings (ex. CLKREQ# is >>> not Bi-Direction), device can be lost and disconnected to the host. >>>=20 >>> So driver should first check after host and device are sync'ed, and >>> the host does support the function and set it in configuration >>> space, then driver can turn on the HW module to working on it. >>>=20 >>> Signed-off-by: Yan-Hsuan Chuang >>> --- >>> drivers/net/wireless/realtek/rtw88/pci.c | 83 >> ++++++++++++++++++++++++ >>> drivers/net/wireless/realtek/rtw88/pci.h | 5 ++ >>> 2 files changed, 88 insertions(+) >>>=20 >>> diff --git a/drivers/net/wireless/realtek/rtw88/pci.c >> b/drivers/net/wireless/realtek/rtw88/pci.c >>> index 6d1aa6f41e84..4fcef8a6fc42 100644 >>> --- a/drivers/net/wireless/realtek/rtw88/pci.c >>> +++ b/drivers/net/wireless/realtek/rtw88/pci.c >>> @@ -1081,6 +1081,33 @@ static void rtw_dbi_write8(struct rtw_dev >> *rtwdev, u16 addr, u8 data) >>> WARN(flag, "failed to write to DBI register, addr=3D0x%04x\n", >> addr); >>> } >>>=20 >>> +static int rtw_dbi_read8(struct rtw_dev *rtwdev, u16 addr, u8 *value) >>> +{ >>> + u16 read_addr =3D addr & BITS_DBI_ADDR_MASK; >>> + u8 flag; >>> + u8 cnt; >>> + >>> + rtw_write16(rtwdev, REG_DBI_FLAG_V1, read_addr); >>> + rtw_write8(rtwdev, REG_DBI_FLAG_V1 + 2, BIT_DBI_RFLAG >> >> 16); >>> + >>> + for (cnt =3D 0; cnt < RTW_PCI_WR_RETRY_CNT; cnt++) { >>> + flag =3D rtw_read8(rtwdev, REG_DBI_FLAG_V1 + 2); >>> + if (flag =3D=3D 0) >>> + break; >> Why not just doing ' rtw_read8(rtwdev, read_addr);' and return here? >> Then you don't need to check the flag !=3D 0 at the following. It would >> make the code cleaner and same expressive. >=20 > Maybe it would look cleaner, but you need to add statements when > 'if (flag =3D=3D 0)', then the indents will be deeper. > Also you will need to return 0 at the end if 'flag =3D=3D 0'. >=20 Yup. And I believe it=E2=80=99s still under 80 characters so I think I=E2=80= =99m cool with it. > So you still think it's cleaner to write it that way? If so, I can try to s= end > v2 for it. >>=20 >>> + >>> + udelay(10); >>> + } >>> + >>> + if (flag !=3D 0) { >>> + WARN(1, "failed to read DBI register, addr=3D0x%04x\n", >> addr); >>> + return -EIO; >>> + } >>> + >>> + read_addr =3D REG_DBI_RDATA_V1 + (addr & 3); >>> + *value =3D rtw_read8(rtwdev, read_addr); >>> + return 0; >>> +} >>> + >>> -- >>> 2.17.1 >>>=20 >>=20 >=20 > Yan-Hsuan