162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2023 Loongson Technology Corporation Limited 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#include <linux/pci.h> 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#include <video/nomodeset.h> 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#include "loongson_module.h" 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cistatic int loongson_modeset = -1; 1362306a36Sopenharmony_ciMODULE_PARM_DESC(modeset, "Disable/Enable modesetting"); 1462306a36Sopenharmony_cimodule_param_named(modeset, loongson_modeset, int, 0400); 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ciint loongson_vblank = 1; 1762306a36Sopenharmony_ciMODULE_PARM_DESC(vblank, "Disable/Enable hw vblank support"); 1862306a36Sopenharmony_cimodule_param_named(vblank, loongson_vblank, int, 0400); 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_cistatic int __init loongson_module_init(void) 2162306a36Sopenharmony_ci{ 2262306a36Sopenharmony_ci if (!loongson_modeset || video_firmware_drivers_only()) 2362306a36Sopenharmony_ci return -ENODEV; 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci return pci_register_driver(&lsdc_pci_driver); 2662306a36Sopenharmony_ci} 2762306a36Sopenharmony_cimodule_init(loongson_module_init); 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_cistatic void __exit loongson_module_exit(void) 3062306a36Sopenharmony_ci{ 3162306a36Sopenharmony_ci pci_unregister_driver(&lsdc_pci_driver); 3262306a36Sopenharmony_ci} 3362306a36Sopenharmony_cimodule_exit(loongson_module_exit); 34