[driver-core:driver-core-testing] BUILD SUCCESS e7deeb9d79d8691f1e6c4c6707471ec3d7b9886b
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git driver-core-testing branch HEAD: e7deeb9d79d8691f1e6c4c6707471ec3d7b9886b driver: base: Prefer unsigned int to bare use of unsigned elapsed time: 1233m configs tested: 165 configs skipped: 3 The following configs have been built successfully. More configs may be tested in the coming days. gcc tested configs: arm defconfig arm64allyesconfig arm64 defconfig arm allyesconfig arm allmodconfig i386 randconfig-c001-20210722 i386 randconfig-c001-20210720 mips tb0287_defconfig m68k m5475evb_defconfig mips fuloong2e_defconfig shapsh4ad0a_defconfig h8300 h8s-sim_defconfig mips cavium_octeon_defconfig arm pxa168_defconfig xtensageneric_kc705_defconfig powerpc pq2fads_defconfig powerpc pasemi_defconfig mips rs90_defconfig sh ecovec24_defconfig mips jazz_defconfig sh sdk7786_defconfig arm stm32_defconfig arm viper_defconfig mipsvocore2_defconfig sh rsk7201_defconfig powerpc ps3_defconfig m68k apollo_defconfig sparcalldefconfig mips ci20_defconfig sh lboxre2_defconfig arm sama5_defconfig arm mxs_defconfig arm aspeed_g5_defconfig powerpc ppc64e_defconfig armxcep_defconfig powerpc mpc834x_mds_defconfig shtitan_defconfig arcnsim_700_defconfig riscv rv32_defconfig nds32alldefconfig sh rsk7269_defconfig arm imx_v6_v7_defconfig powerpc asp8347_defconfig microblaze defconfig powerpc mpc866_ads_defconfig mips loongson2k_defconfig shecovec24-romimage_defconfig arm ep93xx_defconfig powerpc wii_defconfig sh se7343_defconfig m68km5407c3_defconfig armrealview_defconfig armdove_defconfig arm colibri_pxa270_defconfig openrisc simple_smp_defconfig arm hackkit_defconfig sh kfr2r09_defconfig arm badge4_defconfig nios2 defconfig powerpc motionpro_defconfig sh espt_defconfig arm collie_defconfig arm u8500_defconfig arm vf610m4_defconfig h8300 defconfig arm alldefconfig nds32 defconfig armspear6xx_defconfig powerpc currituck_defconfig arm integrator_defconfig arm omap2plus_defconfig armqcom_defconfig arm h3600_defconfig arm lpc32xx_defconfig arm spear13xx_defconfig x86_64allnoconfig ia64 allmodconfig ia64defconfig ia64 allyesconfig m68k allmodconfig m68kdefconfig m68k allyesconfig arc allyesconfig nds32 allnoconfig nios2allyesconfig cskydefconfig alpha defconfig alphaallyesconfig xtensa allyesconfig h8300allyesconfig arc defconfig sh allmodconfig parisc defconfig s390 allyesconfig s390 allmodconfig parisc allyesconfig s390defconfig i386 allyesconfig sparcallyesconfig sparc
GREETHINGS!!!
ear Sir, My name is Mr. Jan Franssen, Chief Financial Officer, AME Capital Asset Management Limited here in London, United Kingdom; I have URGENT and discreet business proposal for you that shall benefit us immensely should you choose to participate or partner with me. Before I reveal any sensitive information it is important I state categorically that, all privilege information concerning my proposal and this business transaction is treated with utmost confidentiality due to the source of funds. These funds which sums up to (GBP?15.5) Million British Pounds are currently in our client segregated account in relation to one of our private clients late (Deceased) who passed away 5 years ago. Hence, the reason why I have contacted you is because you share the same name with the deceased which is very important in securing the above mentioned funds. These funds are held with our prime brokers which is an offshore bank here in the UK. With your permission, I shall give step by step explanation on why I need your assistance and also the source of funds. Further information on how we shall proceed legally to obtain These funds will be provided in due course once I ascertain your genuine intentions and willingness to assist. Should you be interested, then I would like to hear from you as soon as possible via my Email:janfrans...@counsellor.com to enable me provide you with more details on how we are to proceed. I anticipate and look forward to a successful business relationship with you. Yours faithfully Mr.Jan Franssen ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[staging:staging-linus] BUILD SUCCESS cb7abd1db6e5f99a05f1a00b65be29029a6a152a
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git staging-linus branch HEAD: cb7abd1db6e5f99a05f1a00b65be29029a6a152a staging: rtl8723bs: select CONFIG_CRYPTO_LIB_ARC4 elapsed time: 1394m configs tested: 161 configs skipped: 3 The following configs have been built successfully. More configs may be tested in the coming days. gcc tested configs: arm defconfig arm64allyesconfig arm64 defconfig arm allyesconfig arm allmodconfig i386 randconfig-c001-20210720 i386 randconfig-c001-20210722 um x86_64_defconfig riscvallyesconfig mips allyesconfig um i386_defconfig mips allmodconfig riscvallmodconfig arc allyesconfig nios2allyesconfig alphaallyesconfig powerpc ebony_defconfig powerpc bamboo_defconfig arm integrator_defconfig armmulti_v7_defconfig mips jazz_defconfig sh sdk7786_defconfig arm stm32_defconfig arm viper_defconfig mipsvocore2_defconfig sh rsk7201_defconfig powerpc ps3_defconfig m68k apollo_defconfig sparcalldefconfig mips ci20_defconfig sh lboxre2_defconfig arm sama5_defconfig arm mxs_defconfig arm aspeed_g5_defconfig powerpc ppc64e_defconfig armxcep_defconfig powerpc mpc834x_mds_defconfig mips tb0287_defconfig shtitan_defconfig arcnsim_700_defconfig riscv rv32_defconfig m68km5407c3_defconfig armrealview_defconfig armdove_defconfig arm colibri_pxa270_defconfig openrisc simple_smp_defconfig arm u8500_defconfig arm vf610m4_defconfig h8300 defconfig arm alldefconfig powerpc mpc866_ads_defconfig nds32 defconfig m68k m5475evb_defconfig armspear6xx_defconfig powerpc currituck_defconfig nds32alldefconfig arm pxa_defconfig mips ip27_defconfig sh se7751_defconfig mips xway_defconfig armmvebu_v7_defconfig arm omap2plus_defconfig armqcom_defconfig arm h3600_defconfig arm lpc32xx_defconfig arm spear13xx_defconfig microblaze defconfig ia64 allmodconfig ia64defconfig ia64 allyesconfig x86_64allnoconfig m68k allmodconfig m68kdefconfig m68k allyesconfig nios2 defconfig nds32 allnoconfig cskydefconfig alpha defconfig xtensa allyesconfig h8300allyesconfig arc defconfig sh allmodconfig parisc defconfig s390 allyesconfig s390 allmodconfig parisc allyesconfig s390defconfig i386 allyesconfig sparcallyesconfig sparc defconfig i386defconfig powerpc allyesconfig powerpc allmodconfig powerpc allnoconfig x86_64 randconfig-a003-20210720 x86_64 randconfig-a006-20210720 x86_64 randconfig-a001-20210720 x86_64 randconfig-a005-20210720 x86_64 randconfig-a004-20210720 x86_64 randconfig-a002-20210720 x86_64
Re: PROJECT: From: Dr. Emmanuel Ibe Kachikwu (GMD) Nnpc Towers Garki, Abuja
Nnpc Towers, Central Business District, Herbert Macaulay way, P.m.b. 190, Garki, Abuja. From: Dr. Emmanuel Ibe Kachikwu (GMD) Contract Ref No: NNPC/PED/1462/KADREF/92) Attn: Ceo, I know that this proposal may come to you as a surprise especially having to come from someone you have not met before. I got your information from your country's chamber of commerce here in Nigeria. My name is Dr. Emmanuel Ibe Kachikwu, The Minister of State for Petroleum Resources, National Petroleum Corporation (NNPC). Be informed that my partner Dr. Maikanti Baru and I awarded a contract to a foreign firm (Sheng Yang Contraction Company) with contract Ref No: NNPC/PED/1462/KADREF/92) for the maintenance of the Nigeria petroleum-chemical complex located at Kaduna, Nigeria. I know that this proposal may come to you as a surprise especially having to come from someone you have not met before, but I would like you to co-operate with me so that this U$D98, 000,000.00 will be released and transferred into your account, it is mine profound intention to contact you for this very important and highly confidential transaction for the transfer of (U$D98, 000,000.00 Ninety-Eight Million United States Dollars Only into your bank account. The contract has been successfully executed by the contractors and their contract sum has been paid to them, leaving us an overestimated balance of (U$D98, 000,000.00 Ninety-Eight Million United States Dollars Only) still pending at the bank. Right now, we are left with this overestimated balance of (U$D98, 000,000.00) which is still floating at the escrow account in the Central Bank of Nigeria (CBN) waiting for final payment to any reliable foreign bank account, you may provide. We, as government officials, are not permitted to own or operate foreign bank accounts. therefore, we need reliable person who will provide us with a foreign account where to transfer and deposit this US$98,000,000.00, that is the reason we are soliciting for your sincere assistance to provide us with an account where to transfer this money .all modalities for the easy transfer of this money is now in place, the period of this transaction is only two weeks from the day we receive your bank account details. Note that 50% of our share will be invested in your country, as we propose to give you 30% of the U$D98, 000,000.00, my partners and I will get 60% of the money. The balance of 10% will be allocated to cover all expenses incurred by both partners, be informed that this proposal is urgent and confidential, please send to me your bank account details and full address of company name and address, your private phone and fax number for easy communication which will be used in securing all the necessary documents for easy transfer of the fund. Awaiting your urgent response. Best regards. Dr. Emmanuel Ibe Kachikwu. The Minister of State for Petroleum Resources, Nigerian National Petroleum Corporation (NNPC) This email and any attachments to it may be confidential and are intended solely for the use of the individual to whom it is addressed. Any views or opinions expressed are solely those of the author and do not necessarily represent those of Masterpage®. If you are not the intended recipient of this email, you must neither take any action based upon its contents, nor copy or show it to anyone. Please contact the sender if you believe you have received this email in error. ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH v3 2/3] drm/loongson: Add GPIO and I2C driver for loongson drm.
Implement use GPIO and I2C driver to detect connector and fetch EDID via DDC. v2: - Optimize the error handling process. - Delete loongson_i2c_bus_match and loongson_i2c_add function. - Optimize part of the code flow. Signed-off-by: lichenyang --- drivers/gpu/drm/loongson/Makefile | 3 +- drivers/gpu/drm/loongson/loongson_connector.c | 59 - drivers/gpu/drm/loongson/loongson_drv.c | 15 +- drivers/gpu/drm/loongson/loongson_drv.h | 10 + drivers/gpu/drm/loongson/loongson_i2c.c | 246 ++ drivers/gpu/drm/loongson/loongson_i2c.h | 36 +++ 6 files changed, 363 insertions(+), 6 deletions(-) create mode 100644 drivers/gpu/drm/loongson/loongson_i2c.c create mode 100644 drivers/gpu/drm/loongson/loongson_i2c.h diff --git a/drivers/gpu/drm/loongson/Makefile b/drivers/gpu/drm/loongson/Makefile index 22d063953b78..773b806e99a2 100644 --- a/drivers/gpu/drm/loongson/Makefile +++ b/drivers/gpu/drm/loongson/Makefile @@ -10,5 +10,6 @@ loongson-y := loongson_drv.o \ loongson_plane.o \ loongson_device.o \ loongson_connector.o \ - loongson_encoder.o + loongson_encoder.o \ + loongson_i2c.o obj-$(CONFIG_DRM_LOONGSON) += loongson.o diff --git a/drivers/gpu/drm/loongson/loongson_connector.c b/drivers/gpu/drm/loongson/loongson_connector.c index a571f9ef4266..346b059f1488 100644 --- a/drivers/gpu/drm/loongson/loongson_connector.c +++ b/drivers/gpu/drm/loongson/loongson_connector.c @@ -4,12 +4,56 @@ static int loongson_get_modes(struct drm_connector *connector) { - int count; + struct loongson_connector *lconnector = + to_loongson_connector(connector); + struct i2c_adapter *adapter = lconnector->i2c->adapter; + struct edid *edid = NULL; + u32 ret; - count = drm_add_modes_noedid(connector, 1920, 1080); - drm_set_preferred_mode(connector, 1024, 768); + edid = drm_get_edid(connector, adapter); + if (edid) { + drm_connector_update_edid_property(connector, edid); + ret = drm_add_edid_modes(connector, edid); + } else { + DRM_ERROR("Failed to read EDID\n"); + ret = drm_add_modes_noedid(connector, 1024, 768); + } - return count; + return ret; +} + +static bool is_connected(struct loongson_connector *lconnector) +{ + struct i2c_adapter *adapter = lconnector->i2c->adapter; + unsigned char start = 0x0; + struct i2c_msg msgs = { + .addr = DDC_ADDR, + .flags = 0, + .len = 1, + .buf = &start, + }; + + if (!lconnector->i2c) + return false; + + if (i2c_transfer(adapter, &msgs, 1) != 1) { + DRM_DEBUG_KMS("display-%d not connect\n", lconnector->id); + return false; + } + + return true; +} + +static enum drm_connector_status +loongson_detect(struct drm_connector *connector, bool force) +{ + struct loongson_connector *lconnector = + to_loongson_connector(connector); + + if (is_connected(lconnector)) + return connector_status_connected; + + return connector_status_disconnected; } static const struct drm_connector_helper_funcs loongson_connector_helper = { @@ -17,6 +61,7 @@ static const struct drm_connector_helper_funcs loongson_connector_helper = { }; static const struct drm_connector_funcs loongson_connector_funcs = { + .detect = loongson_detect, .fill_modes = drm_helper_probe_single_connector_modes, .destroy = drm_connector_cleanup, .reset = drm_atomic_helper_connector_reset, @@ -35,6 +80,12 @@ int loongson_connector_init(struct loongson_device *ldev, int index) lconnector->ldev = ldev; lconnector->id = index; + lconnector->i2c_id = index; + + lconnector->i2c = &ldev->i2c_bus[lconnector->i2c_id]; + if (!lconnector->i2c) + DRM_INFO("connector-%d match i2c-%d err\n", index, +lconnector->i2c_id); ldev->mode_info[index].connector = lconnector; connector = &lconnector->base; diff --git a/drivers/gpu/drm/loongson/loongson_drv.c b/drivers/gpu/drm/loongson/loongson_drv.c index c84494f7aabb..214217b9b257 100644 --- a/drivers/gpu/drm/loongson/loongson_drv.c +++ b/drivers/gpu/drm/loongson/loongson_drv.c @@ -11,9 +11,10 @@ /* Interface history: * 0.1 - original. + * 0.2 - add i2c and connector detect. */ #define DRIVER_MAJOR 0 -#define DRIVER_MINOR 1 +#define DRIVER_MINOR 2 static const struct drm_mode_config_funcs loongson_mode_funcs = { .fb_create = drm_gem_fb_create, @@ -76,6 +77,18 @@ static int loongson_device_init(struct drm_device *dev) if (!ldev->io) return -ENOMEM; + ret = loongson_dc_gpio_init(ldev); + if (ret) { + DRM_ERROR("Failed to initialize dc gpios\n"); + ret
[PATCH v3 1/3] drm/loongson: Add DRM Driver for Loongson 7A1000 bridge chip
From: Chenyang Li This patch adds an initial DRM driver for the Loongson LS7A1000 bridge chip(LS7A). The LS7A bridge chip contains two display controllers, support dual display output. The maximum support for each channel display is to 1920x1080@60Hz. At present, DC device detection and DRM driver registration are completed, the crtc/plane/encoder/connector objects has been implemented. On Loongson 3A4000 CPU and 7A1000 system, we have achieved the use of dual screen, and support dual screen clone mode and expansion mode. v9: - Optimize the error handling process. - Remove the useless flags parameter. - Fix some incorrect use of variables and constructs. v8: - Update the atomic_update function interface. v7: - The pixel clock is limited to less than 173000. v6: - Remove spin_lock in mmio reg read and write. - TO_UNCAC is replac with ioremap. - Fix error arguments in crtc_atomic_enable/disable/mode_valid. v5: - Change the name of the chip to LS7A. - Change magic value in crtc to macros. - Correct mistakes words. - Change the register operation function prefix to ls7a. v4: - Move the mode_valid function to the crtc. v3: - Move the mode_valid function to the connector and optimize it. - Fix num_crtc calculation method. v2: - Complete the case of 32-bit color in CRTC. Signed-off-by: Chenyang Li --- drivers/gpu/drm/Kconfig | 2 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/loongson/Kconfig | 14 + drivers/gpu/drm/loongson/Makefile | 14 + drivers/gpu/drm/loongson/loongson_connector.c | 46 +++ drivers/gpu/drm/loongson/loongson_crtc.c | 249 drivers/gpu/drm/loongson/loongson_device.c| 35 +++ drivers/gpu/drm/loongson/loongson_drv.c | 278 ++ drivers/gpu/drm/loongson/loongson_drv.h | 140 + drivers/gpu/drm/loongson/loongson_encoder.c | 37 +++ drivers/gpu/drm/loongson/loongson_plane.c | 97 ++ 11 files changed, 913 insertions(+) create mode 100644 drivers/gpu/drm/loongson/Kconfig create mode 100644 drivers/gpu/drm/loongson/Makefile create mode 100644 drivers/gpu/drm/loongson/loongson_connector.c create mode 100644 drivers/gpu/drm/loongson/loongson_crtc.c create mode 100644 drivers/gpu/drm/loongson/loongson_device.c create mode 100644 drivers/gpu/drm/loongson/loongson_drv.c create mode 100644 drivers/gpu/drm/loongson/loongson_drv.h create mode 100644 drivers/gpu/drm/loongson/loongson_encoder.c create mode 100644 drivers/gpu/drm/loongson/loongson_plane.c diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..08562d9be6e3 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -365,6 +365,8 @@ source "drivers/gpu/drm/xen/Kconfig" source "drivers/gpu/drm/vboxvideo/Kconfig" +source "drivers/gpu/drm/loongson/Kconfig" + source "drivers/gpu/drm/lima/Kconfig" source "drivers/gpu/drm/panfrost/Kconfig" diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile index a118692a6df7..29c05b8cf2ad 100644 --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@ -119,6 +119,7 @@ obj-$(CONFIG_DRM_PL111) += pl111/ obj-$(CONFIG_DRM_TVE200) += tve200/ obj-$(CONFIG_DRM_XEN) += xen/ obj-$(CONFIG_DRM_VBOXVIDEO) += vboxvideo/ +obj-$(CONFIG_DRM_LOONGSON) += loongson/ obj-$(CONFIG_DRM_LIMA) += lima/ obj-$(CONFIG_DRM_PANFROST) += panfrost/ obj-$(CONFIG_DRM_ASPEED_GFX) += aspeed/ diff --git a/drivers/gpu/drm/loongson/Kconfig b/drivers/gpu/drm/loongson/Kconfig new file mode 100644 index ..3cf42a4cca08 --- /dev/null +++ b/drivers/gpu/drm/loongson/Kconfig @@ -0,0 +1,14 @@ +# SPDX-License-Identifier: GPL-2.0-only + +config DRM_LOONGSON + tristate "DRM support for LS7A bridge chipset" + depends on DRM && PCI + depends on CPU_LOONGSON64 + select DRM_KMS_HELPER + select DRM_VRAM_HELPER + select DRM_TTM + select DRM_TTM_HELPER + default n + help + Support the display controllers found on the Loongson LS7A + bridge. diff --git a/drivers/gpu/drm/loongson/Makefile b/drivers/gpu/drm/loongson/Makefile new file mode 100644 index ..22d063953b78 --- /dev/null +++ b/drivers/gpu/drm/loongson/Makefile @@ -0,0 +1,14 @@ +# SPDX-License-Identifier: GPL-2.0-only +# +# Makefile for loongson drm drivers. +# This driver provides support for the +# Direct Rendering Infrastructure (DRI) + +ccflags-y := -Iinclude/drm +loongson-y := loongson_drv.o \ + loongson_crtc.o \ + loongson_plane.o \ + loongson_device.o \ + loongson_connector.o \ + loongson_encoder.o +obj-$(CONFIG_DRM_LOONGSON) += loongson.o diff --git a/drivers/gpu/drm/loongson/loongson_connector.c b/drivers/gpu/drm/loongson/loongson_connector.c new file mode 100644 index ..a571f9ef4266 --- /dev/null +++ b/drivers/gpu/drm/loongson/loongson_connector.c @@ -0,0 +1,46 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "loongson_
[PATCH v3 3/3] drm/loongson: Add interrupt driver for LS7A
Add LS7A DC vsync interrupt enable and close function, and register irq_handler function interface. Add vbrank event processing flow. v3: - Improve code readability. - Use the to_pci_dev function to get pci_dev. v2: - Added error handling in the loongson_drm_load function. Signed-off-by: lichenyang --- drivers/gpu/drm/loongson/Makefile| 3 +- drivers/gpu/drm/loongson/loongson_crtc.c | 40 +- drivers/gpu/drm/loongson/loongson_drv.c | 10 +++ drivers/gpu/drm/loongson/loongson_drv.h | 17 - drivers/gpu/drm/loongson/loongson_irq.c | 94 5 files changed, 160 insertions(+), 4 deletions(-) create mode 100644 drivers/gpu/drm/loongson/loongson_irq.c diff --git a/drivers/gpu/drm/loongson/Makefile b/drivers/gpu/drm/loongson/Makefile index 773b806e99a2..cc50b65c7e03 100644 --- a/drivers/gpu/drm/loongson/Makefile +++ b/drivers/gpu/drm/loongson/Makefile @@ -11,5 +11,6 @@ loongson-y := loongson_drv.o \ loongson_device.o \ loongson_connector.o \ loongson_encoder.o \ - loongson_i2c.o + loongson_i2c.o \ + loongson_irq.o obj-$(CONFIG_DRM_LOONGSON) += loongson.o diff --git a/drivers/gpu/drm/loongson/loongson_crtc.c b/drivers/gpu/drm/loongson/loongson_crtc.c index 163e24d85b02..d8b06256f754 100644 --- a/drivers/gpu/drm/loongson/loongson_crtc.c +++ b/drivers/gpu/drm/loongson/loongson_crtc.c @@ -154,19 +154,25 @@ static void loongson_crtc_mode_set_nofb(struct drm_crtc *crtc) } static void loongson_crtc_atomic_enable(struct drm_crtc *crtc, - struct drm_atomic_state *old_state) + struct drm_atomic_state *old_crtc_state) { struct drm_device *dev = crtc->dev; struct loongson_device *ldev = dev->dev_private; struct loongson_crtc *lcrtc = to_loongson_crtc(crtc); u32 reg_offset = lcrtc->reg_offset; + if (lcrtc->cfg_reg & CFG_ENABLE) + goto vblank_on; + lcrtc->cfg_reg |= CFG_ENABLE; ls7a_mm_wreg(ldev, FB_CFG_REG + reg_offset, lcrtc->cfg_reg); + +vblank_on: + drm_crtc_vblank_on(crtc); } static void loongson_crtc_atomic_disable(struct drm_crtc *crtc, -struct drm_atomic_state *old_state) +struct drm_atomic_state *old_crtc_state) { struct drm_device *dev = crtc->dev; struct loongson_device *ldev = dev->dev_private; @@ -175,6 +181,33 @@ static void loongson_crtc_atomic_disable(struct drm_crtc *crtc, lcrtc->cfg_reg &= ~CFG_ENABLE; ls7a_mm_wreg(ldev, FB_CFG_REG + reg_offset, lcrtc->cfg_reg); + + spin_lock_irq(&crtc->dev->event_lock); + if (crtc->state->event) { + drm_crtc_send_vblank_event(crtc, crtc->state->event); + crtc->state->event = NULL; + } + spin_unlock_irq(&crtc->dev->event_lock); + + drm_crtc_vblank_off(crtc); +} + +static void loongson_crtc_atomic_flush(struct drm_crtc *crtc, + struct drm_atomic_state *state) +{ + struct drm_pending_vblank_event *event = crtc->state->event; + + if (!event) + return; + + crtc->state->event = NULL; + + spin_lock_irq(&crtc->dev->event_lock); + if (drm_crtc_vblank_get(crtc) == 0) + drm_crtc_arm_vblank_event(crtc, event); + else + drm_crtc_send_vblank_event(crtc, event); + spin_unlock_irq(&crtc->dev->event_lock); } static enum drm_mode_status loongson_mode_valid(struct drm_crtc *crtc, @@ -194,6 +227,7 @@ static enum drm_mode_status loongson_mode_valid(struct drm_crtc *crtc, static const struct drm_crtc_helper_funcs loongson_crtc_helper_funcs = { .mode_valid = loongson_mode_valid, + .atomic_flush = loongson_crtc_atomic_flush, .atomic_enable = loongson_crtc_atomic_enable, .atomic_disable = loongson_crtc_atomic_disable, .mode_set_nofb = loongson_crtc_mode_set_nofb, @@ -206,6 +240,8 @@ static const struct drm_crtc_funcs loongson_crtc_funcs = { .destroy = drm_crtc_cleanup, .atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state, .atomic_destroy_state = drm_atomic_helper_crtc_destroy_state, + .enable_vblank = loongson_crtc_enable_vblank, + .disable_vblank = loongson_crtc_disable_vblank, }; int loongson_crtc_init(struct loongson_device *ldev, int index) diff --git a/drivers/gpu/drm/loongson/loongson_drv.c b/drivers/gpu/drm/loongson/loongson_drv.c index 214217b9b257..38ea41f3851b 100644 --- a/drivers/gpu/drm/loongson/loongson_drv.c +++ b/drivers/gpu/drm/loongson/loongson_drv.c @@ -172,6 +172,12 @@ static int loongson_drm_load(struct drm_device *dev) goto err; } + ret = loongson_irq_init(ldev); + if (ret) { + dev_err(dev->dev, "Fatal error during irq init: %d\n", ret); + goto err; + } + drm_
Re: [PATCH] Drivers: comedi: Lindented files.
On Fri, Jul 23, 2021 at 12:09:27AM +0300, vpuh1 wrote: > Indented files in drivers/comedi directory using scripts/Lindent. > > Signed-off-by: Artem Baxtiarov Hi, This is the friendly patch-bot of Greg Kroah-Hartman. You have sent him a patch that has triggered this response. He used to manually respond to these common problems, but in order to save his sanity (he kept writing the same thing over and over, yet to different people), I was created. Hopefully you will not take offence and will fix the problem in your patch and resubmit it so that it can be accepted into the Linux kernel tree. You are receiving this message because of the following common error(s) as indicated below: - Your patch contains warnings and/or errors noticed by the scripts/checkpatch.pl tool. - Your patch did many different things all at once, making it difficult to review. All Linux kernel patches need to only do one thing at a time. If you need to do multiple things (such as clean up all coding style issues in a file/driver), do it in a sequence of patches, each one doing only one thing. This will make it easier to review the patches to ensure that they are correct, and to help alleviate any merge issues that larger patches can cause. - You did not specify a description of why the patch is needed, or possibly, any description at all, in the email body. Please read the section entitled "The canonical patch format" in the kernel file, Documentation/SubmittingPatches for what is needed in order to properly describe the change. - You did not write a descriptive Subject: for the patch, allowing Greg, and everyone else, to know what this patch is all about. Please read the section entitled "The canonical patch format" in the kernel file, Documentation/SubmittingPatches for what a proper Subject: line should look like. - It looks like you did not use your "real" name for the patch on either the Signed-off-by: line, or the From: line (both of which have to match). Please read the kernel file, Documentation/SubmittingPatches for how to do this correctly. If you wish to discuss this problem further, or you have questions about how to resolve this issue, please feel free to respond to this email and Greg will reply once he has dug out from the pending patches received from other developers. thanks, greg k-h's patch email bot ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel