930-ssb_fixes.patch 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. This patch ports ssb to the 2.6.23 kernel.
  2. --- a/drivers/ssb/driver_mipscore.c
  3. +++ b/drivers/ssb/driver_mipscore.c
  4. @@ -223,3 +223,5 @@
  5. ssb_mips_serial_init(mcore);
  6. ssb_mips_flash_detect(mcore);
  7. }
  8. +
  9. +EXPORT_SYMBOL(ssb_mips_irq);
  10. --- a/include/linux/mod_devicetable.h
  11. +++ b/include/linux/mod_devicetable.h
  12. @@ -352,4 +352,19 @@
  13. #define PA_HVERSION_ANY_ID 0xffff
  14. #define PA_SVERSION_ANY_ID 0xffffffff
  15. +/* SSB core, see drivers/ssb/ */
  16. +struct ssb_device_id {
  17. + __u16 vendor;
  18. + __u16 coreid;
  19. + __u8 revision;
  20. +};
  21. +#define SSB_DEVICE(_vendor, _coreid, _revision) \
  22. + { .vendor = _vendor, .coreid = _coreid, .revision = _revision, }
  23. +#define SSB_DEVTABLE_END \
  24. + { 0, },
  25. +
  26. +#define SSB_ANY_VENDOR 0xFFFF
  27. +#define SSB_ANY_ID 0xFFFF
  28. +#define SSB_ANY_REV 0xFF
  29. +
  30. #endif /* LINUX_MOD_DEVICETABLE_H */
  31. --- a/drivers/ssb/main.c
  32. +++ b/drivers/ssb/main.c
  33. @@ -321,14 +321,16 @@
  34. return 0;
  35. }
  36. -static int ssb_device_uevent(struct device *dev, struct kobj_uevent_env *env)
  37. +static int ssb_device_uevent(struct device *dev, char **envp,
  38. + int num_envp, char *buffer, int buffer_size)
  39. {
  40. struct ssb_device *ssb_dev = dev_to_ssb_dev(dev);
  41. + int i = 0, len = 0;
  42. if (!dev)
  43. return -ENODEV;
  44. - return add_uevent_var(env,
  45. + return add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &len,
  46. "MODALIAS=ssb:v%04Xid%04Xrev%02X",
  47. ssb_dev->id.vendor, ssb_dev->id.coreid,
  48. ssb_dev->id.revision);
  49. --- a/drivers/ssb/scan.c
  50. +++ b/drivers/ssb/scan.c
  51. @@ -391,12 +391,14 @@
  52. if (bus->bustype == SSB_BUSTYPE_PCI) {
  53. /* Ignore PCI cores on PCI-E cards.
  54. * Ignore PCI-E cores on PCI cards. */
  55. + //FIXME kernel 2.6.23 doesn't have is_pcie. Add this check back when updating to 2.6.24 or later.
  56. if (dev->id.coreid == SSB_DEV_PCI) {
  57. - if (bus->host_pci->is_pcie)
  58. - continue;
  59. +//FIXME if (bus->host_pci->is_pcie)
  60. +//FIXME continue;
  61. } else {
  62. - if (!bus->host_pci->is_pcie)
  63. - continue;
  64. + continue; //FIXME
  65. +//FIXME if (!bus->host_pci->is_pcie)
  66. +//FIXME continue;
  67. }
  68. }
  69. if (bus->pcicore.dev) {
  70. --- a/drivers/ssb/driver_pcicore.c
  71. +++ b/drivers/ssb/driver_pcicore.c
  72. @@ -362,7 +362,7 @@
  73. chipid_top != 0x5300)
  74. return 0;
  75. - if (bus->sprom.r1.boardflags_lo & SSB_PCICORE_BFL_NOPCI)
  76. + if (bus->sprom.boardflags_lo & SSB_PCICORE_BFL_NOPCI)
  77. return 0;
  78. /* The 200-pin BCM4712 package does not bond out PCI. Even when