Re: [PATCH 00/11] drm: Restore helper usability
On Tue, Apr 23, 2024 at 3:24 AM Arnd Bergmann wrote: > > On Mon, Apr 22, 2024, at 18:58, Geert Uytterhoeven wrote: > > On Mon, Apr 22, 2024 at 3:55 PM Arnd Bergmann wrote: > >> On Mon, Apr 22, 2024, at 15:28, Jani Nikula wrote: > >> Whereas this one is broken: > >> > >> config FEATURE_A > >>tristate "user visible if I2C is enabled" > >>depends on I2C > >> > >> config HELPER_B > >>tristate # hidden > >>select FEATURE_A > >> > >> config DRIVER > >>tristate "This driver is broken if I2C is disabled" > >>select HELPER_B > > > > So the DRIVER section should gain a "depends on I2C" statement. > > That is of course the common workaround, but my point was > that nothing should ever 'select I2C' or any of the other > subsystems that are user visible. > > > Yamada-san: would it be difficult to modify Kconfig to ignore symbols > > like DRIVER that select other symbols with unmet dependencies? > > Currently it already warns about that. > > > > Handling this implicitly (instead of the current explict "depends > > on") would have the disadvantage though: a user who is not aware of > > the implicit dependency may wonder why DRIVER is invisible in his > > config interface. > > I think hiding this would make it much harder to get anything > right. The symbols in question are almost all ones that should > be enabled in normal configs, and the 'make menuconfig' help > doesn't make it too hard to figure things out normally, we just > have to find a way to avoid regressions when converting things > to 'depends on' that used an incorrect 'select'. > > Arnd I am confused because you repeatedly discussed the missing I2C dependency. Are you talking about DRM drivers, or is it just "an example" in general? DRM selects I2C. https://github.com/torvalds/linux/blob/v6.9-rc4/drivers/gpu/drm/Kconfig#L16 If you make sure individual DRM drivers depend on DRM, none of them can be enabled without I2C. Currently, this is not guaranteed just because DRM folks do not know how to use the "menuconfig" syntax. The "menuconfig" makes sense only when it is followed by "if". diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 5a0c476361c3..6984b3fea271 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -29,6 +29,8 @@ menuconfig DRM details. You should also select and configure AGP (/dev/agpgart) support if it is available for your platform. +if DRM + config DRM_MIPI_DBI tristate depends on DRM @@ -414,3 +416,5 @@ config DRM_LIB_RANDOM config DRM_PRIVACY_SCREEN bool default n + +endif -- Best Regards Masahiro Yamada
Re: [PATCH 01/12] kbuild: make -Woverride-init warnings more consistent
On Wed, Mar 27, 2024 at 6:23 PM Arnd Bergmann wrote: > > On Wed, Mar 27, 2024, at 08:50, Jani Nikula wrote: > > On Tue, 26 Mar 2024, "Arnd Bergmann" wrote: > >> On Tue, Mar 26, 2024, at 21:24, Jani Nikula wrote: > >>> On Tue, 26 Mar 2024, Arnd Bergmann wrote: > >> > >> It works now. > >> > >> The original __diag_ignore_all() only did it for gcc-8 and above > >> because that was initially needed to suppress warnings that > >> got added in that version, but this was always a mistake. > >> > >> 689b097a06ba ("compiler-gcc: Suppress -Wmissing-prototypes > >> warning for all supported GCC") made it work correctly. > > > > Oh, nice! Then I think we'd like to go back to __diag_ignore_all() in > > i915 and xe. > > > > The diff is below. I'm fine with you squashing it to your patch, or if > > you want me to turn it into a proper patch for you to pick up in your > > series, that's fine too. Just let me know. > > I think I'd prefer to keep my patch simpler for the moment and > get that merged through the kbuild tree, it already touches > too many places at once. > > It may be better for me to just drop the drivers/gpu/ part of > my patch so you can just just take your patch through the > drm tree. I actually have a similar patch for the amdgpu driver > that I can send if you like this option better. > > Arnd > Applied to linux-kbuild/fixes. Thanks. -- Best Regards Masahiro Yamada
Re: [PATCH RFC 01/12] kbuild: create destination directory for _shipped handling
On Mon, Feb 26, 2024 at 8:01 PM Dmitry Baryshkov wrote: > > On Mon, 26 Feb 2024 at 08:33, Masahiro Yamada wrote: > > > > On Mon, Feb 26, 2024 at 11:11 AM Dmitry Baryshkov > > wrote: > > > > > > The driver might decide to put the _shipped files to the subdir. > > > > > > > > Please stop this sentence. > > > > This sounds like we are not learning. > > > > https://lore.kernel.org/all/CAHk-=wgSEi_ZrHdqr=20xv+d6dr5G895CbOAi8ok+7-CQUN=f...@mail.gmail.com/ > > > > > > > > > > > In such > > > case the cmd_copy might fail because the destination directory is not > > > present. Call mkdir -p to make sure that the destination directory is > > > present. > > > > > > There is no justification for this. > > > > If you need a single generated directory > > (drivers/gpu/drm/msm/registers/, divers/gpu/drm/msm/generated/ or whatever) > > that should be super simple. > > > > Why does scripts/Makefile.lib need the modification? > > Could you please tell me how I should handle this? > I was looking for a way to generate > drivers/gpu/drm/msm/registers/foo.xml.h and then use it during > compilation. > In drivers/gpu/drm/msm/Makefile I added $(obj)/registers/foo.xml.h as > a dependency to the corresponding object files and then added > drivers/gpu/drm/msm/registers/foo.xml.h_shipped file. > This way Kbuild/make will attempt to call cmd_copy to generate target > file, which thanks to VPATH expansion boils down to `cat > $(srctree)/$(src)/registers/foo.xml.h_shopped > > $(obj)/registers/foo.xml.h`. However this breaks as there is no > $(obj)/registers. > One simple solution is to use $(shell mkdir -p ...) to create the output directory. scripts/Makefile.build does a similar thing. You can add the following to drivers/gpu/drm/msm/Makefile. # Create output directory when CONFIG_DRM_MSM is defined. # This avoids creating the output directory during 'make clean' ifdef CONFIG_DRM_MSM $(shell mkdir -p $(obj)/registers) endif -- Best Regards Masahiro Yamada
Re: [PATCH RFC 00/12] drm/msm: add support for regenerating shipped xml.h headers
On Mon, Feb 26, 2024 at 7:49 PM Dmitry Baryshkov wrote: > Could you please specify how you tried to compile the code? I can see > warnings from headrgen2, but I'm really puzzled by the errors from the > MSM driver itself. I applied this patch set onto v6.8-rc6. masahiro@zoe:~/ref/linux(testing7)$ git log --oneline -15 40eb59f162cc (HEAD -> testing7) drm/msm: sync shipped headers database ae850f45f243 drm/msm: tie regeneration of shipped headers 45401d4034ef drm/msm: import XML registers database 491e4d41308e drm/msm/headergen: generate _shipped files 6766c628c097 drm/msm/headergen: don't output full file paths e48e9a8eaf21 drm/msm/headergen: use asprintf instead of custom aprintf b12d6fb5d2a0 drm/msm/headergen: import source files from freedreno/envytools 4699358f5c5b drm/msm: use _shipped suffix for all xml.h files 295fcf923852 drm/msm/dsi: drop mmss_cc.xml.h a15c0faba637 drm/msm/hdmi: drop qfprom.xml.h 6811afe14414 drm/msm/mdp5: add writeback block bases feee4929582e kbuild: create destination directory for _shipped handling d206a76d7d27 (tag: v6.8-rc6, origin/master, origin/HEAD, master) Linux 6.8-rc6 e231dbd452a7 Merge tag 'bcachefs-2024-02-25' of https://evilpiepirate.org/git/bcachefs 5197728f8182 bcachefs: fix bch2_save_backtrace() I see the build errors with arm64 defconfig. [build step] $ git clean -fdx $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j$(nproc) As I commented in 05/12, -I$(srctree)/$(src) is lost. I was able to build it with the following fix-up. --- a/drivers/gpu/drm/msm/Makefile +++ b/drivers/gpu/drm/msm/Makefile @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 ccflags-y := -I $(srctree)/$(src) -ccflags-y := -I $(obj)/registers +ccflags-y += -I $(obj)/registers ccflags-y += -I $(srctree)/$(src)/disp/dpu1 ccflags-$(CONFIG_DRM_MSM_DSI) += -I $(srctree)/$(src)/dsi ccflags-$(CONFIG_DRM_MSM_DP) += -I $(srctree)/$(src)/dp Better fixes would be to use #include "" properly. It should be relative to the source file. diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.h b/drivers/gpu/drm/msm/adreno/a6xx_gmu.h index 592b296aab22..cf878490abd0 100644 --- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.h +++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.h @@ -9,7 +9,7 @@ #include #include #include -#include "msm_drv.h" +#include "../msm_drv.h" #include "a6xx_hfi.h" struct a6xx_gmu_bo { diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c index c9c55e2ea584..3a109453db31 100644 --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c @@ -2,9 +2,9 @@ /* Copyright (c) 2017-2019 The Linux Foundation. All rights reserved. */ -#include "msm_gem.h" -#include "msm_mmu.h" -#include "msm_gpu_trace.h" +#include "../msm_gem.h" +#include "../msm_mmu.h" +#include "../msm_gpu_trace.h" #include "a6xx_gpu.h" #include "a6xx_gmu.xml.h" diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h index bc14df96feb0..007788bf38ce 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h @@ -12,7 +12,7 @@ #include #include -#include "msm_gpu.h" +#include "../msm_gpu.h" #include "adreno_common.xml.h" #include "adreno_pm4.xml.h" -- Best Regards Masahiro Yamada
Re: [PATCH RFC 05/12] drm/msm: use _shipped suffix for all xml.h files
On Mon, Feb 26, 2024 at 11:11 AM Dmitry Baryshkov wrote: > > Move non-GPU xml.h files into the ./registers subdir and add the > _shipped suffix. The GPU files are left intact for now, since they > require processing via a gen_headers.py, while display headers are > regenerated using headergen2 > > Signed-off-by: Dmitry Baryshkov > --- > drivers/gpu/drm/msm/Makefile | 53 > ++ > .../{dsi/dsi.xml.h => registers/dsi.xml.h_shipped} | 0 > .../dsi_phy_10nm.xml.h_shipped}| 0 > .../dsi_phy_14nm.xml.h_shipped}| 0 > .../dsi_phy_20nm.xml.h_shipped}| 0 > .../dsi_phy_28nm.xml.h_shipped}| 0 > .../dsi_phy_28nm_8960.xml.h_shipped} | 0 > .../dsi_phy_7nm.xml.h_shipped} | 0 > .../hdmi.xml.h => registers/hdmi.xml.h_shipped}| 0 > .../mdp4.xml.h => registers/mdp4.xml.h_shipped}| 0 > .../mdp5.xml.h => registers/mdp5.xml.h_shipped}| 0 > .../mdp_common.xml.h_shipped} | 0 > .../sfpb.xml.h => registers/sfpb.xml.h_shipped}| 0 > 13 files changed, 43 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/msm/Makefile b/drivers/gpu/drm/msm/Makefile > index 543e04fa72e3..89c9f5f93b85 100644 > --- a/drivers/gpu/drm/msm/Makefile > +++ b/drivers/gpu/drm/msm/Makefile > @@ -1,5 +1,6 @@ > # SPDX-License-Identifier: GPL-2.0 > ccflags-y := -I $(srctree)/$(src) > +ccflags-y := -I $(obj)/registers This accidentally overwrites ccflags-y defined above. So, "-I $(srctree)/$(src)" is lost. It should be ccflags-y += -I $(obj)/registers I see several build errors. -- Best Regards Masahiro Yamada
Re: [PATCH RFC 01/12] kbuild: create destination directory for _shipped handling
On Mon, Feb 26, 2024 at 11:11 AM Dmitry Baryshkov wrote: > > The driver might decide to put the _shipped files to the subdir. Please stop this sentence. This sounds like we are not learning. https://lore.kernel.org/all/CAHk-=wgSEi_ZrHdqr=20xv+d6dr5G895CbOAi8ok+7-CQUN=f...@mail.gmail.com/ > In such > case the cmd_copy might fail because the destination directory is not > present. Call mkdir -p to make sure that the destination directory is > present. There is no justification for this. If you need a single generated directory (drivers/gpu/drm/msm/registers/, divers/gpu/drm/msm/generated/ or whatever) that should be super simple. Why does scripts/Makefile.lib need the modification? > > Signed-off-by: Dmitry Baryshkov > --- > scripts/Makefile.lib | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > index cd5b181060f1..94373eeac420 100644 > --- a/scripts/Makefile.lib > +++ b/scripts/Makefile.lib > @@ -297,7 +297,7 @@ endef > # the copy would be read-only as well, leading to an error when executing the > # rule next time. Use 'cat' instead in order to generate a writable file. > quiet_cmd_copy = COPY$@ > - cmd_copy = cat $< > $@ > + cmd_copy = mkdir -p $(shell dirname $@) && cat $< > $@ > > $(obj)/%: $(src)/%_shipped > $(call cmd,copy) > > -- > 2.39.2 > -- Best Regards Masahiro Yamada
Re: [PATCH RFC 00/12] drm/msm: add support for regenerating shipped xml.h headers
+- > drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.h | 11 + > drivers/gpu/drm/msm/disp/mdp_common.xml.h | 111 -- > drivers/gpu/drm/msm/dsi/mmss_cc.xml.h | 131 -- > drivers/gpu/drm/msm/dsi/sfpb.xml.h | 70 - > drivers/gpu/drm/msm/hdmi/qfprom.xml.h | 61 - > drivers/gpu/drm/msm/headergen2/colors.c| 61 + > drivers/gpu/drm/msm/headergen2/colors.h| 49 + > drivers/gpu/drm/msm/headergen2/headergen2.c| 514 > drivers/gpu/drm/msm/headergen2/path.c | 64 + > drivers/gpu/drm/msm/headergen2/rnn.c | 1363 > > drivers/gpu/drm/msm/headergen2/rnn.h | 243 > drivers/gpu/drm/msm/headergen2/rnndec.c| 550 > drivers/gpu/drm/msm/headergen2/rnndec.h| 59 + > drivers/gpu/drm/msm/headergen2/util.h | 113 ++ > drivers/gpu/drm/msm/headergen2/util/u_debug.h | 12 + > drivers/gpu/drm/msm/registers/.gitignore |5 + > .../{dsi/dsi.xml.h => registers/dsi.xml.h_shipped} | 38 +- > .../dsi_phy_10nm.xml.h_shipped}| 37 +- > .../dsi_phy_14nm.xml.h_shipped}| 37 +- > .../dsi_phy_20nm.xml.h_shipped}| 37 +- > .../dsi_phy_28nm.xml.h_shipped}| 37 +- > .../dsi_phy_28nm_8960.xml.h_shipped} | 37 +- > .../dsi_phy_7nm.xml.h_shipped} | 37 +- > .../hdmi.xml.h => registers/hdmi.xml.h_shipped}| 111 +- > .../mdp4.xml.h => registers/mdp4.xml.h_shipped}| 37 +- > .../mdp5.xml.h => registers/mdp5.xml.h_shipped}| 39 +- > .../gpu/drm/msm/registers/mdp_common.xml.h_shipped | 114 ++ > drivers/gpu/drm/msm/registers/sfpb.xml.h_shipped | 67 + > drivers/gpu/drm/msm/registers/xml/dsi.xml | 390 ++ > drivers/gpu/drm/msm/registers/xml/dsi_phy_10nm.xml | 102 ++ > drivers/gpu/drm/msm/registers/xml/dsi_phy_14nm.xml | 135 ++ > drivers/gpu/drm/msm/registers/xml/dsi_phy_20nm.xml | 100 ++ > drivers/gpu/drm/msm/registers/xml/dsi_phy_28nm.xml | 180 +++ > .../drm/msm/registers/xml/dsi_phy_28nm_8960.xml| 134 ++ > drivers/gpu/drm/msm/registers/xml/dsi_phy_7nm.xml | 230 > drivers/gpu/drm/msm/registers/xml/edp.xml | 239 > .../drm/msm/registers/xml/freedreno_copyright.xml | 40 + > drivers/gpu/drm/msm/registers/xml/hdmi.xml | 1015 +++ > drivers/gpu/drm/msm/registers/xml/mdp4.xml | 480 +++ > drivers/gpu/drm/msm/registers/xml/mdp5.xml | 806 > drivers/gpu/drm/msm/registers/xml/mdp_common.xml | 89 ++ > drivers/gpu/drm/msm/registers/xml/mmss_cc.xml | 48 + > drivers/gpu/drm/msm/registers/xml/msm.xml | 32 + > drivers/gpu/drm/msm/registers/xml/rules-ng.xsd | 457 +++ > drivers/gpu/drm/msm/registers/xml/sfpb.xml | 17 + > scripts/Makefile.lib |2 +- > 47 files changed, 8034 insertions(+), 587 deletions(-) > --- > base-commit: ffa0c87f172bf7a0132aa960db412f8d63b2f533 > change-id: 20240225-fd-xml-shipped-ba9a321cdedf > > Best regards, > -- > Dmitry Baryshkov > -- Best Regards Masahiro Yamada
Re: [PATCH v5 00/17] Imagination Technologies PowerVR DRM driver
drm/imagination/pvr_rogue_fwif.h > create mode 100644 drivers/gpu/drm/imagination/pvr_rogue_fwif_check.h > create mode 100644 drivers/gpu/drm/imagination/pvr_rogue_fwif_client.h > create mode 100644 drivers/gpu/drm/imagination/pvr_rogue_fwif_client_check.h > create mode 100644 drivers/gpu/drm/imagination/pvr_rogue_fwif_common.h > create mode 100644 drivers/gpu/drm/imagination/pvr_rogue_fwif_dev_info.h > create mode 100644 > drivers/gpu/drm/imagination/pvr_rogue_fwif_resetframework.h > create mode 100644 drivers/gpu/drm/imagination/pvr_rogue_fwif_sf.h > create mode 100644 drivers/gpu/drm/imagination/pvr_rogue_fwif_shared.h > create mode 100644 drivers/gpu/drm/imagination/pvr_rogue_fwif_shared_check.h > create mode 100644 drivers/gpu/drm/imagination/pvr_rogue_fwif_stream.h > create mode 100644 drivers/gpu/drm/imagination/pvr_rogue_heap_config.h > create mode 100644 drivers/gpu/drm/imagination/pvr_rogue_meta.h > create mode 100644 drivers/gpu/drm/imagination/pvr_rogue_mips.h > create mode 100644 drivers/gpu/drm/imagination/pvr_rogue_mips_check.h > create mode 100644 drivers/gpu/drm/imagination/pvr_rogue_mmu_defs.h > create mode 100644 drivers/gpu/drm/imagination/pvr_stream.c > create mode 100644 drivers/gpu/drm/imagination/pvr_stream.h > create mode 100644 drivers/gpu/drm/imagination/pvr_stream_defs.c > create mode 100644 drivers/gpu/drm/imagination/pvr_stream_defs.h > create mode 100644 drivers/gpu/drm/imagination/pvr_sync.c > create mode 100644 drivers/gpu/drm/imagination/pvr_sync.h > create mode 100644 drivers/gpu/drm/imagination/pvr_vm.c > create mode 100644 drivers/gpu/drm/imagination/pvr_vm.h > create mode 100644 drivers/gpu/drm/imagination/pvr_vm_mips.c > create mode 100644 drivers/gpu/drm/imagination/pvr_vm_mips.h > create mode 100644 include/uapi/drm/pvr_drm.h > > -- > 2.41.0 > -- Best Regards Masahiro Yamada
Re: [PATCH] drm/amd/amdgpu: enable W=1 for amdgpu
On Sat, Jun 10, 2023 at 5:17 AM Nathan Chancellor wrote: > > + Masahiro and linux-kbuild > > On Fri, Jun 09, 2023 at 12:42:06PM -0400, Hamza Mahfooz wrote: > > We have a clean build with W=1 as of > > commit 12a15dd589ac ("drm/amd/display/amdgpu_dm/amdgpu_dm_helpers: Move > > SYNAPTICS_DEVICE_ID into CONFIG_DRM_AMD_DC_DCN ifdef"). So, let's enable > > these checks unconditionally for the entire module to catch these errors > > during development. > > > > Cc: Alex Deucher > > Cc: Nathan Chancellor > > Signed-off-by: Hamza Mahfooz > > I think this is fine, especially since it will help catch issues in > amdgpu quickly and hopefully encourage developers to fix their problems > before they make it to a tree with wider impact lika -next. > > However, this is now the third place that W=1 has been effectively > enabled (i915 and btrfs are the other two I know of) and it would be > nice if this was a little more unified, especially since it is not > uncommon for the warnings under W=1 to shift around and keeping them > unified will make maintainence over the longer term a little easier. I > am not sure if this has been brought up in the past and I don't want to > hold up this change but I suspect this sentiment of wanting to enable > W=1 on a per-subsystem basis is going to continue to grow. I believe this patch is the right way because we will be able to add a new warning option to scripts/Makefile.extrawarn without fixing any code. I remember somebody argued that drivers should be able to do subdir-ccflags-y += $(W1_FLAGS) However, if a new flag, -Wfoo, emits warnings for drivers/gpu/drm/{i915,amd}, you cannot add it to W=1 until fixing the code. If many drivers start to do likewise, W=1 warning will not be W=1 any more. Another good thing for hard-coding warning options is you can lift up a warning flag one by one. Let's say you fixed the entire DRM subsystem so it is -Wunused free now. Then, you can move -Wunused to drivers/gpu/drm/Makefile, while other warning options stay in drivers Makefiles. > > Regardless, for clang 11.1.0 to 16.0.5, I see no warnings when building > drivers/gpu/drm/amd/amdgpu/ with Arch Linux's configuration or > allmodconfig. > > Reviewed-by: Nathan Chancellor > Tested-by: Nathan Chancellor > > > --- > > drivers/gpu/drm/amd/amdgpu/Makefile | 13 - > > 1 file changed, 12 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/Makefile > > b/drivers/gpu/drm/amd/amdgpu/Makefile > > index 86b833085f19..8d16f280b695 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/Makefile > > +++ b/drivers/gpu/drm/amd/amdgpu/Makefile > > @@ -40,7 +40,18 @@ ccflags-y := -I$(FULL_AMD_PATH)/include/asic_reg \ > > -I$(FULL_AMD_PATH)/amdkfd > > > > subdir-ccflags-y := -Wextra > > -subdir-ccflags-y += $(call cc-option, -Wunused-but-set-variable) > > +subdir-ccflags-y += -Wunused > > +subdir-ccflags-y += -Wmissing-prototypes > > +subdir-ccflags-y += -Wmissing-declarations > > +subdir-ccflags-y += -Wmissing-include-dirs > > +subdir-ccflags-y += -Wold-style-definition > > +subdir-ccflags-y += -Wmissing-format-attribute > > +# Need this to avoid recursive variable evaluation issues > > +cond-flags := $(call cc-option, -Wunused-but-set-variable) \ > > + $(call cc-option, -Wunused-const-variable) \ > > + $(call cc-option, -Wstringop-truncation) \ > > + $(call cc-option, -Wpacked-not-aligned) > > +subdir-ccflags-y += $(cond-flags) > > subdir-ccflags-y += -Wno-unused-parameter > > subdir-ccflags-y += -Wno-type-limits > > subdir-ccflags-y += -Wno-sign-compare > > -- > > 2.40.1 > > -- Best Regards Masahiro Yamada
[PATCH v3 2/2] drm/bridge: imx: turn imx8{qm, qxp}-ldb into single-object modules
With the previous fix, these modules are built from a single C file. Rename the source files so they match the module names. Signed-off-by: Masahiro Yamada Reviewed-by: Laurent Pinchart Reviewed-by: Liu Ying --- (no changes since v1) drivers/gpu/drm/bridge/imx/Makefile | 4 drivers/gpu/drm/bridge/imx/{imx8qm-ldb-drv.c => imx8qm-ldb.c} | 0 .../gpu/drm/bridge/imx/{imx8qxp-ldb-drv.c => imx8qxp-ldb.c} | 0 3 files changed, 4 deletions(-) rename drivers/gpu/drm/bridge/imx/{imx8qm-ldb-drv.c => imx8qm-ldb.c} (100%) rename drivers/gpu/drm/bridge/imx/{imx8qxp-ldb-drv.c => imx8qxp-ldb.c} (100%) diff --git a/drivers/gpu/drm/bridge/imx/Makefile b/drivers/gpu/drm/bridge/imx/Makefile index 5fc821278693..8e2ebf3399a1 100644 --- a/drivers/gpu/drm/bridge/imx/Makefile +++ b/drivers/gpu/drm/bridge/imx/Makefile @@ -1,10 +1,6 @@ obj-$(CONFIG_DRM_IMX_LDB_HELPER) += imx-ldb-helper.o -imx8qm-ldb-objs := imx8qm-ldb-drv.o obj-$(CONFIG_DRM_IMX8QM_LDB) += imx8qm-ldb.o - -imx8qxp-ldb-objs := imx8qxp-ldb-drv.o obj-$(CONFIG_DRM_IMX8QXP_LDB) += imx8qxp-ldb.o - obj-$(CONFIG_DRM_IMX8QXP_PIXEL_COMBINER) += imx8qxp-pixel-combiner.o obj-$(CONFIG_DRM_IMX8QXP_PIXEL_LINK) += imx8qxp-pixel-link.o obj-$(CONFIG_DRM_IMX8QXP_PIXEL_LINK_TO_DPI) += imx8qxp-pxl2dpi.o diff --git a/drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c b/drivers/gpu/drm/bridge/imx/imx8qm-ldb.c similarity index 100% rename from drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c rename to drivers/gpu/drm/bridge/imx/imx8qm-ldb.c diff --git a/drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c b/drivers/gpu/drm/bridge/imx/imx8qxp-ldb.c similarity index 100% rename from drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c rename to drivers/gpu/drm/bridge/imx/imx8qxp-ldb.c -- 2.39.2
[PATCH v3 1/2] drm/bridge: imx: fix mixed module-builtin object
With CONFIG_DRM_IMX8QM_LDB=m and CONFIG_DRM_IMX8QXP_LDB=y (or vice versa), imx-ldb-helper.o is linked to a module and also to vmlinux even though the expected CFLAGS are different between builtins and modules. This is the same situation as fixed by commit 637a642f5ca5 ("zstd: Fixing mixed module-builtin objects"). Split imx-ldb-helper.c into a separate module. Signed-off-by: Masahiro Yamada Reviewed-by: Laurent Pinchart Reviewed-by: Liu Ying --- Changes in v3: - Remove MODULE_ALIAS() Changes in v2: - Add a separate module instead of making the functions static inline drivers/gpu/drm/bridge/imx/Kconfig | 5 + drivers/gpu/drm/bridge/imx/Makefile | 5 +++-- drivers/gpu/drm/bridge/imx/imx-ldb-helper.c | 17 + 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/imx/Kconfig b/drivers/gpu/drm/bridge/imx/Kconfig index 608f47f41bcd..9fae28db6aa7 100644 --- a/drivers/gpu/drm/bridge/imx/Kconfig +++ b/drivers/gpu/drm/bridge/imx/Kconfig @@ -1,9 +1,13 @@ if ARCH_MXC || COMPILE_TEST +config DRM_IMX_LDB_HELPER + tristate + config DRM_IMX8QM_LDB tristate "Freescale i.MX8QM LVDS display bridge" depends on OF depends on COMMON_CLK + select DRM_IMX_LDB_HELPER select DRM_KMS_HELPER help Choose this to enable the internal LVDS Display Bridge(LDB) found in @@ -13,6 +17,7 @@ config DRM_IMX8QXP_LDB tristate "Freescale i.MX8QXP LVDS display bridge" depends on OF depends on COMMON_CLK + select DRM_IMX_LDB_HELPER select DRM_KMS_HELPER help Choose this to enable the internal LVDS Display Bridge(LDB) found in diff --git a/drivers/gpu/drm/bridge/imx/Makefile b/drivers/gpu/drm/bridge/imx/Makefile index aa90ec8d5433..5fc821278693 100644 --- a/drivers/gpu/drm/bridge/imx/Makefile +++ b/drivers/gpu/drm/bridge/imx/Makefile @@ -1,7 +1,8 @@ -imx8qm-ldb-objs := imx-ldb-helper.o imx8qm-ldb-drv.o +obj-$(CONFIG_DRM_IMX_LDB_HELPER) += imx-ldb-helper.o +imx8qm-ldb-objs := imx8qm-ldb-drv.o obj-$(CONFIG_DRM_IMX8QM_LDB) += imx8qm-ldb.o -imx8qxp-ldb-objs := imx-ldb-helper.o imx8qxp-ldb-drv.o +imx8qxp-ldb-objs := imx8qxp-ldb-drv.o obj-$(CONFIG_DRM_IMX8QXP_LDB) += imx8qxp-ldb.o obj-$(CONFIG_DRM_IMX8QXP_PIXEL_COMBINER) += imx8qxp-pixel-combiner.o diff --git a/drivers/gpu/drm/bridge/imx/imx-ldb-helper.c b/drivers/gpu/drm/bridge/imx/imx-ldb-helper.c index 7338b84bc83d..6967325cd8ee 100644 --- a/drivers/gpu/drm/bridge/imx/imx-ldb-helper.c +++ b/drivers/gpu/drm/bridge/imx/imx-ldb-helper.c @@ -4,8 +4,10 @@ * Copyright 2019,2020,2022 NXP */ +#include #include #include +#include #include #include @@ -19,12 +21,14 @@ bool ldb_channel_is_single_link(struct ldb_channel *ldb_ch) { return ldb_ch->link_type == LDB_CH_SINGLE_LINK; } +EXPORT_SYMBOL_GPL(ldb_channel_is_single_link); bool ldb_channel_is_split_link(struct ldb_channel *ldb_ch) { return ldb_ch->link_type == LDB_CH_DUAL_LINK_EVEN_ODD_PIXELS || ldb_ch->link_type == LDB_CH_DUAL_LINK_ODD_EVEN_PIXELS; } +EXPORT_SYMBOL_GPL(ldb_channel_is_split_link); int ldb_bridge_atomic_check_helper(struct drm_bridge *bridge, struct drm_bridge_state *bridge_state, @@ -38,6 +42,7 @@ int ldb_bridge_atomic_check_helper(struct drm_bridge *bridge, return 0; } +EXPORT_SYMBOL_GPL(ldb_bridge_atomic_check_helper); void ldb_bridge_mode_set_helper(struct drm_bridge *bridge, const struct drm_display_mode *mode, @@ -69,6 +74,7 @@ void ldb_bridge_mode_set_helper(struct drm_bridge *bridge, break; } } +EXPORT_SYMBOL_GPL(ldb_bridge_mode_set_helper); void ldb_bridge_enable_helper(struct drm_bridge *bridge) { @@ -81,6 +87,7 @@ void ldb_bridge_enable_helper(struct drm_bridge *bridge) */ regmap_write(ldb->regmap, ldb->ctrl_reg, ldb->ldb_ctrl); } +EXPORT_SYMBOL_GPL(ldb_bridge_enable_helper); void ldb_bridge_disable_helper(struct drm_bridge *bridge) { @@ -95,6 +102,7 @@ void ldb_bridge_disable_helper(struct drm_bridge *bridge) regmap_write(ldb->regmap, ldb->ctrl_reg, ldb->ldb_ctrl); } +EXPORT_SYMBOL_GPL(ldb_bridge_disable_helper); int ldb_bridge_attach_helper(struct drm_bridge *bridge, enum drm_bridge_attach_flags flags) @@ -117,6 +125,7 @@ int ldb_bridge_attach_helper(struct drm_bridge *bridge, ldb_ch->next_bridge, bridge, DRM_BRIDGE_ATTACH_NO_CONNECTOR); } +EXPORT_SYMBOL_GPL(ldb_bridge_attach_helper); int ldb_init_helper(struct ldb *ldb) { @@ -157,6 +166,7 @@ int ldb_init_helper(struct ldb *ldb) return 0; } +EXPORT_SYMBOL_GPL(ldb_init_helper); int ldb_find_next_bridge_helper(struct ldb *ldb) { @@ -184,6 +194,7 @@ int ldb_find_next_bridge_helpe
Re: [PATCH v2 1/2] drm/bridge: imx: fix mixed module-builtin object
On Sun, Jun 4, 2023 at 10:26 PM Laurent Pinchart wrote: > > Hello Yamada-san, > > Thank you for the patch. > > On Sun, Jun 04, 2023 at 04:57:12PM +0900, Masahiro Yamada wrote: > > With CONFIG_DRM_IMX8QM_LDB=m and CONFIG_DRM_IMX8QXP_LDB=y (or vice > > versa), imx-ldb-helper.o is linked to a module and also to vmlinux > > even though the expected CFLAGS are different between builtins and > > modules. > > > > This is the same situation as fixed by commit 637a642f5ca5 ("zstd: > > Fixing mixed module-builtin objects"). > > > > Split imx-ldb-helper.c into a separate module. > > > > Signed-off-by: Masahiro Yamada > > --- > > > > Changes in v2: > > - Add a separate module instead of making the functions static inline > > > > drivers/gpu/drm/bridge/imx/Kconfig | 5 + > > drivers/gpu/drm/bridge/imx/Makefile | 5 +++-- > > drivers/gpu/drm/bridge/imx/imx-ldb-helper.c | 20 > > 3 files changed, 28 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/bridge/imx/Kconfig > > b/drivers/gpu/drm/bridge/imx/Kconfig > > index 608f47f41bcd..9fae28db6aa7 100644 > > --- a/drivers/gpu/drm/bridge/imx/Kconfig > > +++ b/drivers/gpu/drm/bridge/imx/Kconfig > > @@ -1,9 +1,13 @@ > > if ARCH_MXC || COMPILE_TEST > > > > +config DRM_IMX_LDB_HELPER > > + tristate > > + > > config DRM_IMX8QM_LDB > > tristate "Freescale i.MX8QM LVDS display bridge" > > depends on OF > > depends on COMMON_CLK > > + select DRM_IMX_LDB_HELPER > > select DRM_KMS_HELPER > > help > > Choose this to enable the internal LVDS Display Bridge(LDB) found in > > @@ -13,6 +17,7 @@ config DRM_IMX8QXP_LDB > > tristate "Freescale i.MX8QXP LVDS display bridge" > > depends on OF > > depends on COMMON_CLK > > + select DRM_IMX_LDB_HELPER > > select DRM_KMS_HELPER > > help > > Choose this to enable the internal LVDS Display Bridge(LDB) found in > > diff --git a/drivers/gpu/drm/bridge/imx/Makefile > > b/drivers/gpu/drm/bridge/imx/Makefile > > index aa90ec8d5433..5fc821278693 100644 > > --- a/drivers/gpu/drm/bridge/imx/Makefile > > +++ b/drivers/gpu/drm/bridge/imx/Makefile > > @@ -1,7 +1,8 @@ > > -imx8qm-ldb-objs := imx-ldb-helper.o imx8qm-ldb-drv.o > > +obj-$(CONFIG_DRM_IMX_LDB_HELPER) += imx-ldb-helper.o > > +imx8qm-ldb-objs := imx8qm-ldb-drv.o > > obj-$(CONFIG_DRM_IMX8QM_LDB) += imx8qm-ldb.o > > > > -imx8qxp-ldb-objs := imx-ldb-helper.o imx8qxp-ldb-drv.o > > +imx8qxp-ldb-objs := imx8qxp-ldb-drv.o > > obj-$(CONFIG_DRM_IMX8QXP_LDB) += imx8qxp-ldb.o > > > > obj-$(CONFIG_DRM_IMX8QXP_PIXEL_COMBINER) += imx8qxp-pixel-combiner.o > > diff --git a/drivers/gpu/drm/bridge/imx/imx-ldb-helper.c > > b/drivers/gpu/drm/bridge/imx/imx-ldb-helper.c > > index 7338b84bc83d..7382cb1fbfd7 100644 > > --- a/drivers/gpu/drm/bridge/imx/imx-ldb-helper.c > > +++ b/drivers/gpu/drm/bridge/imx/imx-ldb-helper.c > > @@ -4,8 +4,10 @@ > > * Copyright 2019,2020,2022 NXP > > */ > > > > +#include > > #include > > #include > > +#include > > #include > > #include > > > > @@ -15,16 +17,20 @@ > > > > #include "imx-ldb-helper.h" > > > > +#define DRIVER_NAME "imx-ldb-helper" > > + > > bool ldb_channel_is_single_link(struct ldb_channel *ldb_ch) > > { > > return ldb_ch->link_type == LDB_CH_SINGLE_LINK; > > } > > +EXPORT_SYMBOL_GPL(ldb_channel_is_single_link); > > > > bool ldb_channel_is_split_link(struct ldb_channel *ldb_ch) > > { > > return ldb_ch->link_type == LDB_CH_DUAL_LINK_EVEN_ODD_PIXELS || > > ldb_ch->link_type == LDB_CH_DUAL_LINK_ODD_EVEN_PIXELS; > > } > > +EXPORT_SYMBOL_GPL(ldb_channel_is_split_link); > > > > int ldb_bridge_atomic_check_helper(struct drm_bridge *bridge, > > struct drm_bridge_state *bridge_state, > > @@ -38,6 +44,7 @@ int ldb_bridge_atomic_check_helper(struct drm_bridge > > *bridge, > > > > return 0; > > } > > +EXPORT_SYMBOL_GPL(ldb_bridge_atomic_check_helper); > > > > void ldb_bridge_mode_set_helper(struct drm_bridge *bridge, > > const struct drm_display_mode *mode, > > @@ -69,6 +76,7 @@ void ldb_bridge_mode_set_helper(struct drm_bridge *bridge, > > bre
Re: [PATCH 1/2] drm/bridge: imx: fix mixed module-builtin object
On Sun, Jun 4, 2023 at 1:52 PM Laurent Pinchart wrote: > > Hi Yamada-san, > > Thank you for the patch. > > On Sun, Jun 04, 2023 at 02:07:46AM +0900, Masahiro Yamada wrote: > > With CONFIG_DRM_IMX8QM_LDB=m and CONFIG_DRM_IMX8QXP_LDB=y (or vice > > versa), imx-ldb-helper.o is linked to a module and also to vmlinux > > even though the expected CFLAGS are different between builtins and > > modules. > > > > This is the same situation as fixed by commit 637a642f5ca5 ("zstd: > > Fixing mixed module-builtin objects"). > > > > Turn helpers in imx-ldb-helper.c into inline functions. > > Wouldn't it be better to turn it into a module ? It could then be > built-in for the above configuration, are compiled as a module when all > its users are module as well. Yes, two ways to fix it. inline line functions vs a separate module I do not have a strong opinion. I sent v2. https://lore.kernel.org/lkml/20230604075713.1027261-1-masahi...@kernel.org/T/#t Please pick a preferred one. -- Best Regards Masahiro Yamada
[PATCH v2 2/2] drm/bridge: imx: turn imx8{qm, qxp}-ldb into single-object modules
With the previous fix, these modules are built from a single C file. Rename the source files so they match the module names. Signed-off-by: Masahiro Yamada --- (no changes since v1) drivers/gpu/drm/bridge/imx/Makefile | 4 drivers/gpu/drm/bridge/imx/{imx8qm-ldb-drv.c => imx8qm-ldb.c} | 0 .../gpu/drm/bridge/imx/{imx8qxp-ldb-drv.c => imx8qxp-ldb.c} | 0 3 files changed, 4 deletions(-) rename drivers/gpu/drm/bridge/imx/{imx8qm-ldb-drv.c => imx8qm-ldb.c} (100%) rename drivers/gpu/drm/bridge/imx/{imx8qxp-ldb-drv.c => imx8qxp-ldb.c} (100%) diff --git a/drivers/gpu/drm/bridge/imx/Makefile b/drivers/gpu/drm/bridge/imx/Makefile index 5fc821278693..8e2ebf3399a1 100644 --- a/drivers/gpu/drm/bridge/imx/Makefile +++ b/drivers/gpu/drm/bridge/imx/Makefile @@ -1,10 +1,6 @@ obj-$(CONFIG_DRM_IMX_LDB_HELPER) += imx-ldb-helper.o -imx8qm-ldb-objs := imx8qm-ldb-drv.o obj-$(CONFIG_DRM_IMX8QM_LDB) += imx8qm-ldb.o - -imx8qxp-ldb-objs := imx8qxp-ldb-drv.o obj-$(CONFIG_DRM_IMX8QXP_LDB) += imx8qxp-ldb.o - obj-$(CONFIG_DRM_IMX8QXP_PIXEL_COMBINER) += imx8qxp-pixel-combiner.o obj-$(CONFIG_DRM_IMX8QXP_PIXEL_LINK) += imx8qxp-pixel-link.o obj-$(CONFIG_DRM_IMX8QXP_PIXEL_LINK_TO_DPI) += imx8qxp-pxl2dpi.o diff --git a/drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c b/drivers/gpu/drm/bridge/imx/imx8qm-ldb.c similarity index 100% rename from drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c rename to drivers/gpu/drm/bridge/imx/imx8qm-ldb.c diff --git a/drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c b/drivers/gpu/drm/bridge/imx/imx8qxp-ldb.c similarity index 100% rename from drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c rename to drivers/gpu/drm/bridge/imx/imx8qxp-ldb.c -- 2.39.2
[PATCH v2 1/2] drm/bridge: imx: fix mixed module-builtin object
With CONFIG_DRM_IMX8QM_LDB=m and CONFIG_DRM_IMX8QXP_LDB=y (or vice versa), imx-ldb-helper.o is linked to a module and also to vmlinux even though the expected CFLAGS are different between builtins and modules. This is the same situation as fixed by commit 637a642f5ca5 ("zstd: Fixing mixed module-builtin objects"). Split imx-ldb-helper.c into a separate module. Signed-off-by: Masahiro Yamada --- Changes in v2: - Add a separate module instead of making the functions static inline drivers/gpu/drm/bridge/imx/Kconfig | 5 + drivers/gpu/drm/bridge/imx/Makefile | 5 +++-- drivers/gpu/drm/bridge/imx/imx-ldb-helper.c | 20 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/imx/Kconfig b/drivers/gpu/drm/bridge/imx/Kconfig index 608f47f41bcd..9fae28db6aa7 100644 --- a/drivers/gpu/drm/bridge/imx/Kconfig +++ b/drivers/gpu/drm/bridge/imx/Kconfig @@ -1,9 +1,13 @@ if ARCH_MXC || COMPILE_TEST +config DRM_IMX_LDB_HELPER + tristate + config DRM_IMX8QM_LDB tristate "Freescale i.MX8QM LVDS display bridge" depends on OF depends on COMMON_CLK + select DRM_IMX_LDB_HELPER select DRM_KMS_HELPER help Choose this to enable the internal LVDS Display Bridge(LDB) found in @@ -13,6 +17,7 @@ config DRM_IMX8QXP_LDB tristate "Freescale i.MX8QXP LVDS display bridge" depends on OF depends on COMMON_CLK + select DRM_IMX_LDB_HELPER select DRM_KMS_HELPER help Choose this to enable the internal LVDS Display Bridge(LDB) found in diff --git a/drivers/gpu/drm/bridge/imx/Makefile b/drivers/gpu/drm/bridge/imx/Makefile index aa90ec8d5433..5fc821278693 100644 --- a/drivers/gpu/drm/bridge/imx/Makefile +++ b/drivers/gpu/drm/bridge/imx/Makefile @@ -1,7 +1,8 @@ -imx8qm-ldb-objs := imx-ldb-helper.o imx8qm-ldb-drv.o +obj-$(CONFIG_DRM_IMX_LDB_HELPER) += imx-ldb-helper.o +imx8qm-ldb-objs := imx8qm-ldb-drv.o obj-$(CONFIG_DRM_IMX8QM_LDB) += imx8qm-ldb.o -imx8qxp-ldb-objs := imx-ldb-helper.o imx8qxp-ldb-drv.o +imx8qxp-ldb-objs := imx8qxp-ldb-drv.o obj-$(CONFIG_DRM_IMX8QXP_LDB) += imx8qxp-ldb.o obj-$(CONFIG_DRM_IMX8QXP_PIXEL_COMBINER) += imx8qxp-pixel-combiner.o diff --git a/drivers/gpu/drm/bridge/imx/imx-ldb-helper.c b/drivers/gpu/drm/bridge/imx/imx-ldb-helper.c index 7338b84bc83d..7382cb1fbfd7 100644 --- a/drivers/gpu/drm/bridge/imx/imx-ldb-helper.c +++ b/drivers/gpu/drm/bridge/imx/imx-ldb-helper.c @@ -4,8 +4,10 @@ * Copyright 2019,2020,2022 NXP */ +#include #include #include +#include #include #include @@ -15,16 +17,20 @@ #include "imx-ldb-helper.h" +#define DRIVER_NAME"imx-ldb-helper" + bool ldb_channel_is_single_link(struct ldb_channel *ldb_ch) { return ldb_ch->link_type == LDB_CH_SINGLE_LINK; } +EXPORT_SYMBOL_GPL(ldb_channel_is_single_link); bool ldb_channel_is_split_link(struct ldb_channel *ldb_ch) { return ldb_ch->link_type == LDB_CH_DUAL_LINK_EVEN_ODD_PIXELS || ldb_ch->link_type == LDB_CH_DUAL_LINK_ODD_EVEN_PIXELS; } +EXPORT_SYMBOL_GPL(ldb_channel_is_split_link); int ldb_bridge_atomic_check_helper(struct drm_bridge *bridge, struct drm_bridge_state *bridge_state, @@ -38,6 +44,7 @@ int ldb_bridge_atomic_check_helper(struct drm_bridge *bridge, return 0; } +EXPORT_SYMBOL_GPL(ldb_bridge_atomic_check_helper); void ldb_bridge_mode_set_helper(struct drm_bridge *bridge, const struct drm_display_mode *mode, @@ -69,6 +76,7 @@ void ldb_bridge_mode_set_helper(struct drm_bridge *bridge, break; } } +EXPORT_SYMBOL_GPL(ldb_bridge_mode_set_helper); void ldb_bridge_enable_helper(struct drm_bridge *bridge) { @@ -81,6 +89,7 @@ void ldb_bridge_enable_helper(struct drm_bridge *bridge) */ regmap_write(ldb->regmap, ldb->ctrl_reg, ldb->ldb_ctrl); } +EXPORT_SYMBOL_GPL(ldb_bridge_enable_helper); void ldb_bridge_disable_helper(struct drm_bridge *bridge) { @@ -95,6 +104,7 @@ void ldb_bridge_disable_helper(struct drm_bridge *bridge) regmap_write(ldb->regmap, ldb->ctrl_reg, ldb->ldb_ctrl); } +EXPORT_SYMBOL_GPL(ldb_bridge_disable_helper); int ldb_bridge_attach_helper(struct drm_bridge *bridge, enum drm_bridge_attach_flags flags) @@ -117,6 +127,7 @@ int ldb_bridge_attach_helper(struct drm_bridge *bridge, ldb_ch->next_bridge, bridge, DRM_BRIDGE_ATTACH_NO_CONNECTOR); } +EXPORT_SYMBOL_GPL(ldb_bridge_attach_helper); int ldb_init_helper(struct ldb *ldb) { @@ -157,6 +168,7 @@ int ldb_init_helper(struct ldb *ldb) return 0; } +EXPORT_SYMBOL_GPL(ldb_init_helper); int ldb_find_next_bridge_helper(struct ldb *ldb) { @@ -184,6 +196,7 @@ int ldb_find_next_bridge_helper(struct
[PATCH 2/2] drm/bridge: imx: turn imx8{qm, qxp}-ldb into single-object modules
With the previous fix, these modules are built from a single C file. Rename the source files so they match the module names. Signed-off-by: Masahiro Yamada --- drivers/gpu/drm/bridge/imx/Makefile | 4 drivers/gpu/drm/bridge/imx/{imx8qm-ldb-drv.c => imx8qm-ldb.c} | 0 .../gpu/drm/bridge/imx/{imx8qxp-ldb-drv.c => imx8qxp-ldb.c} | 0 3 files changed, 4 deletions(-) rename drivers/gpu/drm/bridge/imx/{imx8qm-ldb-drv.c => imx8qm-ldb.c} (100%) rename drivers/gpu/drm/bridge/imx/{imx8qxp-ldb-drv.c => imx8qxp-ldb.c} (100%) diff --git a/drivers/gpu/drm/bridge/imx/Makefile b/drivers/gpu/drm/bridge/imx/Makefile index 64b93009376a..c102443f7286 100644 --- a/drivers/gpu/drm/bridge/imx/Makefile +++ b/drivers/gpu/drm/bridge/imx/Makefile @@ -1,9 +1,5 @@ -imx8qm-ldb-objs := imx8qm-ldb-drv.o obj-$(CONFIG_DRM_IMX8QM_LDB) += imx8qm-ldb.o - -imx8qxp-ldb-objs := imx8qxp-ldb-drv.o obj-$(CONFIG_DRM_IMX8QXP_LDB) += imx8qxp-ldb.o - obj-$(CONFIG_DRM_IMX8QXP_PIXEL_COMBINER) += imx8qxp-pixel-combiner.o obj-$(CONFIG_DRM_IMX8QXP_PIXEL_LINK) += imx8qxp-pixel-link.o obj-$(CONFIG_DRM_IMX8QXP_PIXEL_LINK_TO_DPI) += imx8qxp-pxl2dpi.o diff --git a/drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c b/drivers/gpu/drm/bridge/imx/imx8qm-ldb.c similarity index 100% rename from drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c rename to drivers/gpu/drm/bridge/imx/imx8qm-ldb.c diff --git a/drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c b/drivers/gpu/drm/bridge/imx/imx8qxp-ldb.c similarity index 100% rename from drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c rename to drivers/gpu/drm/bridge/imx/imx8qxp-ldb.c -- 2.39.2
[PATCH 1/2] drm/bridge: imx: fix mixed module-builtin object
With CONFIG_DRM_IMX8QM_LDB=m and CONFIG_DRM_IMX8QXP_LDB=y (or vice versa), imx-ldb-helper.o is linked to a module and also to vmlinux even though the expected CFLAGS are different between builtins and modules. This is the same situation as fixed by commit 637a642f5ca5 ("zstd: Fixing mixed module-builtin objects"). Turn helpers in imx-ldb-helper.c into inline functions. Signed-off-by: Masahiro Yamada --- drivers/gpu/drm/bridge/imx/Makefile | 4 +- drivers/gpu/drm/bridge/imx/imx-ldb-helper.c | 221 drivers/gpu/drm/bridge/imx/imx-ldb-helper.h | 213 +-- 3 files changed, 197 insertions(+), 241 deletions(-) delete mode 100644 drivers/gpu/drm/bridge/imx/imx-ldb-helper.c diff --git a/drivers/gpu/drm/bridge/imx/Makefile b/drivers/gpu/drm/bridge/imx/Makefile index aa90ec8d5433..64b93009376a 100644 --- a/drivers/gpu/drm/bridge/imx/Makefile +++ b/drivers/gpu/drm/bridge/imx/Makefile @@ -1,7 +1,7 @@ -imx8qm-ldb-objs := imx-ldb-helper.o imx8qm-ldb-drv.o +imx8qm-ldb-objs := imx8qm-ldb-drv.o obj-$(CONFIG_DRM_IMX8QM_LDB) += imx8qm-ldb.o -imx8qxp-ldb-objs := imx-ldb-helper.o imx8qxp-ldb-drv.o +imx8qxp-ldb-objs := imx8qxp-ldb-drv.o obj-$(CONFIG_DRM_IMX8QXP_LDB) += imx8qxp-ldb.o obj-$(CONFIG_DRM_IMX8QXP_PIXEL_COMBINER) += imx8qxp-pixel-combiner.o diff --git a/drivers/gpu/drm/bridge/imx/imx-ldb-helper.c b/drivers/gpu/drm/bridge/imx/imx-ldb-helper.c deleted file mode 100644 index 7338b84bc83d.. --- a/drivers/gpu/drm/bridge/imx/imx-ldb-helper.c +++ /dev/null @@ -1,221 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0+ -/* - * Copyright (C) 2012 Sascha Hauer, Pengutronix - * Copyright 2019,2020,2022 NXP - */ - -#include -#include -#include -#include - -#include -#include -#include - -#include "imx-ldb-helper.h" - -bool ldb_channel_is_single_link(struct ldb_channel *ldb_ch) -{ - return ldb_ch->link_type == LDB_CH_SINGLE_LINK; -} - -bool ldb_channel_is_split_link(struct ldb_channel *ldb_ch) -{ - return ldb_ch->link_type == LDB_CH_DUAL_LINK_EVEN_ODD_PIXELS || - ldb_ch->link_type == LDB_CH_DUAL_LINK_ODD_EVEN_PIXELS; -} - -int ldb_bridge_atomic_check_helper(struct drm_bridge *bridge, - struct drm_bridge_state *bridge_state, - struct drm_crtc_state *crtc_state, - struct drm_connector_state *conn_state) -{ - struct ldb_channel *ldb_ch = bridge->driver_private; - - ldb_ch->in_bus_format = bridge_state->input_bus_cfg.format; - ldb_ch->out_bus_format = bridge_state->output_bus_cfg.format; - - return 0; -} - -void ldb_bridge_mode_set_helper(struct drm_bridge *bridge, - const struct drm_display_mode *mode, - const struct drm_display_mode *adjusted_mode) -{ - struct ldb_channel *ldb_ch = bridge->driver_private; - struct ldb *ldb = ldb_ch->ldb; - bool is_split = ldb_channel_is_split_link(ldb_ch); - - if (is_split) - ldb->ldb_ctrl |= LDB_SPLIT_MODE_EN; - - switch (ldb_ch->out_bus_format) { - case MEDIA_BUS_FMT_RGB666_1X7X3_SPWG: - break; - case MEDIA_BUS_FMT_RGB888_1X7X4_SPWG: - if (ldb_ch->chno == 0 || is_split) - ldb->ldb_ctrl |= LDB_DATA_WIDTH_CH0_24; - if (ldb_ch->chno == 1 || is_split) - ldb->ldb_ctrl |= LDB_DATA_WIDTH_CH1_24; - break; - case MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA: - if (ldb_ch->chno == 0 || is_split) - ldb->ldb_ctrl |= LDB_DATA_WIDTH_CH0_24 | -LDB_BIT_MAP_CH0_JEIDA; - if (ldb_ch->chno == 1 || is_split) - ldb->ldb_ctrl |= LDB_DATA_WIDTH_CH1_24 | -LDB_BIT_MAP_CH1_JEIDA; - break; - } -} - -void ldb_bridge_enable_helper(struct drm_bridge *bridge) -{ - struct ldb_channel *ldb_ch = bridge->driver_private; - struct ldb *ldb = ldb_ch->ldb; - - /* -* Platform specific bridge drivers should set ldb_ctrl properly -* for the enablement, so just write the ctrl_reg here. -*/ - regmap_write(ldb->regmap, ldb->ctrl_reg, ldb->ldb_ctrl); -} - -void ldb_bridge_disable_helper(struct drm_bridge *bridge) -{ - struct ldb_channel *ldb_ch = bridge->driver_private; - struct ldb *ldb = ldb_ch->ldb; - bool is_split = ldb_channel_is_split_link(ldb_ch); - - if (ldb_ch->chno == 0 || is_split) - ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK; - if (ldb_ch->chno == 1 || is_split) - ldb->ldb_ctrl &= ~LDB_CH1_MODE_EN_MASK; - - regmap_write(ldb->regmap, ldb->ctrl_reg, ldb->ldb_ctrl); -} - -int ldb_bridge_attach_helper
Re: Linux 6.3-rc3
Hello Linus, Thanks for giving me some more homeworks. On Thu, Mar 23, 2023 at 1:56 AM Linus Torvalds wrote: > > On Wed, Mar 22, 2023 at 9:40 AM Sedat Dilek wrote: > > > > You have to pass `make LLVM=1` in any case... to `oldconfig` or when > > adding any MAKEFLAGS like -j${number-of-available-cpus}. > > I actually think we should look (again) at just making the compiler > choice (and the prefix) be a Kconfig option. > > That would simplify *so* many use cases. > > It used to be that gcc was "THE compiler" and anything else was just > an odd toy special case, but that's clearly not true any more. > > So it would be lovely to make the kernel choice a Kconfig choice - so > you'd set it only at config time, and then after that a kernel build > wouldn't need special flags any more, and you'd never need to play > games with GNUmakefile or anything like that. Presumably, this is the right direction. To achieve it, Kconfig needs to have some mechanism to evaluate shell commands dynamically. If a user switches the toolchain set between GCC and LLVM while running the Kconfig, $(cc-option) in Kconfig files must be re-calculated. Currently, Kconfig cannot do it. All macros are static - they are expanded in the parse stage, and become constant strings. Ulf Magnusson and I discussed the dynamic approach a few years back, but I adopted the static way since it is much simpler. We need to reconsider the dynamic approach to do this correctly. I do not think it is too difficult technically. We just need to come up with a decent syntax. > Yes, you'd still use environment variables (or make arguments) for > that initial Kconfig, but that's no different from the other > environment variables we already have, like KCONFIG_SEED that kconfig > uses internally, but also things like "$(ARCH)" that we already use > *inside* the Kconfig files themselves. > > I really dislike how you have to set ARCH and CROSS_COMPILE etc > externally, and can't just have them *in* the config file. > > So when you do cross-compiles, right now you have to do something like > > make ARCH=i386 allmodconfig > > to build the .config file, but then you have to *repeat* that > ARCH=i386 when you actually build things: > > make ARCH=i386 > > because the ARCH choice ends up being in the .config file, but the > makefiles themselves always take it from the environment. > > There are good historical reasons for our behavior (and probably a > number of extant practical reasons too), but it's a bit annoying, and > it would be lovely if we could start moving away from this model. > > Linus Moving ARCH into the .config file needs careful thoughts, I think. Not all targets include the .config file. For example, "make clean", "make help", etc. It is unclear which targets require explicit ARCH= option. One solution is to move "archhelp", "CLEAN_FILES" etc. from arch/*/Makefile to the top Makefile. We will lose per-arch splitting in several places, though. U-Boot adopts this model - 'ARCH' is determined in the Kconfig time, so users do not need to give ARCH= option from the command line. https://github.com/u-boot/u-boot/blob/v2023.01/arch/Kconfig#L44 You may get a quick idea of what it will look like. I will take a look at this direction (the compiler choice in Kconfig first), but it will not happen soonish due to the limited time for upstream work. -- Best Regards Masahiro Yamada
Re: [PATCH v2 00/14] Remove clang's -Qunused-arguments from KBUILD_CPPFLAGS
12 - > arch/mips/kvm/fpu.S | 6 ++--- > arch/mips/loongson2ef/Platform | 2 +- > arch/powerpc/Makefile | 2 +- > arch/powerpc/kernel/vdso/Makefile | 25 +++-- > arch/s390/kernel/vdso64/Makefile| 4 +-- > arch/s390/purgatory/Makefile| 2 +- > arch/x86/boot/compressed/Makefile | 2 +- > drivers/gpu/drm/amd/display/dc/dml/Makefile | 3 ++- > scripts/Kconfig.include | 2 +- > scripts/Makefile.clang | 2 ++ > scripts/Makefile.compiler | 8 +++--- > scripts/as-version.sh | 2 +- > 21 files changed, 74 insertions(+), 98 deletions(-) > --- > base-commit: 88603b6dc419445847923fcb7fe5080067a30f98 > change-id: 20221228-drop-qunused-arguments-0c5c7dae54fb > > Best regards, > -- > Nathan Chancellor > -- Best Regards Masahiro Yamada
Re: [PATCH v2 3/5] Makefile.compiler: replace cc-ifversion with compiler-specific macros
r signed / pointers > diff --git a/drivers/gpu/drm/amd/display/dc/dml/Makefile > b/drivers/gpu/drm/amd/display/dc/dml/Makefile > index 86a3b5bfd699..d8ee4743b2e3 100644 > --- a/drivers/gpu/drm/amd/display/dc/dml/Makefile > +++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile > @@ -33,20 +33,14 @@ ifdef CONFIG_PPC64 > dml_ccflags := -mhard-float -maltivec > endif > > -ifdef CONFIG_CC_IS_GCC > -ifeq ($(call cc-ifversion, -lt, 0701, y), y) > -IS_OLD_GCC = 1 > -endif > -endif > - > ifdef CONFIG_X86 > -ifdef IS_OLD_GCC > +ifeq ($(call gcc-min-version, 70100),y) > +dml_ccflags += -msse2 > +else > # Stack alignment mismatch, proceed with caution. > # GCC < 7.1 cannot compile code using `double` and > -mpreferred-stack-boundary=3 > # (8B stack alignment). > dml_ccflags += -mpreferred-stack-boundary=4 > -else > -dml_ccflags += -msse2 > endif > endif > > diff --git a/scripts/Makefile.compiler b/scripts/Makefile.compiler > index d1739f0d3ce3..13dade724fa3 100644 > --- a/scripts/Makefile.compiler > +++ b/scripts/Makefile.compiler > @@ -61,9 +61,18 @@ cc-option-yn = $(call try-run,\ > cc-disable-warning = $(call try-run,\ > $(CC) -Werror $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) -W$(strip $(1)) -c > -x c /dev/null -o "$$TMP",-Wno-$(strip $(1))) > > -# cc-ifversion > -# Usage: EXTRA_CFLAGS += $(call cc-ifversion, -lt, 0402, -O1) > -cc-ifversion = $(shell [ $(CONFIG_GCC_VERSION)0 $(1) $(2)000 ] && echo $(3) > || echo $(4)) > +# gcc-min-version > +# Usage: cflags-$(call gcc-min-version, 70100) += -foo > +gcc-min-version = $(shell [ $(CONFIG_GCC_VERSION) -ge $(1) ] && echo y) > + > +# clang-min-version > +# Usage: cflags-$(call clang-min-version, 11) += -foo > +clang-min-version = $(shell [ $(CONFIG_CLANG_VERSION) -ge $(1) ] && echo y) > + > +# cc-min-version > +# Usage: cflags-$(call cc-min-version, 701000, 11) > +# ^ GCC ^ Clang > +cc-min-version = $(filter y, $(call gcc-min-version, $(1)), $(call > clang-min-version, $(2))) A more intuitive and more efficient form would be: cc-min-version = $(or $(call gcc-min-version, $(1)), $(call clang-min-version, $(2))) In your implementation, both gcc-min-version and clang-min-version are expanded before being passed to $(filter ...). So the shell is always invoked twice. $(or A, B) is lazily expanded; A is evaluated first. If and only if A is empty, B is expanded. If gcc-min-version is met, the shell invocation in clang-min-version will be short-cut. But, I do not find a place where cc-min-version is useful. Looking at the next patch, # gcc-11+, clang-14+ ifeq ($(call cc-min-version, 11, 14),y) dwarf-version-y := 5 else dwarf-version-y := 4 endif ... can be written in a more simpler way: dwarf-version-y := 4 dwarf-version-$(call gcc-min-version, 11) := 5 dwarf-version-$(call clang-min-version, 14) := 5 With $(call cc-min-version, 11, 14), you never know the meaning of 11, 14 until you see the definition of this macro. So, you feel like adding the comment "gcc-11+, clang-14+". The latter form, the code is self-documenting. > # ld-option > # Usage: KBUILD_LDFLAGS += $(call ld-option, -X, -Y) > -- > 2.37.2.672.g94769d06f0-goog > -- Best Regards Masahiro Yamada
Re: [PATCH] drm/radeon: Add build directory to include path
On Wed, Jun 15, 2022 at 5:35 PM Michel Dänzer wrote: > > On 2022-04-14 18:57, Michel Dänzer wrote: > > On 2022-04-14 17:04, Masahiro Yamada wrote: > >> On Thu, Apr 14, 2022 at 10:50 PM Michel Dänzer > >> wrote: > >>> On 2022-04-14 15:34, Alex Deucher wrote: > >>>> On Thu, Apr 14, 2022 at 4:44 AM Christian König > >>>> wrote: > >>>>> Am 14.04.22 um 09:37 schrieb Michel Dänzer: > >>>>>> > >>>>>> make -C build-amd64 M=drivers/gpu/drm > >> > >> > >> Maybe > >> > >> make O=build-arm64 drivers/gpu/drm/ > >> > >> is the way you were searching for. > >> > >> It builds only drivers/gpu/drm/ > >> in the separate directory. > > > > Indeed, that works. > > I've come to realize that this doesn't produce the actual *.ko modules > though. Is there a trick for building the modules, but only under > drivers/gpu/drm/ ? > > > -- > Earthling Michel Dänzer| https://redhat.com > Libre software enthusiast | Mesa and Xwayland developer No. There is no way to build *.ko only under a specific directory. -- Best Regards Masahiro Yamada
Re: [PATCH] drm/radeon: Add build directory to include path
Hi. On Thu, Apr 14, 2022 at 10:50 PM Michel Dänzer wrote: > > On 2022-04-14 15:34, Alex Deucher wrote: > > On Thu, Apr 14, 2022 at 4:44 AM Christian König > > wrote: > >> Am 14.04.22 um 09:37 schrieb Michel Dänzer: > >>> On 2022-04-14 08:24, Christian König wrote: > >>>> Am 13.04.22 um 18:14 schrieb Michel Dänzer: > >>>>> From: Michel Dänzer > >>>>> > >>>>> Fixes compile errors with out-of-tree builds, e.g. > >>>>> > >>>>> ../drivers/gpu/drm/radeon/r420.c:38:10: fatal error: r420_reg_safe.h: > >>>>> No such file or directory > >>>>> 38 | #include "r420_reg_safe.h" > >>>>> | ^ > >>>> > >>>> Well stuff like that usually points to a broken build environment. > >>> Just a separate build directory. Specifically, I'm hitting the errors with > >>> > >>> make -C build-amd64 M=drivers/gpu/drm Maybe make O=build-arm64 drivers/gpu/drm/ is the way you were searching for. It builds only drivers/gpu/drm/ in the separate directory. > >>> > >>> Generated headers such as r420_reg_safe.h reside in the build directory, > >>> so source files in the source directory can't find them without an > >>> explicit search path. > >> > >> I'm trying to swap back into my brain how all of this used to work, but > >> that's a really long time ago that I tried this as well. > >> > >>> Are you saying that should get added automagically somehow? For the kernel tree, yes, it is done automatically. See the code in scripts/Makefile.lib: # $(srctree)/$(src) for including checkin headers from generated source files # $(objtree)/$(obj) for including generated headers from checkin source files ifeq ($(KBUILD_EXTMOD),) ifdef building_out_of_srctree _c_flags += -I $(srctree)/$(src) -I $(objtree)/$(obj) _a_flags += -I $(srctree)/$(src) -I $(objtree)/$(obj) _cpp_flags += -I $(srctree)/$(src) -I $(objtree)/$(obj) endif endif But, you used M=drivers/gpu/drm. So, it did not work. M= is intended for building external modules. I do not recommend it for in-tree drivers. > >> > >> Yes, exactly that. I'm like 95% sure that used to work, but I don't know > >> why exactly either. > >> > >>> FWIW, this is pretty common in the kernel according to git grep. > >> > >> Maybe Alex or somebody else with some more background in the kernel > >> Makefiles could jump in and help here. > > > > I don't remember either. I vaguely recall the build support for the > > mkregtable stuff being reworked a while ago. A quick zip through the > > git logs shows a series from Masahiro Yamada from 2020. > > Yamada-san, can you help us? :) > > See https://patchwork.freedesktop.org/patch/482011/ for my patch. > > > -- > Earthling Michel Dänzer| https://redhat.com > Libre software enthusiast | Mesa and Xwayland developer -- Best Regards Masahiro Yamada
Re: [PATCH] [v2] Kbuild: move to -std=gnu11
On Mon, Feb 28, 2022 at 8:25 PM Mark Rutland wrote: > > Hi Arnd, > > This is great! > > On Mon, Feb 28, 2022 at 11:27:43AM +0100, Arnd Bergmann wrote: > > From: Arnd Bergmann > > > > During a patch discussion, Linus brought up the option of changing > > the C standard version from gnu89 to gnu99, which allows using variable > > declaration inside of a for() loop. While the C99, C11 and later standards > > introduce many other features, most of these are already available in > > gnu89 as GNU extensions as well. > > > > An earlier attempt to do this when gcc-5 started defaulting to > > -std=gnu11 failed because at the time that caused warnings about > > designated initializers with older compilers. Now that gcc-5.1 is the > > minimum compiler version used for building kernels, that is no longer a > > concern. Similarly, the behavior of 'inline' functions changes between > > gnu89 and gnu11, but this was taken care of by defining 'inline' to > > include __attribute__((gnu_inline)) in order to allow building with > > clang a while ago. > > > > One minor issue that remains is an added gcc warning for shifts of > > negative integers when building with -Werror, which happens with the > > 'make W=1' option, as well as for three drivers in the kernel that always > > enable -Werror, but it was only observed with the i915 driver so far. > > To be on the safe side, add -Wno-shift-negative-value to any -Wextra > > in a Makefile. > > > > Nathan Chancellor reported an additional -Wdeclaration-after-statement > > warning that appears in a system header on arm, this still needs a > > workaround. > > FWIW, I had a go at moving to c99 a few weeks ago (to be able to use > for-loop-declarations in some concurrency primitives), and when I tried, I > also > saw declaration-after-statement warnings when building modpost.c, which is > easy > enough to fix: > > > https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git/commit/?h=treewide/gnu99=505775bd6fd0bc1883f3271f826963066bbdc194 > I do not understand this statement: "Usually such warnings are implciitly enabled as part of `-std=gnu89`, and in preparation for changing the standard used, this patch explciitly enales the warnings with `-Wdeclaration-after-statement`, which takes effect regardless of which version of the C standard is in use." modpost is already built with -std=gnu89. If Wdeclaration-after-statement is implied by gnu89, why did nobody notice this before? -- Best Regards Masahiro Yamada
Re: [PATCH] [v2] Kbuild: move to -std=gnu11
On Mon, Feb 28, 2022 at 7:32 PM Arnd Bergmann wrote: > > From: Arnd Bergmann > > During a patch discussion, Linus brought up the option of changing > the C standard version from gnu89 to gnu99, which allows using variable > declaration inside of a for() loop. While the C99, C11 and later standards > introduce many other features, most of these are already available in > gnu89 as GNU extensions as well. > > An earlier attempt to do this when gcc-5 started defaulting to > -std=gnu11 failed because at the time that caused warnings about > designated initializers with older compilers. Now that gcc-5.1 is the > minimum compiler version used for building kernels, that is no longer a > concern. Similarly, the behavior of 'inline' functions changes between > gnu89 and gnu11, but this was taken care of by defining 'inline' to > include __attribute__((gnu_inline)) in order to allow building with > clang a while ago. > > One minor issue that remains is an added gcc warning for shifts of > negative integers when building with -Werror, which happens with the Is this a typo? building with -Werror, ... -> building with -Wextra, ... > 'make W=1' option, as well as for three drivers in the kernel that always > enable -Werror, but it was only observed with the i915 driver so far. Same here. enable -Werror, but ... -> enable -Wextra, but ... Otherwise, Acked-by: Masahiro Yamada Please let me know if you want me to pick up this. -- Best Regards Masahiro Yamada
Re: [PATCH v3] drm/i915: remove IS_ACTIVE
On Wed, Oct 6, 2021 at 2:21 AM Lucas De Marchi wrote: > > When trying to bring IS_ACTIVE to linux/kconfig.h I thought it wouldn't > provide much value just encapsulating it in a boolean context. So I also > added the support for handling undefined macros as the IS_ENABLED() > counterpart. However the feedback received from Masahiro Yamada was that > it is too ugly, not providing much value. And just wrapping in a boolean > context is too dumb - we could simply open code it. > > As detailed in commit babaab2f4738 ("drm/i915: Encapsulate kconfig > constant values inside boolean predicates"), the IS_ACTIVE macro was > added to workaround a compilation warning. However after checking again > our current uses of IS_ACTIVE it turned out there is only > 1 case in which it triggers a warning in clang (due > -Wconstant-logical-operand) and 2 in smatch. All the others > can simply use the shorter version, without wrapping it in any macro. > > So here I'm dialing all the way back to simply removing the macro. That > single case hit by clang can be changed to make the constant come first, > so it doesn't think it's mask: > > - if (context && CONFIG_DRM_I915_FENCE_TIMEOUT) > + if (CONFIG_DRM_I915_FENCE_TIMEOUT && context) > > As talked with Dan Carpenter, that logic will be added in smatch as > well, so it will also stop warning about it. > > Signed-off-by: Lucas De Marchi > Acked-by: Jani Nikula Reviewed-by: Masahiro Yamada -- Best Regards Masahiro Yamada
Re: [PATCH v2 3/3] Move IS_CONFIG_NONZERO() to kconfig.h
On Fri, Oct 1, 2021 at 12:55 AM Lucas De Marchi wrote: > > On Thu, Sep 30, 2021 at 11:01:36PM +0900, Masahiro Yamada wrote: > >On Thu, Sep 30, 2021 at 3:34 AM Lucas De Marchi > > wrote: > >> > >> The check for config value doesn't really belong to i915_utils.h - we > >> are trying to eliminate that utils helper and share them when possible > >> with other drivers and subsystems. > >> > >> Rationale for having such macro is in commit > >> babaab2f4738 ("drm/i915: Encapsulate kconfig constant values inside > >> boolean predicates") > >> whereas later it is improved to not break the build if used with > >> undefined configs. The caveat is detailed in the documentation: unlike > >> IS_ENABLED(): it's not preprocessor-only logic so can't be used for > >> things like `#if IS_CONFIG_NONZERO(...)` > >> > >> Signed-off-by: Lucas De Marchi > > > > > >Hypothetical "it would be nice to have ..." is really unneeded. > > > > if (context && CONFIG_DRM_I915_FENCE_TIMEOUT > 0) > > return > >msecs_to_jiffies_timeout(CONFIG_DRM_I915_FENCE_TIMEOUT); > > > > > >is enough, and much cleaner. > > > > > > > >This warning is shown only when a constant is used > >together with '&&'. > > > >Most of IS_ACTIVE can go away. > > > >Given that, there are not many places where the IS_ACTIVE macro > >is useful, even in the i915 driver. > > > >For a few sources of the warnings, > >replacing it with != 0 or > 0 is just fine. > > humn... maybe. Let me do a conversion in that direction and see what is > the outcome. > > My original intention was to make IS_ENABLED() even uglier to cover the > int case, but after some tries it seems impossible to do on preprocessor > context, so I thought maybe it would be ok as a separate one. > > > > >Of course, such an ugly macro is not worth being moved to > > if we don't handle the undefined case and only worry about encapsulating > it inside a boolean predicate, the macro would be very simple. Would > that be worth having in kconfig.h maybe? I do not think so. #define IS_CONFIG_NONZERO(config) ((config) != 0) seems like a stupid macro. What is bad about writing the direct code? if (x && CONFIG_FOO > 0) > > > thanks > Lucas De Marchi -- Best Regards Masahiro Yamada
Re: [PATCH v2 3/3] Move IS_CONFIG_NONZERO() to kconfig.h
On Thu, Sep 30, 2021 at 3:34 AM Lucas De Marchi wrote: > > The check for config value doesn't really belong to i915_utils.h - we > are trying to eliminate that utils helper and share them when possible > with other drivers and subsystems. > > Rationale for having such macro is in commit > babaab2f4738 ("drm/i915: Encapsulate kconfig constant values inside boolean > predicates") > whereas later it is improved to not break the build if used with > undefined configs. The caveat is detailed in the documentation: unlike > IS_ENABLED(): it's not preprocessor-only logic so can't be used for > things like `#if IS_CONFIG_NONZERO(...)` > > Signed-off-by: Lucas De Marchi Hypothetical "it would be nice to have ..." is really unneeded. if (context && CONFIG_DRM_I915_FENCE_TIMEOUT > 0) return msecs_to_jiffies_timeout(CONFIG_DRM_I915_FENCE_TIMEOUT); is enough, and much cleaner. This warning is shown only when a constant is used together with '&&'. Most of IS_ACTIVE can go away. Given that, there are not many places where the IS_ACTIVE macro is useful, even in the i915 driver. For a few sources of the warnings, replacing it with != 0 or > 0 is just fine. Of course, such an ugly macro is not worth being moved to -- Best Regards Masahiro Yamada
Re: linux-next: build failure after merge of the drm tree
On Mon, Sep 6, 2021 at 4:34 PM Daniel Vetter wrote: > > On Mon, Sep 6, 2021 at 12:49 AM Stephen Rothwell > wrote: > > Hi all, > > > > On Thu, 2 Sep 2021 07:50:38 +1000 Stephen Rothwell > > wrote: > > > > > > On Fri, 20 Aug 2021 15:23:34 +0900 Masahiro Yamada > > > wrote: > > > > > > > > On Fri, Aug 20, 2021 at 11:33 AM Stephen Rothwell > > > > wrote: > > > > > > > > > After merging the drm tree, today's linux-next build (x86_64 > > allmodconfig) > > > > > failed like this: > > > > > > > > > > In file included from drivers/gpu/drm/i915/i915_debugfs.c:39: > > > > > drivers/gpu/drm/i915/gt/intel_gt_requests.h:9:10: fatal error: > > > > > stddef.h: No such file or directory > > > > > 9 | #include > > > > > | ^~ > > > > > > > > > > Caused by commit > > > > > > > > > > 564f963eabd1 ("isystem: delete global -isystem compile option") > > > > > > > > > > from the kbuild tree interacting with commit > > > > > > > > > > b97060a99b01 ("drm/i915/guc: Update intel_gt_wait_for_idle to work > > > > > with GuC") > > > > > > > > > > I have applied the following patch for today. > > > > > > > > > > > > Thanks. > > > > > > > > This fix-up does not depend on my kbuild tree in any way. > > > > > > > > So, the drm maintainer can apply it to his tree. > > > > > > > > Perhaps with > > > > > > > > Fixes: b97060a99b01 ("drm/i915/guc: Update intel_gt_wait_for_idle to > > > > work with GuC") > > > > > > OK, so that didn't happen so I will now apply the merge fix up to the > > > merge of the kbuild tree. > > > > > > > > From: Stephen Rothwell > > > > > Date: Fri, 20 Aug 2021 12:24:19 +1000 > > > > > Subject: [PATCH] drm/i915: use linux/stddef.h due to "isystem: > > > > > trim/fixup stdarg.h and other headers" > > > > > > > > > > Signed-off-by: Stephen Rothwell > > > > > --- > > > > > drivers/gpu/drm/i915/gt/intel_gt_requests.h | 2 +- > > > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > > > > > diff --git a/drivers/gpu/drm/i915/gt/intel_gt_requests.h > > > > > b/drivers/gpu/drm/i915/gt/intel_gt_requests.h > > > > > index 51dbe0e3294e..d2969f68dd64 100644 > > > > > --- a/drivers/gpu/drm/i915/gt/intel_gt_requests.h > > > > > +++ b/drivers/gpu/drm/i915/gt/intel_gt_requests.h > > > > > @@ -6,7 +6,7 @@ > > > > > #ifndef INTEL_GT_REQUESTS_H > > > > > #define INTEL_GT_REQUESTS_H > > > > > > > > > > -#include > > > > > +#include > > > > > > > > > > struct intel_engine_cs; > > > > > struct intel_gt; > > > > > -- > > > > > 2.32.0 > > > > Ping? I am still applying this ... > > Apologies, this fell through a lot of cracks. I applied this to drm-next now. Rather, I was planning to apply this fix to my kbuild tree. Since you guys did not fix the issue in time, I ended up with dropping [1] from my pull request. I want to get [1] merged in this MW. If I postponed it, somebody would add new or inclusion in the next development cycle, I will never make it in the mainline. [1] https://lore.kernel.org/linux-kernel/YQhY40teUJcTc5H4@localhost.localdomain/ > Matt/John, as author/committer it's your job to make sure issues and > fixes for the stuff you're pushing don't get lost. I'd have expected > John to apply this to at least drm-intel-gt-next (it's not even > there). > > Joonas, I think this is the 2nd or 3rd or so issue this release cycle > where some compile fix got stuck a bit because drm-intel-gt-next isn't > in linux-next. Can we please fix that? It probably needs some changes > to the dim script. > > Cheers, Daniel > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch -- Best Regards Masahiro Yamada
Re: linux-next: build failure after merge of the drm tree
On Fri, Aug 20, 2021 at 11:33 AM Stephen Rothwell wrote: > > Hi all, > > After merging the drm tree, today's linux-next build (x86_64 allmodconfig) > failed like this: > > In file included from drivers/gpu/drm/i915/i915_debugfs.c:39: > drivers/gpu/drm/i915/gt/intel_gt_requests.h:9:10: fatal error: stddef.h: No > such file or directory > 9 | #include > | ^~ > > Caused by commit > > 564f963eabd1 ("isystem: delete global -isystem compile option") > > from the kbuild tree interacting with commit > > b97060a99b01 ("drm/i915/guc: Update intel_gt_wait_for_idle to work with > GuC") > > I have applied the following patch for today. Thanks. This fix-up does not depend on my kbuild tree in any way. So, the drm maintainer can apply it to his tree. Perhaps with Fixes: b97060a99b01 ("drm/i915/guc: Update intel_gt_wait_for_idle to work with GuC") > > From: Stephen Rothwell > Date: Fri, 20 Aug 2021 12:24:19 +1000 > Subject: [PATCH] drm/i915: use linux/stddef.h due to "isystem: trim/fixup > stdarg.h and other headers" > > Signed-off-by: Stephen Rothwell > --- > drivers/gpu/drm/i915/gt/intel_gt_requests.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/gt/intel_gt_requests.h > b/drivers/gpu/drm/i915/gt/intel_gt_requests.h > index 51dbe0e3294e..d2969f68dd64 100644 > --- a/drivers/gpu/drm/i915/gt/intel_gt_requests.h > +++ b/drivers/gpu/drm/i915/gt/intel_gt_requests.h > @@ -6,7 +6,7 @@ > #ifndef INTEL_GT_REQUESTS_H > #define INTEL_GT_REQUESTS_H > > -#include > +#include > > struct intel_engine_cs; > struct intel_gt; > -- > 2.32.0 > > -- > Cheers, > Stephen Rothwell -- Best Regards Masahiro Yamada
[PATCH] doc: use KCFLAGS instead of EXTRA_CFLAGS to pass flags from command line
You should use KCFLAGS to pass additional compiler flags from the command line. Using EXTRA_CFLAGS is wrong. EXTRA_CFLAGS is supposed to specify flags applied only to the current Makefile (and now deprecated in favor of ccflags-y). It is still used in arch/mips/kvm/Makefile (and possibly in external modules too). Passing EXTRA_CFLAGS from the command line overwrites it and breaks the build. I also fixed drivers/gpu/drm/tilcdc/Makefile because commit 816175dd1fd7 ("drivers/gpu/drm/tilcdc: Makefile, only -Werror when no -W* in EXTRA_CFLAGS") was based on the same misunderstanding. Signed-off-by: Masahiro Yamada --- Documentation/process/4.Coding.rst| 2 +- Documentation/process/submit-checklist.rst| 2 +- Documentation/translations/it_IT/process/4.Coding.rst | 2 +- Documentation/translations/it_IT/process/submit-checklist.rst | 2 +- Documentation/translations/zh_CN/process/4.Coding.rst | 2 +- drivers/gpu/drm/tilcdc/Makefile | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Documentation/process/4.Coding.rst b/Documentation/process/4.Coding.rst index 0825dc496f22..1f0d81f44e14 100644 --- a/Documentation/process/4.Coding.rst +++ b/Documentation/process/4.Coding.rst @@ -242,7 +242,7 @@ and try to avoid "fixes" which make the warning go away without addressing its cause. Note that not all compiler warnings are enabled by default. Build the -kernel with "make EXTRA_CFLAGS=-W" to get the full set. +kernel with "make KCFLAGS=-W" to get the full set. The kernel provides several configuration options which turn on debugging features; most of these are found in the "kernel hacking" submenu. Several diff --git a/Documentation/process/submit-checklist.rst b/Documentation/process/submit-checklist.rst index 230ee42f872f..cfc23492b9ea 100644 --- a/Documentation/process/submit-checklist.rst +++ b/Documentation/process/submit-checklist.rst @@ -98,7 +98,7 @@ and elsewhere regarding submitting Linux kernel patches. injection might be appropriate. 21) Newly-added code has been compiled with ``gcc -W`` (use -``make EXTRA_CFLAGS=-W``). This will generate lots of noise, but is good +``make KCFLAGS=-W``). This will generate lots of noise, but is good for finding bugs like "warning: comparison between signed and unsigned". 22) Tested after it has been merged into the -mm patchset to make sure diff --git a/Documentation/translations/it_IT/process/4.Coding.rst b/Documentation/translations/it_IT/process/4.Coding.rst index a5e36aa60448..8012fe9497ae 100644 --- a/Documentation/translations/it_IT/process/4.Coding.rst +++ b/Documentation/translations/it_IT/process/4.Coding.rst @@ -256,7 +256,7 @@ e cercate di evitare le "riparazioni" che fan sparire l'avvertimento senza però averne trovato la causa. Tenete a mente che non tutti gli avvertimenti sono disabilitati di default. -Costruite il kernel con "make EXTRA_CFLAGS=-W" per ottenerli tutti. +Costruite il kernel con "make KCFLAGS=-W" per ottenerli tutti. Il kernel fornisce differenti opzioni che abilitano funzionalità di debugging; molti di queste sono trovano all'interno del sotto menu "kernel hacking". diff --git a/Documentation/translations/it_IT/process/submit-checklist.rst b/Documentation/translations/it_IT/process/submit-checklist.rst index 3e575502690f..614fc17d9086 100644 --- a/Documentation/translations/it_IT/process/submit-checklist.rst +++ b/Documentation/translations/it_IT/process/submit-checklist.rst @@ -104,7 +104,7 @@ sottomissione delle patch, in particolare l'iniezione di fallimenti specifici per il sottosistema. 22) Il nuovo codice è stato compilato con ``gcc -W`` (usate -``make EXTRA_CFLAGS=-W``). Questo genererà molti avvisi, ma è ottimo +``make KCFLAGS=-W``). Questo genererà molti avvisi, ma è ottimo per scovare bachi come "warning: comparison between signed and unsigned". 23) La patch è stata verificata dopo essere stata inclusa nella serie di patch diff --git a/Documentation/translations/zh_CN/process/4.Coding.rst b/Documentation/translations/zh_CN/process/4.Coding.rst index 959a06ba025c..66cd8ee07606 100644 --- a/Documentation/translations/zh_CN/process/4.Coding.rst +++ b/Documentation/translations/zh_CN/process/4.Coding.rst @@ -165,7 +165,7 @@ Linus对这个问题给出了最佳答案: 通常,这些警告都指向真正的问题。提交以供审阅的代码通常不会产生任何编译器警告。 在消除警告时,注意了解真正的原因,并尽量避免“修复”,使警告消失而不解决其原因。 -请注意,并非所有编译器警告都默认启用。使用“make EXTRA_CFLAGS=-W”构建内核以 +请注意,并非所有编译器警告都默认启用。使用“make KCFLAGS=-W”构建内核以 获得完整集合。 内核提供了几个配置选项,可以打开调试功能;大多数配置选项位于“kernel hacking” diff --git a/drivers/gpu/drm/tilcdc/Makefile b/drivers/gpu/drm/tilcdc/Makefile index 662bf3a348c9..f5190477de72 100644 --- a/drivers/gpu/drm/tilcdc/Makefile +++ b/drivers/gpu/drm/tilcdc/Makefile @@ -1,5 +1,5 @@ # SPDX-License-Identifier: GPL-2.0 -ifeq
Re: [PATCH 1/3] printk: use CONFIG_CONSOLE_LOGLEVEL_* directly
On Thu, Feb 4, 2021 at 12:23 AM Petr Mladek wrote: > > On Tue 2021-02-02 09:44:22, John Ogness wrote: > > On 2021-02-02, Masahiro Yamada wrote: > > > CONSOLE_LOGLEVEL_DEFAULT is nothing more than a shorthand of > > > CONFIG_CONSOLE_LOGLEVEL_DEFAULT. > > > > > > When you change CONFIG_CONSOLE_LOGLEVEL_DEFAULT from Kconfig, almost > > > all objects are rebuilt because CONFIG_CONSOLE_LOGLEVEL_DEFAULT is > > > used in , which is included from most of source files. > > > > > > In fact, there are only 4 users of CONSOLE_LOGLEVEL_DEFAULT: > > > > > > arch/x86/platform/uv/uv_nmi.c > > > drivers/firmware/efi/libstub/efi-stub-helper.c > > > drivers/tty/sysrq.c > > > kernel/printk/printk.c > > > > > > So, when you change CONFIG_CONSOLE_LOGLEVEL_DEFAULT and rebuild the > > > kernel, it is enough to recompile those 4 files. > > > > > > Remove the CONSOLE_LOGLEVEL_DEFAULT definition from , > > > and use CONFIG_CONSOLE_LOGLEVEL_DEFAULT directly. > > > > With commit a8fe19ebfbfd ("kernel/printk: use symbolic defines for > > console loglevels") it can be seen that various drivers used to > > hard-code their own values. The introduction of the macros in an > > intuitive location (include/linux/printk.h) made it easier for authors > > to find/use the various available printk settings and thresholds. > > > > Technically there is no problem using Kconfig macros directly. But will > > authors bother to hunt down available Kconfig settings? Or will they > > only look in printk.h to see what is available? > > > > IMHO if code wants to use settings from a foreign subsystem, it should > > be taking those from headers of that subsystem, rather than using some > > Kconfig settings from that subsystem. Headers exist to make information > > available to external code. Kconfig (particularly for a subsystem) exist > > to configure that subsystem. > > I agree with this this view. I have never seen a policy to restrict the use of CONFIG options in relevant subsystem headers. > What about using default_console_loglevel() in the external code? > It reads the value from an array. This value is initialized to > CONSOLE_LOGLEVEL_DEFAULT and never modified later. I do not think default_console_loglevel() is a perfect constant because it can be modified via /proc/sys/kernel/printk I am not sure if it works either. Some code may not be linked to vmlinux. drivers/firmware/efi/libstub/efi-stub-helper.c > Best Regards, > Petr -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 1/3] printk: use CONFIG_CONSOLE_LOGLEVEL_* directly
On Tue, Feb 2, 2021 at 7:09 PM Sergey Senozhatsky wrote: > > On (21/02/02 16:02), Masahiro Yamada wrote: > > > > CONSOLE_LOGLEVEL_DEFAULT is nothing more than a shorthand of > > CONFIG_CONSOLE_LOGLEVEL_DEFAULT. > > > > When you change CONFIG_CONSOLE_LOGLEVEL_DEFAULT from Kconfig, almost > > all objects are rebuilt because CONFIG_CONSOLE_LOGLEVEL_DEFAULT is > > used in , which is included from most of source files. > > > > In fact, there are only 4 users of CONSOLE_LOGLEVEL_DEFAULT: > > > > arch/x86/platform/uv/uv_nmi.c > > drivers/firmware/efi/libstub/efi-stub-helper.c > > drivers/tty/sysrq.c > > kernel/printk/printk.c > > > > So, when you change CONFIG_CONSOLE_LOGLEVEL_DEFAULT and rebuild the > > kernel, it is enough to recompile those 4 files. > > Do you change CONFIG_CONSOLE_LOGLEVEL_DEFAULT so often that it becomes a > problem? > > -ss is one of most included headers, so it is worth downsizing. CONSOLE_LOGLEVEL_DEFAULT is not such a parameter that printk() users need to know. Changing CONFIG_CONSOLE_LOGLEVEL_DEFAULT results in the rebuilds of the entire tree, which is a flag of bad code structure. So, this is not only CONSOLE_LOGLEVEL_DEFAULT. contains parameters and func declarations that printk() users do not need to know. Examples: CONSOLE_LOGLEVEL_DEFAULT log_buf_addr_get() log_buf_len_get() oops_in_progress ... They are only needed for those who want to more closely get access to the printk internals. Ideally, such parameters and func declarations can go to the subsystems' local header (kernel/printk/internal.h) but when it is not possible, they can be separated out to a different header. I can see a similar idea in the consumer/provider model in several subsystems. Consumers and providers are often orthogonal, and de-coupling them clarifies who needs what. See other subsystems, for example, - clk consumer - clk provider -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 1/3] printk: use CONFIG_CONSOLE_LOGLEVEL_* directly
CONSOLE_LOGLEVEL_DEFAULT is nothing more than a shorthand of CONFIG_CONSOLE_LOGLEVEL_DEFAULT. When you change CONFIG_CONSOLE_LOGLEVEL_DEFAULT from Kconfig, almost all objects are rebuilt because CONFIG_CONSOLE_LOGLEVEL_DEFAULT is used in , which is included from most of source files. In fact, there are only 4 users of CONSOLE_LOGLEVEL_DEFAULT: arch/x86/platform/uv/uv_nmi.c drivers/firmware/efi/libstub/efi-stub-helper.c drivers/tty/sysrq.c kernel/printk/printk.c So, when you change CONFIG_CONSOLE_LOGLEVEL_DEFAULT and rebuild the kernel, it is enough to recompile those 4 files. Remove the CONSOLE_LOGLEVEL_DEFAULT definition from , and use CONFIG_CONSOLE_LOGLEVEL_DEFAULT directly. With this, the build system will rebuild the minimal number of objects. Steps to confirm it: [1] Do the full build [2] Change CONFIG_CONSOLE_LOGLEVEL_DEFAULT from 'make menuconfig' etc. [3] Rebuild $ make SYNCinclude/config/auto.conf CALLscripts/checksyscalls.sh CALLscripts/atomic/check-atomics.sh DESCEND objtool CHK include/generated/compile.h CC kernel/printk/printk.o AR kernel/printk/built-in.a AR kernel/built-in.a CC drivers/tty/sysrq.o AR drivers/tty/built-in.a CC drivers/firmware/efi/libstub/efi-stub-helper.o STUBCPY drivers/firmware/efi/libstub/efi-stub-helper.stub.o AR drivers/firmware/efi/libstub/lib.a AR drivers/built-in.a GEN .version CHK include/generated/compile.h UPD include/generated/compile.h CC init/version.o AR init/built-in.a LD vmlinux.o ... For the same reason, do likewise for CONSOLE_LOGLEVEL_QUIET and MESSAGE_LOGLEVEL_DEFAULT. Signed-off-by: Masahiro Yamada --- arch/x86/platform/uv/uv_nmi.c | 2 +- drivers/firmware/efi/libstub/efi-stub-helper.c | 6 +++--- drivers/tty/sysrq.c| 4 ++-- drivers/video/fbdev/core/fbcon.c | 2 +- drivers/video/fbdev/efifb.c| 2 +- include/linux/printk.h | 10 -- init/main.c| 2 +- kernel/printk/printk.c | 6 +++--- 8 files changed, 12 insertions(+), 22 deletions(-) diff --git a/arch/x86/platform/uv/uv_nmi.c b/arch/x86/platform/uv/uv_nmi.c index eafc530c8767..4751299c7416 100644 --- a/arch/x86/platform/uv/uv_nmi.c +++ b/arch/x86/platform/uv/uv_nmi.c @@ -100,7 +100,7 @@ static cpumask_var_t uv_nmi_cpu_mask; * Default is all stack dumps go to the console and buffer. * Lower level to send to log buffer only. */ -static int uv_nmi_loglevel = CONSOLE_LOGLEVEL_DEFAULT; +static int uv_nmi_loglevel = CONFIG_CONSOLE_LOGLEVEL_DEFAULT; module_param_named(dump_loglevel, uv_nmi_loglevel, int, 0644); /* diff --git a/drivers/firmware/efi/libstub/efi-stub-helper.c b/drivers/firmware/efi/libstub/efi-stub-helper.c index aa8da0a49829..3e8d8f706589 100644 --- a/drivers/firmware/efi/libstub/efi-stub-helper.c +++ b/drivers/firmware/efi/libstub/efi-stub-helper.c @@ -12,7 +12,7 @@ #include #include #include -#include /* For CONSOLE_LOGLEVEL_* */ +#include /* For CONSOLE_LOGLEVEL_DEBUG */ #include #include @@ -21,7 +21,7 @@ bool efi_nochunk; bool efi_nokaslr = !IS_ENABLED(CONFIG_RANDOMIZE_BASE); bool efi_noinitrd; -int efi_loglevel = CONSOLE_LOGLEVEL_DEFAULT; +int efi_loglevel = CONFIG_CONSOLE_LOGLEVEL_DEFAULT; bool efi_novamap; static bool efi_nosoftreserve; @@ -213,7 +213,7 @@ efi_status_t efi_parse_options(char const *cmdline) if (!strcmp(param, "nokaslr")) { efi_nokaslr = true; } else if (!strcmp(param, "quiet")) { - efi_loglevel = CONSOLE_LOGLEVEL_QUIET; + efi_loglevel = CONFIG_CONSOLE_LOGLEVEL_QUIET; } else if (!strcmp(param, "noinitrd")) { efi_noinitrd = true; } else if (!strcmp(param, "efi") && val) { diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c index 959f9e121cc6..e0ae7793155e 100644 --- a/drivers/tty/sysrq.c +++ b/drivers/tty/sysrq.c @@ -103,7 +103,7 @@ static void sysrq_handle_loglevel(int key) int i; i = key - '0'; - console_loglevel = CONSOLE_LOGLEVEL_DEFAULT; + console_loglevel = CONFIG_CONSOLE_LOGLEVEL_DEFAULT; pr_info("Loglevel set to %d\n", i); console_loglevel = i; } @@ -584,7 +584,7 @@ void __handle_sysrq(int key, bool check_mask) * routing in the consumers of /proc/kmsg. */ orig_log_level = console_loglevel; - console_loglevel = CONSOLE_LOGLEVEL_DEFAULT; + console_loglevel = CONFIG_CONSOLE_LOGLEVEL_DEFAULT; op_p = __sysrq_get_key_op(key); if (op_p) { diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c index bf61598bf1c3..75b972
Re: [PATCH] kbuild: use always-y instead of extra-y
On Thu, Jan 21, 2021 at 6:39 AM Rob Herring wrote: > > On Wed, Jan 20, 2021 at 03:23:51PM +0900, Masahiro Yamada wrote: > > As commit d0e628cd817f ("kbuild: doc: clarify the difference between > > extra-y and always-y") explained, extra-y should be used for listing > > the prerequsites of vmlinux. always-y is a better fix here. > > prerequisites Thanks. I fixed it up, and applied to linux-kbuild. > Glad to see this clarified. I think just tried both and picked one. > > Reviewed-by: Rob Herring > > > > Signed-off-by: Masahiro Yamada > > --- > > > > Documentation/devicetree/bindings/Makefile | 8 > > drivers/gpu/drm/i915/Makefile | 2 +- > > scripts/Makefile.lib | 10 +- > > scripts/gdb/linux/Makefile | 2 +- > > 4 files changed, 11 insertions(+), 11 deletions(-) -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH] kbuild: use always-y instead of extra-y
As commit d0e628cd817f ("kbuild: doc: clarify the difference between extra-y and always-y") explained, extra-y should be used for listing the prerequsites of vmlinux. always-y is a better fix here. Signed-off-by: Masahiro Yamada --- Documentation/devicetree/bindings/Makefile | 8 drivers/gpu/drm/i915/Makefile | 2 +- scripts/Makefile.lib | 10 +- scripts/gdb/linux/Makefile | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Documentation/devicetree/bindings/Makefile b/Documentation/devicetree/bindings/Makefile index 8f2b054bec5a..90fcad98984d 100644 --- a/Documentation/devicetree/bindings/Makefile +++ b/Documentation/devicetree/bindings/Makefile @@ -78,10 +78,10 @@ $(obj)/processed-schema.json: $(DT_SCHEMA_FILES) check_dtschema_version FORCE endif -extra-$(CHECK_DT_BINDING) += processed-schema-examples.json -extra-$(CHECK_DTBS) += processed-schema.json -extra-$(CHECK_DT_BINDING) += $(patsubst $(src)/%.yaml,%.example.dts, $(DT_SCHEMA_FILES)) -extra-$(CHECK_DT_BINDING) += $(patsubst $(src)/%.yaml,%.example.dt.yaml, $(DT_SCHEMA_FILES)) +always-$(CHECK_DT_BINDING) += processed-schema-examples.json +always-$(CHECK_DTBS) += processed-schema.json +always-$(CHECK_DT_BINDING) += $(patsubst $(src)/%.yaml,%.example.dts, $(DT_SCHEMA_FILES)) +always-$(CHECK_DT_BINDING) += $(patsubst $(src)/%.yaml,%.example.dt.yaml, $(DT_SCHEMA_FILES)) # Hack: avoid 'Argument list too long' error for 'make clean'. Remove most of # build artifacts here before they are processed by scripts/Makefile.clean diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile index 6d9e81ea67f4..938221894d0c 100644 --- a/drivers/gpu/drm/i915/Makefile +++ b/drivers/gpu/drm/i915/Makefile @@ -294,7 +294,7 @@ no-header-test := \ gvt/mpt.h \ gvt/scheduler.h -extra-$(CONFIG_DRM_I915_WERROR) += \ +always-$(CONFIG_DRM_I915_WERROR) += \ $(patsubst %.h,%.hdrtest, $(filter-out $(no-header-test), \ $(shell cd $(srctree)/$(src) && find * -name '*.h'))) diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 4612a887f28e..b8e587a17dcc 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -64,12 +64,12 @@ always-y += $(userprogs-always-y) $(userprogs-always-m) # DTB # If CONFIG_OF_ALL_DTBS is enabled, all DT blobs are built -extra-y+= $(dtb-y) -extra-$(CONFIG_OF_ALL_DTBS)+= $(dtb-) +always-y += $(dtb-y) +always-$(CONFIG_OF_ALL_DTBS) += $(dtb-) ifneq ($(CHECK_DTBS),) -extra-y += $(patsubst %.dtb,%.dt.yaml, $(dtb-y)) -extra-$(CONFIG_OF_ALL_DTBS) += $(patsubst %.dtb,%.dt.yaml, $(dtb-)) +always-y += $(patsubst %.dtb,%.dt.yaml, $(dtb-y)) +always-$(CONFIG_OF_ALL_DTBS) += $(patsubst %.dtb,%.dt.yaml, $(dtb-)) endif # Add subdir path @@ -230,7 +230,7 @@ $(obj)/%: $(src)/%_shipped # target: source(s) FORCE # $(if_changed,ld/objcopy/gzip) # -# and add target to extra-y so that we know we have to +# and add target to 'targets' so that we know we have to # read in the saved command line # Linking diff --git a/scripts/gdb/linux/Makefile b/scripts/gdb/linux/Makefile index 124755087510..13903073cbff 100644 --- a/scripts/gdb/linux/Makefile +++ b/scripts/gdb/linux/Makefile @@ -18,7 +18,7 @@ quiet_cmd_gen_constants_py = GEN $@ $(CPP) -E -x c -P $(c_flags) $< > $@ ;\ sed -i '1,//d;' $@ -extra-y += constants.py +always-y += constants.py $(obj)/constants.py: $(src)/constants.py.in FORCE $(call if_changed_dep,gen_constants_py) -- 2.27.0 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 10/20] Documentation: kbuild/kconfig-language: eliminate duplicated word
On Wed, Jul 8, 2020 at 3:06 AM Randy Dunlap wrote: > > Drop the doubled word "the". > > Signed-off-by: Randy Dunlap > Cc: Jonathan Corbet > Cc: linux-...@vger.kernel.org > Cc: Masahiro Yamada I guess this series will go in via the doc sub-system. If so, please feel free to add: Acked-by: Masahiro Yamada > Cc: Michal Marek > Cc: linux-kbu...@vger.kernel.org > --- > Documentation/kbuild/kconfig-language.rst |2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > --- linux-next-20200701.orig/Documentation/kbuild/kconfig-language.rst > +++ linux-next-20200701/Documentation/kbuild/kconfig-language.rst > @@ -681,7 +681,7 @@ translate Kconfig logic into boolean for > find dead code / features (always inactive), 114 dead features were found in > Linux using this methodology [1]_ (Section 8: Threats to validity). > > -Confirming this could prove useful as Kconfig stands as one of the the > leading > +Confirming this could prove useful as Kconfig stands as one of the leading > industrial variability modeling languages [1]_ [2]_. Its study would help > evaluate practical uses of such languages, their use was only theoretical > and real world requirements were not well understood. As it stands though -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 1/2] drm/i915: remove unneeded ccflags-y from gvt/Makefile
When CONFIG_DRM_I915_GVT=y, the same include path is added twice. drivers/gpu/drm/i915/Makefile specifies: subdir-ccflags-y += -I$(srctree)/$(src) drivers/gpu/drm/i915/gvt/Makefile adds the second '-I $(srctree)/$(src)', which is redundant. The include path '-I $(srctree)/$(src)/$(GVT_DIR)/' is added to allow include/trace/define_trace.h to find the gvt/trace.h By setting the correct relative path to TRACE_INCLUDE_PATH, this -I is also unneeded. Signed-off-by: Masahiro Yamada --- drivers/gpu/drm/i915/gvt/Makefile | 1 - drivers/gpu/drm/i915/gvt/trace.h | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/gvt/Makefile b/drivers/gpu/drm/i915/gvt/Makefile index ea8324abc784..4d70f4689479 100644 --- a/drivers/gpu/drm/i915/gvt/Makefile +++ b/drivers/gpu/drm/i915/gvt/Makefile @@ -5,5 +5,4 @@ GVT_SOURCE := gvt.o aperture_gm.o handlers.o vgpu.o trace_points.o firmware.o \ execlist.o scheduler.o sched_policy.o mmio_context.o cmd_parser.o debugfs.o \ fb_decoder.o dmabuf.o page_track.o -ccflags-y += -I $(srctree)/$(src) -I $(srctree)/$(src)/$(GVT_DIR)/ i915-y += $(addprefix $(GVT_DIR)/, $(GVT_SOURCE)) diff --git a/drivers/gpu/drm/i915/gvt/trace.h b/drivers/gpu/drm/i915/gvt/trace.h index 6d787750d279..d63b7eef6179 100644 --- a/drivers/gpu/drm/i915/gvt/trace.h +++ b/drivers/gpu/drm/i915/gvt/trace.h @@ -377,7 +377,7 @@ TRACE_EVENT(render_mmio, /* This part must be out of protection */ #undef TRACE_INCLUDE_PATH -#define TRACE_INCLUDE_PATH . +#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/i915/gvt #undef TRACE_INCLUDE_FILE #define TRACE_INCLUDE_FILE trace #include -- 2.17.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 2/2] drm/i915: remove gvt/Makefile
Including subdirectory Makefile from the driver main Makefile does not buy us much because this is not real isolation. Having a single Makefile at the top of the module is clearer, and it is what this driver almost does. Move all gvt objects to the i915 main Makefile. Signed-off-by: Masahiro Yamada --- drivers/gpu/drm/i915/Makefile | 28 drivers/gpu/drm/i915/gvt/Makefile | 8 2 files changed, 24 insertions(+), 12 deletions(-) delete mode 100644 drivers/gpu/drm/i915/gvt/Makefile diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile index 6cd1f6253814..74e965882a98 100644 --- a/drivers/gpu/drm/i915/Makefile +++ b/drivers/gpu/drm/i915/Makefile @@ -275,10 +275,30 @@ i915-$(CONFIG_DRM_I915_SELFTEST) += \ # virtual gpu code i915-y += i915_vgpu.o -ifeq ($(CONFIG_DRM_I915_GVT),y) -i915-y += intel_gvt.o -include $(src)/gvt/Makefile -endif +i915-$(CONFIG_DRM_I915_GVT) += \ + intel_gvt.o \ + gvt/gvt.o \ + gvt/aperture_gm.o \ + gvt/handlers.o \ + gvt/vgpu.o \ + gvt/trace_points.o \ + gvt/firmware.o \ + gvt/interrupt.o \ + gvt/gtt.o \ + gvt/cfg_space.o \ + gvt/opregion.o \ + gvt/mmio.o \ + gvt/display.o \ + gvt/edid.o \ + gvt/execlist.o \ + gvt/scheduler.o \ + gvt/sched_policy.o \ + gvt/mmio_context.o \ + gvt/cmd_parser.o \ + gvt/debugfs.o \ + gvt/fb_decoder.o \ + gvt/dmabuf.o \ + gvt/page_track.o obj-$(CONFIG_DRM_I915) += i915.o obj-$(CONFIG_DRM_I915_GVT_KVMGT) += gvt/kvmgt.o diff --git a/drivers/gpu/drm/i915/gvt/Makefile b/drivers/gpu/drm/i915/gvt/Makefile deleted file mode 100644 index 4d70f4689479.. --- a/drivers/gpu/drm/i915/gvt/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0 -GVT_DIR := gvt -GVT_SOURCE := gvt.o aperture_gm.o handlers.o vgpu.o trace_points.o firmware.o \ - interrupt.o gtt.o cfg_space.o opregion.o mmio.o display.o edid.o \ - execlist.o scheduler.o sched_policy.o mmio_context.o cmd_parser.o debugfs.o \ - fb_decoder.o dmabuf.o page_track.o - -i915-y += $(addprefix $(GVT_DIR)/, $(GVT_SOURCE)) -- 2.17.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 4/4] dt-bindings: Add missing 'additionalProperties: false'
Hi Rob, On Mon, Mar 30, 2020 at 4:09 PM Masahiro Yamada wrote: > > On Thu, Mar 26, 2020 at 7:06 AM Rob Herring wrote: > > > > Setting 'additionalProperties: false' is frequently omitted, but is > > important in order to check that there aren't extra undocumented > > properties in a binding. > > > > Ideally, we'd just add this automatically and make this the default, but > > there's some cases where it doesn't work. For example, if a common > > schema is referenced, then properties in the common schema aren't part > > of what's considered for 'additionalProperties'. Also, sometimes there > > are bus specific properties such as 'spi-max-frequency' that go into > > bus child nodes, but aren't defined in the child node's schema. > > > > So let's stick with the json-schema defined default and add > > 'additionalProperties: false' where needed. This will be a continual > > review comment and game of wack-a-mole. > > > > Signed-off-by: Rob Herring > > --- > > > > .../devicetree/bindings/gpio/socionext,uniphier-gpio.yaml | 2 ++ > > > You may have already queue this up, but just in case. > > Acked-by: Masahiro Yamada I take back Ack for socionext,uniphier-gpio.yaml Now "make dt_binding_check" produces a new warning. gpio@5500: 'interrupt-parent' does not match any of the regexes: 'pinctrl-[0-9]+' This binding uses 'interrupt-parent' without 'interrupts'. Instead, the mapping of the interrupt numbers is specified by the vendor-specific property socionext,interrupt-ranges I cannot add "interrupt-parent: true" because dt-schema/meta-schemas/interrupts.yaml has "interrupt-parent: false". Is there any solution? -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 3/4] dt-bindings: Clean-up schema errors due to missing 'addtionalProperties: false'
On Thu, Mar 26, 2020 at 7:06 AM Rob Herring wrote: > > Numerous schemas are missing 'additionalProperties: false' statements which > ensures a binding doesn't have any extra undocumented properties or child > nodes. Fixing this reveals various missing properties, so let's fix all > those occurrences. > > Cc: Stephen Boyd > Cc: Linus Walleij > Cc: Bartosz Golaszewski > Cc: Masahiro Yamada > Cc: Jonathan Cameron > Cc: Hartmut Knaack > Cc: Lars-Peter Clausen > Cc: Peter Meerwald-Stadler > Cc: Neil Armstrong > Cc: Mauro Carvalho Chehab > Cc: Kevin Hilman > Cc: Lee Jones > Cc: "David S. Miller" > Cc: Liam Girdwood > Cc: Mark Brown > Cc: Guillaume La Roque > Cc: Zhang Rui > Cc: Daniel Lezcano > Cc: Thomas Gleixner > Cc: linux-...@vger.kernel.org > Cc: linux-g...@vger.kernel.org > Cc: linux-arm-ker...@lists.infradead.org > Cc: dri-devel@lists.freedesktop.org > Cc: linux-...@vger.kernel.org > Cc: linux-me...@vger.kernel.org > Cc: linux-amlo...@lists.infradead.org > Cc: net...@vger.kernel.org > Cc: linux...@vger.kernel.org > Signed-off-by: Rob Herring > --- > .../gpio/socionext,uniphier-gpio.yaml | 2 ++ You may have already queue this up, but just in case. Acked-by: Masahiro Yamada -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 4/4] dt-bindings: Add missing 'additionalProperties: false'
On Thu, Mar 26, 2020 at 7:06 AM Rob Herring wrote: > > Setting 'additionalProperties: false' is frequently omitted, but is > important in order to check that there aren't extra undocumented > properties in a binding. > > Ideally, we'd just add this automatically and make this the default, but > there's some cases where it doesn't work. For example, if a common > schema is referenced, then properties in the common schema aren't part > of what's considered for 'additionalProperties'. Also, sometimes there > are bus specific properties such as 'spi-max-frequency' that go into > bus child nodes, but aren't defined in the child node's schema. > > So let's stick with the json-schema defined default and add > 'additionalProperties: false' where needed. This will be a continual > review comment and game of wack-a-mole. > > Signed-off-by: Rob Herring > --- > .../devicetree/bindings/gpio/socionext,uniphier-gpio.yaml | 2 ++ You may have already queue this up, but just in case. Acked-by: Masahiro Yamada -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v2 00/16] x86, crypto: remove always-defined CONFIG_AS_* and cosolidate Kconfig/Makefiles
On Fri, Mar 27, 2020 at 5:46 AM Jason A. Donenfeld wrote: > > On Thu, Mar 26, 2020 at 2:44 PM Masahiro Yamada wrote: > > I collected more Reviewed-by and Acked-by, > > then pushed this series to > > > > git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git > > kbuild-asinstr > > But not the version of the penultimate patch that Nick ack'd Dropped Nick's Reviewed-by. -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v2 00/16] x86, crypto: remove always-defined CONFIG_AS_* and cosolidate Kconfig/Makefiles
Hi all, On Thu, Mar 26, 2020 at 6:22 PM Ingo Molnar wrote: > > > * Jason A. Donenfeld wrote: > > > Very little has changed from last time, and this whole series still > > looks good to me. I think I already ack'd most packages, but in case > > it helps: > > > > Reviewed-by: Jason A. Donenfeld > > Acked-by: Ingo Molnar > > > Since this touches a lot of stuff, it might be best to get it in as > > early as possible during the merge window, as I imagine new code being > > added is going to want to be touching those makefiles too. > > I'd argue the opposite: please merge this later in the merge window, to > not disrupt the vast body of other stuff that has already been lined up > and has been tested, and to give time for these new bits to get tested > some more. I agree. > Also, please get it into -next ASAP, today would be ideal for test > coverage ... I collected more Reviewed-by and Acked-by, then pushed this series to git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git kbuild-asinstr It will show up in -next soon. -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH v2 09/16] drm/i915: remove always-defined CONFIG_AS_MOVNTDQA
CONFIG_AS_MOVNTDQA was introduced by commit 0b1de5d58e19 ("drm/i915: Use SSE4.1 movntdqa to accelerate reads from WC memory"). We raise the minimal supported binutils version from time to time. The last bump was commit 1fb12b35e5ff ("kbuild: Raise the minimum required binutils version to 2.21"). I confirmed the code in $(call as-instr,...) can be assembled by the binutils 2.21 assembler and also by LLVM integrated assembler. Remove CONFIG_AS_MOVNTDQA, which is always defined. Signed-off-by: Masahiro Yamada Reviewed-by: Nick Desaulniers --- Changes in v2: None drivers/gpu/drm/i915/Makefile | 3 --- drivers/gpu/drm/i915/i915_memcpy.c | 5 - 2 files changed, 8 deletions(-) diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile index a1f2411aa21b..e559e53fc634 100644 --- a/drivers/gpu/drm/i915/Makefile +++ b/drivers/gpu/drm/i915/Makefile @@ -28,9 +28,6 @@ subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror CFLAGS_i915_pci.o = $(call cc-disable-warning, override-init) CFLAGS_display/intel_fbdev.o = $(call cc-disable-warning, override-init) -subdir-ccflags-y += \ - $(call as-instr,movntdqa (%eax)$(comma)%xmm0,-DCONFIG_AS_MOVNTDQA) - subdir-ccflags-y += -I$(srctree)/$(src) # Please keep these build lists sorted! diff --git a/drivers/gpu/drm/i915/i915_memcpy.c b/drivers/gpu/drm/i915/i915_memcpy.c index fdd550405fd3..7b3b83bd5ab8 100644 --- a/drivers/gpu/drm/i915/i915_memcpy.c +++ b/drivers/gpu/drm/i915/i915_memcpy.c @@ -35,7 +35,6 @@ static DEFINE_STATIC_KEY_FALSE(has_movntdqa); -#ifdef CONFIG_AS_MOVNTDQA static void __memcpy_ntdqa(void *dst, const void *src, unsigned long len) { kernel_fpu_begin(); @@ -93,10 +92,6 @@ static void __memcpy_ntdqu(void *dst, const void *src, unsigned long len) kernel_fpu_end(); } -#else -static void __memcpy_ntdqa(void *dst, const void *src, unsigned long len) {} -static void __memcpy_ntdqu(void *dst, const void *src, unsigned long len) {} -#endif /** * i915_memcpy_from_wc: perform an accelerated *aligned* read from WC -- 2.17.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH v2 00/16] x86, crypto: remove always-defined CONFIG_AS_* and cosolidate Kconfig/Makefiles
This series of cleanups was prompted by Linus: https://lkml.org/lkml/2020/3/12/726 First, this series drop always-on CONFIG_AS_* options. Some of those options were introduced in old days. For example, the check for CONFIG_AS_CFI dates back to 2006. We raise the minimal tool versions from time to time. Currently, we require binutils 2.21 (and we even plan to bump it to 2.23). After cleaning away the old checks, as-instr calls are moved to Kconfig from Makefiles, then more Kconfig / Makefile code is cleaned up. I folded all relevanet patches into this series, as suggested by Jason A. Donenfeld. The update for v2 is quite small. I just swapped the patch order of patch 8 and 11 instead of moving comments around files, which was addressed by Nick Desaulniers. Borislav Petkov (1): Documentation/changes: Raise minimum supported binutils version to 2.23 Jason A. Donenfeld (4): x86: probe assembler capabilities via kconfig instead of makefile crypto: x86 - rework configuration based on Kconfig crypto: curve25519 - do not pollute dispatcher based on assembler x86: update AS_* macros to binutils >=2.23, supporting ADX and AVX2 Masahiro Yamada (11): lib/raid6/test: fix build on distros whose /bin/sh is not bash x86: remove unneeded defined(__ASSEMBLY__) check from asm/dwarf2.h x86: remove always-defined CONFIG_AS_CFI x86: remove unneeded (CONFIG_AS_)CFI_SIGNAL_FRAME x86: remove always-defined CONFIG_AS_CFI_SECTIONS x86: remove always-defined CONFIG_AS_SSSE3 x86: remove always-defined CONFIG_AS_AVX x86: replace arch macros from compiler with CONFIG_X86_{32,64} drm/i915: remove always-defined CONFIG_AS_MOVNTDQA x86: add comments about the binutils version to support code in as-instr crypto: x86 - clean up poly1305-x86_64-cryptogams.S by 'make clean' Documentation/process/changes.rst | 4 +- arch/x86/Kconfig | 2 + arch/x86/Kconfig.assembler| 17 ++ arch/x86/Makefile | 22 --- arch/x86/crypto/Makefile | 162 +++--- arch/x86/crypto/aesni-intel_avx-x86_64.S | 6 - arch/x86/crypto/aesni-intel_glue.c| 21 +-- arch/x86/crypto/blake2s-core.S| 2 - arch/x86/crypto/chacha_glue.c | 6 +- arch/x86/crypto/poly1305-x86_64-cryptogams.pl | 16 -- arch/x86/crypto/poly1305_glue.c | 11 +- arch/x86/crypto/sha1_ssse3_asm.S | 4 - arch/x86/crypto/sha1_ssse3_glue.c | 13 -- arch/x86/crypto/sha256-avx-asm.S | 3 - arch/x86/crypto/sha256-avx2-asm.S | 3 - arch/x86/crypto/sha256_ssse3_glue.c | 12 -- arch/x86/crypto/sha512-avx-asm.S | 2 - arch/x86/crypto/sha512-avx2-asm.S | 3 - arch/x86/crypto/sha512_ssse3_glue.c | 10 -- arch/x86/include/asm/dwarf2.h | 44 - arch/x86/include/asm/xor_avx.h| 9 - drivers/gpu/drm/i915/Makefile | 3 - drivers/gpu/drm/i915/i915_memcpy.c| 5 - include/crypto/curve25519.h | 6 +- kernel/signal.c | 2 +- lib/raid6/algos.c | 12 +- lib/raid6/avx2.c | 4 - lib/raid6/recov_avx2.c| 6 - lib/raid6/recov_ssse3.c | 6 - lib/raid6/test/Makefile | 9 +- 30 files changed, 101 insertions(+), 324 deletions(-) create mode 100644 arch/x86/Kconfig.assembler -- 2.17.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 00/16] x86, crypto: remove always-defined CONFIG_AS_* and cosolidate Kconfig/Makefiles
Hi Ingo, On Wed, Mar 25, 2020 at 1:59 PM Ingo Molnar wrote: > > > * Masahiro Yamada wrote: > > > This series of cleanups was prompted by Linus: > > https://lkml.org/lkml/2020/3/12/726 > > > > First, this series drop always-on CONFIG_AS_* options. > > Some of those options were introduced in old days. > > For example, the check for CONFIG_AS_CFI dates back to 2006. > > > > We raise the minimal tool versions from time to time. > > Currently, we require binutils 2.21 > > (and we plan to bump it to 2.23 for v5.7-rc1). > > > > After cleaning away the old checks, > > as-instr calls are moved to Kconfig from Makefiles. > > (patch 11) > > > > This allows more Kconfig / Makefile cleanups. > > Patch 12 is complex, but I double-checked it does the equivalent. > > > > Patch 14 bumps the binutils version to 2.23, > > and patch 15 removes more CONFIG_AS_* options. > > > > I folded all relevanet patches into this series, > > as suggested by Jason A. Donenfeld. > > > > If x86 maintainers take care of this series, that's good. > > > > If it is OK to queue this up to Kbuild tree, > > I will send a pull request to Linus. > > > > Thank you. > > LGTM. I've got these four from Jason A. Donenfeld queued up in > tip:WIP.x86/asm: > > bd5b1283e41c: ("crypto: Curve25519 - do not pollute dispatcher based on > assembler") > 829f32d78588: ("crypto: X86 - rework configuration, based on Kconfig") > 95ef9f80ed63: ("x86/build: Probe assembler from Kconfig instead of Kbuild") > 1651e700664b: ("x86: Fix bitops.h warning with a moved cast") > > I suppose these might interact (maybe even conflict), and are topically > related. > > Would you like to pull these into the kbuild tree? You can find them in: > >git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git WIP.x86/asm > > Thanks, > > Ingo I did not know that these had already landed in tip tree. They are immature version. (In fact CONFIG_AS_CFI and AS_ADX are false-negative if GCC that defaults to 32-bit is used.) Can you simply discard the WIP.x86/asm branch, and only reapply 1651e700664b: ("x86: Fix bitops.h warning with a moved cast") ? -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 1/4] drm/radeon: remove unneeded header include path
On Wed, Mar 25, 2020 at 4:42 AM Alex Deucher wrote: > > On Tue, Mar 24, 2020 at 12:48 PM Masahiro Yamada wrote: > > > > Hi, > > > > I think this series is a good clean-up. > > > > Could you take a look at this please? > > Can you resend? I don't seem to have gotten it. Must have ended up > getting flagged a spam or something. Can you take it from patchwork ? (4 patches) https://lore.kernel.org/patchwork/project/lkml/list/?series=429491 Thanks. > Alex > > > > > > > > > On Fri, Feb 14, 2020 at 12:40 AM Masahiro Yamada > > wrote: > > > > > > A header include path without $(srctree)/ is suspicious because it does > > > not work with O= builds. > > > > > > You can build drivers/gpu/drm/radeon/ without this include path. > > > > > > Signed-off-by: Masahiro Yamada > > > --- > > > > > > drivers/gpu/drm/radeon/Makefile | 2 -- > > > 1 file changed, 2 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/radeon/Makefile > > > b/drivers/gpu/drm/radeon/Makefile > > > index c693b2ca0329..9d5d3dc1011f 100644 > > > --- a/drivers/gpu/drm/radeon/Makefile > > > +++ b/drivers/gpu/drm/radeon/Makefile > > > @@ -3,8 +3,6 @@ > > > # Makefile for the drm device driver. This driver provides support for > > > the > > > # Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher. > > > > > > -ccflags-y := -Idrivers/gpu/drm/amd/include > > > - > > > hostprogs := mkregtable > > > clean-files := rn50_reg_safe.h r100_reg_safe.h r200_reg_safe.h > > > rv515_reg_safe.h r300_reg_safe.h r420_reg_safe.h rs600_reg_safe.h > > > r600_reg_safe.h evergreen_reg_safe.h cayman_reg_safe.h > > > > > > -- > > > 2.17.1 > > > > > > > > > -- > > Best Regards > > Masahiro Yamada > > ___ > > dri-devel mailing list > > dri-devel@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 1/4] drm/radeon: remove unneeded header include path
Hi, I think this series is a good clean-up. Could you take a look at this please? On Fri, Feb 14, 2020 at 12:40 AM Masahiro Yamada wrote: > > A header include path without $(srctree)/ is suspicious because it does > not work with O= builds. > > You can build drivers/gpu/drm/radeon/ without this include path. > > Signed-off-by: Masahiro Yamada > --- > > drivers/gpu/drm/radeon/Makefile | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/Makefile b/drivers/gpu/drm/radeon/Makefile > index c693b2ca0329..9d5d3dc1011f 100644 > --- a/drivers/gpu/drm/radeon/Makefile > +++ b/drivers/gpu/drm/radeon/Makefile > @@ -3,8 +3,6 @@ > # Makefile for the drm device driver. This driver provides support for the > # Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher. > > -ccflags-y := -Idrivers/gpu/drm/amd/include > - > hostprogs := mkregtable > clean-files := rn50_reg_safe.h r100_reg_safe.h r200_reg_safe.h > rv515_reg_safe.h r300_reg_safe.h r420_reg_safe.h rs600_reg_safe.h > r600_reg_safe.h evergreen_reg_safe.h cayman_reg_safe.h > > -- > 2.17.1 > -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] drm/i915: remove always-defined CONFIG_AS_MOVNTDQA
Hi i915 maintainers, On Mon, Mar 23, 2020 at 11:12 AM Masahiro Yamada wrote: > > CONFIG_AS_MOVNTDQA was introduced by commit 0b1de5d58e19 ("drm/i915: > Use SSE4.1 movntdqa to accelerate reads from WC memory"). > > We raise the minimal supported binutils version from time to time. > The last bump was commit 1fb12b35e5ff ("kbuild: Raise the minimum > required binutils version to 2.21"). > > I confirmed the code in $(call as-instr,...) can be assembled by the > binutils 2.21 assembler and also by Clang's integrated assembler. > > Remove CONFIG_AS_MOVNTDQA, which is always defined. > > Signed-off-by: Masahiro Yamada > --- Please discard this. I decided to fold this (10/16) into the following big series because I was suggested to do so. https://lore.kernel.org/patchwork/project/lkml/list/?series=435391 -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 10/16] drm/i915: remove always-defined CONFIG_AS_MOVNTDQA
CONFIG_AS_MOVNTDQA was introduced by commit 0b1de5d58e19 ("drm/i915: Use SSE4.1 movntdqa to accelerate reads from WC memory"). We raise the minimal supported binutils version from time to time. The last bump was commit 1fb12b35e5ff ("kbuild: Raise the minimum required binutils version to 2.21"). I confirmed the code in $(call as-instr,...) can be assembled by the binutils 2.21 assembler and also by LLVM integrated assembler. Remove CONFIG_AS_MOVNTDQA, which is always defined. Signed-off-by: Masahiro Yamada Reviewed-by: Nick Desaulniers --- drivers/gpu/drm/i915/Makefile | 3 --- drivers/gpu/drm/i915/i915_memcpy.c | 5 - 2 files changed, 8 deletions(-) diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile index a1f2411aa21b..e559e53fc634 100644 --- a/drivers/gpu/drm/i915/Makefile +++ b/drivers/gpu/drm/i915/Makefile @@ -28,9 +28,6 @@ subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror CFLAGS_i915_pci.o = $(call cc-disable-warning, override-init) CFLAGS_display/intel_fbdev.o = $(call cc-disable-warning, override-init) -subdir-ccflags-y += \ - $(call as-instr,movntdqa (%eax)$(comma)%xmm0,-DCONFIG_AS_MOVNTDQA) - subdir-ccflags-y += -I$(srctree)/$(src) # Please keep these build lists sorted! diff --git a/drivers/gpu/drm/i915/i915_memcpy.c b/drivers/gpu/drm/i915/i915_memcpy.c index fdd550405fd3..7b3b83bd5ab8 100644 --- a/drivers/gpu/drm/i915/i915_memcpy.c +++ b/drivers/gpu/drm/i915/i915_memcpy.c @@ -35,7 +35,6 @@ static DEFINE_STATIC_KEY_FALSE(has_movntdqa); -#ifdef CONFIG_AS_MOVNTDQA static void __memcpy_ntdqa(void *dst, const void *src, unsigned long len) { kernel_fpu_begin(); @@ -93,10 +92,6 @@ static void __memcpy_ntdqu(void *dst, const void *src, unsigned long len) kernel_fpu_end(); } -#else -static void __memcpy_ntdqa(void *dst, const void *src, unsigned long len) {} -static void __memcpy_ntdqu(void *dst, const void *src, unsigned long len) {} -#endif /** * i915_memcpy_from_wc: perform an accelerated *aligned* read from WC -- 2.17.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 00/16] x86, crypto: remove always-defined CONFIG_AS_* and cosolidate Kconfig/Makefiles
This series of cleanups was prompted by Linus: https://lkml.org/lkml/2020/3/12/726 First, this series drop always-on CONFIG_AS_* options. Some of those options were introduced in old days. For example, the check for CONFIG_AS_CFI dates back to 2006. We raise the minimal tool versions from time to time. Currently, we require binutils 2.21 (and we plan to bump it to 2.23 for v5.7-rc1). After cleaning away the old checks, as-instr calls are moved to Kconfig from Makefiles. (patch 11) This allows more Kconfig / Makefile cleanups. Patch 12 is complex, but I double-checked it does the equivalent. Patch 14 bumps the binutils version to 2.23, and patch 15 removes more CONFIG_AS_* options. I folded all relevanet patches into this series, as suggested by Jason A. Donenfeld. If x86 maintainers take care of this series, that's good. If it is OK to queue this up to Kbuild tree, I will send a pull request to Linus. Thank you. Borislav Petkov (1): Documentation/changes: Raise minimum supported binutils version to 2.23 Jason A. Donenfeld (4): x86: probe assembler capabilities via kconfig instead of makefile crypto: x86 - rework configuration based on Kconfig crypto: curve25519 - do not pollute dispatcher based on assembler x86: update AS_* macros to binutils >=2.23, supporting ADX and AVX2 Masahiro Yamada (11): lib/raid6/test: fix build on distros whose /bin/sh is not bash x86: remove unneeded defined(__ASSEMBLY__) check from asm/dwarf2.h x86: remove always-defined CONFIG_AS_CFI x86: remove unneeded (CONFIG_AS_)CFI_SIGNAL_FRAME x86: remove always-defined CONFIG_AS_CFI_SECTIONS x86: remove always-defined CONFIG_AS_SSSE3 x86: remove always-defined CONFIG_AS_AVX x86: add comments about the binutils version to support code in as-instr x86: replace arch macros from compiler with CONFIG_X86_{32,64} drm/i915: remove always-defined CONFIG_AS_MOVNTDQA crypto: x86 - clean up poly1305-x86_64-cryptogams.S by 'make clean' Documentation/process/changes.rst | 4 +- arch/x86/Kconfig | 2 + arch/x86/Kconfig.assembler| 14 ++ arch/x86/Makefile | 22 --- arch/x86/crypto/Makefile | 162 +++--- arch/x86/crypto/aesni-intel_avx-x86_64.S | 6 - arch/x86/crypto/aesni-intel_glue.c| 21 +-- arch/x86/crypto/blake2s-core.S| 2 - arch/x86/crypto/chacha_glue.c | 6 +- arch/x86/crypto/poly1305-x86_64-cryptogams.pl | 16 -- arch/x86/crypto/poly1305_glue.c | 11 +- arch/x86/crypto/sha1_ssse3_asm.S | 4 - arch/x86/crypto/sha1_ssse3_glue.c | 13 -- arch/x86/crypto/sha256-avx-asm.S | 3 - arch/x86/crypto/sha256-avx2-asm.S | 3 - arch/x86/crypto/sha256_ssse3_glue.c | 12 -- arch/x86/crypto/sha512-avx-asm.S | 2 - arch/x86/crypto/sha512-avx2-asm.S | 3 - arch/x86/crypto/sha512_ssse3_glue.c | 10 -- arch/x86/include/asm/dwarf2.h | 44 - arch/x86/include/asm/xor_avx.h| 9 - drivers/gpu/drm/i915/Makefile | 3 - drivers/gpu/drm/i915/i915_memcpy.c| 5 - include/crypto/curve25519.h | 6 +- kernel/signal.c | 2 +- lib/raid6/algos.c | 12 +- lib/raid6/avx2.c | 4 - lib/raid6/recov_avx2.c| 6 - lib/raid6/recov_ssse3.c | 6 - lib/raid6/test/Makefile | 9 +- 30 files changed, 98 insertions(+), 324 deletions(-) create mode 100644 arch/x86/Kconfig.assembler -- 2.17.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH] drm/i915: remove always-defined CONFIG_AS_MOVNTDQA
CONFIG_AS_MOVNTDQA was introduced by commit 0b1de5d58e19 ("drm/i915: Use SSE4.1 movntdqa to accelerate reads from WC memory"). We raise the minimal supported binutils version from time to time. The last bump was commit 1fb12b35e5ff ("kbuild: Raise the minimum required binutils version to 2.21"). I confirmed the code in $(call as-instr,...) can be assembled by the binutils 2.21 assembler and also by Clang's integrated assembler. Remove CONFIG_AS_MOVNTDQA, which is always defined. Signed-off-by: Masahiro Yamada --- drivers/gpu/drm/i915/Makefile | 3 --- drivers/gpu/drm/i915/i915_memcpy.c | 5 - 2 files changed, 8 deletions(-) diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile index a1f2411aa21b..e559e53fc634 100644 --- a/drivers/gpu/drm/i915/Makefile +++ b/drivers/gpu/drm/i915/Makefile @@ -28,9 +28,6 @@ subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror CFLAGS_i915_pci.o = $(call cc-disable-warning, override-init) CFLAGS_display/intel_fbdev.o = $(call cc-disable-warning, override-init) -subdir-ccflags-y += \ - $(call as-instr,movntdqa (%eax)$(comma)%xmm0,-DCONFIG_AS_MOVNTDQA) - subdir-ccflags-y += -I$(srctree)/$(src) # Please keep these build lists sorted! diff --git a/drivers/gpu/drm/i915/i915_memcpy.c b/drivers/gpu/drm/i915/i915_memcpy.c index fdd550405fd3..7b3b83bd5ab8 100644 --- a/drivers/gpu/drm/i915/i915_memcpy.c +++ b/drivers/gpu/drm/i915/i915_memcpy.c @@ -35,7 +35,6 @@ static DEFINE_STATIC_KEY_FALSE(has_movntdqa); -#ifdef CONFIG_AS_MOVNTDQA static void __memcpy_ntdqa(void *dst, const void *src, unsigned long len) { kernel_fpu_begin(); @@ -93,10 +92,6 @@ static void __memcpy_ntdqu(void *dst, const void *src, unsigned long len) kernel_fpu_end(); } -#else -static void __memcpy_ntdqa(void *dst, const void *src, unsigned long len) {} -static void __memcpy_ntdqu(void *dst, const void *src, unsigned long len) {} -#endif /** * i915_memcpy_from_wc: perform an accelerated *aligned* read from WC -- 2.17.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 4/4] drm/radeon: align short build log
This beautifies the build log. [Before] HOSTCC drivers/gpu/drm/radeon/mkregtable MKREGTABLE drivers/gpu/drm/radeon/r100_reg_safe.h MKREGTABLE drivers/gpu/drm/radeon/rn50_reg_safe.h CC [M] drivers/gpu/drm/radeon/r100.o MKREGTABLE drivers/gpu/drm/radeon/r300_reg_safe.h CC [M] drivers/gpu/drm/radeon/r300.o [After] HOSTCC drivers/gpu/drm/radeon/mkregtable MKREG drivers/gpu/drm/radeon/r100_reg_safe.h MKREG drivers/gpu/drm/radeon/rn50_reg_safe.h CC [M] drivers/gpu/drm/radeon/r100.o MKREG drivers/gpu/drm/radeon/r300_reg_safe.h CC [M] drivers/gpu/drm/radeon/r300.o Signed-off-by: Masahiro Yamada --- drivers/gpu/drm/radeon/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/radeon/Makefile b/drivers/gpu/drm/radeon/Makefile index 480a8d4a3c82..11c97edde54d 100644 --- a/drivers/gpu/drm/radeon/Makefile +++ b/drivers/gpu/drm/radeon/Makefile @@ -6,7 +6,7 @@ hostprogs := mkregtable targets := rn50_reg_safe.h r100_reg_safe.h r200_reg_safe.h rv515_reg_safe.h r300_reg_safe.h r420_reg_safe.h rs600_reg_safe.h r600_reg_safe.h evergreen_reg_safe.h cayman_reg_safe.h -quiet_cmd_mkregtable = MKREGTABLE $@ +quiet_cmd_mkregtable = MKREG $@ cmd_mkregtable = $(obj)/mkregtable $< > $@ $(obj)/%_reg_safe.h: $(src)/reg_srcs/% $(obj)/mkregtable FORCE -- 2.17.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 3/4] drm/radeon: use pattern rule to avoid code duplication in Makefile
This Makefile repeats similar build rules. Use a pattern rule. Signed-off-by: Masahiro Yamada --- drivers/gpu/drm/radeon/Makefile | 29 + 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/drivers/gpu/drm/radeon/Makefile b/drivers/gpu/drm/radeon/Makefile index fda115cefe4d..480a8d4a3c82 100644 --- a/drivers/gpu/drm/radeon/Makefile +++ b/drivers/gpu/drm/radeon/Makefile @@ -9,34 +9,7 @@ targets := rn50_reg_safe.h r100_reg_safe.h r200_reg_safe.h rv515_reg_safe.h r300 quiet_cmd_mkregtable = MKREGTABLE $@ cmd_mkregtable = $(obj)/mkregtable $< > $@ -$(obj)/rn50_reg_safe.h: $(src)/reg_srcs/rn50 $(obj)/mkregtable FORCE - $(call if_changed,mkregtable) - -$(obj)/r100_reg_safe.h: $(src)/reg_srcs/r100 $(obj)/mkregtable FORCE - $(call if_changed,mkregtable) - -$(obj)/r200_reg_safe.h: $(src)/reg_srcs/r200 $(obj)/mkregtable FORCE - $(call if_changed,mkregtable) - -$(obj)/rv515_reg_safe.h: $(src)/reg_srcs/rv515 $(obj)/mkregtable FORCE - $(call if_changed,mkregtable) - -$(obj)/r300_reg_safe.h: $(src)/reg_srcs/r300 $(obj)/mkregtable FORCE - $(call if_changed,mkregtable) - -$(obj)/r420_reg_safe.h: $(src)/reg_srcs/r420 $(obj)/mkregtable FORCE - $(call if_changed,mkregtable) - -$(obj)/rs600_reg_safe.h: $(src)/reg_srcs/rs600 $(obj)/mkregtable FORCE - $(call if_changed,mkregtable) - -$(obj)/r600_reg_safe.h: $(src)/reg_srcs/r600 $(obj)/mkregtable FORCE - $(call if_changed,mkregtable) - -$(obj)/evergreen_reg_safe.h: $(src)/reg_srcs/evergreen $(obj)/mkregtable FORCE - $(call if_changed,mkregtable) - -$(obj)/cayman_reg_safe.h: $(src)/reg_srcs/cayman $(obj)/mkregtable FORCE +$(obj)/%_reg_safe.h: $(src)/reg_srcs/% $(obj)/mkregtable FORCE $(call if_changed,mkregtable) $(obj)/r100.o: $(obj)/r100_reg_safe.h $(obj)/rn50_reg_safe.h -- 2.17.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 2/4] drm/radeon: fix build rules of *_reg_safe.h
if_changed must have FORCE as a prerequisite, and the targets must be added to 'targets'. Signed-off-by: Masahiro Yamada --- drivers/gpu/drm/radeon/Makefile | 22 +++--- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/radeon/Makefile b/drivers/gpu/drm/radeon/Makefile index 9d5d3dc1011f..fda115cefe4d 100644 --- a/drivers/gpu/drm/radeon/Makefile +++ b/drivers/gpu/drm/radeon/Makefile @@ -4,39 +4,39 @@ # Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher. hostprogs := mkregtable -clean-files := rn50_reg_safe.h r100_reg_safe.h r200_reg_safe.h rv515_reg_safe.h r300_reg_safe.h r420_reg_safe.h rs600_reg_safe.h r600_reg_safe.h evergreen_reg_safe.h cayman_reg_safe.h +targets := rn50_reg_safe.h r100_reg_safe.h r200_reg_safe.h rv515_reg_safe.h r300_reg_safe.h r420_reg_safe.h rs600_reg_safe.h r600_reg_safe.h evergreen_reg_safe.h cayman_reg_safe.h quiet_cmd_mkregtable = MKREGTABLE $@ cmd_mkregtable = $(obj)/mkregtable $< > $@ -$(obj)/rn50_reg_safe.h: $(src)/reg_srcs/rn50 $(obj)/mkregtable +$(obj)/rn50_reg_safe.h: $(src)/reg_srcs/rn50 $(obj)/mkregtable FORCE $(call if_changed,mkregtable) -$(obj)/r100_reg_safe.h: $(src)/reg_srcs/r100 $(obj)/mkregtable +$(obj)/r100_reg_safe.h: $(src)/reg_srcs/r100 $(obj)/mkregtable FORCE $(call if_changed,mkregtable) -$(obj)/r200_reg_safe.h: $(src)/reg_srcs/r200 $(obj)/mkregtable +$(obj)/r200_reg_safe.h: $(src)/reg_srcs/r200 $(obj)/mkregtable FORCE $(call if_changed,mkregtable) -$(obj)/rv515_reg_safe.h: $(src)/reg_srcs/rv515 $(obj)/mkregtable +$(obj)/rv515_reg_safe.h: $(src)/reg_srcs/rv515 $(obj)/mkregtable FORCE $(call if_changed,mkregtable) -$(obj)/r300_reg_safe.h: $(src)/reg_srcs/r300 $(obj)/mkregtable +$(obj)/r300_reg_safe.h: $(src)/reg_srcs/r300 $(obj)/mkregtable FORCE $(call if_changed,mkregtable) -$(obj)/r420_reg_safe.h: $(src)/reg_srcs/r420 $(obj)/mkregtable +$(obj)/r420_reg_safe.h: $(src)/reg_srcs/r420 $(obj)/mkregtable FORCE $(call if_changed,mkregtable) -$(obj)/rs600_reg_safe.h: $(src)/reg_srcs/rs600 $(obj)/mkregtable +$(obj)/rs600_reg_safe.h: $(src)/reg_srcs/rs600 $(obj)/mkregtable FORCE $(call if_changed,mkregtable) -$(obj)/r600_reg_safe.h: $(src)/reg_srcs/r600 $(obj)/mkregtable +$(obj)/r600_reg_safe.h: $(src)/reg_srcs/r600 $(obj)/mkregtable FORCE $(call if_changed,mkregtable) -$(obj)/evergreen_reg_safe.h: $(src)/reg_srcs/evergreen $(obj)/mkregtable +$(obj)/evergreen_reg_safe.h: $(src)/reg_srcs/evergreen $(obj)/mkregtable FORCE $(call if_changed,mkregtable) -$(obj)/cayman_reg_safe.h: $(src)/reg_srcs/cayman $(obj)/mkregtable +$(obj)/cayman_reg_safe.h: $(src)/reg_srcs/cayman $(obj)/mkregtable FORCE $(call if_changed,mkregtable) $(obj)/r100.o: $(obj)/r100_reg_safe.h $(obj)/rn50_reg_safe.h -- 2.17.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH v2] drm/i915: make more headers self-contained
The headers in the gem/selftests/, gt/selftests, gvt/, selftests/ directories have never been compile-tested, but it would be possible to make them self-contained. This commit only addresses missing and forward struct declarations. Signed-off-by: Masahiro Yamada --- Rebase on git://anongit.freedesktop.org/drm-tip drivers/gpu/drm/i915/gem/selftests/mock_context.h | 3 +++ drivers/gpu/drm/i915/gt/selftests/mock_timeline.h | 2 ++ drivers/gpu/drm/i915/gvt/cmd_parser.h | 4 drivers/gpu/drm/i915/gvt/display.h| 5 + drivers/gpu/drm/i915/gvt/edid.h | 4 drivers/gpu/drm/i915/gvt/execlist.h | 2 ++ drivers/gpu/drm/i915/gvt/fb_decoder.h | 2 ++ drivers/gpu/drm/i915/gvt/hypercall.h | 4 drivers/gpu/drm/i915/gvt/interrupt.h | 3 +++ drivers/gpu/drm/i915/gvt/mmio.h | 2 ++ drivers/gpu/drm/i915/gvt/page_track.h | 3 +++ drivers/gpu/drm/i915/gvt/sched_policy.h | 3 +++ drivers/gpu/drm/i915/selftests/mock_gtt.h | 3 +++ drivers/gpu/drm/i915/selftests/mock_region.h | 5 + drivers/gpu/drm/i915/selftests/mock_uncore.h | 3 +++ 15 files changed, 48 insertions(+) diff --git a/drivers/gpu/drm/i915/gem/selftests/mock_context.h b/drivers/gpu/drm/i915/gem/selftests/mock_context.h index 0b926653914f..45de09ec28d1 100644 --- a/drivers/gpu/drm/i915/gem/selftests/mock_context.h +++ b/drivers/gpu/drm/i915/gem/selftests/mock_context.h @@ -7,6 +7,9 @@ #ifndef __MOCK_CONTEXT_H #define __MOCK_CONTEXT_H +struct drm_file; +struct drm_i915_private; + void mock_init_contexts(struct drm_i915_private *i915); struct i915_gem_context * diff --git a/drivers/gpu/drm/i915/gt/selftests/mock_timeline.h b/drivers/gpu/drm/i915/gt/selftests/mock_timeline.h index 689efc66c908..d2bcc3df6183 100644 --- a/drivers/gpu/drm/i915/gt/selftests/mock_timeline.h +++ b/drivers/gpu/drm/i915/gt/selftests/mock_timeline.h @@ -7,6 +7,8 @@ #ifndef __MOCK_TIMELINE__ #define __MOCK_TIMELINE__ +#include + struct intel_timeline; void mock_timeline_init(struct intel_timeline *timeline, u64 context); diff --git a/drivers/gpu/drm/i915/gvt/cmd_parser.h b/drivers/gpu/drm/i915/gvt/cmd_parser.h index 286703643002..ab25d151932a 100644 --- a/drivers/gpu/drm/i915/gvt/cmd_parser.h +++ b/drivers/gpu/drm/i915/gvt/cmd_parser.h @@ -38,6 +38,10 @@ #define GVT_CMD_HASH_BITS 7 +struct intel_gvt; +struct intel_shadow_wa_ctx; +struct intel_vgpu_workload; + void intel_gvt_clean_cmd_parser(struct intel_gvt *gvt); int intel_gvt_init_cmd_parser(struct intel_gvt *gvt); diff --git a/drivers/gpu/drm/i915/gvt/display.h b/drivers/gpu/drm/i915/gvt/display.h index a87f33e6a23c..b59b34046e1e 100644 --- a/drivers/gpu/drm/i915/gvt/display.h +++ b/drivers/gpu/drm/i915/gvt/display.h @@ -35,6 +35,11 @@ #ifndef _GVT_DISPLAY_H_ #define _GVT_DISPLAY_H_ +#include + +struct intel_gvt; +struct intel_vgpu; + #define SBI_REG_MAX20 #define DPCD_SIZE 0x700 diff --git a/drivers/gpu/drm/i915/gvt/edid.h b/drivers/gpu/drm/i915/gvt/edid.h index f6dfc8b795ec..dfe0cbc6aad8 100644 --- a/drivers/gpu/drm/i915/gvt/edid.h +++ b/drivers/gpu/drm/i915/gvt/edid.h @@ -35,6 +35,10 @@ #ifndef _GVT_EDID_H_ #define _GVT_EDID_H_ +#include + +struct intel_vgpu; + #define EDID_SIZE 128 #define EDID_ADDR 0x50 /* Linux hvm EDID addr */ diff --git a/drivers/gpu/drm/i915/gvt/execlist.h b/drivers/gpu/drm/i915/gvt/execlist.h index 5ccc2c695848..5c0c1fd30c83 100644 --- a/drivers/gpu/drm/i915/gvt/execlist.h +++ b/drivers/gpu/drm/i915/gvt/execlist.h @@ -35,6 +35,8 @@ #ifndef _GVT_EXECLIST_H_ #define _GVT_EXECLIST_H_ +#include + struct execlist_ctx_descriptor_format { union { u32 ldw; diff --git a/drivers/gpu/drm/i915/gvt/fb_decoder.h b/drivers/gpu/drm/i915/gvt/fb_decoder.h index 60c155085029..67b6ede9e707 100644 --- a/drivers/gpu/drm/i915/gvt/fb_decoder.h +++ b/drivers/gpu/drm/i915/gvt/fb_decoder.h @@ -36,6 +36,8 @@ #ifndef _GVT_FB_DECODER_H_ #define _GVT_FB_DECODER_H_ +#include + #define _PLANE_CTL_FORMAT_SHIFT24 #define _PLANE_CTL_TILED_SHIFT 10 #define _PIPE_V_SRCSZ_SHIFT0 diff --git a/drivers/gpu/drm/i915/gvt/hypercall.h b/drivers/gpu/drm/i915/gvt/hypercall.h index 4862fb12778e..9599c0a762b2 100644 --- a/drivers/gpu/drm/i915/gvt/hypercall.h +++ b/drivers/gpu/drm/i915/gvt/hypercall.h @@ -33,6 +33,10 @@ #ifndef _GVT_HYPERCALL_H_ #define _GVT_HYPERCALL_H_ +#include + +struct device; + enum hypervisor_type { INTEL_GVT_HYPERVISOR_XEN = 0, INTEL_GVT_HYPERVISOR_KVM, diff --git a/drivers/gpu/drm/i915/gvt/interrupt.h b/drivers/gpu/drm/i915/gvt/interrupt.h index 5313fb1b33e1..fcd663811d37 100644 --- a/drivers/gpu/drm/i915/gvt/interrupt.h +++ b/drivers/gpu/drm/i915/gvt/interrupt.h @@ -32,6 +32,8 @@ #ifndef _GVT_INTERRUPT_H_ #define _GVT_INTERRUPT_H_ +#include + enum intel_gvt_event_type
[PATCH 2/2] drm/i915: make more headers self-contained
The headers in the gem/selftests/, gt/selftests, gvt/, selftests/ directories have never been compile-tested, but it would be possible to make them self-contained. This commit only addresses missing and forward struct declarations. Signed-off-by: Masahiro Yamada --- drivers/gpu/drm/i915/gem/selftests/mock_context.h | 3 +++ drivers/gpu/drm/i915/gt/selftests/mock_timeline.h | 2 ++ drivers/gpu/drm/i915/gvt/cmd_parser.h | 4 drivers/gpu/drm/i915/gvt/display.h| 5 + drivers/gpu/drm/i915/gvt/edid.h | 4 drivers/gpu/drm/i915/gvt/execlist.h | 2 ++ drivers/gpu/drm/i915/gvt/fb_decoder.h | 2 ++ drivers/gpu/drm/i915/gvt/hypercall.h | 4 drivers/gpu/drm/i915/gvt/interrupt.h | 3 +++ drivers/gpu/drm/i915/gvt/mmio.h | 2 ++ drivers/gpu/drm/i915/gvt/page_track.h | 3 +++ drivers/gpu/drm/i915/gvt/sched_policy.h | 3 +++ drivers/gpu/drm/i915/selftests/mock_drm.h | 2 ++ drivers/gpu/drm/i915/selftests/mock_gtt.h | 3 +++ drivers/gpu/drm/i915/selftests/mock_region.h | 5 + drivers/gpu/drm/i915/selftests/mock_uncore.h | 3 +++ 16 files changed, 50 insertions(+) diff --git a/drivers/gpu/drm/i915/gem/selftests/mock_context.h b/drivers/gpu/drm/i915/gem/selftests/mock_context.h index 0b926653914f..45de09ec28d1 100644 --- a/drivers/gpu/drm/i915/gem/selftests/mock_context.h +++ b/drivers/gpu/drm/i915/gem/selftests/mock_context.h @@ -7,6 +7,9 @@ #ifndef __MOCK_CONTEXT_H #define __MOCK_CONTEXT_H +struct drm_file; +struct drm_i915_private; + void mock_init_contexts(struct drm_i915_private *i915); struct i915_gem_context * diff --git a/drivers/gpu/drm/i915/gt/selftests/mock_timeline.h b/drivers/gpu/drm/i915/gt/selftests/mock_timeline.h index 689efc66c908..d2bcc3df6183 100644 --- a/drivers/gpu/drm/i915/gt/selftests/mock_timeline.h +++ b/drivers/gpu/drm/i915/gt/selftests/mock_timeline.h @@ -7,6 +7,8 @@ #ifndef __MOCK_TIMELINE__ #define __MOCK_TIMELINE__ +#include + struct intel_timeline; void mock_timeline_init(struct intel_timeline *timeline, u64 context); diff --git a/drivers/gpu/drm/i915/gvt/cmd_parser.h b/drivers/gpu/drm/i915/gvt/cmd_parser.h index 286703643002..ab25d151932a 100644 --- a/drivers/gpu/drm/i915/gvt/cmd_parser.h +++ b/drivers/gpu/drm/i915/gvt/cmd_parser.h @@ -38,6 +38,10 @@ #define GVT_CMD_HASH_BITS 7 +struct intel_gvt; +struct intel_shadow_wa_ctx; +struct intel_vgpu_workload; + void intel_gvt_clean_cmd_parser(struct intel_gvt *gvt); int intel_gvt_init_cmd_parser(struct intel_gvt *gvt); diff --git a/drivers/gpu/drm/i915/gvt/display.h b/drivers/gpu/drm/i915/gvt/display.h index a87f33e6a23c..b59b34046e1e 100644 --- a/drivers/gpu/drm/i915/gvt/display.h +++ b/drivers/gpu/drm/i915/gvt/display.h @@ -35,6 +35,11 @@ #ifndef _GVT_DISPLAY_H_ #define _GVT_DISPLAY_H_ +#include + +struct intel_gvt; +struct intel_vgpu; + #define SBI_REG_MAX20 #define DPCD_SIZE 0x700 diff --git a/drivers/gpu/drm/i915/gvt/edid.h b/drivers/gpu/drm/i915/gvt/edid.h index f6dfc8b795ec..dfe0cbc6aad8 100644 --- a/drivers/gpu/drm/i915/gvt/edid.h +++ b/drivers/gpu/drm/i915/gvt/edid.h @@ -35,6 +35,10 @@ #ifndef _GVT_EDID_H_ #define _GVT_EDID_H_ +#include + +struct intel_vgpu; + #define EDID_SIZE 128 #define EDID_ADDR 0x50 /* Linux hvm EDID addr */ diff --git a/drivers/gpu/drm/i915/gvt/execlist.h b/drivers/gpu/drm/i915/gvt/execlist.h index 5ccc2c695848..5c0c1fd30c83 100644 --- a/drivers/gpu/drm/i915/gvt/execlist.h +++ b/drivers/gpu/drm/i915/gvt/execlist.h @@ -35,6 +35,8 @@ #ifndef _GVT_EXECLIST_H_ #define _GVT_EXECLIST_H_ +#include + struct execlist_ctx_descriptor_format { union { u32 ldw; diff --git a/drivers/gpu/drm/i915/gvt/fb_decoder.h b/drivers/gpu/drm/i915/gvt/fb_decoder.h index 60c155085029..67b6ede9e707 100644 --- a/drivers/gpu/drm/i915/gvt/fb_decoder.h +++ b/drivers/gpu/drm/i915/gvt/fb_decoder.h @@ -36,6 +36,8 @@ #ifndef _GVT_FB_DECODER_H_ #define _GVT_FB_DECODER_H_ +#include + #define _PLANE_CTL_FORMAT_SHIFT24 #define _PLANE_CTL_TILED_SHIFT 10 #define _PIPE_V_SRCSZ_SHIFT0 diff --git a/drivers/gpu/drm/i915/gvt/hypercall.h b/drivers/gpu/drm/i915/gvt/hypercall.h index 4862fb12778e..9599c0a762b2 100644 --- a/drivers/gpu/drm/i915/gvt/hypercall.h +++ b/drivers/gpu/drm/i915/gvt/hypercall.h @@ -33,6 +33,10 @@ #ifndef _GVT_HYPERCALL_H_ #define _GVT_HYPERCALL_H_ +#include + +struct device; + enum hypervisor_type { INTEL_GVT_HYPERVISOR_XEN = 0, INTEL_GVT_HYPERVISOR_KVM, diff --git a/drivers/gpu/drm/i915/gvt/interrupt.h b/drivers/gpu/drm/i915/gvt/interrupt.h index 5313fb1b33e1..fcd663811d37 100644 --- a/drivers/gpu/drm/i915/gvt/interrupt.h +++ b/drivers/gpu/drm/i915/gvt/interrupt.h @@ -32,6 +32,8 @@ #ifndef _GVT_INTERRUPT_H_ #define _GVT_INTERRUPT_H_ +#include + enum
Re: [PATCH 2/2] drm/i915: make more headers self-contained
On Fri, Nov 8, 2019 at 2:15 PM Masahiro Yamada wrote: > > The headers in the gem/selftests/, gt/selftests, gvt/, selftests/ > directories have never been compile-tested, but it would be possible > to make them self-contained. > > This commit only addresses missing and forward > struct declarations. > > Signed-off-by: Masahiro Yamada > --- I confirmed this patch is applicable to next-20191107 but CI fails to apply it. Which branch should I base my patch on? > > drivers/gpu/drm/i915/gem/selftests/mock_context.h | 3 +++ > drivers/gpu/drm/i915/gt/selftests/mock_timeline.h | 2 ++ > drivers/gpu/drm/i915/gvt/cmd_parser.h | 4 > drivers/gpu/drm/i915/gvt/display.h| 5 + > drivers/gpu/drm/i915/gvt/edid.h | 4 > drivers/gpu/drm/i915/gvt/execlist.h | 2 ++ > drivers/gpu/drm/i915/gvt/fb_decoder.h | 2 ++ > drivers/gpu/drm/i915/gvt/hypercall.h | 4 > drivers/gpu/drm/i915/gvt/interrupt.h | 3 +++ > drivers/gpu/drm/i915/gvt/mmio.h | 2 ++ > drivers/gpu/drm/i915/gvt/page_track.h | 3 +++ > drivers/gpu/drm/i915/gvt/sched_policy.h | 3 +++ > drivers/gpu/drm/i915/selftests/mock_drm.h | 2 ++ > drivers/gpu/drm/i915/selftests/mock_gtt.h | 3 +++ > drivers/gpu/drm/i915/selftests/mock_region.h | 5 + > drivers/gpu/drm/i915/selftests/mock_uncore.h | 3 +++ > 16 files changed, 50 insertions(+) > > diff --git a/drivers/gpu/drm/i915/gem/selftests/mock_context.h > b/drivers/gpu/drm/i915/gem/selftests/mock_context.h > index 0b926653914f..45de09ec28d1 100644 > --- a/drivers/gpu/drm/i915/gem/selftests/mock_context.h > +++ b/drivers/gpu/drm/i915/gem/selftests/mock_context.h > @@ -7,6 +7,9 @@ > #ifndef __MOCK_CONTEXT_H > #define __MOCK_CONTEXT_H > > +struct drm_file; > +struct drm_i915_private; > + > void mock_init_contexts(struct drm_i915_private *i915); > > struct i915_gem_context * > diff --git a/drivers/gpu/drm/i915/gt/selftests/mock_timeline.h > b/drivers/gpu/drm/i915/gt/selftests/mock_timeline.h > index 689efc66c908..d2bcc3df6183 100644 > --- a/drivers/gpu/drm/i915/gt/selftests/mock_timeline.h > +++ b/drivers/gpu/drm/i915/gt/selftests/mock_timeline.h > @@ -7,6 +7,8 @@ > #ifndef __MOCK_TIMELINE__ > #define __MOCK_TIMELINE__ > > +#include > + > struct intel_timeline; > > void mock_timeline_init(struct intel_timeline *timeline, u64 context); > diff --git a/drivers/gpu/drm/i915/gvt/cmd_parser.h > b/drivers/gpu/drm/i915/gvt/cmd_parser.h > index 286703643002..ab25d151932a 100644 > --- a/drivers/gpu/drm/i915/gvt/cmd_parser.h > +++ b/drivers/gpu/drm/i915/gvt/cmd_parser.h > @@ -38,6 +38,10 @@ > > #define GVT_CMD_HASH_BITS 7 > > +struct intel_gvt; > +struct intel_shadow_wa_ctx; > +struct intel_vgpu_workload; > + > void intel_gvt_clean_cmd_parser(struct intel_gvt *gvt); > > int intel_gvt_init_cmd_parser(struct intel_gvt *gvt); > diff --git a/drivers/gpu/drm/i915/gvt/display.h > b/drivers/gpu/drm/i915/gvt/display.h > index a87f33e6a23c..b59b34046e1e 100644 > --- a/drivers/gpu/drm/i915/gvt/display.h > +++ b/drivers/gpu/drm/i915/gvt/display.h > @@ -35,6 +35,11 @@ > #ifndef _GVT_DISPLAY_H_ > #define _GVT_DISPLAY_H_ > > +#include > + > +struct intel_gvt; > +struct intel_vgpu; > + > #define SBI_REG_MAX20 > #define DPCD_SIZE 0x700 > > diff --git a/drivers/gpu/drm/i915/gvt/edid.h b/drivers/gpu/drm/i915/gvt/edid.h > index f6dfc8b795ec..dfe0cbc6aad8 100644 > --- a/drivers/gpu/drm/i915/gvt/edid.h > +++ b/drivers/gpu/drm/i915/gvt/edid.h > @@ -35,6 +35,10 @@ > #ifndef _GVT_EDID_H_ > #define _GVT_EDID_H_ > > +#include > + > +struct intel_vgpu; > + > #define EDID_SIZE 128 > #define EDID_ADDR 0x50 /* Linux hvm EDID addr */ > > diff --git a/drivers/gpu/drm/i915/gvt/execlist.h > b/drivers/gpu/drm/i915/gvt/execlist.h > index 5ccc2c695848..5c0c1fd30c83 100644 > --- a/drivers/gpu/drm/i915/gvt/execlist.h > +++ b/drivers/gpu/drm/i915/gvt/execlist.h > @@ -35,6 +35,8 @@ > #ifndef _GVT_EXECLIST_H_ > #define _GVT_EXECLIST_H_ > > +#include > + > struct execlist_ctx_descriptor_format { > union { > u32 ldw; > diff --git a/drivers/gpu/drm/i915/gvt/fb_decoder.h > b/drivers/gpu/drm/i915/gvt/fb_decoder.h > index 60c155085029..67b6ede9e707 100644 > --- a/drivers/gpu/drm/i915/gvt/fb_decoder.h > +++ b/drivers/gpu/drm/i915/gvt/fb_decoder.h > @@ -36,6 +36,8 @@ > #ifndef _GVT_FB_DECODER_H_ > #define _GVT_FB_DECODER_H_ > > +#include > + > #define _PLANE_CTL_FORMAT_SHIFT24 > #defi
[PATCH 1/2] drm/i915: change to_mock() to an inline function
Since this function is defined in a header file, it should be 'static inline' instead of 'static'. Signed-off-by: Masahiro Yamada --- drivers/gpu/drm/i915/gem/selftests/mock_dmabuf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/gem/selftests/mock_dmabuf.h b/drivers/gpu/drm/i915/gem/selftests/mock_dmabuf.h index f0f8bbd82dfc..22818bbb139d 100644 --- a/drivers/gpu/drm/i915/gem/selftests/mock_dmabuf.h +++ b/drivers/gpu/drm/i915/gem/selftests/mock_dmabuf.h @@ -14,7 +14,7 @@ struct mock_dmabuf { struct page *pages[]; }; -static struct mock_dmabuf *to_mock(struct dma_buf *buf) +static inline struct mock_dmabuf *to_mock(struct dma_buf *buf) { return buf->priv; } -- 2.17.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH -next] fbdev: c2p: Fix link failure on non-inlining
Hi Geert, On Thu, Sep 26, 2019 at 8:43 PM Geert Uytterhoeven wrote: > > BTW, does randconfig randomize choices these days? > I remember it didn't use to do that. randconfig does randomize choices. masahiro@pug:~/ref/linux$ make -s randconfig ; grep OPTIMIZE_FOR .config KCONFIG_SEED=0x75F1F6C8 CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set masahiro@pug:~/ref/linux$ make -s randconfig ; grep OPTIMIZE_FOR .config KCONFIG_SEED=0x8FDFC7FC # CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set CONFIG_CC_OPTIMIZE_FOR_SIZE=y all{yes,mod}config always takes the default in the choice. So, you cannot enable CONFIG_CC_OPTIMIZE_FOR_SIZE by all{yes,mod}config. > The Amiga and Atari frame buffer drivers need , > and the Atari driver contains inline asm. > > The C2P code could be put behind its own Kconfig symbol, I guess. OK, then. Thanks. -- Best Regards Masahiro Yamada
Re: [PATCH -next] fbdev: c2p: Fix link failure on non-inlining
On Thu, Sep 26, 2019 at 7:13 PM Geert Uytterhoeven wrote: > > When the compiler decides not to inline the Chunky-to-Planar core > functions, the build fails with: > > c2p_planar.c:(.text+0xd6): undefined reference to `c2p_unsupported' > c2p_planar.c:(.text+0x1dc): undefined reference to `c2p_unsupported' > c2p_iplan2.c:(.text+0xc4): undefined reference to `c2p_unsupported' > c2p_iplan2.c:(.text+0x150): undefined reference to `c2p_unsupported' > > Fix this by marking the functions __always_inline. > > Reported-by: nore...@ellerman.id.au > Signed-off-by: Geert Uytterhoeven > --- > Fixes: 025f072e5823947c ("compiler: enable CONFIG_OPTIMIZE_INLINING forcibly") > > As this is a patch in akpm's tree, the commit ID in the Fixes tag is not > stable. BTW, that Fixes tag is incorrect. Irrespective of 025f072e5823947c, you could manually enable CONFIG_OPTIMIZE_INLINING from menuconfig etc. So, this build error would have been found much earlier if somebody had been running randconfig tests on m68k. It is impossible to detect this error on other architectures because the driver config options are guarded by 'depends on ATARI' or 'depends on AMIGA'. The correct tag is: Fixes: 9012d011660e ("compiler: allow all arches to enable CONFIG_OPTIMIZE_INLINING") The commit id is stable. As an additional work, depends on (AMIGA || COMPILE_TEST) would be nice unless this driver contains m68k-specific code. -- Best Regards Masahiro Yamada
Re: [PATCH -next] fbdev: c2p: Fix link failure on non-inlining
On Thu, Sep 26, 2019 at 7:13 PM Geert Uytterhoeven wrote: > > When the compiler decides not to inline the Chunky-to-Planar core > functions, the build fails with: > > c2p_planar.c:(.text+0xd6): undefined reference to `c2p_unsupported' > c2p_planar.c:(.text+0x1dc): undefined reference to `c2p_unsupported' > c2p_iplan2.c:(.text+0xc4): undefined reference to `c2p_unsupported' > c2p_iplan2.c:(.text+0x150): undefined reference to `c2p_unsupported' > > Fix this by marking the functions __always_inline. > > Reported-by: nore...@ellerman.id.au > Signed-off-by: Geert Uytterhoeven Reviewed-by: Masahiro Yamada -- Best Regards Masahiro Yamada
Re: [PATCH] drm/amd/display: Fix compile error due to 'endif' missing
(+CC Stephen Rothwell, Mark Brown) On Mon, Sep 16, 2019 at 1:46 PM Austin Kim wrote: > > gcc throws compile error with below message: GNU Make throws ... This is probably a merge mistake in linux-next. If so, this should be directly fixed in the linux-next. If it is not fixed in time, please inform Linus to *not* follow the linux-next. Thanks. > > HDRINST usr/include/drm/i915_drm.h > drivers/gpu/drm/amd/amdgpu/../display/dc/dml/Makefile:70: *** missing > 'endif'. Stop. > scripts/Makefile.modbuiltin:55: recipe for target > 'drivers/gpu/drm/amd/amdgpu' failed > make[3]: *** [drivers/gpu/drm/amd/amdgpu] Error 2 > make[3]: *** Waiting for unfinished jobs > HDRINST usr/include/drm/omap_drm.h > HDRINST usr/include/drm/tegra_drm.h > HDRINST usr/include/drm/drm_sarea.h > HDRINST usr/include/drm/panfrost_drm.h > HDRINST usr/include/drm/drm.h > scripts/Makefile.modbuiltin:55: recipe for target 'drivers/gpu/drm' failed > make[2]: *** [drivers/gpu/drm] Error 2 > scripts/Makefile.modbuiltin:55: recipe for target 'drivers/gpu' failed > make[1]: *** [drivers/gpu] Error 2 > make[1]: *** Waiting for unfinished jobs > > Add 'endif' to Makefile to stop compile error. > > Signed-off-by: Austin Kim > --- > drivers/gpu/drm/amd/display/dc/dml/Makefile | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/amd/display/dc/dml/Makefile > b/drivers/gpu/drm/amd/display/dc/dml/Makefile > index a2eb59e..5b2a65b 100644 > --- a/drivers/gpu/drm/amd/display/dc/dml/Makefile > +++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile > @@ -44,6 +44,7 @@ CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20.o := > $(dml_ccflags) > CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_rq_dlg_calc_20.o := $(dml_ccflags) > CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20v2.o := $(dml_ccflags) > CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_rq_dlg_calc_20v2.o := > $(dml_ccflags) > +endif > ifdef CONFIG_DRM_AMD_DC_DCN2_1 > CFLAGS_$(AMDDALPATH)/dc/dml/dcn21/display_mode_vba_21.o := $(dml_ccflags) > CFLAGS_$(AMDDALPATH)/dc/dml/dcn21/display_rq_dlg_calc_21.o := $(dml_ccflags) > -- > 2.6.2 > -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [RFC PATCH] gpu: no need to compile drm/ if CONFIG_DRM=n
On Thu, Sep 12, 2019 at 2:41 AM Qian Cai wrote: > > > > > On Sep 11, 2019, at 1:37 PM, Maxime Ripard > > wrote: > > > > Hi, > > > > Le mer. 11 sept. 2019 à 19:35, Qian Cai a écrit : > > The commit c0e09200dc08 ("drm: reorganise drm tree to be more future > > proof.") changed the behavior from only compiling drm/ if CONFIG_DRM=y > > to always compiling drm/. This restores the behavior, so people don't > > need to waste time compiling stuff they don't need. > > > > Fixes: c0e09200dc08 ("drm: reorganise drm tree to be more future proof.") > > > > You are missing your signed-off-by > > That is intentional because this is a RFC patch to gather the feedback as I > am no > expert in DRM and may miss something important. > > Once people are happy with it, I plan to send a formal patch with > Signed-off-by. > CONFIG_DRM is tristate. Your patch requires everything under drivers/gpu/drm/ modular when CONFIG_DRM=m. At least, drivers/gpu/drm/drm_mipi_dsi.c is built-in only. I guess that is the reason why they use 'obj-y += drm/'. In other words, if you are able to make all the drm code modular, your patch is applicable. -- Best Regards Masahiro Yamada
[PATCH] drm/amd: remove meaningless descending into amd/amdkfd/
Since commit 04d5e2765802 ("drm/amdgpu: Merge amdkfd into amdgpu"), drivers/gpu/drm/amd/amdkfd/Makefile does not contain any syntax that is understood by the build system. Signed-off-by: Masahiro Yamada --- drivers/gpu/drm/Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile index 9f0d2ee35794..3f9195b7ad13 100644 --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@ -62,7 +62,6 @@ obj-$(CONFIG_DRM_TTM) += ttm/ obj-$(CONFIG_DRM_SCHED)+= scheduler/ obj-$(CONFIG_DRM_TDFX) += tdfx/ obj-$(CONFIG_DRM_R128) += r128/ -obj-$(CONFIG_HSA_AMD) += amd/amdkfd/ obj-$(CONFIG_DRM_RADEON)+= radeon/ obj-$(CONFIG_DRM_AMDGPU)+= amd/amdgpu/ obj-$(CONFIG_DRM_MGA) += mga/ -- 2.17.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 4/4] video/logo: move pnmtologo tool to drivers/video/logo/ from scripts/
This tool is only used by drivers/video/logo/Makefile. No reason to keep it in scripts/. Signed-off-by: Masahiro Yamada --- drivers/video/logo/.gitignore | 1 + drivers/video/logo/Makefile | 10 +- {scripts => drivers/video/logo}/pnmtologo.c | 0 scripts/.gitignore | 1 - scripts/Makefile| 2 -- 5 files changed, 6 insertions(+), 8 deletions(-) rename {scripts => drivers/video/logo}/pnmtologo.c (100%) diff --git a/drivers/video/logo/.gitignore b/drivers/video/logo/.gitignore index e48355f538fa..9dda1b26b2e4 100644 --- a/drivers/video/logo/.gitignore +++ b/drivers/video/logo/.gitignore @@ -5,3 +5,4 @@ *_vga16.c *_clut224.c *_gray256.c +pnmtologo diff --git a/drivers/video/logo/Makefile b/drivers/video/logo/Makefile index 7d672d40bf01..bcda657493a4 100644 --- a/drivers/video/logo/Makefile +++ b/drivers/video/logo/Makefile @@ -18,19 +18,19 @@ obj-$(CONFIG_SPU_BASE) += logo_spe_clut224.o # How to generate logo's -pnmtologo := scripts/pnmtologo +hostprogs-y := pnmtologo # Create commands like "pnmtologo -t mono -n logo_mac_mono -o ..." quiet_cmd_logo = LOGO$@ - cmd_logo = $(pnmtologo) -t $(lastword $(subst _, ,$*)) -n $* -o $@ $< + cmd_logo = $(obj)/pnmtologo -t $(lastword $(subst _, ,$*)) -n $* -o $@ $< -$(obj)/%.c: $(src)/%.pbm $(pnmtologo) FORCE +$(obj)/%.c: $(src)/%.pbm $(obj)/pnmtologo FORCE $(call if_changed,logo) -$(obj)/%.c: $(src)/%.ppm $(pnmtologo) FORCE +$(obj)/%.c: $(src)/%.ppm $(obj)/pnmtologo FORCE $(call if_changed,logo) -$(obj)/%.c: $(src)/%.pgm $(pnmtologo) FORCE +$(obj)/%.c: $(src)/%.pgm $(obj)/pnmtologo FORCE $(call if_changed,logo) # generated C files diff --git a/scripts/pnmtologo.c b/drivers/video/logo/pnmtologo.c similarity index 100% rename from scripts/pnmtologo.c rename to drivers/video/logo/pnmtologo.c diff --git a/scripts/.gitignore b/scripts/.gitignore index 17f8cef88fa8..4aa1806c59c2 100644 --- a/scripts/.gitignore +++ b/scripts/.gitignore @@ -4,7 +4,6 @@ bin2c conmakehash kallsyms -pnmtologo unifdef recordmcount sortextable diff --git a/scripts/Makefile b/scripts/Makefile index 16bcb8087899..709df809f892 100644 --- a/scripts/Makefile +++ b/scripts/Makefile @@ -4,7 +4,6 @@ # the kernel for the build process. # --- # kallsyms: Find all symbols in vmlinux -# pnmttologo:Convert pnm files to logo files # conmakehash: Create chartable # conmakehash: Create arrays for initializing the kernel console tables @@ -12,7 +11,6 @@ HOST_EXTRACFLAGS += -I$(srctree)/tools/include hostprogs-$(CONFIG_BUILD_BIN2C) += bin2c hostprogs-$(CONFIG_KALLSYMS) += kallsyms -hostprogs-$(CONFIG_LOGO) += pnmtologo hostprogs-$(CONFIG_VT) += conmakehash hostprogs-$(BUILD_C_RECORDMCOUNT) += recordmcount hostprogs-$(CONFIG_BUILDTIME_EXTABLE_SORT) += sortextable -- 2.17.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH v2 1/4] video/logo: remove unneeded *.o pattern from clean-files
The pattern *.o is cleaned up globally by the top Makefile. Signed-off-by: Masahiro Yamada --- Changes in v2: None drivers/video/logo/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/video/logo/Makefile b/drivers/video/logo/Makefile index 228a89b9bdd1..10b75ce3ce09 100644 --- a/drivers/video/logo/Makefile +++ b/drivers/video/logo/Makefile @@ -56,4 +56,4 @@ $(obj)/%_gray256.c: $(src)/%_gray256.pgm $(pnmtologo) FORCE $(call if_changed,logo) # Files generated that shall be removed upon make clean -clean-files := *.o *_mono.c *_vga16.c *_clut224.c *_gray256.c +clean-files := *_mono.c *_vga16.c *_clut224.c *_gray256.c -- 2.17.1
[PATCH v2 2/4] video/logo: do not generate unneeded logo C files
Currently, all the logo C files are generated irrespective of the CONFIG options. Adding them to extra-y is wrong. What we need to do here is to add them to 'targets' so that if_changed works properly. Files listed in 'targets' are cleaned, so clean-files is unneeded. Signed-off-by: Masahiro Yamada --- Changes in v2: - Fix commit log drivers/video/logo/Makefile | 21 ++--- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/drivers/video/logo/Makefile b/drivers/video/logo/Makefile index 10b75ce3ce09..16f60c1e1766 100644 --- a/drivers/video/logo/Makefile +++ b/drivers/video/logo/Makefile @@ -18,23 +18,6 @@ obj-$(CONFIG_SPU_BASE) += logo_spe_clut224.o # How to generate logo's -# Use logo-cfiles to retrieve list of .c files to be built -logo-cfiles = $(notdir $(patsubst %.$(2), %.c, \ - $(wildcard $(srctree)/$(src)/*$(1).$(2 - - -# Mono logos -extra-y += $(call logo-cfiles,_mono,pbm) - -# VGA16 logos -extra-y += $(call logo-cfiles,_vga16,ppm) - -# 224 Logos -extra-y += $(call logo-cfiles,_clut224,ppm) - -# Gray 256 -extra-y += $(call logo-cfiles,_gray256,pgm) - pnmtologo := scripts/pnmtologo # Create commands like "pnmtologo -t mono -n logo_mac_mono -o ..." @@ -55,5 +38,5 @@ $(obj)/%_clut224.c: $(src)/%_clut224.ppm $(pnmtologo) FORCE $(obj)/%_gray256.c: $(src)/%_gray256.pgm $(pnmtologo) FORCE $(call if_changed,logo) -# Files generated that shall be removed upon make clean -clean-files := *_mono.c *_vga16.c *_clut224.c *_gray256.c +# generated C files +targets += *_mono.c *_vga16.c *_clut224.c *_gray256.c -- 2.17.1
[PATCH v2 0/4] video/logo: various fix and cleanups of drivers/video/logo/Makefile
Changes in v2: - Fix commit log Masahiro Yamada (4): video/logo: remove unneeded *.o pattern from clean-files video/logo: do not generate unneeded logo C files video/logo: simplify cmd_logo video/logo: move pnmtologo tool to drivers/video/logo/ from scripts/ drivers/video/logo/.gitignore | 1 + drivers/video/logo/Makefile | 36 - {scripts => drivers/video/logo}/pnmtologo.c | 0 scripts/.gitignore | 1 - scripts/Makefile| 2 -- 5 files changed, 8 insertions(+), 32 deletions(-) rename {scripts => drivers/video/logo}/pnmtologo.c (100%) -- 2.17.1
[PATCH v2 3/4] video/logo: simplify cmd_logo
Shorten the code. It still works in the same way. Signed-off-by: Masahiro Yamada --- Changes in v2: None drivers/video/logo/Makefile | 13 - 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/drivers/video/logo/Makefile b/drivers/video/logo/Makefile index 16f60c1e1766..7d672d40bf01 100644 --- a/drivers/video/logo/Makefile +++ b/drivers/video/logo/Makefile @@ -22,20 +22,15 @@ pnmtologo := scripts/pnmtologo # Create commands like "pnmtologo -t mono -n logo_mac_mono -o ..." quiet_cmd_logo = LOGO$@ - cmd_logo = $(pnmtologo) \ - -t $(patsubst $*_%,%,$(notdir $(basename $<))) \ - -n $(notdir $(basename $<)) -o $@ $< + cmd_logo = $(pnmtologo) -t $(lastword $(subst _, ,$*)) -n $* -o $@ $< -$(obj)/%_mono.c: $(src)/%_mono.pbm $(pnmtologo) FORCE +$(obj)/%.c: $(src)/%.pbm $(pnmtologo) FORCE $(call if_changed,logo) -$(obj)/%_vga16.c: $(src)/%_vga16.ppm $(pnmtologo) FORCE +$(obj)/%.c: $(src)/%.ppm $(pnmtologo) FORCE $(call if_changed,logo) -$(obj)/%_clut224.c: $(src)/%_clut224.ppm $(pnmtologo) FORCE - $(call if_changed,logo) - -$(obj)/%_gray256.c: $(src)/%_gray256.pgm $(pnmtologo) FORCE +$(obj)/%.c: $(src)/%.pgm $(pnmtologo) FORCE $(call if_changed,logo) # generated C files -- 2.17.1
[PATCH v2 4/4] video/logo: move pnmtologo tool to drivers/video/logo/ from scripts/
This tool is only used by drivers/video/logo/Makefile. No reason to keep it in scripts/. Signed-off-by: Masahiro Yamada --- Changes in v2: None drivers/video/logo/.gitignore | 1 + drivers/video/logo/Makefile | 10 +- {scripts => drivers/video/logo}/pnmtologo.c | 0 scripts/.gitignore | 1 - scripts/Makefile| 2 -- 5 files changed, 6 insertions(+), 8 deletions(-) rename {scripts => drivers/video/logo}/pnmtologo.c (100%) diff --git a/drivers/video/logo/.gitignore b/drivers/video/logo/.gitignore index e48355f538fa..9dda1b26b2e4 100644 --- a/drivers/video/logo/.gitignore +++ b/drivers/video/logo/.gitignore @@ -5,3 +5,4 @@ *_vga16.c *_clut224.c *_gray256.c +pnmtologo diff --git a/drivers/video/logo/Makefile b/drivers/video/logo/Makefile index 7d672d40bf01..bcda657493a4 100644 --- a/drivers/video/logo/Makefile +++ b/drivers/video/logo/Makefile @@ -18,19 +18,19 @@ obj-$(CONFIG_SPU_BASE) += logo_spe_clut224.o # How to generate logo's -pnmtologo := scripts/pnmtologo +hostprogs-y := pnmtologo # Create commands like "pnmtologo -t mono -n logo_mac_mono -o ..." quiet_cmd_logo = LOGO$@ - cmd_logo = $(pnmtologo) -t $(lastword $(subst _, ,$*)) -n $* -o $@ $< + cmd_logo = $(obj)/pnmtologo -t $(lastword $(subst _, ,$*)) -n $* -o $@ $< -$(obj)/%.c: $(src)/%.pbm $(pnmtologo) FORCE +$(obj)/%.c: $(src)/%.pbm $(obj)/pnmtologo FORCE $(call if_changed,logo) -$(obj)/%.c: $(src)/%.ppm $(pnmtologo) FORCE +$(obj)/%.c: $(src)/%.ppm $(obj)/pnmtologo FORCE $(call if_changed,logo) -$(obj)/%.c: $(src)/%.pgm $(pnmtologo) FORCE +$(obj)/%.c: $(src)/%.pgm $(obj)/pnmtologo FORCE $(call if_changed,logo) # generated C files diff --git a/scripts/pnmtologo.c b/drivers/video/logo/pnmtologo.c similarity index 100% rename from scripts/pnmtologo.c rename to drivers/video/logo/pnmtologo.c diff --git a/scripts/.gitignore b/scripts/.gitignore index 17f8cef88fa8..4aa1806c59c2 100644 --- a/scripts/.gitignore +++ b/scripts/.gitignore @@ -4,7 +4,6 @@ bin2c conmakehash kallsyms -pnmtologo unifdef recordmcount sortextable diff --git a/scripts/Makefile b/scripts/Makefile index 16bcb8087899..709df809f892 100644 --- a/scripts/Makefile +++ b/scripts/Makefile @@ -4,7 +4,6 @@ # the kernel for the build process. # --- # kallsyms: Find all symbols in vmlinux -# pnmttologo:Convert pnm files to logo files # conmakehash: Create chartable # conmakehash: Create arrays for initializing the kernel console tables @@ -12,7 +11,6 @@ HOST_EXTRACFLAGS += -I$(srctree)/tools/include hostprogs-$(CONFIG_BUILD_BIN2C) += bin2c hostprogs-$(CONFIG_KALLSYMS) += kallsyms -hostprogs-$(CONFIG_LOGO) += pnmtologo hostprogs-$(CONFIG_VT) += conmakehash hostprogs-$(BUILD_C_RECORDMCOUNT) += recordmcount hostprogs-$(CONFIG_BUILDTIME_EXTABLE_SORT) += sortextable -- 2.17.1
Re: [PATCH 2/4] video/logo: fix unneeded generation of font C files
On Wed, Aug 21, 2019 at 12:56 PM Masahiro Yamada wrote: I will replace 'font' -> 'logo'. (My brain was corrupted.) > Currently, all the font C files are generated irrespective of CONFIG > options. Adding them to extra-y is wrong. What we need to do here is > to add them to 'targets' so that if_changed works properly. > > All files listed in 'targets' are cleaned, so clean-files is unneeded. > > Signed-off-by: Masahiro Yamada > --- > > drivers/video/logo/Makefile | 21 ++--- > 1 file changed, 2 insertions(+), 19 deletions(-) > > diff --git a/drivers/video/logo/Makefile b/drivers/video/logo/Makefile > index 10b75ce3ce09..16f60c1e1766 100644 > --- a/drivers/video/logo/Makefile > +++ b/drivers/video/logo/Makefile > @@ -18,23 +18,6 @@ obj-$(CONFIG_SPU_BASE) += > logo_spe_clut224.o > > # How to generate logo's > > -# Use logo-cfiles to retrieve list of .c files to be built > -logo-cfiles = $(notdir $(patsubst %.$(2), %.c, \ > - $(wildcard $(srctree)/$(src)/*$(1).$(2 > - > - > -# Mono logos > -extra-y += $(call logo-cfiles,_mono,pbm) > - > -# VGA16 logos > -extra-y += $(call logo-cfiles,_vga16,ppm) > - > -# 224 Logos > -extra-y += $(call logo-cfiles,_clut224,ppm) > - > -# Gray 256 > -extra-y += $(call logo-cfiles,_gray256,pgm) > - > pnmtologo := scripts/pnmtologo > > # Create commands like "pnmtologo -t mono -n logo_mac_mono -o ..." > @@ -55,5 +38,5 @@ $(obj)/%_clut224.c: $(src)/%_clut224.ppm $(pnmtologo) FORCE > $(obj)/%_gray256.c: $(src)/%_gray256.pgm $(pnmtologo) FORCE > $(call if_changed,logo) > > -# Files generated that shall be removed upon make clean > -clean-files := *_mono.c *_vga16.c *_clut224.c *_gray256.c > +# generated C files > +targets += *_mono.c *_vga16.c *_clut224.c *_gray256.c > -- > 2.17.1 > -- Best Regards Masahiro Yamada
[PATCH 1/4] video/logo: remove unneeded *.o pattern from clean-files
The pattern *.o is cleaned up globally by the top Makefile. Signed-off-by: Masahiro Yamada --- drivers/video/logo/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/video/logo/Makefile b/drivers/video/logo/Makefile index 228a89b9bdd1..10b75ce3ce09 100644 --- a/drivers/video/logo/Makefile +++ b/drivers/video/logo/Makefile @@ -56,4 +56,4 @@ $(obj)/%_gray256.c: $(src)/%_gray256.pgm $(pnmtologo) FORCE $(call if_changed,logo) # Files generated that shall be removed upon make clean -clean-files := *.o *_mono.c *_vga16.c *_clut224.c *_gray256.c +clean-files := *_mono.c *_vga16.c *_clut224.c *_gray256.c -- 2.17.1
[PATCH 2/4] video/logo: fix unneeded generation of font C files
Currently, all the font C files are generated irrespective of CONFIG options. Adding them to extra-y is wrong. What we need to do here is to add them to 'targets' so that if_changed works properly. All files listed in 'targets' are cleaned, so clean-files is unneeded. Signed-off-by: Masahiro Yamada --- drivers/video/logo/Makefile | 21 ++--- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/drivers/video/logo/Makefile b/drivers/video/logo/Makefile index 10b75ce3ce09..16f60c1e1766 100644 --- a/drivers/video/logo/Makefile +++ b/drivers/video/logo/Makefile @@ -18,23 +18,6 @@ obj-$(CONFIG_SPU_BASE) += logo_spe_clut224.o # How to generate logo's -# Use logo-cfiles to retrieve list of .c files to be built -logo-cfiles = $(notdir $(patsubst %.$(2), %.c, \ - $(wildcard $(srctree)/$(src)/*$(1).$(2 - - -# Mono logos -extra-y += $(call logo-cfiles,_mono,pbm) - -# VGA16 logos -extra-y += $(call logo-cfiles,_vga16,ppm) - -# 224 Logos -extra-y += $(call logo-cfiles,_clut224,ppm) - -# Gray 256 -extra-y += $(call logo-cfiles,_gray256,pgm) - pnmtologo := scripts/pnmtologo # Create commands like "pnmtologo -t mono -n logo_mac_mono -o ..." @@ -55,5 +38,5 @@ $(obj)/%_clut224.c: $(src)/%_clut224.ppm $(pnmtologo) FORCE $(obj)/%_gray256.c: $(src)/%_gray256.pgm $(pnmtologo) FORCE $(call if_changed,logo) -# Files generated that shall be removed upon make clean -clean-files := *_mono.c *_vga16.c *_clut224.c *_gray256.c +# generated C files +targets += *_mono.c *_vga16.c *_clut224.c *_gray256.c -- 2.17.1
[PATCH 0/4] video/logo: various fix and cleanups of drivers/video/logo/Makefile
Masahiro Yamada (4): video/logo: remove unneeded *.o pattern from clean-files video/logo: fix unneeded generation of font C files video/logo: simplify cmd_logo video/logo: move pnmtologo tool to drivers/video/logo/ from scripts/ drivers/video/logo/.gitignore | 1 + drivers/video/logo/Makefile | 36 - {scripts => drivers/video/logo}/pnmtologo.c | 0 scripts/.gitignore | 1 - scripts/Makefile| 2 -- 5 files changed, 8 insertions(+), 32 deletions(-) rename {scripts => drivers/video/logo}/pnmtologo.c (100%) -- 2.17.1
[PATCH 3/4] video/logo: simplify cmd_logo
Shorten the code. It still works in the same way. Signed-off-by: Masahiro Yamada --- drivers/video/logo/Makefile | 13 - 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/drivers/video/logo/Makefile b/drivers/video/logo/Makefile index 16f60c1e1766..7d672d40bf01 100644 --- a/drivers/video/logo/Makefile +++ b/drivers/video/logo/Makefile @@ -22,20 +22,15 @@ pnmtologo := scripts/pnmtologo # Create commands like "pnmtologo -t mono -n logo_mac_mono -o ..." quiet_cmd_logo = LOGO$@ - cmd_logo = $(pnmtologo) \ - -t $(patsubst $*_%,%,$(notdir $(basename $<))) \ - -n $(notdir $(basename $<)) -o $@ $< + cmd_logo = $(pnmtologo) -t $(lastword $(subst _, ,$*)) -n $* -o $@ $< -$(obj)/%_mono.c: $(src)/%_mono.pbm $(pnmtologo) FORCE +$(obj)/%.c: $(src)/%.pbm $(pnmtologo) FORCE $(call if_changed,logo) -$(obj)/%_vga16.c: $(src)/%_vga16.ppm $(pnmtologo) FORCE +$(obj)/%.c: $(src)/%.ppm $(pnmtologo) FORCE $(call if_changed,logo) -$(obj)/%_clut224.c: $(src)/%_clut224.ppm $(pnmtologo) FORCE - $(call if_changed,logo) - -$(obj)/%_gray256.c: $(src)/%_gray256.pgm $(pnmtologo) FORCE +$(obj)/%.c: $(src)/%.pgm $(pnmtologo) FORCE $(call if_changed,logo) # generated C files -- 2.17.1
[PATCH 5/5] drm: i915: hierachize Makefiles
You can use the -y syntax in sub-directory Makefiles of modules. Demonstrate how it works. PLEASE DO NOT APPLY FOR NOW: this is only for comments. Signed-off-by: Masahiro Yamada --- drivers/gpu/drm/i915/Makefile | 126 ++-- drivers/gpu/drm/i915/display/Makefile | 64 ++ drivers/gpu/drm/i915/gem/Makefile | 27 + drivers/gpu/drm/i915/gem/selftests/Makefile | 3 + drivers/gpu/drm/i915/gt/Makefile| 16 +++ drivers/gpu/drm/i915/gvt/Makefile | 32 - drivers/gpu/drm/i915/selftests/Makefile | 9 ++ 7 files changed, 153 insertions(+), 124 deletions(-) create mode 100644 drivers/gpu/drm/i915/gem/selftests/Makefile create mode 100644 drivers/gpu/drm/i915/selftests/Makefile diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile index 8cace65f50ce..6319c670bfb8 100644 --- a/drivers/gpu/drm/i915/Makefile +++ b/drivers/gpu/drm/i915/Makefile @@ -63,56 +63,16 @@ i915-y += \ i915_user_extensions.o i915-$(CONFIG_COMPAT) += i915_ioc32.o -i915-$(CONFIG_DEBUG_FS) += i915_debugfs.o display/intel_pipe_crc.o +i915-$(CONFIG_DEBUG_FS) += i915_debugfs.o i915-$(CONFIG_PERF_EVENTS) += i915_pmu.o # "Graphics Technology" (aka we talk to the gpu) -obj-y += gt/ -gt-y += \ - gt/intel_breadcrumbs.o \ - gt/intel_context.o \ - gt/intel_engine_cs.o \ - gt/intel_engine_pm.o \ - gt/intel_gt_pm.o \ - gt/intel_hangcheck.o \ - gt/intel_lrc.o \ - gt/intel_reset.o \ - gt/intel_ringbuffer.o \ - gt/intel_mocs.o \ - gt/intel_sseu.o \ - gt/intel_workarounds.o -gt-$(CONFIG_DRM_I915_SELFTEST) += \ - gt/mock_engine.o -i915-y += $(gt-y) +i915-y += gt/ # GEM (Graphics Execution Management) code -obj-y += gem/ -gem-y += \ - gem/i915_gem_busy.o \ - gem/i915_gem_clflush.o \ - gem/i915_gem_client_blt.o \ - gem/i915_gem_context.o \ - gem/i915_gem_dmabuf.o \ - gem/i915_gem_domain.o \ - gem/i915_gem_execbuffer.o \ - gem/i915_gem_fence.o \ - gem/i915_gem_internal.o \ - gem/i915_gem_object.o \ - gem/i915_gem_object_blt.o \ - gem/i915_gem_mman.o \ - gem/i915_gem_pages.o \ - gem/i915_gem_phys.o \ - gem/i915_gem_pm.o \ - gem/i915_gem_shmem.o \ - gem/i915_gem_shrinker.o \ - gem/i915_gem_stolen.o \ - gem/i915_gem_throttle.o \ - gem/i915_gem_tiling.o \ - gem/i915_gem_userptr.o \ - gem/i915_gem_wait.o \ - gem/i915_gemfs.o +i915-y += gem/ + i915-y += \ - $(gem-y) \ i915_active.o \ i915_cmd_parser.o \ i915_gem_batch_pool.o \ @@ -148,78 +108,11 @@ i915-y += intel_renderstate_gen6.o \ intel_renderstate_gen8.o \ intel_renderstate_gen9.o -# modesetting core code -obj-y += display/ -i915-y += \ - display/intel_atomic.o \ - display/intel_atomic_plane.o \ - display/intel_audio.o \ - display/intel_bios.o \ - display/intel_bw.o \ - display/intel_cdclk.o \ - display/intel_color.o \ - display/intel_combo_phy.o \ - display/intel_connector.o \ - display/intel_display.o \ - display/intel_display_power.o \ - display/intel_dpio_phy.o \ - display/intel_dpll_mgr.o \ - display/intel_fbc.o \ - display/intel_fifo_underrun.o \ - display/intel_frontbuffer.o \ - display/intel_hdcp.o \ - display/intel_hotplug.o \ - display/intel_lpe_audio.o \ - display/intel_overlay.o \ - display/intel_psr.o \ - display/intel_quirks.o \ - display/intel_sprite.o -i915-$(CONFIG_ACPI) += \ - display/intel_acpi.o \ - display/intel_opregion.o -i915-$(CONFIG_DRM_FBDEV_EMULATION) += \ - display/intel_fbdev.o - -# modesetting output/encoder code -i915-y += \ - display/dvo_ch7017.o \ - display/dvo_ch7xxx.o \ - display/dvo_ivch.o \ - display/dvo_ns2501.o \ - display/dvo_sil164.o \ - display/dvo_tfp410.o \ - display/icl_dsi.o \ - display/intel_crt.o \ - display/intel_ddi.o \ - display/intel_dp.o \ - display/intel_dp_aux_backlight.o \ - display/intel_dp_link_training.o \ - display/intel_dp_mst.o \ - display/intel_dsi.o \ - display/intel_dsi_dcs_backlight.o \ - display/intel_dsi_vbt.o \ - display/intel_dvo.o \ - display/intel_gmbus.o \ - display/intel_hdmi.o \ - display/intel_lspcon.o \ - display/intel_lvds.o \ - display/intel_panel.o \ - display/intel_sdvo.o \ - display/intel_tv.o \ - display/intel_vdsc.o \ - display/vlv_dsi.o \ - display/vlv_dsi_pll.o +i915-y += display/ # Post-mortem debug and GPU hang state capture i915-$(CONFIG_DRM_I915_CAPTURE_ERROR) += i915_gpu_error.o -i915-$(CONFIG_DRM_I915_SELFTEST) += \ - gem/selftests/igt_gem_utils.o \ - selftests/i91
[PATCH 0/5] kbuild: allow big modules to sub-divide Makefiles
Recently, Jani Nikula requests a better build system support for drivers spanning multiple directories. (better kbuild support for drivers spanning multiple directories?) I implemented it, so please take a look at it. Note: The single targets do not work correctly. The single targets have never worked correctly: [1] For instance, "make drivers/foo/bar/baz.o" will descend into drivers/foo/bar/Makefile, which may not necessarily specify the build rule of baz.o It is possible for drivers/foo/Makefile having obj-$(CONFIG_BAZ) += bar/baz.o [2] subdir-ccflags-y does not work. The single targets directly descend into the directory of that file resides. It missed subdir-ccflags-y if it is specifies in parent Makefiles. Perhaps, I will have to manage correct implementation of single targets. Masahiro Yamada (5): kbuild: treat an object as multi-used when $(foo-) is set kbuild: clean up modname calculation kbuild: rename cmd_ar_builtin to cmd_ar_no_sym kbuild: support composite objects spanning across multiple Makefiles drm: i915: hierachize Makefiles drivers/gpu/drm/i915/Makefile | 126 ++-- drivers/gpu/drm/i915/display/Makefile | 64 ++ drivers/gpu/drm/i915/gem/Makefile | 27 + drivers/gpu/drm/i915/gem/selftests/Makefile | 3 + drivers/gpu/drm/i915/gt/Makefile| 16 +++ drivers/gpu/drm/i915/gvt/Makefile | 32 - drivers/gpu/drm/i915/selftests/Makefile | 9 ++ scripts/Makefile.build | 39 +++--- scripts/Makefile.lib| 66 ++ 9 files changed, 218 insertions(+), 164 deletions(-) create mode 100644 drivers/gpu/drm/i915/gem/selftests/Makefile create mode 100644 drivers/gpu/drm/i915/selftests/Makefile -- 2.17.1
[PATCH] backlight: add include guards to platform_lcd.h and ili9320.h
Add header include guards just in case. Signed-off-by: Masahiro Yamada --- include/video/ili9320.h | 4 include/video/platform_lcd.h | 4 2 files changed, 8 insertions(+) diff --git a/include/video/ili9320.h b/include/video/ili9320.h index 62f424f0bc52..b76a0b8f16fc 100644 --- a/include/video/ili9320.h +++ b/include/video/ili9320.h @@ -9,6 +9,9 @@ * http://armlinux.simtec.co.uk/ */ +#ifndef _VIDEO_ILI9320_H +#define _VIDEO_ILI9320_H + #define ILI9320_REG(x) (x) #define ILI9320_INDEX ILI9320_REG(0x00) @@ -196,3 +199,4 @@ struct ili9320_platdata { unsigned short interface6; }; +#endif /* _VIDEO_ILI9320_H */ diff --git a/include/video/platform_lcd.h b/include/video/platform_lcd.h index 6a95184a28c1..c68f3f45b5c1 100644 --- a/include/video/platform_lcd.h +++ b/include/video/platform_lcd.h @@ -7,6 +7,9 @@ * Generic platform-device LCD power control interface. */ +#ifndef _VIDEO_PLATFORM_LCD_H +#define _VIDEO_PLATFORM_LCD_H + struct plat_lcd_data; struct fb_info; @@ -16,3 +19,4 @@ struct plat_lcd_data { int (*match_fb)(struct plat_lcd_data *, struct fb_info *); }; +#endif /* _VIDEO_PLATFORM_LCD_H */ -- 2.17.1
Re: [PATCH v7 06/18] kbuild: enable building KUnit
On Tue, Jul 9, 2019 at 3:34 PM Brendan Higgins wrote: > > KUnit is a new unit testing framework for the kernel and when used is > built into the kernel as a part of it. Add KUnit to the root Kconfig and > Makefile to allow it to be actually built. > > Signed-off-by: Brendan Higgins > Cc: Masahiro Yamada > Cc: Michal Marek > Reviewed-by: Greg Kroah-Hartman > Reviewed-by: Logan Gunthorpe > --- > Kconfig | 2 ++ > Makefile | 2 +- > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/Kconfig b/Kconfig > index 48a80beab6853..10428501edb78 100644 > --- a/Kconfig > +++ b/Kconfig > @@ -30,3 +30,5 @@ source "crypto/Kconfig" > source "lib/Kconfig" > > source "lib/Kconfig.debug" > + > +source "kunit/Kconfig" > diff --git a/Makefile b/Makefile > index 3e4868a6498b2..60cf4f0813e0d 100644 > --- a/Makefile > +++ b/Makefile > @@ -991,7 +991,7 @@ endif > PHONY += prepare0 > > ifeq ($(KBUILD_EXTMOD),) > -core-y += kernel/ certs/ mm/ fs/ ipc/ security/ crypto/ block/ > +core-y += kernel/ certs/ mm/ fs/ ipc/ security/ crypto/ block/ kunit/ > > vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \ > $(core-y) $(core-m) $(drivers-y) $(drivers-m) \ > -- > 2.22.0.410.gd8fdbe21b5-goog This is so trivial, and do not need to get ack from me. Just a nit. When CONFIG_KUNIT is disable, is there any point in descending into kunit/ ? core-$(CONFIG_KUNIT) += kunit/ ... might be useful to skip kunit/ entirely. If you look at the top-level Makefile, some entries are doing this: init-y := init/ drivers-y := drivers/ sound/ drivers-$(CONFIG_SAMPLES) += samples/ drivers-$(CONFIG_KERNEL_HEADER_TEST) += include/ net-y := net/ libs-y := lib/ core-y := usr/ -- Best Regards Masahiro Yamada
Re: mmotm 2019-07-04-15-01 uploaded (gpu/drm/i915/oa/)
On Fri, Jul 5, 2019 at 12:23 PM Randy Dunlap wrote: > > On 7/4/19 8:09 PM, Masahiro Yamada wrote: > > On Fri, Jul 5, 2019 at 12:05 PM Masahiro Yamada > > wrote: > >> > >> On Fri, Jul 5, 2019 at 10:09 AM Randy Dunlap wrote: > >>> > >>> On 7/4/19 3:01 PM, a...@linux-foundation.org wrote: > >>>> The mm-of-the-moment snapshot 2019-07-04-15-01 has been uploaded to > >>>> > >>>>http://www.ozlabs.org/~akpm/mmotm/ > >>>> > >>>> mmotm-readme.txt says > >>>> > >>>> README for mm-of-the-moment: > >>>> > >>>> http://www.ozlabs.org/~akpm/mmotm/ > >>> > >>> I get a lot of these but don't see/know what causes them: > >>> > >>> ../scripts/Makefile.build:42: ../drivers/gpu/drm/i915/oa/Makefile: No > >>> such file or directory > >>> make[6]: *** No rule to make target > >>> '../drivers/gpu/drm/i915/oa/Makefile'. Stop. > >>> ../scripts/Makefile.build:498: recipe for target > >>> 'drivers/gpu/drm/i915/oa' failed > >>> make[5]: *** [drivers/gpu/drm/i915/oa] Error 2 > >>> ../scripts/Makefile.build:498: recipe for target 'drivers/gpu/drm/i915' > >>> failed > >>> > >> > >> I checked next-20190704 tag. > >> > >> I see the empty file > >> drivers/gpu/drm/i915/oa/Makefile > >> > >> Did someone delete it? > >> > > > > > > I think "obj-y += oa/" > > in drivers/gpu/drm/i915/Makefile > > is redundant. > > Thanks. It seems to be working after deleting that line. Could you check whether or not drivers/gpu/drm/i915/oa/Makefile exists in your source tree? Your build log says it was missing. But, commit 5ed7a0cf3394 ("drm/i915: Move OA files to separate folder") added it. (It is just an empty file) I am just wondering why. -- Best Regards Masahiro Yamada
Re: mmotm 2019-07-04-15-01 uploaded (gpu/drm/i915/oa/)
On Fri, Jul 5, 2019 at 12:05 PM Masahiro Yamada wrote: > > On Fri, Jul 5, 2019 at 10:09 AM Randy Dunlap wrote: > > > > On 7/4/19 3:01 PM, a...@linux-foundation.org wrote: > > > The mm-of-the-moment snapshot 2019-07-04-15-01 has been uploaded to > > > > > >http://www.ozlabs.org/~akpm/mmotm/ > > > > > > mmotm-readme.txt says > > > > > > README for mm-of-the-moment: > > > > > > http://www.ozlabs.org/~akpm/mmotm/ > > > > I get a lot of these but don't see/know what causes them: > > > > ../scripts/Makefile.build:42: ../drivers/gpu/drm/i915/oa/Makefile: No such > > file or directory > > make[6]: *** No rule to make target '../drivers/gpu/drm/i915/oa/Makefile'. > > Stop. > > ../scripts/Makefile.build:498: recipe for target 'drivers/gpu/drm/i915/oa' > > failed > > make[5]: *** [drivers/gpu/drm/i915/oa] Error 2 > > ../scripts/Makefile.build:498: recipe for target 'drivers/gpu/drm/i915' > > failed > > > > I checked next-20190704 tag. > > I see the empty file > drivers/gpu/drm/i915/oa/Makefile > > Did someone delete it? > I think "obj-y += oa/" in drivers/gpu/drm/i915/Makefile is redundant. -- Best Regards Masahiro Yamada
Re: mmotm 2019-07-04-15-01 uploaded (gpu/drm/i915/oa/)
On Fri, Jul 5, 2019 at 10:09 AM Randy Dunlap wrote: > > On 7/4/19 3:01 PM, a...@linux-foundation.org wrote: > > The mm-of-the-moment snapshot 2019-07-04-15-01 has been uploaded to > > > >http://www.ozlabs.org/~akpm/mmotm/ > > > > mmotm-readme.txt says > > > > README for mm-of-the-moment: > > > > http://www.ozlabs.org/~akpm/mmotm/ > > I get a lot of these but don't see/know what causes them: > > ../scripts/Makefile.build:42: ../drivers/gpu/drm/i915/oa/Makefile: No such > file or directory > make[6]: *** No rule to make target '../drivers/gpu/drm/i915/oa/Makefile'. > Stop. > ../scripts/Makefile.build:498: recipe for target 'drivers/gpu/drm/i915/oa' > failed > make[5]: *** [drivers/gpu/drm/i915/oa] Error 2 > ../scripts/Makefile.build:498: recipe for target 'drivers/gpu/drm/i915' failed > I checked next-20190704 tag. I see the empty file drivers/gpu/drm/i915/oa/Makefile Did someone delete it? -- Best Regards Masahiro Yamada
Re: [PATCH] drm/i915: drop unneeded -Wall addition
On Wed, May 15, 2019 at 3:25 PM Chris Wilson wrote: > > Quoting Masahiro Yamada (2019-05-15 05:37:53) > > The top level Makefile adds -Wall globally: > > > > KBUILD_CFLAGS := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs > > \ > > > > I see two "-Wall" added for compiling under drivers/gpu/drm/i915/. > > Does it matter? Is the statement in i915/Makefile not more complete for > saying "-Wall -Wextra -Werror"? Not fatal, but better to fix. Why not fix the comment if you mind "-Wall" in the comment? It will be easy to rephrase the comments without explicitly mentioning -Wall or -Wextra. I reworded it more concisely: # We aggressively eliminate warnings, # so here are more warning options than default. That's it. The CI is your local matter. Distracting comments should not be added in the upstream code in the first place. > > Signed-off-by: Masahiro Yamada > > --- > > > > BTW, I have a question in the comment: > > > > "Note the danger in using -Wall -Wextra is that when CI updates gcc we > > will most likely get a sudden build breakage... Hopefully we will fix > > new warnings before CI updates!" > > > > Enabling whatever warning options does not cause build breakage. > > -Werror does. > > > > So, I think the correct statement is: > > > > "Note the danger in using -Werror is that when CI updates gcc we ... > > No. Heh, I thought the answer was Yes, since I saw the following in this Makefile. # Add a set of useful warning flags and enable -Werror for CI to prevent > CI enforces -Werror and that is constant, so the uncontrolled > variable, the danger, lies in using the unreliable heuristics gcc may > arbitrary enable between versions. That the set of warnings causing an > error may be different between CI and the developer. > -Chris -- Best Regards Masahiro Yamada
[PATCH] drm/i915: drop unneeded -Wall addition
The top level Makefile adds -Wall globally: KBUILD_CFLAGS := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \ I see two "-Wall" added for compiling under drivers/gpu/drm/i915/. Signed-off-by: Masahiro Yamada --- BTW, I have a question in the comment: "Note the danger in using -Wall -Wextra is that when CI updates gcc we will most likely get a sudden build breakage... Hopefully we will fix new warnings before CI updates!" Enabling whatever warning options does not cause build breakage. -Werror does. So, I think the correct statement is: "Note the danger in using -Werror is that when CI updates gcc we ... ^^^ drivers/gpu/drm/i915/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile index fbcb0904f4a8..4a4f60c7edfc 100644 --- a/drivers/gpu/drm/i915/Makefile +++ b/drivers/gpu/drm/i915/Makefile @@ -12,7 +12,7 @@ # Note the danger in using -Wall -Wextra is that when CI updates gcc we # will most likely get a sudden build breakage... Hopefully we will fix # new warnings before CI updates! -subdir-ccflags-y := -Wall -Wextra +subdir-ccflags-y := -Wextra subdir-ccflags-y += $(call cc-disable-warning, unused-parameter) subdir-ccflags-y += $(call cc-disable-warning, type-limits) subdir-ccflags-y += $(call cc-disable-warning, missing-field-initializers) -- 2.17.1
Re: [PATCH v2 06/17] kbuild: enable building KUnit
On Thu, May 2, 2019 at 8:03 AM Brendan Higgins wrote: > > Add KUnit to root Kconfig and Makefile allowing it to actually be built. > > Signed-off-by: Brendan Higgins You need to make sure to not break git-bisect'abililty. With this commit, I see build error. CC kunit/test.o kunit/test.c:11:10: fatal error: os.h: No such file or directory #include ^~ compilation terminated. make[1]: *** [scripts/Makefile.build;279: kunit/test.o] Error 1 make: *** [Makefile;1763: kunit/] Error 2 > --- > Kconfig | 2 ++ > Makefile | 2 +- > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/Kconfig b/Kconfig > index 48a80beab6853..10428501edb78 100644 > --- a/Kconfig > +++ b/Kconfig > @@ -30,3 +30,5 @@ source "crypto/Kconfig" > source "lib/Kconfig" > > source "lib/Kconfig.debug" > + > +source "kunit/Kconfig" > diff --git a/Makefile b/Makefile > index 2b99679148dc7..77368f498d84c 100644 > --- a/Makefile > +++ b/Makefile > @@ -969,7 +969,7 @@ endif > PHONY += prepare0 > > ifeq ($(KBUILD_EXTMOD),) > -core-y += kernel/ certs/ mm/ fs/ ipc/ security/ crypto/ block/ > +core-y += kernel/ certs/ mm/ fs/ ipc/ security/ crypto/ block/ kunit/ > > vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \ > $(core-y) $(core-m) $(drivers-y) $(drivers-m) \ > -- > 2.21.0.593.g511ec345e18-goog > -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v2] drm: prefix header search paths with $(srctree)/
Hi. On Fri, Mar 29, 2019 at 8:37 PM Masahiro Yamada wrote: > > Currently, the Kbuild core manipulates header search paths in a crazy > way [1]. > > To fix this mess, I want all Makefiles to add explicit $(srctree)/ to > the search paths in the srctree. Some Makefiles are already written in > that way, but not all. The goal of this work is to make the notation > consistent, and finally get rid of the gross hacks. > > Having whitespaces after -I does not matter since commit 48f6e3cf5bc6 > ("kbuild: do not drop -I without parameter"). > > [1]: https://patchwork.kernel.org/patch/9632347/ > > Signed-off-by: Masahiro Yamada > Reviewed-by: Sam Ravnborg > --- > > I put all gpu/drm changes into a single patch because > they are trivial conversion. > > If you are interested in the big picture of this work, > the full patch set is available at the following URL. > > git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git > build-test Is somebody taking care of this? > > Changes in v2: > - fix up the new driver komeda > - Add Sam's Reviewed-by > > drivers/gpu/drm/amd/amdgpu/Makefile | 2 +- > drivers/gpu/drm/amd/lib/Makefile| 2 +- > drivers/gpu/drm/arm/display/komeda/Makefile | 4 ++-- > drivers/gpu/drm/i915/gvt/Makefile | 2 +- > drivers/gpu/drm/msm/Makefile| 6 +++--- > drivers/gpu/drm/nouveau/Kbuild | 8 > 6 files changed, 12 insertions(+), 12 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/Makefile > b/drivers/gpu/drm/amd/amdgpu/Makefile > index 466da59..62bf9da 100644 > --- a/drivers/gpu/drm/amd/amdgpu/Makefile > +++ b/drivers/gpu/drm/amd/amdgpu/Makefile > @@ -23,7 +23,7 @@ > # Makefile for the drm device driver. This driver provides support for the > # Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher. > > -FULL_AMD_PATH=$(src)/.. > +FULL_AMD_PATH=$(srctree)/$(src)/.. > DISPLAY_FOLDER_NAME=display > FULL_AMD_DISPLAY_PATH = $(FULL_AMD_PATH)/$(DISPLAY_FOLDER_NAME) > > diff --git a/drivers/gpu/drm/amd/lib/Makefile > b/drivers/gpu/drm/amd/lib/Makefile > index 6902430..d534992 100644 > --- a/drivers/gpu/drm/amd/lib/Makefile > +++ b/drivers/gpu/drm/amd/lib/Makefile > @@ -27,6 +27,6 @@ > # driver components or later moved to kernel/lib for sharing with > # other drivers. > > -ccflags-y := -I$(src)/../include > +ccflags-y := -I $(srctree)/$(src)/../include > > obj-$(CONFIG_CHASH) += chash.o > diff --git a/drivers/gpu/drm/arm/display/komeda/Makefile > b/drivers/gpu/drm/arm/display/komeda/Makefile > index 1b875e5..a72e30c 100644 > --- a/drivers/gpu/drm/arm/display/komeda/Makefile > +++ b/drivers/gpu/drm/arm/display/komeda/Makefile > @@ -1,8 +1,8 @@ > # SPDX-License-Identifier: GPL-2.0 > > ccflags-y := \ > - -I$(src)/../include \ > - -I$(src) > + -I $(srctree)/$(src)/../include \ > + -I $(srctree)/$(src) > > komeda-y := \ > komeda_drv.o \ > diff --git a/drivers/gpu/drm/i915/gvt/Makefile > b/drivers/gpu/drm/i915/gvt/Makefile > index 271fb46..ea8324a 100644 > --- a/drivers/gpu/drm/i915/gvt/Makefile > +++ b/drivers/gpu/drm/i915/gvt/Makefile > @@ -5,5 +5,5 @@ GVT_SOURCE := gvt.o aperture_gm.o handlers.o vgpu.o > trace_points.o firmware.o \ > execlist.o scheduler.o sched_policy.o mmio_context.o cmd_parser.o > debugfs.o \ > fb_decoder.o dmabuf.o page_track.o > > -ccflags-y += -I$(src) -I$(src)/$(GVT_DIR) > +ccflags-y += -I $(srctree)/$(src) -I > $(srctree)/$(src)/$(GVT_DIR)/ > i915-y += $(addprefix $(GVT_DIR)/, > $(GVT_SOURCE)) > diff --git a/drivers/gpu/drm/msm/Makefile b/drivers/gpu/drm/msm/Makefile > index 56a70c7..b7b1ebd 100644 > --- a/drivers/gpu/drm/msm/Makefile > +++ b/drivers/gpu/drm/msm/Makefile > @@ -1,7 +1,7 @@ > # SPDX-License-Identifier: GPL-2.0 > -ccflags-y := -Idrivers/gpu/drm/msm > -ccflags-y += -Idrivers/gpu/drm/msm/disp/dpu1 > -ccflags-$(CONFIG_DRM_MSM_DSI) += -Idrivers/gpu/drm/msm/dsi > +ccflags-y := -I $(srctree)/$(src) > +ccflags-y += -I $(srctree)/$(src)/disp/dpu1 > +ccflags-$(CONFIG_DRM_MSM_DSI) += -I $(srctree)/$(src)/dsi > > msm-y := \ > adreno/adreno_device.o \ > diff --git a/drivers/gpu/drm/nouveau/Kbuild b/drivers/gpu/drm/nouveau/Kbuild > index ea3035e..4fae728 100644 > --- a/drivers/gpu/drm/nouveau/Kbuild > +++ b/drivers/gpu/drm/nouveau/Kbuild > @@ -1,7 +1,7 @@ > -ccflags-y += -I$(src)/include > -ccflags-y += -I$(src)/include/nvkm > -ccflags-y += -I$(src)/nvkm > -ccflags-y += -I$(src) > +ccflags-y += -I $(srctree)/$(src)/incl
[PATCH v2] drm: prefix header search paths with $(srctree)/
Currently, the Kbuild core manipulates header search paths in a crazy way [1]. To fix this mess, I want all Makefiles to add explicit $(srctree)/ to the search paths in the srctree. Some Makefiles are already written in that way, but not all. The goal of this work is to make the notation consistent, and finally get rid of the gross hacks. Having whitespaces after -I does not matter since commit 48f6e3cf5bc6 ("kbuild: do not drop -I without parameter"). [1]: https://patchwork.kernel.org/patch/9632347/ Signed-off-by: Masahiro Yamada Reviewed-by: Sam Ravnborg --- I put all gpu/drm changes into a single patch because they are trivial conversion. If you are interested in the big picture of this work, the full patch set is available at the following URL. git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git build-test Changes in v2: - fix up the new driver komeda - Add Sam's Reviewed-by drivers/gpu/drm/amd/amdgpu/Makefile | 2 +- drivers/gpu/drm/amd/lib/Makefile| 2 +- drivers/gpu/drm/arm/display/komeda/Makefile | 4 ++-- drivers/gpu/drm/i915/gvt/Makefile | 2 +- drivers/gpu/drm/msm/Makefile| 6 +++--- drivers/gpu/drm/nouveau/Kbuild | 8 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/Makefile b/drivers/gpu/drm/amd/amdgpu/Makefile index 466da59..62bf9da 100644 --- a/drivers/gpu/drm/amd/amdgpu/Makefile +++ b/drivers/gpu/drm/amd/amdgpu/Makefile @@ -23,7 +23,7 @@ # Makefile for the drm device driver. This driver provides support for the # Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher. -FULL_AMD_PATH=$(src)/.. +FULL_AMD_PATH=$(srctree)/$(src)/.. DISPLAY_FOLDER_NAME=display FULL_AMD_DISPLAY_PATH = $(FULL_AMD_PATH)/$(DISPLAY_FOLDER_NAME) diff --git a/drivers/gpu/drm/amd/lib/Makefile b/drivers/gpu/drm/amd/lib/Makefile index 6902430..d534992 100644 --- a/drivers/gpu/drm/amd/lib/Makefile +++ b/drivers/gpu/drm/amd/lib/Makefile @@ -27,6 +27,6 @@ # driver components or later moved to kernel/lib for sharing with # other drivers. -ccflags-y := -I$(src)/../include +ccflags-y := -I $(srctree)/$(src)/../include obj-$(CONFIG_CHASH) += chash.o diff --git a/drivers/gpu/drm/arm/display/komeda/Makefile b/drivers/gpu/drm/arm/display/komeda/Makefile index 1b875e5..a72e30c 100644 --- a/drivers/gpu/drm/arm/display/komeda/Makefile +++ b/drivers/gpu/drm/arm/display/komeda/Makefile @@ -1,8 +1,8 @@ # SPDX-License-Identifier: GPL-2.0 ccflags-y := \ - -I$(src)/../include \ - -I$(src) + -I $(srctree)/$(src)/../include \ + -I $(srctree)/$(src) komeda-y := \ komeda_drv.o \ diff --git a/drivers/gpu/drm/i915/gvt/Makefile b/drivers/gpu/drm/i915/gvt/Makefile index 271fb46..ea8324a 100644 --- a/drivers/gpu/drm/i915/gvt/Makefile +++ b/drivers/gpu/drm/i915/gvt/Makefile @@ -5,5 +5,5 @@ GVT_SOURCE := gvt.o aperture_gm.o handlers.o vgpu.o trace_points.o firmware.o \ execlist.o scheduler.o sched_policy.o mmio_context.o cmd_parser.o debugfs.o \ fb_decoder.o dmabuf.o page_track.o -ccflags-y += -I$(src) -I$(src)/$(GVT_DIR) +ccflags-y += -I $(srctree)/$(src) -I $(srctree)/$(src)/$(GVT_DIR)/ i915-y += $(addprefix $(GVT_DIR)/, $(GVT_SOURCE)) diff --git a/drivers/gpu/drm/msm/Makefile b/drivers/gpu/drm/msm/Makefile index 56a70c7..b7b1ebd 100644 --- a/drivers/gpu/drm/msm/Makefile +++ b/drivers/gpu/drm/msm/Makefile @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 -ccflags-y := -Idrivers/gpu/drm/msm -ccflags-y += -Idrivers/gpu/drm/msm/disp/dpu1 -ccflags-$(CONFIG_DRM_MSM_DSI) += -Idrivers/gpu/drm/msm/dsi +ccflags-y := -I $(srctree)/$(src) +ccflags-y += -I $(srctree)/$(src)/disp/dpu1 +ccflags-$(CONFIG_DRM_MSM_DSI) += -I $(srctree)/$(src)/dsi msm-y := \ adreno/adreno_device.o \ diff --git a/drivers/gpu/drm/nouveau/Kbuild b/drivers/gpu/drm/nouveau/Kbuild index ea3035e..4fae728 100644 --- a/drivers/gpu/drm/nouveau/Kbuild +++ b/drivers/gpu/drm/nouveau/Kbuild @@ -1,7 +1,7 @@ -ccflags-y += -I$(src)/include -ccflags-y += -I$(src)/include/nvkm -ccflags-y += -I$(src)/nvkm -ccflags-y += -I$(src) +ccflags-y += -I $(srctree)/$(src)/include +ccflags-y += -I $(srctree)/$(src)/include/nvkm +ccflags-y += -I $(srctree)/$(src)/nvkm +ccflags-y += -I $(srctree)/$(src) # NVKM - HW resource manager #- code also used by various userspace tools/tests -- 2.7.4 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] drm: prefix header search paths with $(srctree)/
On Thu, Jan 31, 2019 at 1:01 PM Masahiro Yamada wrote: > > Currently, the Kbuild core manipulates header search paths in a crazy > way [1]. > > To fix this mess, I want all Makefiles to add explicit $(srctree)/ to > the search paths in the srctree. Some Makefiles are already written in > that way, but not all. The goal of this work is to make the notation > consistent, and finally get rid of the gross hacks. > > Having whitespaces after -I does not matter since commit 48f6e3cf5bc6 > ("kbuild: do not drop -I without parameter"). > > [1]: https://patchwork.kernel.org/patch/9632347/ > > Signed-off-by: Masahiro Yamada > --- Could you take a look at this series, please? Thanks. > I put all gpu/drm changes into a single patch because > they are trivial conversion. > > Please let me know if I need to split this into per-driver patches. > > > drivers/gpu/drm/amd/amdgpu/Makefile | 2 +- > drivers/gpu/drm/amd/lib/Makefile| 2 +- > drivers/gpu/drm/i915/gvt/Makefile | 2 +- > drivers/gpu/drm/msm/Makefile| 6 +++--- > drivers/gpu/drm/nouveau/Kbuild | 8 > 5 files changed, 10 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/Makefile > b/drivers/gpu/drm/amd/amdgpu/Makefile > index f76bcb9..b21ebb0 100644 > --- a/drivers/gpu/drm/amd/amdgpu/Makefile > +++ b/drivers/gpu/drm/amd/amdgpu/Makefile > @@ -23,7 +23,7 @@ > # Makefile for the drm device driver. This driver provides support for the > # Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher. > > -FULL_AMD_PATH=$(src)/.. > +FULL_AMD_PATH=$(srctree)/$(src)/.. > DISPLAY_FOLDER_NAME=display > FULL_AMD_DISPLAY_PATH = $(FULL_AMD_PATH)/$(DISPLAY_FOLDER_NAME) > > diff --git a/drivers/gpu/drm/amd/lib/Makefile > b/drivers/gpu/drm/amd/lib/Makefile > index 6902430..d534992 100644 > --- a/drivers/gpu/drm/amd/lib/Makefile > +++ b/drivers/gpu/drm/amd/lib/Makefile > @@ -27,6 +27,6 @@ > # driver components or later moved to kernel/lib for sharing with > # other drivers. > > -ccflags-y := -I$(src)/../include > +ccflags-y := -I $(srctree)/$(src)/../include > > obj-$(CONFIG_CHASH) += chash.o > diff --git a/drivers/gpu/drm/i915/gvt/Makefile > b/drivers/gpu/drm/i915/gvt/Makefile > index b016dc7..a4a5a96 100644 > --- a/drivers/gpu/drm/i915/gvt/Makefile > +++ b/drivers/gpu/drm/i915/gvt/Makefile > @@ -5,6 +5,6 @@ GVT_SOURCE := gvt.o aperture_gm.o handlers.o vgpu.o > trace_points.o firmware.o \ > execlist.o scheduler.o sched_policy.o mmio_context.o cmd_parser.o > debugfs.o \ > fb_decoder.o dmabuf.o page_track.o > > -ccflags-y += -I$(src) -I$(src)/$(GVT_DIR) > +ccflags-y += -I $(srctree)/$(src) -I > $(srctree)/$(src)/$(GVT_DIR)/ > i915-y += $(addprefix $(GVT_DIR)/, > $(GVT_SOURCE)) > obj-$(CONFIG_DRM_I915_GVT_KVMGT) += $(GVT_DIR)/kvmgt.o > diff --git a/drivers/gpu/drm/msm/Makefile b/drivers/gpu/drm/msm/Makefile > index 56a70c7..b7b1ebd 100644 > --- a/drivers/gpu/drm/msm/Makefile > +++ b/drivers/gpu/drm/msm/Makefile > @@ -1,7 +1,7 @@ > # SPDX-License-Identifier: GPL-2.0 > -ccflags-y := -Idrivers/gpu/drm/msm > -ccflags-y += -Idrivers/gpu/drm/msm/disp/dpu1 > -ccflags-$(CONFIG_DRM_MSM_DSI) += -Idrivers/gpu/drm/msm/dsi > +ccflags-y := -I $(srctree)/$(src) > +ccflags-y += -I $(srctree)/$(src)/disp/dpu1 > +ccflags-$(CONFIG_DRM_MSM_DSI) += -I $(srctree)/$(src)/dsi > > msm-y := \ > adreno/adreno_device.o \ > diff --git a/drivers/gpu/drm/nouveau/Kbuild b/drivers/gpu/drm/nouveau/Kbuild > index b17843d..b4bc88ad 100644 > --- a/drivers/gpu/drm/nouveau/Kbuild > +++ b/drivers/gpu/drm/nouveau/Kbuild > @@ -1,7 +1,7 @@ > -ccflags-y += -I$(src)/include > -ccflags-y += -I$(src)/include/nvkm > -ccflags-y += -I$(src)/nvkm > -ccflags-y += -I$(src) > +ccflags-y += -I $(srctree)/$(src)/include > +ccflags-y += -I $(srctree)/$(src)/include/nvkm > +ccflags-y += -I $(srctree)/$(src)/nvkm > +ccflags-y += -I $(srctree)/$(src) > > # NVKM - HW resource manager > #- code also used by various userspace tools/tests > -- > 2.7.4 > -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH] drm: prefix header search paths with $(srctree)/
Currently, the Kbuild core manipulates header search paths in a crazy way [1]. To fix this mess, I want all Makefiles to add explicit $(srctree)/ to the search paths in the srctree. Some Makefiles are already written in that way, but not all. The goal of this work is to make the notation consistent, and finally get rid of the gross hacks. Having whitespaces after -I does not matter since commit 48f6e3cf5bc6 ("kbuild: do not drop -I without parameter"). [1]: https://patchwork.kernel.org/patch/9632347/ Signed-off-by: Masahiro Yamada --- I put all gpu/drm changes into a single patch because they are trivial conversion. Please let me know if I need to split this into per-driver patches. drivers/gpu/drm/amd/amdgpu/Makefile | 2 +- drivers/gpu/drm/amd/lib/Makefile| 2 +- drivers/gpu/drm/i915/gvt/Makefile | 2 +- drivers/gpu/drm/msm/Makefile| 6 +++--- drivers/gpu/drm/nouveau/Kbuild | 8 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/Makefile b/drivers/gpu/drm/amd/amdgpu/Makefile index f76bcb9..b21ebb0 100644 --- a/drivers/gpu/drm/amd/amdgpu/Makefile +++ b/drivers/gpu/drm/amd/amdgpu/Makefile @@ -23,7 +23,7 @@ # Makefile for the drm device driver. This driver provides support for the # Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher. -FULL_AMD_PATH=$(src)/.. +FULL_AMD_PATH=$(srctree)/$(src)/.. DISPLAY_FOLDER_NAME=display FULL_AMD_DISPLAY_PATH = $(FULL_AMD_PATH)/$(DISPLAY_FOLDER_NAME) diff --git a/drivers/gpu/drm/amd/lib/Makefile b/drivers/gpu/drm/amd/lib/Makefile index 6902430..d534992 100644 --- a/drivers/gpu/drm/amd/lib/Makefile +++ b/drivers/gpu/drm/amd/lib/Makefile @@ -27,6 +27,6 @@ # driver components or later moved to kernel/lib for sharing with # other drivers. -ccflags-y := -I$(src)/../include +ccflags-y := -I $(srctree)/$(src)/../include obj-$(CONFIG_CHASH) += chash.o diff --git a/drivers/gpu/drm/i915/gvt/Makefile b/drivers/gpu/drm/i915/gvt/Makefile index b016dc7..a4a5a96 100644 --- a/drivers/gpu/drm/i915/gvt/Makefile +++ b/drivers/gpu/drm/i915/gvt/Makefile @@ -5,6 +5,6 @@ GVT_SOURCE := gvt.o aperture_gm.o handlers.o vgpu.o trace_points.o firmware.o \ execlist.o scheduler.o sched_policy.o mmio_context.o cmd_parser.o debugfs.o \ fb_decoder.o dmabuf.o page_track.o -ccflags-y += -I$(src) -I$(src)/$(GVT_DIR) +ccflags-y += -I $(srctree)/$(src) -I $(srctree)/$(src)/$(GVT_DIR)/ i915-y += $(addprefix $(GVT_DIR)/, $(GVT_SOURCE)) obj-$(CONFIG_DRM_I915_GVT_KVMGT) += $(GVT_DIR)/kvmgt.o diff --git a/drivers/gpu/drm/msm/Makefile b/drivers/gpu/drm/msm/Makefile index 56a70c7..b7b1ebd 100644 --- a/drivers/gpu/drm/msm/Makefile +++ b/drivers/gpu/drm/msm/Makefile @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 -ccflags-y := -Idrivers/gpu/drm/msm -ccflags-y += -Idrivers/gpu/drm/msm/disp/dpu1 -ccflags-$(CONFIG_DRM_MSM_DSI) += -Idrivers/gpu/drm/msm/dsi +ccflags-y := -I $(srctree)/$(src) +ccflags-y += -I $(srctree)/$(src)/disp/dpu1 +ccflags-$(CONFIG_DRM_MSM_DSI) += -I $(srctree)/$(src)/dsi msm-y := \ adreno/adreno_device.o \ diff --git a/drivers/gpu/drm/nouveau/Kbuild b/drivers/gpu/drm/nouveau/Kbuild index b17843d..b4bc88ad 100644 --- a/drivers/gpu/drm/nouveau/Kbuild +++ b/drivers/gpu/drm/nouveau/Kbuild @@ -1,7 +1,7 @@ -ccflags-y += -I$(src)/include -ccflags-y += -I$(src)/include/nvkm -ccflags-y += -I$(src)/nvkm -ccflags-y += -I$(src) +ccflags-y += -I $(srctree)/$(src)/include +ccflags-y += -I $(srctree)/$(src)/include/nvkm +ccflags-y += -I $(srctree)/$(src)/nvkm +ccflags-y += -I $(srctree)/$(src) # NVKM - HW resource manager #- code also used by various userspace tools/tests -- 2.7.4 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] drm/sched: remove unneeded -Iinclude/drm compiler flag
Hi. 2018-07-06 14:12 GMT+09:00 Masahiro Yamada : > I refactored the include directives under include/drm/ some time ago. > This flag is unneeded. > > Signed-off-by: Masahiro Yamada Ping? > --- > > drivers/gpu/drm/scheduler/Makefile | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/gpu/drm/scheduler/Makefile > b/drivers/gpu/drm/scheduler/Makefile > index bd0377c..7665883 100644 > --- a/drivers/gpu/drm/scheduler/Makefile > +++ b/drivers/gpu/drm/scheduler/Makefile > @@ -20,7 +20,6 @@ > # OTHER DEALINGS IN THE SOFTWARE. > # > # > -ccflags-y := -Iinclude/drm > gpu-sched-y := gpu_scheduler.o sched_fence.o > > obj-$(CONFIG_DRM_SCHED) += gpu-sched.o > -- > 2.7.4 > -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[RESEND PATCH] drm/bridge/synopsys: remove commented-out flag in Makefile
Please do not comment out unneeded code. Remove. Signed-off-by: Masahiro Yamada --- drivers/gpu/drm/bridge/synopsys/Makefile | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/synopsys/Makefile b/drivers/gpu/drm/bridge/synopsys/Makefile index 5dad97d..3e1b1e3 100644 --- a/drivers/gpu/drm/bridge/synopsys/Makefile +++ b/drivers/gpu/drm/bridge/synopsys/Makefile @@ -1,5 +1,3 @@ -#ccflags-y := -Iinclude/drm - obj-$(CONFIG_DRM_DW_HDMI) += dw-hdmi.o obj-$(CONFIG_DRM_DW_HDMI_AHB_AUDIO) += dw-hdmi-ahb-audio.o obj-$(CONFIG_DRM_DW_HDMI_I2S_AUDIO) += dw-hdmi-i2s-audio.o -- 2.7.4 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH] drm/sched: remove unneeded -Iinclude/drm compiler flag
I refactored the include directives under include/drm/ some time ago. This flag is unneeded. Signed-off-by: Masahiro Yamada --- drivers/gpu/drm/scheduler/Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/gpu/drm/scheduler/Makefile b/drivers/gpu/drm/scheduler/Makefile index bd0377c..7665883 100644 --- a/drivers/gpu/drm/scheduler/Makefile +++ b/drivers/gpu/drm/scheduler/Makefile @@ -20,7 +20,6 @@ # OTHER DEALINGS IN THE SOFTWARE. # # -ccflags-y := -Iinclude/drm gpu-sched-y := gpu_scheduler.o sched_fence.o obj-$(CONFIG_DRM_SCHED) += gpu-sched.o -- 2.7.4 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH] drm/bridge/synopsys: remove commented-out flag in Makefile
Please do not comment out unneeded code, but remove it. Signed-off-by: Masahiro Yamada --- drivers/gpu/drm/bridge/synopsys/Makefile | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/synopsys/Makefile b/drivers/gpu/drm/bridge/synopsys/Makefile index 5dad97d..3e1b1e3 100644 --- a/drivers/gpu/drm/bridge/synopsys/Makefile +++ b/drivers/gpu/drm/bridge/synopsys/Makefile @@ -1,5 +1,3 @@ -#ccflags-y := -Iinclude/drm - obj-$(CONFIG_DRM_DW_HDMI) += dw-hdmi.o obj-$(CONFIG_DRM_DW_HDMI_AHB_AUDIO) += dw-hdmi-ahb-audio.o obj-$(CONFIG_DRM_DW_HDMI_I2S_AUDIO) += dw-hdmi-i2s-audio.o -- 2.7.4 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] [RFC] drm: rcar-du: keep temporary dtb files around during build
2018-03-23 0:13 GMT+09:00 Geert Uytterhoeven <ge...@linux-m68k.org>: > Hi Laurent, > > CC Yamada-san > > On Thu, Mar 22, 2018 at 3:50 PM, Laurent Pinchart > <laurent.pinch...@ideasonboard.com> wrote: >> On Thursday, 22 March 2018 16:26:22 EET Geert Uytterhoeven wrote: >>> On Fri, Mar 16, 2018 at 2:39 AM, <frank.row...@sony.com> wrote: >>> > On Thursday, March 15, 2018 8:37 AM, Arnd Bergmann wrote: >>> >> The *.dtb and *.dtb.S files get removed by 'make' during the build >>> >> process, and later seem to be missed during the 'modpost' stage: >>> >> >>> >> rm drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7795.dtb >>> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7791.dtb >>> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7791.dtb.S >>> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7795.dtb.S >>> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7790.dtb.S >>> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7793.dtb >>> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7796.dtb >>> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7790.dtb >>> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7796.dtb.S >>> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7793.dtb.S >>> >> WARNING: could not open >>> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7790.dtb.S: No such file or >>> >> directory >>> >> >>> >> As a workaround, this adds all those files to the 'extra-y' target list, >>> >> but that's really ugly. Any ideas for a better fix? >>> > >>> > Does this work for you (untested, but the way it is done in >>> > drivers/of/unittest-data/Makefile): >>> > >>> > .PRECIOUS: \ >>> > >>> > $(obj)/%.dtb.S \ >>> > $(obj)/%.dtb >>> >>> Shouldn't that just be moved to scripts/Makefile.lib, just above the rule >>> to make dtb.S, like is done for other precious objects? >> >> Without any implied acknowledgment that keeping those intermediate files is >> the right solution (I don't claim to master the kernel build system), I think > > Me neither, but I think it is. > > Cfr. .y => .tab.c => .tab.o with .tab.c marked PRECIOUS. > >> such a rule would indeed be better in a core Makefile, as the rules to build >> the .dtb.o file comes from the core too. Could another option be to create a >> rule to compile a .dtb.o from the .dts file directly without going through >> intermediate files that will be removed automatically ? > > Such a rules needs to execute two commands, which is more tricky, considering > error handling. > It's easier (to get right) to have two separate rules, and let make chain them > automatically. > > Gr{oetje,eeting}s, > > Geert > I submit the patches. I'd like to queue them up for the next merge window, so your problems will be fixed if Kbuild pull requests are pulled. The driver Makefile has two problems. [1] Objects are always rebuilt due to missing 'targets' [2] Intermediate files are removed due to missing .SECONDARY (or .PRECIOUS) If you want to fix them by yourself, you can. But, those issues will be taken care of by the core Makefile. Specifically, [1] will be fixed by https://patchwork.kernel.org/patch/10304671/ and [2] by https://patchwork.kernel.org/patch/10304651/ -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] [RFC] drm: rcar-du: keep temporary dtb files around during build
2018-03-23 0:13 GMT+09:00 Geert Uytterhoeven <ge...@linux-m68k.org>: > Hi Laurent, > > CC Yamada-san > > On Thu, Mar 22, 2018 at 3:50 PM, Laurent Pinchart > <laurent.pinch...@ideasonboard.com> wrote: >> On Thursday, 22 March 2018 16:26:22 EET Geert Uytterhoeven wrote: >>> On Fri, Mar 16, 2018 at 2:39 AM, <frank.row...@sony.com> wrote: >>> > On Thursday, March 15, 2018 8:37 AM, Arnd Bergmann wrote: >>> >> The *.dtb and *.dtb.S files get removed by 'make' during the build >>> >> process, and later seem to be missed during the 'modpost' stage: >>> >> >>> >> rm drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7795.dtb >>> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7791.dtb >>> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7791.dtb.S >>> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7795.dtb.S >>> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7790.dtb.S >>> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7793.dtb >>> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7796.dtb >>> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7790.dtb >>> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7796.dtb.S >>> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7793.dtb.S >>> >> WARNING: could not open >>> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7790.dtb.S: No such file or >>> >> directory >>> >> >>> >> As a workaround, this adds all those files to the 'extra-y' target list, >>> >> but that's really ugly. Any ideas for a better fix? >>> > >>> > Does this work for you (untested, but the way it is done in >>> > drivers/of/unittest-data/Makefile): >>> > >>> > .PRECIOUS: \ >>> > >>> > $(obj)/%.dtb.S \ >>> > $(obj)/%.dtb >>> >>> Shouldn't that just be moved to scripts/Makefile.lib, just above the rule >>> to make dtb.S, like is done for other precious objects? >> >> Without any implied acknowledgment that keeping those intermediate files is >> the right solution (I don't claim to master the kernel build system), I think > > Me neither, but I think it is. > > Cfr. .y => .tab.c => .tab.o with .tab.c marked PRECIOUS. > >> such a rule would indeed be better in a core Makefile, as the rules to build >> the .dtb.o file comes from the core too. Could another option be to create a >> rule to compile a .dtb.o from the .dts file directly without going through >> intermediate files that will be removed automatically ? > > Such a rules needs to execute two commands, which is more tricky, considering > error handling. > It's easier (to get right) to have two separate rules, and let make chain them > automatically. > > Gr{oetje,eeting}s, > > Geert > > -- > Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- > ge...@linux-m68k.org > > In personal conversations with technical people, I call myself a hacker. But > when I'm talking to journalists I just say "programmer" or something like > that. > -- Linus Torvalds This has been in my TODO list for a while, but I have not had time to finish it. Some people use .PRECIOUS to suppress file removal, but it is wrong IMO. .SECONDARY is the right one, but one problem is, this does not work with pattern rules. I will send a patch soon for the core improvement. -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 02/11] video: fbdev: kconfig: Remove blank help text
2018-02-02 1:56 GMT+09:00 Ulf Magnusson <ulfali...@gmail.com>: > On Thu, Feb 1, 2018 at 4:52 PM, Bartlomiej Zolnierkiewicz > <b.zolnier...@samsung.com> wrote: >> >> Hi, >> >> On Wednesday, January 31, 2018 10:34:21 AM Ulf Magnusson wrote: >>> Blank help texts are probably either a typo, a Kconfig misunderstanding, >>> or some kind of half-committing to adding a help text (in which case a >>> TODO comment would be clearer, if the help text really can't be added >>> right away). >>> >>> Best to remove them, IMO. FYI. I picked up this patch to kbuild because I need this to suppress warning messages introduced by 11/11. I am planning to send a PR for this series. -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 00/12] radix-tree: split out struct radix_tree_root out to
2017-10-10 21:18 GMT+09:00 Matthew Wilcox <wi...@infradead.org>: > On Mon, Oct 09, 2017 at 01:10:01AM +0900, Masahiro Yamada wrote: >> Reducing the header dependency will help for speeding the kernel >> build, suppressing unnecessary recompile of objects during >> git-bisect'ing, etc. > > Well, does it? You could provide measurements showing before/after > time to compile, or time to recompile after touching a header file that > is included by radix-tree.h and not by radix-tree-root.h. > > Look at the files included (never mind the transitively included files): > > #include > #include > #include > #include > #include > #include > #include > #include > > These are not exactly rare files to be included. My guess is that most > of the files in the kernel end up depending on these files *anyway*, either > directly or through some path that isn't the radix tree. Good question. I tested this series, and I confirmed the total number of included headers decreased, but did not decrease as much as I had expected. The statement "most of the files in the kernel end up depending on these files" is true. But, with that excuse, I do not want to conclude this kind of refactoring is pointless. For example, how can we explain commit bc6245e5efd70c41eaf9334b1b5e646745cb0fb3 ? includes the following three. #include #include #include Your statement applies to them too. Actually, I did not see any impact by replacing in my files with Generally, people do not pay much attention in decreasing header dependency. One refactoring alone does not produce much benefits, but making continuous efforts will disentangle the knotted threads. Of course, this might be a pipe dream... -- Best Regards Masahiro Yamada ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 12/12] drm/i915: replace with
The header drivers/gpu/drm/i915/i915_gem_context.h requires the definition of struct radix_tree_root, but does not need to know anything about other radix tree stuff. Include instead of to reduce the number of included header files. While we are here, let's add missing where radix tree accessors are used. Signed-off-by: Masahiro Yamada <yamada.masah...@socionext.com> --- drivers/gpu/drm/i915/i915_gem.c| 1 + drivers/gpu/drm/i915/i915_gem_context.c| 1 + drivers/gpu/drm/i915/i915_gem_context.h| 2 +- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 1 + drivers/gpu/drm/i915/i915_gem_object.h | 1 + 5 files changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 19404c9..d2356eb 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -37,6 +37,7 @@ #include "intel_mocs.h" #include #include +#include #include #include #include diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c index 58a2a44..34b2195 100644 --- a/drivers/gpu/drm/i915/i915_gem_context.c +++ b/drivers/gpu/drm/i915/i915_gem_context.c @@ -86,6 +86,7 @@ */ #include +#include #include #include #include "i915_drv.h" diff --git a/drivers/gpu/drm/i915/i915_gem_context.h b/drivers/gpu/drm/i915/i915_gem_context.h index 44688e2..0ebe11f 100644 --- a/drivers/gpu/drm/i915/i915_gem_context.h +++ b/drivers/gpu/drm/i915/i915_gem_context.h @@ -27,7 +27,7 @@ #include #include -#include +#include struct pid; diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c index 92437f4..af9ee58 100644 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c @@ -27,6 +27,7 @@ */ #include +#include #include #include #include diff --git a/drivers/gpu/drm/i915/i915_gem_object.h b/drivers/gpu/drm/i915/i915_gem_object.h index c30d8f8..a5a5506 100644 --- a/drivers/gpu/drm/i915/i915_gem_object.h +++ b/drivers/gpu/drm/i915/i915_gem_object.h @@ -25,6 +25,7 @@ #ifndef __I915_GEM_OBJECT_H__ #define __I915_GEM_OBJECT_H__ +#include #include #include -- 2.7.4 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 00/12] radix-tree: split out struct radix_tree_root out to
The motivation of this series is to cut down unnecessary header dependency in terms of radix tree. Sub-systems or drivers that use radix-tree for data management typically embed struct radix_tree_root in their data structures, like this: struct foo { ... struct radix_tree_root foo_tree; ... }; So, needs to include , therefore, users of include a lot of bloat from . If you see the definition of radix_tree_root, struct radix_tree_root { gfp_tgfp_mask; struct radix_tree_node __rcu *rnode; }; it is a very simple structure. It only depends on for gfp_t and for __rcu. By splitting out the radix_tree_root definition, we can reduce the header file dependency. Reducing the header dependency will help for speeding the kernel build, suppressing unnecessary recompile of objects during git-bisect'ing, etc. The patch 1 is a trivial clean-up; it is just here to avoid conflict. The patch 2 is the main part of this series; split out struct radix_tree_root. The rest of the series replace with where appropriate. Please review if the idea is OK. If it is OK, I'd like to know how to apply the series. Perhaps, the first two for v4.15. Then, rest of series will be sent per-subsystem for v4.16? Or, can somebody take care of the whole series? I checked allmodconfig for x86 and arm64. I am expecting 0 day testing will check it too. Masahiro Yamada (12): radix-tree: replace with radix-tree: split struct radix_tree_root to irqdomain: replace with writeback: replace with iocontext.h: replace with fs: replace with blkcg: replace with fscache: include sh: intc: replace with net/mlx4: replace with net/mlx5: replace with drm/i915: replace with drivers/gpu/drm/i915/i915_gem.c| 1 + drivers/gpu/drm/i915/i915_gem_context.c| 1 + drivers/gpu/drm/i915/i915_gem_context.h| 2 +- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 1 + drivers/gpu/drm/i915/i915_gem_object.h | 1 + drivers/net/ethernet/mellanox/mlx4/cq.c| 1 + drivers/net/ethernet/mellanox/mlx4/mlx4.h | 2 +- drivers/net/ethernet/mellanox/mlx4/qp.c| 1 + drivers/net/ethernet/mellanox/mlx4/srq.c | 1 + drivers/sh/intc/internals.h| 2 +- include/linux/backing-dev-defs.h | 2 +- include/linux/blk-cgroup.h | 2 +- include/linux/fs.h | 2 +- include/linux/fscache.h| 1 + include/linux/iocontext.h | 2 +- include/linux/irqdomain.h | 2 +- include/linux/mlx4/device.h| 2 +- include/linux/mlx4/qp.h| 1 + include/linux/mlx5/driver.h| 2 +- include/linux/mlx5/qp.h| 1 + include/linux/radix-tree-root.h| 24 include/linux/radix-tree.h | 8 ++-- 22 files changed, 46 insertions(+), 16 deletions(-) create mode 100644 include/linux/radix-tree-root.h -- 2.7.4 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel