Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
F
ffbs-gluon
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
ffbs
ffbs-gluon
Commits
ab332207
Commit
ab332207
authored
10 years ago
by
Matthias Schiffer
Browse files
Options
Downloads
Patches
Plain Diff
Fix ath10k build on x86
parent
28f35bec
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
patches/openwrt/0017-mac80211-update-ath10k-to-compat-wireless-2015-03-05.patch
+157
-3
157 additions, 3 deletions
...ac80211-update-ath10k-to-compat-wireless-2015-03-05.patch
with
157 additions
and
3 deletions
patches/openwrt/0017-mac80211-update-ath10k-to-compat-wireless-2015-03-05.patch
+
157
−
3
View file @
ab332207
...
...
@@ -481,10 +481,10 @@ index 0000000..d0c1bbd
++#endif /* SPECTRAL_COMMON_H */
diff --git a/package/kernel/mac80211/patches/919-update-ath10k.patch b/package/kernel/mac80211/patches/919-update-ath10k.patch
new file mode 100644
index 0000000..
0f5d87a
index 0000000..
45fccb8
--- /dev/null
+++ b/package/kernel/mac80211/patches/919-update-ath10k.patch
@@ -0,0 +1,3
2869
@@
@@ -0,0 +1,3
3023
@@
+--- a/drivers/net/wireless/ath/ath10k/Kconfig
++++ b/drivers/net/wireless/ath/ath10k/Kconfig
+@@ -26,13 +26,15 @@ config ATH10K_DEBUG
...
...
@@ -27862,7 +27862,7 @@ index 0000000..0f5d87a
++
++ /* Avoid linking error on devm_hwmon_device_register_with_groups, I
++ * guess linux/hwmon.h is missing proper stubs. */
++ if (!config_enabled(C
ONFI
G_HWMON))
++ if (!config_enabled(C
PTCF
G_HWMON))
++ return 0;
++
++ hwmon_dev = devm_hwmon_device_register_with_groups(ar->dev,
...
...
@@ -33354,6 +33354,160 @@ index 0000000..0f5d87a
++} __packed;
++
+ #endif /* SPECTRAL_COMMON_H */
+--- a/compat/backport-3.13.c
++++ b/compat/backport-3.13.c
+@@ -12,6 +12,10 @@
+ #include <linux/version.h>
+ #include <linux/kernel.h>
+ #include <net/genetlink.h>
++#include <linux/delay.h>
++#include <linux/pci.h>
++#include <linux/device.h>
++#include <linux/hwmon.h>
+
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
+ #ifdef CPTCFG_REGULATOR
+@@ -200,3 +204,103 @@ bool __net_get_random_once(void *buf, in
+ }
+ EXPORT_SYMBOL_GPL(__net_get_random_once);
+ #endif /* __BACKPORT_NET_GET_RANDOM_ONCE */
++
++#ifdef CPTCFG_PCI
++#define pci_bus_read_dev_vendor_id LINUX_BACKPORT(pci_bus_read_dev_vendor_id)
++static bool pci_bus_read_dev_vendor_id(struct pci_bus *bus, int devfn, u32 *l,
++ int crs_timeout)
++{
++ int delay = 1;
++
++ if (pci_bus_read_config_dword(bus, devfn, PCI_VENDOR_ID, l))
++ return false;
++
++ /* some broken boards return 0 or ~0 if a slot is empty: */
++ if (*l == 0xffffffff || *l == 0x00000000 ||
++ *l == 0x0000ffff || *l == 0xffff0000)
++ return false;
++
++ /*
++ * Configuration Request Retry Status. Some root ports return the
++ * actual device ID instead of the synthetic ID (0xFFFF) required
++ * by the PCIe spec. Ignore the device ID and only check for
++ * (vendor id == 1).
++ */
++ while ((*l & 0xffff) == 0x0001) {
++ if (!crs_timeout)
++ return false;
++
++ msleep(delay);
++ delay *= 2;
++ if (pci_bus_read_config_dword(bus, devfn, PCI_VENDOR_ID, l))
++ return false;
++ /* Card hasn't responded in 60 seconds? Must be stuck. */
++ if (delay > crs_timeout) {
++ printk(KERN_WARNING "pci %04x:%02x:%02x.%d: not responding\n",
++ pci_domain_nr(bus), bus->number, PCI_SLOT(devfn),
++ PCI_FUNC(devfn));
++ return false;
++ }
++ }
++
++ return true;
++}
++
++bool pci_device_is_present(struct pci_dev *pdev)
++{
++ u32 v;
++
++ return pci_bus_read_dev_vendor_id(pdev->bus, pdev->devfn, &v, 0);
++}
++EXPORT_SYMBOL_GPL(pci_device_is_present);
++#endif /* CPTCFG_PCI */
++
++#ifdef CPTCFG_HWMON
++struct device*
++hwmon_device_register_with_groups(struct device *dev, const char *name,
++ void *drvdata,
++ const struct attribute_group **groups)
++{
++ struct device *hwdev;
++
++ hwdev = hwmon_device_register(dev);
++ hwdev->groups = groups;
++ dev_set_drvdata(hwdev, drvdata);
++ return hwdev;
++}
++
++static void devm_hwmon_release(struct device *dev, void *res)
++{
++ struct device *hwdev = *(struct device **)res;
++
++ hwmon_device_unregister(hwdev);
++}
++
++struct device *
++devm_hwmon_device_register_with_groups(struct device *dev, const char *name,
++ void *drvdata,
++ const struct attribute_group **groups)
++{
++ struct device **ptr, *hwdev;
++
++ if (!dev)
++ return ERR_PTR(-EINVAL);
++
++ ptr = devres_alloc(devm_hwmon_release, sizeof(*ptr), GFP_KERNEL);
++ if (!ptr)
++ return ERR_PTR(-ENOMEM);
++
++ hwdev = hwmon_device_register_with_groups(dev, name, drvdata, groups);
++ if (IS_ERR(hwdev))
++ goto error;
++
++ *ptr = hwdev;
++ devres_add(dev, ptr);
++ return hwdev;
++
++error:
++ devres_free(ptr);
++ return hwdev;
++}
++EXPORT_SYMBOL_GPL(devm_hwmon_device_register_with_groups);
++#endif
+--- /dev/null
++++ b/backport-include/linux/hwmon.h
+@@ -0,0 +1,34 @@
++#ifndef __BACKPORT_LINUX_HWMON_H
++#define __BACKPORT_LINUX_HWMON_H
++#include_next <linux/hwmon.h>
++#include <linux/version.h>
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,13,0)
++/*
++ * Backports
++ *
++ * commit bab2243ce1897865e31ea6d59b0478391f51812b
++ * Author: Guenter Roeck <linux@roeck-us.net>
++ * Date: Sat Jul 6 13:57:23 2013 -0700
++ *
++ * hwmon: Introduce hwmon_device_register_with_groups
++ *
++ * hwmon_device_register_with_groups() lets callers register a hwmon device
++ * together with all sysfs attributes in a single call.
++ *
++ * When using hwmon_device_register_with_groups(), hwmon attributes are attached
++ * to the hwmon device directly and no longer with its parent device.
++ *
++ * Signed-off-by: Guenter Roeck <linux@roeck-us.net>
++ */
++struct device *
++hwmon_device_register_with_groups(struct device *dev, const char *name,
++ void *drvdata,
++ const struct attribute_group **groups);
++struct device *
++devm_hwmon_device_register_with_groups(struct device *dev, const char *name,
++ void *drvdata,
++ const struct attribute_group **groups);
++#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,13,0) */
++
++#endif /* __BACKPORT_LINUX_HWMON_H */
diff --git a/package/kernel/mac80211/patches/920-ath10k_allow_fallback_to_board_bin_on_empty_otp_stream.patch b/package/kernel/mac80211/patches/920-ath10k_allow_fallback_to_board_bin_on_empty_otp_stream.patch
index 6a5c766..6a3d2a4 100644
--- a/package/kernel/mac80211/patches/920-ath10k_allow_fallback_to_board_bin_on_empty_otp_stream.patch
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment