mirror of
https://git.yoctoproject.org/poky
synced 2026-04-19 15:32:13 +02:00
Add linux-rp-2.6.22-rc6 for testing (not default)
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@2071 311d38ba-8fff-0310-9ca6-ca027cbcb966
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
Index: linux-2.6.13/drivers/ide/legacy/ide-cs.c
|
||||
===================================================================
|
||||
--- linux-2.6.13.orig/drivers/ide/legacy/ide-cs.c 2005-09-01 22:43:46.000000000 +0100
|
||||
+++ linux-2.6.13/drivers/ide/legacy/ide-cs.c 2005-09-01 22:45:46.000000000 +0100
|
||||
@@ -488,7 +488,6 @@
|
||||
PCMCIA_DEVICE_PROD_ID123("KODAK Picture Card ", "KODAK ", "V100K", 0x94a0d8f3, 0xe4fc3ea0, 0xe5e7eed4),
|
||||
PCMCIA_DEVICE_PROD_ID1("STI Flash", 0xe4a13209),
|
||||
PCMCIA_DEVICE_PROD_ID12("STI", "Flash 5.0", 0xbf2df18d, 0x8cb57a0e),
|
||||
- PCMCIA_MFC_DEVICE_PROD_ID12(1, "SanDisk", "ConnectPlus", 0x7a954bd9, 0x74be00c6),
|
||||
PCMCIA_DEVICE_NULL,
|
||||
};
|
||||
MODULE_DEVICE_TABLE(pcmcia, ide_ids);
|
||||
1743
meta/packages/linux/linux-rp-2.6.21+2.6.22-rc6/defconfig-akita
Normal file
1743
meta/packages/linux/linux-rp-2.6.21+2.6.22-rc6/defconfig-akita
Normal file
File diff suppressed because it is too large
Load Diff
1606
meta/packages/linux/linux-rp-2.6.21+2.6.22-rc6/defconfig-bootcdx86
Normal file
1606
meta/packages/linux/linux-rp-2.6.21+2.6.22-rc6/defconfig-bootcdx86
Normal file
File diff suppressed because it is too large
Load Diff
1786
meta/packages/linux/linux-rp-2.6.21+2.6.22-rc6/defconfig-c7x0
Normal file
1786
meta/packages/linux/linux-rp-2.6.21+2.6.22-rc6/defconfig-c7x0
Normal file
File diff suppressed because it is too large
Load Diff
1739
meta/packages/linux/linux-rp-2.6.21+2.6.22-rc6/defconfig-collie
Normal file
1739
meta/packages/linux/linux-rp-2.6.21+2.6.22-rc6/defconfig-collie
Normal file
File diff suppressed because it is too large
Load Diff
1165
meta/packages/linux/linux-rp-2.6.21+2.6.22-rc6/defconfig-hx2000
Normal file
1165
meta/packages/linux/linux-rp-2.6.21+2.6.22-rc6/defconfig-hx2000
Normal file
File diff suppressed because it is too large
Load Diff
1656
meta/packages/linux/linux-rp-2.6.21+2.6.22-rc6/defconfig-poodle
Normal file
1656
meta/packages/linux/linux-rp-2.6.21+2.6.22-rc6/defconfig-poodle
Normal file
File diff suppressed because it is too large
Load Diff
1193
meta/packages/linux/linux-rp-2.6.21+2.6.22-rc6/defconfig-qemuarm
Normal file
1193
meta/packages/linux/linux-rp-2.6.21+2.6.22-rc6/defconfig-qemuarm
Normal file
File diff suppressed because it is too large
Load Diff
1567
meta/packages/linux/linux-rp-2.6.21+2.6.22-rc6/defconfig-qemux86
Normal file
1567
meta/packages/linux/linux-rp-2.6.21+2.6.22-rc6/defconfig-qemux86
Normal file
File diff suppressed because it is too large
Load Diff
1706
meta/packages/linux/linux-rp-2.6.21+2.6.22-rc6/defconfig-spitz
Normal file
1706
meta/packages/linux/linux-rp-2.6.21+2.6.22-rc6/defconfig-spitz
Normal file
File diff suppressed because it is too large
Load Diff
1612
meta/packages/linux/linux-rp-2.6.21+2.6.22-rc6/defconfig-tosa
Normal file
1612
meta/packages/linux/linux-rp-2.6.21+2.6.22-rc6/defconfig-tosa
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,209 @@
|
||||
This is a patch that I've been maintaining for a few years, and I'd
|
||||
really like to see it added to the mainstream zaurus kernel so I can
|
||||
finally stop distributing my own.
|
||||
|
||||
This patch only effects the card while in monitor mode, and does not
|
||||
cause any known stability issues.
|
||||
|
||||
http://patches.aircrack-ng.org/hostap-kernel-2.6.18.patch
|
||||
|
||||
Rick Farina (Zero_Chaos)
|
||||
|
||||
diff -ur linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_80211_tx.c linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_80211_tx.c
|
||||
--- linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_80211_tx.c 2006-09-21 01:26:27.000000000 -0400
|
||||
+++ linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_80211_tx.c 2006-09-21 01:30:18.000000000 -0400
|
||||
@@ -69,6 +69,9 @@
|
||||
iface = netdev_priv(dev);
|
||||
local = iface->local;
|
||||
|
||||
+ if (local->iw_mode == IW_MODE_MONITOR)
|
||||
+ goto xmit;
|
||||
+
|
||||
if (skb->len < ETH_HLEN) {
|
||||
printk(KERN_DEBUG "%s: hostap_data_start_xmit: short skb "
|
||||
"(len=%d)\n", dev->name, skb->len);
|
||||
@@ -234,6 +237,7 @@
|
||||
memcpy(skb_put(skb, ETH_ALEN), &hdr.addr4, ETH_ALEN);
|
||||
}
|
||||
|
||||
+xmit:
|
||||
iface->stats.tx_packets++;
|
||||
iface->stats.tx_bytes += skb->len;
|
||||
|
||||
@@ -404,8 +408,6 @@
|
||||
}
|
||||
|
||||
if (skb->len < 24) {
|
||||
- printk(KERN_DEBUG "%s: hostap_master_start_xmit: short skb "
|
||||
- "(len=%d)\n", dev->name, skb->len);
|
||||
ret = 0;
|
||||
iface->stats.tx_dropped++;
|
||||
goto fail;
|
||||
Only in linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap: hostap_cs.c.orig
|
||||
Only in linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap: hostap_cs.c.rej
|
||||
diff -ur linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_hw.c linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_hw.c
|
||||
--- linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_hw.c 2006-09-21 01:26:27.000000000 -0400
|
||||
+++ linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_hw.c 2006-09-21 01:30:18.000000000 -0400
|
||||
@@ -1005,6 +1005,35 @@
|
||||
return fid;
|
||||
}
|
||||
|
||||
+static int prism2_monitor_enable(struct net_device *dev)
|
||||
+{
|
||||
+ if (hostap_set_word(dev, HFA384X_RID_CNFPORTTYPE, 5)) {
|
||||
+ printk(KERN_DEBUG "Port type setting for monitor mode "
|
||||
+ "failed\n");
|
||||
+ return -EOPNOTSUPP;
|
||||
+ }
|
||||
+
|
||||
+ if (hfa384x_cmd(dev, HFA384X_CMDCODE_TEST | (0x0a << 8),
|
||||
+ 0, NULL, NULL)) {
|
||||
+ printk(KERN_DEBUG "Could not enter testmode 0x0a\n");
|
||||
+ return -EOPNOTSUPP;
|
||||
+ }
|
||||
+
|
||||
+ if (hostap_set_word(dev, HFA384X_RID_CNFWEPFLAGS,
|
||||
+ HFA384X_WEPFLAGS_PRIVACYINVOKED |
|
||||
+ HFA384X_WEPFLAGS_HOSTENCRYPT |
|
||||
+ HFA384X_WEPFLAGS_HOSTDECRYPT)) {
|
||||
+ printk(KERN_DEBUG "WEP flags setting failed\n");
|
||||
+ return -EOPNOTSUPP;
|
||||
+ }
|
||||
+
|
||||
+ if (hostap_set_word(dev, HFA384X_RID_PROMISCUOUSMODE, 1)) {
|
||||
+ printk(KERN_DEBUG "Could not set promiscuous mode\n");
|
||||
+ return -EOPNOTSUPP;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
|
||||
static int prism2_reset_port(struct net_device *dev)
|
||||
{
|
||||
@@ -1031,6 +1060,10 @@
|
||||
"port\n", dev->name);
|
||||
}
|
||||
|
||||
+ if (local->iw_mode == IW_MODE_MONITOR)
|
||||
+ /* force mode 0x0a after port 0 reset */
|
||||
+ return prism2_monitor_enable(dev);
|
||||
+
|
||||
/* It looks like at least some STA firmware versions reset
|
||||
* fragmentation threshold back to 2346 after enable command. Restore
|
||||
* the configured value, if it differs from this default. */
|
||||
@@ -1466,6 +1499,10 @@
|
||||
return 1;
|
||||
}
|
||||
|
||||
+ if (local->iw_mode == IW_MODE_MONITOR)
|
||||
+ /* force mode 0x0a after port 0 reset */
|
||||
+ prism2_monitor_enable(dev);
|
||||
+
|
||||
local->hw_ready = 1;
|
||||
local->hw_reset_tries = 0;
|
||||
local->hw_resetting = 0;
|
||||
@@ -3156,6 +3193,7 @@
|
||||
local->func->hw_config = prism2_hw_config;
|
||||
local->func->hw_reset = prism2_hw_reset;
|
||||
local->func->hw_shutdown = prism2_hw_shutdown;
|
||||
+ local->func->monitor_enable = prism2_monitor_enable;
|
||||
local->func->reset_port = prism2_reset_port;
|
||||
local->func->schedule_reset = prism2_schedule_reset;
|
||||
#ifdef PRISM2_DOWNLOAD_SUPPORT
|
||||
Only in linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap: hostap_hw.c.orig
|
||||
diff -ur linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_ioctl.c linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_ioctl.c
|
||||
--- linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_ioctl.c 2006-09-21 01:26:27.000000000 -0400
|
||||
+++ linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_ioctl.c 2006-09-21 01:30:18.000000000 -0400
|
||||
@@ -1104,33 +1104,7 @@
|
||||
|
||||
printk(KERN_DEBUG "Enabling monitor mode\n");
|
||||
hostap_monitor_set_type(local);
|
||||
-
|
||||
- if (hostap_set_word(dev, HFA384X_RID_CNFPORTTYPE,
|
||||
- HFA384X_PORTTYPE_PSEUDO_IBSS)) {
|
||||
- printk(KERN_DEBUG "Port type setting for monitor mode "
|
||||
- "failed\n");
|
||||
- return -EOPNOTSUPP;
|
||||
- }
|
||||
-
|
||||
- /* Host decrypt is needed to get the IV and ICV fields;
|
||||
- * however, monitor mode seems to remove WEP flag from frame
|
||||
- * control field */
|
||||
- if (hostap_set_word(dev, HFA384X_RID_CNFWEPFLAGS,
|
||||
- HFA384X_WEPFLAGS_HOSTENCRYPT |
|
||||
- HFA384X_WEPFLAGS_HOSTDECRYPT)) {
|
||||
- printk(KERN_DEBUG "WEP flags setting failed\n");
|
||||
- return -EOPNOTSUPP;
|
||||
- }
|
||||
-
|
||||
- if (local->func->reset_port(dev) ||
|
||||
- local->func->cmd(dev, HFA384X_CMDCODE_TEST |
|
||||
- (HFA384X_TEST_MONITOR << 8),
|
||||
- 0, NULL, NULL)) {
|
||||
- printk(KERN_DEBUG "Setting monitor mode failed\n");
|
||||
- return -EOPNOTSUPP;
|
||||
- }
|
||||
-
|
||||
- return 0;
|
||||
+ return local->func->reset_port(dev);
|
||||
}
|
||||
|
||||
|
||||
@@ -1199,7 +1173,7 @@
|
||||
local->iw_mode = *mode;
|
||||
|
||||
if (local->iw_mode == IW_MODE_MONITOR)
|
||||
- hostap_monitor_mode_enable(local);
|
||||
+ return hostap_monitor_mode_enable(local);
|
||||
else if (local->iw_mode == IW_MODE_MASTER && !local->host_encrypt &&
|
||||
!local->fw_encrypt_ok) {
|
||||
printk(KERN_DEBUG "%s: defaulting to host-based encryption as "
|
||||
diff -ur linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_main.c linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_main.c
|
||||
--- linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_main.c 2006-09-21 01:26:27.000000000 -0400
|
||||
+++ linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_main.c 2006-09-21 01:30:18.000000000 -0400
|
||||
@@ -331,7 +331,7 @@
|
||||
if (local->iw_mode == IW_MODE_REPEAT)
|
||||
return HFA384X_PORTTYPE_WDS;
|
||||
if (local->iw_mode == IW_MODE_MONITOR)
|
||||
- return HFA384X_PORTTYPE_PSEUDO_IBSS;
|
||||
+ return 5; /*HFA384X_PORTTYPE_PSEUDO_IBSS;*/
|
||||
return HFA384X_PORTTYPE_HOSTAP;
|
||||
}
|
||||
|
||||
Only in linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap: hostap_main.c.orig
|
||||
diff -ur linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_pci.c linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_pci.c
|
||||
--- linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_pci.c 2006-09-21 01:26:27.000000000 -0400
|
||||
+++ linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_pci.c 2006-09-21 01:30:18.000000000 -0400
|
||||
@@ -48,6 +48,8 @@
|
||||
{ 0x1260, 0x3873, PCI_ANY_ID, PCI_ANY_ID },
|
||||
/* Samsung MagicLAN SWL-2210P */
|
||||
{ 0x167d, 0xa000, PCI_ANY_ID, PCI_ANY_ID },
|
||||
+ /* NETGEAR MA311 */
|
||||
+ { 0x1385, 0x3872, PCI_ANY_ID, PCI_ANY_ID },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
Only in linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap: hostap_pci.c.orig
|
||||
diff -ur linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_plx.c linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_plx.c
|
||||
--- linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_plx.c 2006-09-21 01:26:27.000000000 -0400
|
||||
+++ linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_plx.c 2006-09-21 01:30:18.000000000 -0400
|
||||
@@ -101,6 +101,7 @@
|
||||
{ 0xc250, 0x0002 } /* EMTAC A2424i */,
|
||||
{ 0xd601, 0x0002 } /* Z-Com XI300 */,
|
||||
{ 0xd601, 0x0005 } /* Zcomax XI-325H 200mW */,
|
||||
+ { 0xd601, 0x0010 } /* Zcomax XI-325H 100mW */,
|
||||
{ 0, 0}
|
||||
};
|
||||
|
||||
Only in linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap: hostap_plx.c.orig
|
||||
diff -ur linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_wlan.h linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_wlan.h
|
||||
--- linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_wlan.h 2006-09-21 01:26:27.000000000 -0400
|
||||
+++ linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_wlan.h 2006-09-21 01:30:18.000000000 -0400
|
||||
@@ -575,6 +575,7 @@
|
||||
int (*hw_config)(struct net_device *dev, int initial);
|
||||
void (*hw_reset)(struct net_device *dev);
|
||||
void (*hw_shutdown)(struct net_device *dev, int no_disable);
|
||||
+ int (*monitor_enable)(struct net_device *dev);
|
||||
int (*reset_port)(struct net_device *dev);
|
||||
void (*schedule_reset)(local_info_t *local);
|
||||
int (*download)(local_info_t *local,
|
||||
@@ -0,0 +1,88 @@
|
||||
This patch should resolve problem when people get eth0 (orinoco_cs) instead of wlan0 (hostap_cs)
|
||||
with their WiFi cards.
|
||||
|
||||
Patch will NEVER been accepted upstream.
|
||||
|
||||
Signed-off-by: Marcin Juszkiewicz <openembedded@hrw.one.pl>
|
||||
|
||||
Index: linux/drivers/net/wireless/orinoco_cs.c
|
||||
===================================================================
|
||||
--- linux.orig/drivers/net/wireless/orinoco_cs.c 2006-08-23 16:04:10.000000000 +0200
|
||||
+++ linux/drivers/net/wireless/orinoco_cs.c 2006-08-23 16:17:43.000000000 +0200
|
||||
@@ -453,33 +453,21 @@
|
||||
"Pavel Roskin <proski@gnu.org>, et al)";
|
||||
|
||||
static struct pcmcia_device_id orinoco_cs_ids[] = {
|
||||
- PCMCIA_DEVICE_MANF_CARD(0x000b, 0x7100), /* SonicWALL Long Range Wireless Card */
|
||||
- PCMCIA_DEVICE_MANF_CARD(0x000b, 0x7300), /* Sohoware NCP110, Philips 802.11b */
|
||||
PCMCIA_DEVICE_MANF_CARD(0x0089, 0x0002), /* AnyPoint(TM) Wireless II PC Card */
|
||||
- PCMCIA_DEVICE_MANF_CARD(0x0101, 0x0777), /* 3Com AirConnect PCI 777A */
|
||||
- PCMCIA_DEVICE_MANF_CARD(0x0126, 0x8000), /* PROXIM RangeLAN-DS/LAN PC CARD */
|
||||
PCMCIA_DEVICE_MANF_CARD(0x0138, 0x0002), /* Compaq WL100 11 Mbps Wireless Adapter */
|
||||
PCMCIA_DEVICE_MANF_CARD(0x0156, 0x0002), /* Lucent Orinoco and old Intersil */
|
||||
PCMCIA_DEVICE_MANF_CARD(0x016b, 0x0001), /* Ericsson WLAN Card C11 */
|
||||
PCMCIA_DEVICE_MANF_CARD(0x01eb, 0x080a), /* Nortel Networks eMobility 802.11 Wireless Adapter */
|
||||
PCMCIA_DEVICE_MANF_CARD(0x01ff, 0x0008), /* Intermec MobileLAN 11Mbps 802.11b WLAN Card */
|
||||
- PCMCIA_DEVICE_MANF_CARD(0x0250, 0x0002), /* Samsung SWL2000-N 11Mb/s WLAN Card */
|
||||
PCMCIA_DEVICE_MANF_CARD(0x0261, 0x0002), /* AirWay 802.11 Adapter (PCMCIA) */
|
||||
PCMCIA_DEVICE_MANF_CARD(0x0268, 0x0001), /* ARtem Onair */
|
||||
PCMCIA_DEVICE_MANF_CARD(0x026f, 0x0305), /* Buffalo WLI-PCM-S11 */
|
||||
- PCMCIA_DEVICE_MANF_CARD(0x0274, 0x1612), /* Linksys WPC11 Version 2.5 */
|
||||
- PCMCIA_DEVICE_MANF_CARD(0x0274, 0x1613), /* Linksys WPC11 Version 3 */
|
||||
- PCMCIA_DEVICE_MANF_CARD(0x028a, 0x0002), /* Compaq HNW-100 11 Mbps Wireless Adapter */
|
||||
PCMCIA_DEVICE_MANF_CARD(0x028a, 0x0673), /* Linksys WCF12 Wireless CompactFlash Card */
|
||||
- PCMCIA_DEVICE_MANF_CARD(0x02aa, 0x0002), /* ASUS SpaceLink WL-100 */
|
||||
PCMCIA_DEVICE_MANF_CARD(0x02ac, 0x0002), /* SpeedStream SS1021 Wireless Adapter */
|
||||
PCMCIA_DEVICE_MANF_CARD(0x14ea, 0xb001), /* PLANEX RoadLannerWave GW-NS11H */
|
||||
- PCMCIA_DEVICE_MANF_CARD(0x50c2, 0x7300), /* Airvast WN-100 */
|
||||
PCMCIA_DEVICE_MANF_CARD(0x9005, 0x0021), /* Adaptec Ultra Wireless ANW-8030 */
|
||||
PCMCIA_DEVICE_MANF_CARD(0xc001, 0x0008), /* CONTEC FLEXSCAN/FX-DDS110-PCC */
|
||||
PCMCIA_DEVICE_MANF_CARD(0xc250, 0x0002), /* Conceptronic CON11Cpro, EMTAC A2424i */
|
||||
- PCMCIA_DEVICE_MANF_CARD(0xd601, 0x0002), /* Safeway 802.11b, ZCOMAX AirRunner/XI-300 */
|
||||
- PCMCIA_DEVICE_MANF_CARD(0xd601, 0x0005), /* D-Link DCF660, Sandisk Connect SDWCFB-000 */
|
||||
PCMCIA_DEVICE_PROD_ID12(" ", "IEEE 802.11 Wireless LAN/PC Card", 0x3b6e20c8, 0xefccafe9),
|
||||
PCMCIA_DEVICE_PROD_ID12("3Com", "3CRWE737A AirConnect Wireless LAN PC Card", 0x41240e5b, 0x56010af3),
|
||||
PCMCIA_DEVICE_PROD_ID12("ACTIONTEC", "PRISM Wireless LAN PC Card", 0x393089da, 0xa71e69d5),
|
||||
@@ -487,31 +475,25 @@
|
||||
PCMCIA_DEVICE_PROD_ID123("AIRVAST", "IEEE 802.11b Wireless PCMCIA Card", "HFA3863", 0xea569531, 0x4bcb9645, 0x355cb092),
|
||||
PCMCIA_DEVICE_PROD_ID12("Allied Telesyn", "AT-WCL452 Wireless PCMCIA Radio", 0x5cd01705, 0x4271660f),
|
||||
PCMCIA_DEVICE_PROD_ID12("ASUS", "802_11b_PC_CARD_25", 0x78fc06ee, 0xdb9aa842),
|
||||
- PCMCIA_DEVICE_PROD_ID12("ASUS", "802_11B_CF_CARD_25", 0x78fc06ee, 0x45a50c1e),
|
||||
PCMCIA_DEVICE_PROD_ID12("Avaya Communication", "Avaya Wireless PC Card", 0xd8a43b78, 0x0d341169),
|
||||
PCMCIA_DEVICE_PROD_ID12("BENQ", "AWL100 PCMCIA ADAPTER", 0x35dadc74, 0x01f7fedb),
|
||||
PCMCIA_DEVICE_PROD_ID12("BUFFALO", "WLI-PCM-L11G", 0x2decece3, 0xf57ca4b3),
|
||||
- PCMCIA_DEVICE_PROD_ID12("BUFFALO", "WLI-CF-S11G", 0x2decece3, 0x82067c18),
|
||||
PCMCIA_DEVICE_PROD_ID12("Cabletron", "RoamAbout 802.11 DS", 0x32d445f5, 0xedeffd90),
|
||||
- PCMCIA_DEVICE_PROD_ID12("Compaq", "WL200_11Mbps_Wireless_PCI_Card", 0x54f7c49c, 0x15a75e5b),
|
||||
PCMCIA_DEVICE_PROD_ID123("corega", "WL PCCL-11", "ISL37300P", 0x0a21501a, 0x59868926, 0xc9049a39),
|
||||
PCMCIA_DEVICE_PROD_ID12("corega K.K.", "Wireless LAN PCC-11", 0x5261440f, 0xa6405584),
|
||||
PCMCIA_DEVICE_PROD_ID12("corega K.K.", "Wireless LAN PCCA-11", 0x5261440f, 0xdf6115f9),
|
||||
PCMCIA_DEVICE_PROD_ID12("corega_K.K.", "Wireless_LAN_PCCB-11", 0x29e33311, 0xee7a27ae),
|
||||
PCMCIA_DEVICE_PROD_ID12("D", "Link DRC-650 11Mbps WLAN Card", 0x71b18589, 0xf144e3ac),
|
||||
- PCMCIA_DEVICE_PROD_ID12("D", "Link DWL-650 11Mbps WLAN Card", 0x71b18589, 0xb6f1b0ab),
|
||||
PCMCIA_DEVICE_PROD_ID12("D-Link Corporation", "D-Link DWL-650H 11Mbps WLAN Adapter", 0xef544d24, 0xcd8ea916),
|
||||
PCMCIA_DEVICE_PROD_ID12("Digital Data Communications", "WPC-0100", 0xfdd73470, 0xe0b6f146),
|
||||
PCMCIA_DEVICE_PROD_ID12("ELSA", "AirLancer MC-11", 0x4507a33a, 0xef54f0e3),
|
||||
PCMCIA_DEVICE_PROD_ID12("HyperLink", "Wireless PC Card 11Mbps", 0x56cc3f1a, 0x0bcf220c),
|
||||
PCMCIA_DEVICE_PROD_ID123("Instant Wireless ", " Network PC CARD", "Version 01.02", 0x11d901af, 0x6e9bd926, 0x4b74baa0),
|
||||
PCMCIA_DEVICE_PROD_ID12("Intel", "PRO/Wireless 2011 LAN PC Card", 0x816cc815, 0x07f58077),
|
||||
- PCMCIA_DEVICE_PROD_ID12("INTERSIL", "HFA384x/IEEE", 0x74c5e40d, 0xdb472a18),
|
||||
PCMCIA_DEVICE_PROD_ID12("INTERSIL", "I-GATE 11M PC Card / PC Card plus", 0x74c5e40d, 0x8304ff77),
|
||||
PCMCIA_DEVICE_PROD_ID12("Intersil", "PRISM 2_5 PCMCIA ADAPTER", 0x4b801a17, 0x6345a0bf),
|
||||
PCMCIA_DEVICE_PROD_ID123("Intersil", "PRISM Freedom PCMCIA Adapter", "ISL37100P", 0x4b801a17, 0xf222ec2d, 0x630d52b2),
|
||||
PCMCIA_DEVICE_PROD_ID12("LeArtery", "SYNCBYAIR 11Mbps Wireless LAN PC Card", 0x7e3b326a, 0x49893e92),
|
||||
- PCMCIA_DEVICE_PROD_ID12("Linksys", "Wireless CompactFlash Card", 0x0733cc81, 0x0c52f395),
|
||||
PCMCIA_DEVICE_PROD_ID12("Lucent Technologies", "WaveLAN/IEEE", 0x23eb9949, 0xc562e72a),
|
||||
PCMCIA_DEVICE_PROD_ID12("MELCO", "WLI-PCM-L11", 0x481e0094, 0x7360e410),
|
||||
PCMCIA_DEVICE_PROD_ID12("MELCO", "WLI-PCM-L11G", 0x481e0094, 0xf57ca4b3),
|
||||
@@ -529,10 +511,8 @@
|
||||
PCMCIA_DEVICE_PROD_ID12("PROXIM", "LAN PCI CARD HARMONY 80211B", 0xc6536a5e, 0x9f494e26),
|
||||
PCMCIA_DEVICE_PROD_ID12("SAMSUNG", "11Mbps WLAN Card", 0x43d74cb4, 0x579bd91b),
|
||||
PCMCIA_DEVICE_PROD_ID12("SMC", "SMC2532W-B EliteConnect Wireless Adapter", 0xc4f8b18b, 0x196bd757),
|
||||
- PCMCIA_DEVICE_PROD_ID12("SMC", "SMC2632W", 0xc4f8b18b, 0x474a1f2a),
|
||||
PCMCIA_DEVICE_PROD_ID12("Symbol Technologies", "LA4111 Spectrum24 Wireless LAN PC Card", 0x3f02b4d6, 0x3663cb0e),
|
||||
PCMCIA_DEVICE_PROD_ID123("The Linksys Group, Inc.", "Instant Wireless Network PC Card", "ISL37300P", 0xa5f472c2, 0x590eb502, 0xc9049a39),
|
||||
- PCMCIA_DEVICE_PROD_ID12("ZoomAir 11Mbps High", "Rate wireless Networking", 0x273fe3db, 0x32a1eaee),
|
||||
PCMCIA_DEVICE_NULL,
|
||||
};
|
||||
MODULE_DEVICE_TABLE(pcmcia, orinoco_cs_ids);
|
||||
@@ -0,0 +1,90 @@
|
||||
---
|
||||
drivers/serial/8250.c | 5 +++++
|
||||
drivers/serial/serial_core.c | 1 +
|
||||
drivers/serial/serial_cs.c | 12 +++++++++---
|
||||
include/linux/serial_core.h | 1 +
|
||||
4 files changed, 16 insertions(+), 3 deletions(-)
|
||||
|
||||
Index: linux-2.6.20/drivers/serial/8250.c
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/drivers/serial/8250.c 2007-04-27 13:37:26.000000000 +0100
|
||||
+++ linux-2.6.20/drivers/serial/8250.c 2007-04-27 13:38:16.000000000 +0100
|
||||
@@ -2429,7 +2429,12 @@
|
||||
.driver_name = "serial",
|
||||
.dev_name = "ttyS",
|
||||
.major = TTY_MAJOR,
|
||||
+#ifdef CONFIG_SERIAL_PXA
|
||||
+ .minor = 64 + 4,
|
||||
+ .name_base = 4,
|
||||
+#else
|
||||
.minor = 64,
|
||||
+#endif
|
||||
.nr = UART_NR,
|
||||
.cons = SERIAL8250_CONSOLE,
|
||||
};
|
||||
Index: linux-2.6.20/drivers/serial/serial_core.c
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/drivers/serial/serial_core.c 2007-02-04 18:44:54.000000000 +0000
|
||||
+++ linux-2.6.20/drivers/serial/serial_core.c 2007-04-27 13:39:39.000000000 +0100
|
||||
@@ -2068,7 +2068,8 @@
|
||||
printk(KERN_INFO "%s%s%s%d at %s (irq = %d) is a %s\n",
|
||||
port->dev ? port->dev->bus_id : "",
|
||||
port->dev ? ": " : "",
|
||||
- drv->dev_name, port->line, address, port->irq, uart_type(port));
|
||||
+ drv->dev_name, port->line + drv->name_base, address, port->irq,
|
||||
+ uart_type(port));
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -2183,6 +2184,7 @@
|
||||
normal->owner = drv->owner;
|
||||
normal->driver_name = drv->driver_name;
|
||||
normal->name = drv->dev_name;
|
||||
+ normal->name_base = drv->name_base;
|
||||
normal->major = drv->major;
|
||||
normal->minor_start = drv->minor;
|
||||
normal->type = TTY_DRIVER_TYPE_SERIAL;
|
||||
Index: linux-2.6.20/include/linux/serial_core.h
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/include/linux/serial_core.h 2007-02-04 18:44:54.000000000 +0000
|
||||
+++ linux-2.6.20/include/linux/serial_core.h 2007-04-27 13:37:27.000000000 +0100
|
||||
@@ -341,6 +341,7 @@
|
||||
struct module *owner;
|
||||
const char *driver_name;
|
||||
const char *dev_name;
|
||||
+ int name_base;
|
||||
int major;
|
||||
int minor;
|
||||
int nr;
|
||||
Index: linux-2.6.20/drivers/serial/serial_cs.c
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/drivers/serial/serial_cs.c 2007-02-04 18:44:54.000000000 +0000
|
||||
+++ linux-2.6.20/drivers/serial/serial_cs.c 2007-04-27 13:40:34.000000000 +0100
|
||||
@@ -390,7 +390,7 @@
|
||||
kio_addr_t iobase, int irq)
|
||||
{
|
||||
struct uart_port port;
|
||||
- int line;
|
||||
+ int line, linestart;
|
||||
|
||||
memset(&port, 0, sizeof (struct uart_port));
|
||||
port.iobase = iobase;
|
||||
@@ -411,10 +411,16 @@
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
+#if CONFIG_SERIAL_PXA
|
||||
+ linestart = 4;
|
||||
+#else
|
||||
+ linestart = 0;
|
||||
+#endif
|
||||
+
|
||||
info->line[info->ndev] = line;
|
||||
- sprintf(info->node[info->ndev].dev_name, "ttyS%d", line);
|
||||
+ sprintf(info->node[info->ndev].dev_name, "ttyS%d", line+linestart);
|
||||
info->node[info->ndev].major = TTY_MAJOR;
|
||||
- info->node[info->ndev].minor = 0x40 + line;
|
||||
+ info->node[info->ndev].minor = 0x40 + line + linestart;
|
||||
if (info->ndev > 0)
|
||||
info->node[info->ndev - 1].next = &info->node[info->ndev];
|
||||
info->ndev++;
|
||||
@@ -0,0 +1,155 @@
|
||||
|
||||
From: Petr Vandrovec <vandrove@vc.cvut.cz>
|
||||
|
||||
Patch below adds support for using different prescaler than 16 for 16c950
|
||||
chips. This is needed for using Fujitsu-Siemens Connect2Air compact-flash
|
||||
card, which comes (apparently) with 806kHz clocks, and so you have to
|
||||
program prescaler for division by 7, and DLAB to 1, to get 115200Bd.
|
||||
|
||||
To get card properly running you also have to add lines below to
|
||||
/etc/pcmcia/serial.opts so kernel knows that base speed is not 115200 but
|
||||
50400 (50400 * 16 = 806400; 806400 / 7 = 115200). As I've found no code
|
||||
specifying baud_rate in serial_cs, I assume that specifying it in
|
||||
serial.opts is right way to do this type of things.
|
||||
|
||||
Patch also fixes problem that for UPF_MAGIC_MULTIPLIER maximum possible
|
||||
baud rate passed to uart code was uartclk / 16 while correct value for
|
||||
these devices (and for 16c950) is uartclk / 4.
|
||||
|
||||
Patch also fixes problem that for UPF_MAGIC_MULTIPLIER devices with
|
||||
baud_rate 19200 or 9600 spd_cust did not work correctly. Not that such
|
||||
devices exist, but we should not ignore spd_cust, user probably knows why
|
||||
he asked for spd_cust.
|
||||
|
||||
serial.opts:
|
||||
|
||||
case "$MANFID-$FUNCID-$PRODID_1-$PRODID_2-$PRODID_3-$PRODID_4" in
|
||||
'0279,950b-2-GPRS Modem---')
|
||||
SERIAL_OPTS="baud_base 50400"
|
||||
;;
|
||||
esac
|
||||
|
||||
Cc: David Woodhouse <dwmw2@infradead.org>
|
||||
Signed-off-by: Andrew Morton <akpm@osdl.org>
|
||||
---
|
||||
|
||||
drivers/serial/8250.c | 82 +++++++++++++++++++++++++++++++++++++++-----------
|
||||
1 file changed, 64 insertions(+), 18 deletions(-)
|
||||
|
||||
Index: linux-2.6.21/drivers/serial/8250.c
|
||||
===================================================================
|
||||
--- linux-2.6.21.orig/drivers/serial/8250.c 2007-07-01 16:59:52.000000000 +0100
|
||||
+++ linux-2.6.21/drivers/serial/8250.c 2007-07-01 17:01:21.000000000 +0100
|
||||
@@ -1964,24 +1964,58 @@ static void serial8250_shutdown(struct u
|
||||
serial_unlink_irq_chain(up);
|
||||
}
|
||||
|
||||
-static unsigned int serial8250_get_divisor(struct uart_port *port, unsigned int baud)
|
||||
+static unsigned int serial8250_get_divisor(struct uart_port *port, unsigned int baud,
|
||||
+ unsigned int *prescaler)
|
||||
{
|
||||
- unsigned int quot;
|
||||
-
|
||||
- /*
|
||||
- * Handle magic divisors for baud rates above baud_base on
|
||||
- * SMSC SuperIO chips.
|
||||
+ /*
|
||||
+ * Use special handling only if user did not supply its own divider.
|
||||
+ * spd_cust is defined in terms of baud_base, so always use default
|
||||
+ * prescaler when spd_cust is requested.
|
||||
*/
|
||||
- if ((port->flags & UPF_MAGIC_MULTIPLIER) &&
|
||||
- baud == (port->uartclk/4))
|
||||
- quot = 0x8001;
|
||||
- else if ((port->flags & UPF_MAGIC_MULTIPLIER) &&
|
||||
- baud == (port->uartclk/8))
|
||||
- quot = 0x8002;
|
||||
- else
|
||||
- quot = uart_get_divisor(port, baud);
|
||||
|
||||
- return quot;
|
||||
+ *prescaler = 16;
|
||||
+ if (baud != 38400 || (port->flags & UPF_SPD_MASK) != UPF_SPD_CUST) {
|
||||
+ unsigned int quot = port->uartclk / baud;
|
||||
+
|
||||
+ /*
|
||||
+ * Handle magic divisors for baud rates above baud_base on
|
||||
+ * SMSC SuperIO chips.
|
||||
+ */
|
||||
+ if (port->flags & UPF_MAGIC_MULTIPLIER) {
|
||||
+ if (quot == 4) {
|
||||
+ return 0x8001;
|
||||
+ } else if (quot == 8) {
|
||||
+ return 0x8002;
|
||||
+ }
|
||||
+ }
|
||||
+ if (port->type == PORT_16C950) {
|
||||
+ /*
|
||||
+ * This computes TCR value (4 to 16), not CPR value (which can
|
||||
+ * be between 1.000 and 31.875) - chip I have uses XTAL of
|
||||
+ * 806400Hz, and so a division by 7 is required to get 115200Bd.
|
||||
+ * I'm leaving CPR disabled for now, until someone will
|
||||
+ * hit even more exotic XTAL (it is needed to get 500kbps
|
||||
+ * or 1000kbps from 18.432MHz XTAL, but I have no device
|
||||
+ * which would benefit from doing that).
|
||||
+ *
|
||||
+ * If we can use divide by 16, use it. Otherwise look for
|
||||
+ * better prescaler, from 15 to 4. If quotient cannot
|
||||
+ * be divided by any integer value between 4 and 15, use 4.
|
||||
+ */
|
||||
+ if (quot & 0x0F) {
|
||||
+ unsigned int div;
|
||||
+
|
||||
+ for (div = 15; div > 4; div--) {
|
||||
+ if (quot % div == 0) {
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ *prescaler = div;
|
||||
+ return quot / div;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ return uart_get_divisor(port, baud);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1991,7 +2025,7 @@ serial8250_set_termios(struct uart_port
|
||||
struct uart_8250_port *up = (struct uart_8250_port *)port;
|
||||
unsigned char cval, fcr = 0;
|
||||
unsigned long flags;
|
||||
- unsigned int baud, quot;
|
||||
+ unsigned int baud, quot, prescaler;
|
||||
|
||||
switch (termios->c_cflag & CSIZE) {
|
||||
case CS5:
|
||||
@@ -2023,8 +2057,13 @@ serial8250_set_termios(struct uart_port
|
||||
/*
|
||||
* Ask the core to calculate the divisor for us.
|
||||
*/
|
||||
- baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16);
|
||||
- quot = serial8250_get_divisor(port, baud);
|
||||
+ if (port->type == PORT_16C950 || (port->flags & UPF_MAGIC_MULTIPLIER)) {
|
||||
+ baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/4);
|
||||
+ } else {
|
||||
+ baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16);
|
||||
+ }
|
||||
+ quot = serial8250_get_divisor(port, baud, &prescaler);
|
||||
+
|
||||
|
||||
/*
|
||||
* Oxford Semi 952 rev B workaround
|
||||
@@ -2139,6 +2178,13 @@ serial8250_set_termios(struct uart_port
|
||||
serial_dl_write(up, quot);
|
||||
|
||||
/*
|
||||
+ * Program prescaler for 16C950 chips.
|
||||
+ */
|
||||
+ if (up->port.type == PORT_16C950) {
|
||||
+ serial_icr_write(up, UART_TCR, prescaler == 16 ? 0 : prescaler);
|
||||
+ }
|
||||
+
|
||||
+ /*
|
||||
* LCR DLAB must be set to enable 64-byte FIFO mode. If the FCR
|
||||
* is written without DLAB set, this mode will be disabled.
|
||||
*/
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,208 @@
|
||||
Index: linux-tosa/drivers/input/touchscreen/wm9712.c
|
||||
===================================================================
|
||||
--- linux-tosa.orig/drivers/input/touchscreen/wm9712.c 2006-08-29 16:52:36.008543280 +0100
|
||||
+++ linux-tosa/drivers/input/touchscreen/wm9712.c 2006-08-29 16:52:50.923275896 +0100
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* wm9712.c -- Codec driver for Wolfson WM9712 AC97 Codecs.
|
||||
*
|
||||
- * Copyright 2003, 2004, 2005 Wolfson Microelectronics PLC.
|
||||
+ * Copyright 2003, 2004, 2005, 2006 Wolfson Microelectronics PLC.
|
||||
* Author: Liam Girdwood
|
||||
* liam.girdwood@wolfsonmicro.com or linux@wolfsonmicro.com
|
||||
* Parts Copyright : Ian Molton <spyro@f2s.com>
|
||||
@@ -13,6 +13,12 @@
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
+ * Revision history
|
||||
+ * 4th Jul 2005 Initial version.
|
||||
+ * 29th Aug 2006 Mike Arthur <mike@mikearthur.co.uk>
|
||||
+ * Added fixes for Sharp SL-6000 (Tosa) LCD noise causing
|
||||
+ * touchscreen interference.
|
||||
+ *
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
@@ -28,6 +34,10 @@
|
||||
#define WM9705_VERSION "0.60"
|
||||
#define DEFAULT_PRESSURE 0xb0c0
|
||||
|
||||
+#define CCNT(a) asm volatile ("mrc p14, 0, %0, C1, C1, 0" : "=r"(a))
|
||||
+#define CCNT_ON() asm("mcr p14, 0, %0, C0, C0, 0" : : "r"(1))
|
||||
+#define CCNT_OFF() asm("mcr p14, 0, %0, C0, C0, 0" : : "r"(1))
|
||||
+
|
||||
/*
|
||||
* Debug
|
||||
*/
|
||||
@@ -243,6 +253,36 @@
|
||||
return wm->dig[2] & WM9712_PDEN;
|
||||
}
|
||||
|
||||
+
|
||||
+#ifdef CONFIG_MACH_TOSA
|
||||
+/* On the Sharp SL-6000 (Tosa), due to a noisy LCD, we need to perform a wait
|
||||
+ * before sampling the Y axis of the touchscreen */
|
||||
+static inline void wm9712_lcd_sync_on(struct wm97xx* wm, int adcsel) {
|
||||
+ unsigned long timer1 = 0, timer2 = 0, wait_time = 0;
|
||||
+ if (adcsel == WM97XX_ADCSEL_Y) {
|
||||
+ wait_time = wm97xx_calc_lcd_waittime(wm);
|
||||
+
|
||||
+ CCNT_ON();
|
||||
+
|
||||
+ if (wait_time) {
|
||||
+ /* wait for LCD rising edge */
|
||||
+ wm_machinfo->wait_hsync();
|
||||
+ /* get clock */
|
||||
+ CCNT(timer1);
|
||||
+ CCNT(timer2);
|
||||
+
|
||||
+ while ((timer2 - timer1) < wait_time) {
|
||||
+ CCNT(timer2);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static inline void wm9712_lcd_sync_off(void) {
|
||||
+ CCNT_OFF();
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
/*
|
||||
* Read a sample from the WM9712 adc in polling mode.
|
||||
*/
|
||||
@@ -260,6 +300,9 @@
|
||||
/* set up digitiser */
|
||||
if (adcsel & 0x8000)
|
||||
adcsel = ((adcsel & 0x7fff) + 3) << 12;
|
||||
+ #ifdef CONFIG_MACH_TOSA
|
||||
+ wm9712_lcd_sync_on(wm, adcsel);
|
||||
+ #endif
|
||||
wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, adcsel | WM97XX_POLL | WM97XX_DELAY(delay));
|
||||
|
||||
/* wait 3 AC97 time slots + delay for conversion */
|
||||
@@ -282,6 +325,10 @@
|
||||
|
||||
*sample = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
|
||||
|
||||
+ #ifdef CONFIG_MACH_TOSA
|
||||
+ wm9712_lcd_sync_off();
|
||||
+ #endif
|
||||
+
|
||||
/* check we have correct sample */
|
||||
if ((*sample & WM97XX_ADCSEL_MASK) != adcsel) {
|
||||
dbg ("adc wrong sample, read %x got %x", adcsel,
|
||||
@@ -303,11 +350,12 @@
|
||||
static int wm9712_poll_touch(struct wm97xx* wm, struct wm97xx_data *data)
|
||||
{
|
||||
int rc;
|
||||
-
|
||||
if ((rc = wm9712_poll_sample(wm, WM97XX_ADCSEL_X, &data->x)) != RC_VALID)
|
||||
return rc;
|
||||
+
|
||||
if ((rc = wm9712_poll_sample(wm, WM97XX_ADCSEL_Y, &data->y)) != RC_VALID)
|
||||
return rc;
|
||||
+
|
||||
if (pil && !five_wire) {
|
||||
if ((rc = wm9712_poll_sample(wm, WM97XX_ADCSEL_PRES, &data->p)) != RC_VALID)
|
||||
return rc;
|
||||
Index: linux-tosa/drivers/input/touchscreen/wm97xx-core.c
|
||||
===================================================================
|
||||
--- linux-tosa.orig/drivers/input/touchscreen/wm97xx-core.c 2006-08-29 16:52:36.008543280 +0100
|
||||
+++ linux-tosa/drivers/input/touchscreen/wm97xx-core.c 2006-08-29 16:52:50.924275744 +0100
|
||||
@@ -2,7 +2,7 @@
|
||||
* wm97xx-core.c -- Touch screen driver core for Wolfson WM9705, WM9712
|
||||
* and WM9713 AC97 Codecs.
|
||||
*
|
||||
- * Copyright 2003, 2004, 2005 Wolfson Microelectronics PLC.
|
||||
+ * Copyright 2003, 2004, 2005, 2006 Wolfson Microelectronics PLC.
|
||||
* Author: Liam Girdwood
|
||||
* liam.girdwood@wolfsonmicro.com or linux@wolfsonmicro.com
|
||||
* Parts Copyright : Ian Molton <spyro@f2s.com>
|
||||
@@ -67,6 +67,9 @@
|
||||
* GPIOs) and 2.6 power management.
|
||||
* 29th Nov 2004 Added WM9713 support.
|
||||
* 4th Jul 2005 Moved codec specific code out to seperate files.
|
||||
+ * 29th Aug 2006 Mike Arthur <mike@mikearthur.co.uk>
|
||||
+ * Added fixes for Sharp SL-6000 (Tosa) LCD noise causing
|
||||
+ * touchscreen interference.
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
@@ -94,6 +97,7 @@
|
||||
static DECLARE_MUTEX(gpio_sem);
|
||||
static LIST_HEAD(wm97xx_misc_list);
|
||||
static struct wm97xx* wm_codec = NULL;
|
||||
+struct wm97xx_machinfo *wm_machinfo;
|
||||
|
||||
/*
|
||||
* WM97xx - enable/disable AUX ADC sysfs
|
||||
@@ -832,6 +836,23 @@
|
||||
mdev->remove(wm_codec);
|
||||
}
|
||||
|
||||
+#ifdef CONFIG_MACH_TOSA
|
||||
+/* On the Sharp SL-6000 (Tosa), due to a noisy LCD, we need to perform a wait
|
||||
+ * before sampling the Y axis of the touchscreen */
|
||||
+unsigned long wm97xx_calc_lcd_waittime(struct wm97xx *wm) {
|
||||
+ unsigned long hsync_time = wm_machinfo->get_hsync_time();
|
||||
+ return hsync_time;
|
||||
+}
|
||||
+
|
||||
+void wm97xx_set_machinfo(struct wm97xx_machinfo *machinfo) {
|
||||
+ wm_machinfo = machinfo;
|
||||
+}
|
||||
+
|
||||
+void wm97xx_unset_machinfo() {
|
||||
+ wm_machinfo = NULL;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
static struct device_driver wm97xx_driver = {
|
||||
.name = "ac97",
|
||||
.bus = &ac97_bus_type,
|
||||
@@ -861,6 +882,9 @@
|
||||
EXPORT_SYMBOL_GPL(wm97xx_reg_write);
|
||||
EXPORT_SYMBOL_GPL(wm97xx_register_misc_dev);
|
||||
EXPORT_SYMBOL_GPL(wm97xx_unregister_misc_dev);
|
||||
+EXPORT_SYMBOL_GPL(wm97xx_calc_lcd_waittime);
|
||||
+EXPORT_SYMBOL_GPL(wm97xx_set_machinfo);
|
||||
+EXPORT_SYMBOL_GPL(wm97xx_unset_machinfo);
|
||||
|
||||
module_init(wm97xx_init);
|
||||
module_exit(wm97xx_exit);
|
||||
Index: linux-tosa/include/linux/wm97xx.h
|
||||
===================================================================
|
||||
--- linux-tosa.orig/include/linux/wm97xx.h 2006-08-29 16:52:36.008543280 +0100
|
||||
+++ linux-tosa/include/linux/wm97xx.h 2006-08-29 16:52:50.924275744 +0100
|
||||
@@ -207,6 +207,7 @@
|
||||
|
||||
struct wm97xx;
|
||||
extern struct wm97xx_codec_drv wm97xx_codec;
|
||||
+extern struct wm97xx_machinfo *wm_machinfo;
|
||||
|
||||
/*
|
||||
* Codec driver interface - allows mapping to WM9705/12/13 and newer codecs
|
||||
@@ -253,6 +254,11 @@
|
||||
struct list_head list;
|
||||
};
|
||||
|
||||
+struct wm97xx_machinfo {
|
||||
+ unsigned long (*get_hsync_time)(void);
|
||||
+ void (*wait_hsync)(void);
|
||||
+};
|
||||
+
|
||||
int wm97xx_register_misc_dev(struct wm97xx_misc_dev* mdev);
|
||||
void wm97xx_unregister_misc_dev(struct wm97xx_misc_dev* mdev);
|
||||
|
||||
@@ -281,4 +287,9 @@
|
||||
int wm97xx_acc_startup(struct wm97xx* wm);
|
||||
void wm97xx_acc_shutdown(struct wm97xx* wm);
|
||||
|
||||
+
|
||||
+unsigned long wm97xx_calc_lcd_waittime(struct wm97xx *wm);
|
||||
+void wm97xx_set_machinfo(struct wm97xx_machinfo *machinfo);
|
||||
+void wm97xx_unset_machinfo(void);
|
||||
+
|
||||
#endif
|
||||
112
meta/packages/linux/linux-rp_2.6.21+2.6.22-rc6.bb
Normal file
112
meta/packages/linux/linux-rp_2.6.21+2.6.22-rc6.bb
Normal file
@@ -0,0 +1,112 @@
|
||||
require linux-rp.inc
|
||||
|
||||
PR = "r0"
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
|
||||
# Handy URLs
|
||||
# git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=ef7d1b244fa6c94fb76d5f787b8629df64ea4046
|
||||
# http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2
|
||||
# http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.20-rc4.tar.bz2
|
||||
# http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.18-rc6.bz2;patch=1
|
||||
# http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-2.6.18-rc2-git1.bz2;patch=1
|
||||
# http://www.kernel.org/pub/linux/kernel/people/alan/linux-2.6/2.6.10/patch-2.6.10-ac8.gz;patch=1
|
||||
# http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.14-rc2/2.6.14-rc2-mm1/2.6.14-rc2-mm1.bz2;patch=1
|
||||
|
||||
# Patches submitted upstream are towards top of this list
|
||||
# Hacks should clearly named and at the bottom
|
||||
SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.tar.bz2 \
|
||||
http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.22-rc6.bz2;patch=1 \
|
||||
${RPSRC}/lzo_kernel-r3.patch;patch=1 \
|
||||
${RPSRC}/lzo_jffs2-r2.patch;patch=1 \
|
||||
${RPSRC}/lzo_crypto-r2.patch;patch=1 \
|
||||
${RPSRC}/lzo_jffs2_lzomode-r1.patch;patch=1 \
|
||||
${RPSRC}/lzo_jffs2_sysfs-r1.patch;patch=1 \
|
||||
${RPSRC}/hx2750_base-r28.patch;patch=1 \
|
||||
${RPSRC}/hx2750_bl-r9.patch;patch=1 \
|
||||
${RPSRC}/hx2750_pcmcia-r2.patch;patch=1 \
|
||||
${RPSRC}/pxa_keys-r7.patch;patch=1 \
|
||||
${RPSRC}/tsc2101-r16.patch;patch=1 \
|
||||
${RPSRC}/hx2750_test1-r6.patch;patch=1 \
|
||||
${RPSRC}/pxa_timerfix-r0.patch;patch=1 \
|
||||
${RPSRC}/input_power-r8.patch;patch=1 \
|
||||
${RPSRC}/pxa25x_cpufreq-r2.patch;patch=1 \
|
||||
${RPSRC}/sharpsl_pm_fixes1-r0.patch;patch=1 \
|
||||
${RPSRC}/pm_changes-r1.patch;patch=1 \
|
||||
${RPSRC}/usb_add_epalloc-r3.patch;patch=1 \
|
||||
${RPSRC}/usb_pxa27x_udc-r5.patch;patch=1 \
|
||||
${RPSRC}/locomo_kbd_tweak-r1.patch;patch=1 \
|
||||
${RPSRC}/poodle_pm-r3.patch;patch=1 \
|
||||
${RPSRC}/pxa27x_overlay-r5.patch;patch=1 \
|
||||
${RPSRC}/w100_extaccel-r1.patch;patch=1 \
|
||||
${RPSRC}/qemuarm_scsi_fix-r0.patch;patch=1 \
|
||||
file://hostap-monitor-mode.patch;patch=1 \
|
||||
file://serial-add-support-for-non-standard-xtals-to-16c950-driver.patch;patch=1 \
|
||||
${RPSRC}/logo_oh-r0.patch.bz2;patch=1;status=unmergable \
|
||||
${RPSRC}/logo_oz-r2.patch.bz2;patch=1;status=unmergable \
|
||||
${RPSRC}/pxa-linking-bug.patch;patch=1;status=unmergable \
|
||||
${RPSRC}/mmcsd_large_cards-r1.patch;patch=1;status=hack \
|
||||
${RPSRC}/mmcsd_no_scr_check-r1.patch;patch=1;status=hack \
|
||||
${RPSRC}/integrator_rgb-r1.patch;patch=1;status=hack \
|
||||
${RPSRC}/pxa_cf_initorder_hack-r1.patch;patch=1;status=hack \
|
||||
file://pxa-serial-hack.patch;patch=1;status=hack \
|
||||
file://connectplus-remove-ide-HACK.patch;patch=1;status=hack \
|
||||
file://squashfs3.0-2.6.15.patch;patch=1;status=external \
|
||||
file://vesafb-tng-1.0-rc2-2.6.20-rc2.patch;patch=1;status=external \
|
||||
file://defconfig-c7x0 \
|
||||
file://defconfig-hx2000 \
|
||||
file://defconfig-collie \
|
||||
file://defconfig-poodle \
|
||||
file://defconfig-akita \
|
||||
file://defconfig-spitz \
|
||||
file://defconfig-qemuarm \
|
||||
file://defconfig-qemux86 \
|
||||
file://defconfig-bootcdx86 \
|
||||
file://defconfig-tosa "
|
||||
|
||||
# Add this to enable pm debug code (useful with a serial lead)
|
||||
# ${RPSRC}/sharpsl_pm_debug-r0.patch;patch=1
|
||||
|
||||
# Disabled until I find the reason this gives issues with cdc_subset
|
||||
# ${RPSRC}/usb_rndis_tweaks-r0.patch;patch=1 \
|
||||
|
||||
# Is anything out of this still needed? Parts were commited to mainline by rmk (drivers/mfd/)
|
||||
# (Pavel Machek's git tree has updated versions of this?)
|
||||
# ${JLSRC}/zaurus-lcd-2.6.11.diff.gz;patch=1
|
||||
|
||||
# These patches are extracted from Pavel Machek's git tree
|
||||
# (diff against vanilla kernel)
|
||||
SRC_URI_append_collie = "\
|
||||
${DOSRC}/collie/mtd-sharp-flash-hack-r0.patch;patch=1 \
|
||||
${DOSRC}/collie/collie-r0.patch;patch=1 \
|
||||
${DOSRC}/collie/locomolcd-backlight-r0.patch;patch=1 \
|
||||
${DOSRC}/collie/ucb1x00-touch-audio-r0.patch;patch=1 \
|
||||
file://collie-mcp-r1.patch;patch=1 \
|
||||
${DOSRC}/collie/sa1100-udc-r0.patch;patch=1 \
|
||||
# ${DOSRC}/collie/collie-pm-r1.patch;patch=1 \
|
||||
"
|
||||
|
||||
SRC_URI_append_tosa = "\
|
||||
${CHSRC}/usb-ohci-hooks-r1.patch;patch=1 \
|
||||
${CHSRC}/tmio-core-r4.patch;patch=1 \
|
||||
file://tmio-tc6393-r8.patch;patch=1 \
|
||||
file://tmio-nand-r7.patch;patch=1 \
|
||||
file://tmio-ohci-r6.patch;patch=1 \
|
||||
${CHSRC}/tmio-fb-r6.patch;patch=1 \
|
||||
file://tosa-keyboard-r18.patch;patch=1 \
|
||||
${DOSRC}/tosa-pxaac97-r6.patch;patch=1 \
|
||||
${DOSRC}/tosa-tmio-r6.patch;patch=1 \
|
||||
${DOSRC}/tosa-power-r17.patch;patch=1 \
|
||||
file://tosa-tmio-lcd-r10.patch;patch=1 \
|
||||
${DOSRC}/tosa-bluetooth-r8.patch;patch=1 \
|
||||
${DOSRC}/wm97xx-lg7-r0.patch;patch=1 \
|
||||
file://wm9712-suspend-cold-res-r2.patch;patch=1 \
|
||||
file://sharpsl-pm-postresume-r1.patch;patch=1 \
|
||||
${DOSRC}/wm97xx-dig-restore-r0.patch;patch=1 \
|
||||
${DOSRC}/wm97xx-miscdevs-resume-r0.patch;patch=1 \
|
||||
file://wm9712-reset-loop-r2.patch;patch=1 \
|
||||
file://tosa-lcdnoise-r1.patch;patch=1 \
|
||||
file://wm97xx-lcdnoise-r0.patch;patch=1 "
|
||||
# ${DOSRC}/tosa-asoc-r1.patch;patch=1 "
|
||||
|
||||
S = "${WORKDIR}/linux-2.6.21"
|
||||
Reference in New Issue
Block a user