From: Ozan Çağlayan Date: Mon, 2 Jul 2012 14:22:10 +0000 (+0300) Subject: compat: Make use of the vga_switcheroo_register_client X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=59e4c328b7e7ac04537c277cd8a637e1d3ceb162;p=openwrt%2Fstaging%2Fblogic.git compat: Make use of the vga_switcheroo_register_client If kernel version is older than 3.5, call vga_switcheroo_register_client with the old parameters using a compat_ wrapper. .reprobe was added in 2.6.38 so before that do not pass it to the underlying vga_switcheroo_register_client() function. Trying kernel 3.4.0-030400-generic [OK] Trying kernel 3.3.7-030307-generic [OK] Trying kernel 3.2.2-030202-generic [OK] Trying kernel 3.1.10-030110-generic [OK] Trying kernel 3.0.18-030018-generic [OK] Trying kernel 2.6.39-02063904-generic [OK] Trying kernel 2.6.38-02063808-generic [OK] Trying kernel 2.6.37-02063706-generic [OK] Trying kernel 2.6.36-02063604-generic [OK] Trying kernel 2.6.35-02063512-generic [OK] Trying kernel 2.6.34-02063410-generic [OK] Trying kernel 2.6.33-02063305-generic [OK] Trying kernel 2.6.32-02063255-generic [OK] Trying kernel 2.6.31-02063113-generic [OK] Trying kernel 2.6.30-02063010-generic [OK] Trying kernel 2.6.29-02062906-generic [OK] Trying kernel 2.6.28-02062810-generic [OK] Trying kernel 2.6.27-020627-generic [OK] Trying kernel 2.6.26-020626-generic [OK] Trying kernel 2.6.25-020625-generic [OK] Trying kernel 2.6.24-020624-generic [OK] Signed-off-by: Ozan Çağlayan Signed-off-by: Luis R. Rodriguez --- diff --git a/include/linux/compat-3.5.h b/include/linux/compat-3.5.h index 74c8176dd80f..7855ac986750 100644 --- a/include/linux/compat-3.5.h +++ b/include/linux/compat-3.5.h @@ -93,6 +93,24 @@ struct vga_switcheroo_client_ops { void (*reprobe)(struct pci_dev *dev); bool (*can_switch)(struct pci_dev *dev); }; + +/* Wrap around the old code and redefine vga_switcheroo_register_client() + * for older kernels < 3.5.0. + */ +static inline int compat_vga_switcheroo_register_client(struct pci_dev *dev, + const struct vga_switcheroo_client_ops *ops) { + + return vga_switcheroo_register_client(dev, + ops->set_gpu_state, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) + ops->reprobe, +#endif + ops->can_switch); +} + +#define vga_switcheroo_register_client(_dev, _ops) \ + compat_vga_switcheroo_register_client(_dev, _ops) + #endif /*