Received: by 2002:a05:7412:b995:b0:f9:9502:5bb8 with SMTP id it21csp6311235rdb; Mon, 1 Jan 2024 18:30:29 -0800 (PST) X-Google-Smtp-Source: AGHT+IF0lyfq6W0XE4nIDx1x7ATuIaTTvBRXaP9AK35YA5C2pDbVLBs6aqAbrlVfoEQ0DziJat6Q X-Received: by 2002:a05:622a:180b:b0:412:395c:e794 with SMTP id t11-20020a05622a180b00b00412395ce794mr27863762qtc.50.1704162629516; Mon, 01 Jan 2024 18:30:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1704162629; cv=none; d=google.com; s=arc-20160816; b=HMDz4QGXC1AtAE1cNVDXpCiB9rHgPBfq/mPUw+6xQS1uVKA9XbSRHJJxaTU/sOn/rV sID4HkECQOCs3zuHcIWADxRf0t96UgC2gAHWuWMgP0/tRktVtzFnvwbLAm1BiE4+BheM t1z7F7obEb9tZMr+KuB+Uo1Pk1n8jMA08573TcmccaMqWF7gWsT4Tk7+vVy/AFJTOe5n Hyf5MnCgqV4InOSwWMP0QVhy7iqRfN5qJCfb1Uoil/n+qIiIy4L/ftse2ymesPozAy6b CNC91z9lewwarIA+ltyFz/JLeFyLqvjw3fO5yzlNlzm+q6KgCdwD9w5oq9bTL7CLm6sP xDqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :message-id:subject:cc:to:from:date:dkim-signature; bh=a76C6RoEWABPXTGtBLjJTneSwT7P5KUbRkpixwmdCLM=; fh=j6yFSC8shDmF2iCbIJXHFtUd0JznsIq2z7Mj5Nji+Pc=; b=jdBIDXjAKF081+iCaDF0DWnZcCeaLZLmHLcfTtfbWGTFG7u4BvuAQA+HATl8AoHRiR VqGWFPC9KOPsXX/rrAvngBH4U4HnJG30MpxkzbLmeSbtj9e9lpnE5fRmakXaI2DXuex3 yggz+MHyccW3r1YF6fCu2EipuDVWfgflvks7sTMRTKczw8E0PrPeTF6YWezsVv/PrwsA HMDlJw88keaIexVficyC9Enqm5ls078j1i9YX0U+NtSPg2ram0rP5fLdTFyPIp1x6oiu pxecm7TRg7oosNTEWxc8PSJDENxtNJQpEUz+ahIItxCLS8fBqZZBQkCPStcZ8M7ZTpm6 iwDQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@canb.auug.org.au header.s=201702 header.b=WOqzuztt; spf=pass (google.com: domain of linux-kernel+bounces-13982-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-13982-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=canb.auug.org.au Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id j19-20020a05622a039300b004280ad3e110si7498204qtx.307.2024.01.01.18.30.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jan 2024 18:30:29 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-13982-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@canb.auug.org.au header.s=201702 header.b=WOqzuztt; spf=pass (google.com: domain of linux-kernel+bounces-13982-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-13982-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=canb.auug.org.au Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 391D41C20FD1 for ; Tue, 2 Jan 2024 02:30:29 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3B598ED2; Tue, 2 Jan 2024 02:30:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=canb.auug.org.au header.i=@canb.auug.org.au header.b="WOqzuztt" X-Original-To: linux-kernel@vger.kernel.org Received: from gandalf.ozlabs.org (gandalf.ozlabs.org [150.107.74.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 13F2336F; Tue, 2 Jan 2024 02:30:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=canb.auug.org.au Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=canb.auug.org.au DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canb.auug.org.au; s=201702; t=1704162613; bh=a76C6RoEWABPXTGtBLjJTneSwT7P5KUbRkpixwmdCLM=; h=Date:From:To:Cc:Subject:From; b=WOqzuzttrN68CM+Gykw9fgYwEkHrZZ6Dnx2UmYpvUvSwEhEC1y2SM/E4bCVWb0ukG GMNEvMhzEThOf/M6K8RuMOhQa+Tjag5/dsDjWPQp8OhgQ9YkCAAz0rsjI+Z61jtdjO SjVTK9WbZ7tGQPU5tQbqsZt1q64FuZwJsUGrNLTCwRKoM173XjMwHrz9XYFWyyHcHH kkwyG9qf0c8a7oK/HPlqqWncaMwb5PgcpXvn8mrO+qrG+ZTJuXaEALhlaU/a+O4KOR /GkBXaNvgvuULhqynBmBMCSYJHm81e/vgQgyhzHozo+7xT9WBRDhO7ROaQVcFHANIa pKBwlumz/9Lkg== Received: from authenticated.ozlabs.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail.ozlabs.org (Postfix) with ESMTPSA id 4T3xdw2WFGz4wbR; Tue, 2 Jan 2024 13:30:12 +1100 (AEDT) Date: Tue, 2 Jan 2024 13:30:11 +1100 From: Stephen Rothwell To: Hans de Goede , Mark Gross Cc: "David E. Box" , Ilpo =?UTF-8?B?SsOkcnZp?= =?UTF-8?B?bmVu?= , Linux Kernel Mailing List , Linux Next Mailing List , Rajvi Jingar , Xi Pardee Subject: linux-next: manual merge of the drivers-x86 tree with Linus' tree Message-ID: <20240102133011.75a12634@canb.auug.org.au> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/6eVXb0ON+oyQXliDjq_zT2I"; protocol="application/pgp-signature"; micalg=pgp-sha256 --Sig_/6eVXb0ON+oyQXliDjq_zT2I Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Hi all, FIXME: Add owner of second tree to To: Add author(s)/SOB of conflicting commits. Today's linux-next merge of the drivers-x86 tree got conflicts in: drivers/platform/x86/intel/pmc/adl.c drivers/platform/x86/intel/pmc/cnp.c drivers/platform/x86/intel/pmc/core.h drivers/platform/x86/intel/pmc/mtl.c drivers/platform/x86/intel/pmc/tgl.c between commits: 6f9cc5c1f94d ("platform/x86/intel/pmc: Allow reenabling LTRs") 70681aa0746a ("platform/x86/intel/pmc: Move GBE LTR ignore to suspend cal= lback") from Linus' tree and commits: 2e35e3aa9f10 ("platform/x86:intel/pmc: Call pmc_get_low_power_modes from = platform init") 4d621c3f02ba ("platform/x86/intel/pmc: Retrieve LPM information using Int= el PMT") d79c3c82ee82 ("platform/x86/intel/pmc: Move common code to core.c") 935b8211a31a ("platform/x86/intel/pmc: Read low power mode requirements f= or MTL-M and MTL-P") 1d62ada48d41 ("platform/x86/intel/pmc: Add ssram_init flag in PMC discove= ry in Meteor Lake") 544f7b7f651c ("platform/x86/intel/pmc: Add regmap for Tiger Lake H PCH") from the drivers-x86 tree. I fixed it up (see below) and can carry the fix as necessary. This is now fixed as far as linux-next is concerned, but any non trivial conflicts should be mentioned to your upstream maintainer when your tree is submitted for merging. You may also want to consider cooperating with the maintainer of the conflicting tree to minimise any particularly complex conflicts. --=20 Cheers, Stephen Rothwell diff --cc drivers/platform/x86/intel/pmc/adl.c index 606f7678bcb0,882f2d5d8937..000000000000 --- a/drivers/platform/x86/intel/pmc/adl.c +++ b/drivers/platform/x86/intel/pmc/adl.c @@@ -322,5 -321,13 +324,7 @@@ int adl_core_init(struct pmc_dev *pmcde if (ret) return ret; =20 + pmc_core_get_low_power_modes(pmcdev); +=20 - /* Due to a hardware limitation, the GBE LTR blocks PC10 - * when a cable is attached. Tell the PMC to ignore it. - */ - dev_dbg(&pmcdev->pdev->dev, "ignoring GBE LTR\n"); - pmc_core_send_ltr_ignore(pmcdev, 3); - return 0; } diff --cc drivers/platform/x86/intel/pmc/cnp.c index 98b36651201a,59298f184d0e..000000000000 --- a/drivers/platform/x86/intel/pmc/cnp.c +++ b/drivers/platform/x86/intel/pmc/cnp.c @@@ -234,5 -214,13 +234,7 @@@ int cnp_core_init(struct pmc_dev *pmcde if (ret) return ret; =20 + pmc_core_get_low_power_modes(pmcdev); +=20 - /* Due to a hardware limitation, the GBE LTR blocks PC10 - * when a cable is attached. Tell the PMC to ignore it. - */ - dev_dbg(&pmcdev->pdev->dev, "ignoring GBE LTR\n"); - pmc_core_send_ltr_ignore(pmcdev, 3); - return 0; } diff --cc drivers/platform/x86/intel/pmc/core.h index b66dacbfb94b,2891d8d04fad..000000000000 --- a/drivers/platform/x86/intel/pmc/core.h +++ b/drivers/platform/x86/intel/pmc/core.h @@@ -486,9 -511,61 +513,61 @@@ extern const struct pmc_bit_map mtl_ioe extern const struct pmc_bit_map mtl_ioem_vnn_req_status_1_map[]; extern const struct pmc_bit_map *mtl_ioem_lpm_maps[]; extern const struct pmc_reg_map mtl_ioem_reg_map; + extern const struct pmc_reg_map lnl_socm_reg_map; +=20 + /* LNL */ + extern const struct pmc_bit_map lnl_ltr_show_map[]; + extern const struct pmc_bit_map lnl_clocksource_status_map[]; + extern const struct pmc_bit_map lnl_power_gating_status_0_map[]; + extern const struct pmc_bit_map lnl_power_gating_status_1_map[]; + extern const struct pmc_bit_map lnl_power_gating_status_2_map[]; + extern const struct pmc_bit_map lnl_d3_status_0_map[]; + extern const struct pmc_bit_map lnl_d3_status_1_map[]; + extern const struct pmc_bit_map lnl_d3_status_2_map[]; + extern const struct pmc_bit_map lnl_d3_status_3_map[]; + extern const struct pmc_bit_map lnl_vnn_req_status_0_map[]; + extern const struct pmc_bit_map lnl_vnn_req_status_1_map[]; + extern const struct pmc_bit_map lnl_vnn_req_status_2_map[]; + extern const struct pmc_bit_map lnl_vnn_req_status_3_map[]; + extern const struct pmc_bit_map lnl_vnn_misc_status_map[]; + extern const struct pmc_bit_map *lnl_lpm_maps[]; + extern const struct pmc_bit_map lnl_pfear_map[]; + extern const struct pmc_bit_map *ext_lnl_pfear_map[]; +=20 + /* ARL */ + extern const struct pmc_bit_map arl_socs_ltr_show_map[]; + extern const struct pmc_bit_map arl_socs_clocksource_status_map[]; + extern const struct pmc_bit_map arl_socs_power_gating_status_0_map[]; + extern const struct pmc_bit_map arl_socs_power_gating_status_1_map[]; + extern const struct pmc_bit_map arl_socs_power_gating_status_2_map[]; + extern const struct pmc_bit_map arl_socs_d3_status_2_map[]; + extern const struct pmc_bit_map arl_socs_d3_status_3_map[]; + extern const struct pmc_bit_map arl_socs_vnn_req_status_3_map[]; + extern const struct pmc_bit_map *arl_socs_lpm_maps[]; + extern const struct pmc_bit_map arl_socs_pfear_map[]; + extern const struct pmc_bit_map *ext_arl_socs_pfear_map[]; + extern const struct pmc_reg_map arl_socs_reg_map; + extern const struct pmc_bit_map arl_pchs_ltr_show_map[]; + extern const struct pmc_bit_map arl_pchs_clocksource_status_map[]; + extern const struct pmc_bit_map arl_pchs_power_gating_status_0_map[]; + extern const struct pmc_bit_map arl_pchs_power_gating_status_1_map[]; + extern const struct pmc_bit_map arl_pchs_power_gating_status_2_map[]; + extern const struct pmc_bit_map arl_pchs_d3_status_0_map[]; + extern const struct pmc_bit_map arl_pchs_d3_status_1_map[]; + extern const struct pmc_bit_map arl_pchs_d3_status_2_map[]; + extern const struct pmc_bit_map arl_pchs_d3_status_3_map[]; + extern const struct pmc_bit_map arl_pchs_vnn_req_status_0_map[]; + extern const struct pmc_bit_map arl_pchs_vnn_req_status_1_map[]; + extern const struct pmc_bit_map arl_pchs_vnn_req_status_2_map[]; + extern const struct pmc_bit_map arl_pchs_vnn_req_status_3_map[]; + extern const struct pmc_bit_map arl_pchs_vnn_misc_status_map[]; + extern const struct pmc_bit_map arl_pchs_signal_status_map[]; + extern const struct pmc_bit_map *arl_pchs_lpm_maps[]; + extern const struct pmc_reg_map arl_pchs_reg_map; =20 extern void pmc_core_get_tgl_lpm_reqs(struct platform_device *pdev); + extern int pmc_core_ssram_get_lpm_reqs(struct pmc_dev *pmcdev); -extern int pmc_core_send_ltr_ignore(struct pmc_dev *pmcdev, u32 value); +int pmc_core_send_ltr_ignore(struct pmc_dev *pmcdev, u32 value, int ignor= e); =20 int pmc_core_resume_common(struct pmc_dev *pmcdev); int get_primary_reg_base(struct pmc *pmc); @@@ -499,12 -579,13 +581,16 @@@ int spt_core_init(struct pmc_dev *pmcde int cnp_core_init(struct pmc_dev *pmcdev); int icl_core_init(struct pmc_dev *pmcdev); int tgl_core_init(struct pmc_dev *pmcdev); + int tgl_l_core_init(struct pmc_dev *pmcdev); + int tgl_core_generic_init(struct pmc_dev *pmcdev, int pch_tp); int adl_core_init(struct pmc_dev *pmcdev); int mtl_core_init(struct pmc_dev *pmcdev); + int arl_core_init(struct pmc_dev *pmcdev); + int lnl_core_init(struct pmc_dev *pmcdev); =20 +void cnl_suspend(struct pmc_dev *pmcdev); +int cnl_resume(struct pmc_dev *pmcdev); + #define pmc_for_each_mode(i, mode, pmcdev) \ for (i =3D 0, mode =3D pmcdev->lpm_en_modes[i]; \ i < pmcdev->num_lpm_modes; \ diff --cc drivers/platform/x86/intel/pmc/mtl.c index 504e3e273c32,e75431325dda..000000000000 --- a/drivers/platform/x86/intel/pmc/mtl.c +++ b/drivers/platform/x86/intel/pmc/mtl.c @@@ -991,19 -998,35 +1000,30 @@@ int mtl_core_init(struct pmc_dev *pmcde =20 mtl_d3_fixup(); =20 + pmcdev->suspend =3D cnl_suspend; pmcdev->resume =3D mtl_resume; -=20 pmcdev->regmap_list =3D mtl_pmc_info_list; - pmc_core_ssram_init(pmcdev); =20 - /* If regbase not assigned, set map and discover using legacy method */ - if (!pmc->regbase) { + /* + * If ssram init fails use legacy method to at least get the + * primary PMC + */ + ret =3D pmc_core_ssram_init(pmcdev, func); + if (ret) { + ssram_init =3D false; + dev_warn(&pmcdev->pdev->dev, + "ssram init failed, %d, using legacy init\n", ret); pmc->map =3D &mtl_socm_reg_map; ret =3D get_primary_reg_base(pmc); if (ret) return ret; } =20 + pmc_core_get_low_power_modes(pmcdev); + pmc_core_punit_pmt_init(pmcdev, MTL_PMT_DMU_GUID); +=20 - /* Due to a hardware limitation, the GBE LTR blocks PC10 - * when a cable is attached. Tell the PMC to ignore it. - */ - dev_dbg(&pmcdev->pdev->dev, "ignoring GBE LTR\n"); - pmc_core_send_ltr_ignore(pmcdev, 3); - + if (ssram_init) + return pmc_core_ssram_get_lpm_reqs(pmcdev); +=20 return 0; } diff --cc drivers/platform/x86/intel/pmc/tgl.c index e88d3d00c853,91fd725951e5..000000000000 --- a/drivers/platform/x86/intel/pmc/tgl.c +++ b/drivers/platform/x86/intel/pmc/tgl.c @@@ -258,16 -300,22 +300,20 @@@ int tgl_core_generic_init(struct pmc_de struct pmc *pmc =3D pmcdev->pmcs[PMC_IDX_MAIN]; int ret; =20 - pmc->map =3D &tgl_reg_map; + if (pch_tp =3D=3D PCH_H) + pmc->map =3D &tgl_h_reg_map; + else + pmc->map =3D &tgl_reg_map; =20 + pmcdev->suspend =3D cnl_suspend; + pmcdev->resume =3D cnl_resume; + ret =3D get_primary_reg_base(pmc); if (ret) return ret; =20 + pmc_core_get_low_power_modes(pmcdev); pmc_core_get_tgl_lpm_reqs(pmcdev->pdev); - /* Due to a hardware limitation, the GBE LTR blocks PC10 - * when a cable is attached. Tell the PMC to ignore it. - */ - dev_dbg(&pmcdev->pdev->dev, "ignoring GBE LTR\n"); - pmc_core_send_ltr_ignore(pmcdev, 3); =20 return 0; } --Sig_/6eVXb0ON+oyQXliDjq_zT2I Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEENIC96giZ81tWdLgKAVBC80lX0GwFAmWTdTMACgkQAVBC80lX 0Gxnywf9G78zwBR1NR419p3bGLEF+eAyH8HmZH0b1FXkZsE2Q+rxZ1cI+66faTtB lfn2U3Q64oUxswoQcDqoxegY2GBh648wXz3QVjjPfiiiszOhmngJU9pQ81OxTVxr L0VxbrvytpDQ+x/ikhsqDadBOtlk1JJePlJDGIB6gGMh8o+vTzFRV1sKBIBS6y+p KJynHpQimFaDhVj0KPJbk9qmeIISaUCDgsVGksXIOVJQvT6yIMzVxvm3y2VSW/du 73xE/LQLknL7J8uQPqVRGXeAnDaSrcEKoD+eZvtUtM1Qjr6XhhSrreSu46ODgnh2 s1mo5+yi3mUlruex0FkCcA2TNKPwRA== =sKTR -----END PGP SIGNATURE----- --Sig_/6eVXb0ON+oyQXliDjq_zT2I--