mirror of
https://git.yoctoproject.org/poky
synced 2026-04-04 23:02:22 +02:00
linux-rp: Drop old kernel versions
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@3428 311d38ba-8fff-0310-9ca6-ca027cbcb966
This commit is contained in:
@@ -1,45 +0,0 @@
|
||||
Platform: Sharp Zaurus C760 running 2.6.16 and pcmciautils 013.
|
||||
|
||||
root@c7x0:~# pccardctl ident
|
||||
Socket 0:
|
||||
product info: "Pretec", "CompactWLAN Card 802.11b", "2.5"
|
||||
manfid: 0x0156, 0x0002
|
||||
function: 6 (network)
|
||||
|
||||
==========================================================================
|
||||
From: Jochen Friedrich
|
||||
|
||||
Yet another card known to work OK with hostap_cs:
|
||||
|
||||
# pccardctl ident
|
||||
Socket 0:
|
||||
no product info available
|
||||
Socket 1:
|
||||
product info: "U.S. Robotics", "IEEE 802.11b PC-CARD", "Version 01.02", ""
|
||||
manfid: 0x0156, 0x0002
|
||||
function: 6 (network)
|
||||
|
||||
==========================================================================
|
||||
|
||||
Signed-off-by: Marcin Juszkiewicz <openembedded@hrw.one.pl>
|
||||
|
||||
drivers/net/wireless/hostap/hostap_cs.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
Index: linux/drivers/net/wireless/hostap/hostap_cs.c
|
||||
===================================================================
|
||||
--- linux.orig/drivers/net/wireless/hostap/hostap_cs.c 2006-05-17 10:23:00.000000000 +0200
|
||||
+++ linux/drivers/net/wireless/hostap/hostap_cs.c 2006-05-17 10:25:45.000000000 +0200
|
||||
@@ -923,6 +923,12 @@
|
||||
PCMCIA_DEVICE_PROD_ID12(
|
||||
"ZoomAir 11Mbps High", "Rate wireless Networking",
|
||||
0x273fe3db, 0x32a1eaee),
|
||||
+ PCMCIA_DEVICE_PROD_ID123(
|
||||
+ "Pretec", "CompactWLAN Card 802.11b", "2.5",
|
||||
+ 0x1cadd3e5, 0xe697636c, 0x7a5bfcf1),
|
||||
+ PCMCIA_DEVICE_PROD_ID123(
|
||||
+ "U.S. Robotics", "IEEE 802.11b PC-CARD", "Version 01.02",
|
||||
+ 0xc7b8df9d, 0x1700d087, 0x4b74baa0),
|
||||
PCMCIA_DEVICE_NULL
|
||||
};
|
||||
MODULE_DEVICE_TABLE(pcmcia, hostap_cs_ids);
|
||||
@@ -1,27 +0,0 @@
|
||||
|
||||
From: Marcin Juszkiewicz <openembedded@hrw.one.pl>
|
||||
|
||||
Add TRENDnet TE-CF100 ethernet adapter to pcnet_cs list.
|
||||
|
||||
product info: "Fast Ethernet", "CF Size PC Card", "1.0", ""
|
||||
manfid: 0x0149, 0xc1ab
|
||||
|
||||
Signed-off-by: Marcin Juszkiewicz <openembedded@hrw.one.pl>
|
||||
|
||||
drivers/net/pcmcia/pcnet_cs.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
Index: netdev-2.6/drivers/net/pcmcia/pcnet_cs.c
|
||||
===================================================================
|
||||
--- netdev-2.6.orig/drivers/net/pcmcia/pcnet_cs.c 2006-05-18 11:06:43.294022480 +0200
|
||||
+++ netdev-2.6/drivers/net/pcmcia/pcnet_cs.c 2006-05-18 11:10:31.548322552 +0200
|
||||
@@ -1768,6 +1768,8 @@
|
||||
PCMCIA_DEVICE_CIS_PROD_ID12("NDC", "Ethernet", 0x01c43ae1, 0x00b2e941, "NE2K.cis"),
|
||||
PCMCIA_DEVICE_CIS_PROD_ID12("PMX ", "PE-200", 0x34f3f1c8, 0x10b59f8c, "PE-200.cis"),
|
||||
PCMCIA_DEVICE_CIS_PROD_ID12("TAMARACK", "Ethernet", 0xcf434fba, 0x00b2e941, "tamarack.cis"),
|
||||
+ PCMCIA_DEVICE_PROD_ID123("Fast Ethernet", "CF Size PC Card", "1.0",
|
||||
+ 0xb4be14e3, 0x43ac239b, 0x0877b627),
|
||||
PCMCIA_DEVICE_NULL
|
||||
};
|
||||
MODULE_DEVICE_TABLE(pcmcia, pcnet_ids);
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
|
||||
#
|
||||
# Patch managed by http://www.holgerschurig.de/patcher.html
|
||||
#
|
||||
|
||||
--- linux-2.6.11-rc1/init/version.c~add-oz-release-string
|
||||
+++ linux-2.6.11-rc1/init/version.c
|
||||
@@ -29,5 +29,5 @@
|
||||
EXPORT_SYMBOL(system_utsname);
|
||||
|
||||
const char linux_banner[] =
|
||||
- "Linux version " UTS_RELEASE " (" LINUX_COMPILE_BY "@"
|
||||
+ "Linux version " UTS_RELEASE OPENZAURUS_RELEASE " (" LINUX_COMPILE_BY "@"
|
||||
LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n";
|
||||
--- linux-2.6.11-rc1/Makefile~add-oz-release-string
|
||||
+++ linux-2.6.11-rc1/Makefile
|
||||
@@ -827,6 +827,7 @@
|
||||
exit 1; \
|
||||
fi; \
|
||||
(echo \#define UTS_RELEASE \"$(KERNELRELEASE)\"; \
|
||||
+ echo \#define OPENZAURUS_RELEASE \"$(OPENZAURUS_RELEASE)\"; \
|
||||
echo \#define LINUX_VERSION_CODE `expr $(VERSION) \\* 65536 + $(PATCHLEVEL) \\* 256 + $(SUBLEVEL)`; \
|
||||
echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'; \
|
||||
)
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,12 +0,0 @@
|
||||
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);
|
||||
1572
meta/packages/linux/linux-rp-2.6.17/defconfig-akita
vendored
1572
meta/packages/linux/linux-rp-2.6.17/defconfig-akita
vendored
File diff suppressed because it is too large
Load Diff
1608
meta/packages/linux/linux-rp-2.6.17/defconfig-c7x0
vendored
1608
meta/packages/linux/linux-rp-2.6.17/defconfig-c7x0
vendored
File diff suppressed because it is too large
Load Diff
1641
meta/packages/linux/linux-rp-2.6.17/defconfig-collie
vendored
1641
meta/packages/linux/linux-rp-2.6.17/defconfig-collie
vendored
File diff suppressed because it is too large
Load Diff
1028
meta/packages/linux/linux-rp-2.6.17/defconfig-hx2000
vendored
1028
meta/packages/linux/linux-rp-2.6.17/defconfig-hx2000
vendored
File diff suppressed because it is too large
Load Diff
1655
meta/packages/linux/linux-rp-2.6.17/defconfig-poodle
vendored
1655
meta/packages/linux/linux-rp-2.6.17/defconfig-poodle
vendored
File diff suppressed because it is too large
Load Diff
1190
meta/packages/linux/linux-rp-2.6.17/defconfig-qemuarm
vendored
1190
meta/packages/linux/linux-rp-2.6.17/defconfig-qemuarm
vendored
File diff suppressed because it is too large
Load Diff
1562
meta/packages/linux/linux-rp-2.6.17/defconfig-qemux86
vendored
1562
meta/packages/linux/linux-rp-2.6.17/defconfig-qemux86
vendored
File diff suppressed because it is too large
Load Diff
1603
meta/packages/linux/linux-rp-2.6.17/defconfig-spitz
vendored
1603
meta/packages/linux/linux-rp-2.6.17/defconfig-spitz
vendored
File diff suppressed because it is too large
Load Diff
1609
meta/packages/linux/linux-rp-2.6.17/defconfig-tosa
vendored
1609
meta/packages/linux/linux-rp-2.6.17/defconfig-tosa
vendored
File diff suppressed because it is too large
Load Diff
@@ -1,63 +0,0 @@
|
||||
From: Marcin Juszkiewicz <openembedded@hrw.one.pl>
|
||||
|
||||
Few cards informations submitted by OpenZaurus users.
|
||||
|
||||
Seagate 8GB microdrive:
|
||||
product info: "SEAGATE", "ST1"
|
||||
manfid 0x0111, 0x0000
|
||||
|
||||
One CF card:
|
||||
product info: "SAMSUNG", "04/05/06", "", ""
|
||||
manfid : 0x0000, 0x0000
|
||||
|
||||
Ridata 8GB Pro 150X Compact Flash Card:
|
||||
product info: "SMI VENDOR", "SMI PRODUCT", ""
|
||||
manfid: 0x000a, 0x0000
|
||||
|
||||
product info: "M-Systems", "CF500", ""
|
||||
manfid: 0x000a, 0x0000
|
||||
|
||||
product info: "TRANSCEND", "TS4GCF120", ""
|
||||
manfid: 0x000a, 0x0000
|
||||
|
||||
Signed-off-by: Marcin Juszkiewicz <openembedded@hrw.one.pl>
|
||||
|
||||
drivers/ide/legacy/ide-cs.c | 5 +++++
|
||||
drivers/net/pcmcia/pcnet_cs.c | 2 ++
|
||||
2 files changed, 7 insertions(+)
|
||||
|
||||
Index: linux-2.6.18/drivers/ide/legacy/ide-cs.c
|
||||
===================================================================
|
||||
--- linux-2.6.18.orig/drivers/ide/legacy/ide-cs.c 2006-12-06 00:55:51.000000000 +0000
|
||||
+++ linux-2.6.18/drivers/ide/legacy/ide-cs.c 2006-12-06 00:55:55.000000000 +0000
|
||||
@@ -398,12 +398,17 @@ static struct pcmcia_device_id ide_ids[]
|
||||
PCMCIA_DEVICE_PROD_ID12("IO DATA", "PCIDE", 0x547e66dc, 0x5c5ab149),
|
||||
PCMCIA_DEVICE_PROD_ID12("IO DATA", "PCIDEII", 0x547e66dc, 0xb3662674),
|
||||
PCMCIA_DEVICE_PROD_ID12("LOOKMEET", "CBIDE2 ", 0xe37be2b5, 0x8671043b),
|
||||
+ PCMCIA_DEVICE_PROD_ID12("M-Systems", "CF500", 0x7ed2ad87, 0x7a13045c),
|
||||
PCMCIA_DEVICE_PROD_ID2("NinjaATA-", 0xebe0bd79),
|
||||
PCMCIA_DEVICE_PROD_ID12("PCMCIA", "CD-ROM", 0x281f1c5d, 0x66536591),
|
||||
PCMCIA_DEVICE_PROD_ID12("PCMCIA", "PnPIDE", 0x281f1c5d, 0x0c694728),
|
||||
PCMCIA_DEVICE_PROD_ID12("SHUTTLE TECHNOLOGY LTD.", "PCCARD-IDE/ATAPI Adapter", 0x4a3f0ba0, 0x322560e1),
|
||||
+ PCMCIA_DEVICE_PROD_ID12("SEAGATE", "ST1", 0x87c1b330, 0xe1f30883),
|
||||
+ PCMCIA_DEVICE_PROD_ID12("SAMSUNG", "04/05/06", 0x43d74cb4, 0x6a22777d),
|
||||
+ PCMCIA_DEVICE_PROD_ID12("SMI VENDOR", "SMI PRODUCT", 0x30896c92, 0x703cc5f6),
|
||||
PCMCIA_DEVICE_PROD_ID12("TOSHIBA", "MK2001MPL", 0xb4585a1a, 0x3489e003),
|
||||
PCMCIA_DEVICE_PROD_ID1("TRANSCEND 512M ", 0xd0909443),
|
||||
+ PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8),
|
||||
PCMCIA_DEVICE_PROD_ID12("WIT", "IDE16", 0x244e5994, 0x3e232852),
|
||||
PCMCIA_DEVICE_PROD_ID1("STI Flash", 0xe4a13209),
|
||||
PCMCIA_DEVICE_PROD_ID12("STI", "Flash 5.0", 0xbf2df18d, 0x8cb57a0e),
|
||||
Index: linux-2.6.18/drivers/net/pcmcia/pcnet_cs.c
|
||||
===================================================================
|
||||
--- linux-2.6.18.orig/drivers/net/pcmcia/pcnet_cs.c 2006-09-20 04:42:06.000000000 +0100
|
||||
+++ linux-2.6.18/drivers/net/pcmcia/pcnet_cs.c 2006-12-06 00:57:27.000000000 +0000
|
||||
@@ -1770,6 +1770,8 @@ static struct pcmcia_device_id pcnet_ids
|
||||
PCMCIA_DEVICE_CIS_PROD_ID12("TAMARACK", "Ethernet", 0xcf434fba, 0x00b2e941, "tamarack.cis"),
|
||||
PCMCIA_DEVICE_PROD_ID123("Fast Ethernet", "CF Size PC Card", "1.0",
|
||||
0xb4be14e3, 0x43ac239b, 0x0877b627),
|
||||
+ PCMCIA_DEVICE_PROD_ID123("Ethernet", "CF Size PC Card", "1.0",
|
||||
+ 0x00b2e941, 0x43ac239b, 0x0877b627),
|
||||
PCMCIA_DEVICE_NULL
|
||||
};
|
||||
MODULE_DEVICE_TABLE(pcmcia, pcnet_ids);
|
||||
@@ -1,88 +0,0 @@
|
||||
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);
|
||||
@@ -1,73 +0,0 @@
|
||||
Index: linux-2.6.14/drivers/serial/8250.c
|
||||
===================================================================
|
||||
--- linux-2.6.14.orig/drivers/serial/8250.c 2005-11-07 18:10:50.000000000 +0000
|
||||
+++ linux-2.6.14/drivers/serial/8250.c 2005-11-07 19:01:21.000000000 +0000
|
||||
@@ -2333,7 +2333,12 @@
|
||||
.devfs_name = "tts/",
|
||||
.dev_name = "ttyS",
|
||||
.major = TTY_MAJOR,
|
||||
+#ifdef CONFIG_SERIAL_PXA
|
||||
+ .minor = 64 + 3,
|
||||
+ .name_base = 3,
|
||||
+#else
|
||||
.minor = 64,
|
||||
+#endif
|
||||
.nr = UART_NR,
|
||||
.cons = SERIAL8250_CONSOLE,
|
||||
};
|
||||
Index: linux-2.6.14/drivers/serial/serial_core.c
|
||||
===================================================================
|
||||
--- linux-2.6.14.orig/drivers/serial/serial_core.c 2005-11-07 18:10:50.000000000 +0000
|
||||
+++ linux-2.6.14/drivers/serial/serial_core.c 2005-11-07 19:01:21.000000000 +0000
|
||||
@@ -2126,6 +2126,7 @@
|
||||
normal->driver_name = drv->driver_name;
|
||||
normal->devfs_name = drv->devfs_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.14/include/linux/serial_core.h
|
||||
===================================================================
|
||||
--- linux-2.6.14.orig/include/linux/serial_core.h 2005-11-07 18:10:56.000000000 +0000
|
||||
+++ linux-2.6.14/include/linux/serial_core.h 2005-11-07 19:01:21.000000000 +0000
|
||||
@@ -322,6 +322,7 @@
|
||||
const char *driver_name;
|
||||
const char *dev_name;
|
||||
const char *devfs_name;
|
||||
+ int name_base;
|
||||
int major;
|
||||
int minor;
|
||||
int nr;
|
||||
Index: linux-2.6.14/drivers/serial/serial_cs.c
|
||||
===================================================================
|
||||
--- linux-2.6.14.orig/drivers/serial/serial_cs.c 2005-10-28 01:02:08.000000000 +0100
|
||||
+++ linux-2.6.14/drivers/serial/serial_cs.c 2005-11-07 19:01:21.000000000 +0000
|
||||
@@ -294,7 +294,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;
|
||||
@@ -311,10 +311,16 @@
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
+#if CONFIG_SERIAL_PXA
|
||||
+ linestart = 3;
|
||||
+#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++;
|
||||
@@ -1,155 +0,0 @@
|
||||
|
||||
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 files changed, 64 insertions(+), 18 deletions(-)
|
||||
|
||||
diff -puN drivers/serial/8250.c~serial-add-support-for-non-standard-xtals-to-16c950-driver drivers/serial/8250.c
|
||||
--- devel/drivers/serial/8250.c~serial-add-support-for-non-standard-xtals-to-16c950-driver 2005-09-12 03:34:57.000000000 -0700
|
||||
+++ devel-akpm/drivers/serial/8250.c 2005-09-12 03:34:57.000000000 -0700
|
||||
@@ -1653,24 +1653,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
|
||||
@@ -1680,7 +1714,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:
|
||||
@@ -1712,8 +1746,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
|
||||
@@ -1817,6 +1856,13 @@ serial8250_set_termios(struct uart_port
|
||||
serial_outp(up, UART_DLM, quot >> 8); /* MS of divisor */
|
||||
|
||||
/*
|
||||
+ * 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
@@ -1,157 +0,0 @@
|
||||
Index: linux-tosa/arch/arm/mach-pxa/tosa.c
|
||||
===================================================================
|
||||
--- linux-tosa.orig/arch/arm/mach-pxa/tosa.c 2006-08-29 16:52:59.000000000 +0100
|
||||
+++ linux-tosa/arch/arm/mach-pxa/tosa.c 2006-08-29 16:55:25.959706776 +0100
|
||||
@@ -2,6 +2,7 @@
|
||||
* Support for Sharp SL-C6000x PDAs
|
||||
* Model: (Tosa)
|
||||
*
|
||||
+ * Copyright (c) 2006 Wolfson Microelectronics PLC.
|
||||
* Copyright (c) 2005 Dirk Opfer
|
||||
*
|
||||
* Based on code written by Sharp/Lineo for 2.4 kernels
|
||||
@@ -46,6 +47,8 @@
|
||||
#include <asm/hardware/tmio.h>
|
||||
#include <asm/mach/sharpsl_param.h>
|
||||
|
||||
+#include <linux/wm97xx.h>
|
||||
+
|
||||
#include "generic.h"
|
||||
|
||||
/*
|
||||
@@ -428,6 +431,16 @@
|
||||
},
|
||||
};
|
||||
|
||||
+
|
||||
+/*
|
||||
+ * Tosa Touchscreen device
|
||||
+ */
|
||||
+
|
||||
+static struct wm97xx_machinfo tosa_ts_machinfo = {
|
||||
+ .get_hsync_time = tosa_get_hsync_time,
|
||||
+ .wait_hsync = tosa_wait_hsync,
|
||||
+};
|
||||
+
|
||||
/*
|
||||
* Tosa Blueooth
|
||||
*/
|
||||
@@ -457,6 +470,7 @@
|
||||
GPSR(TOSA_GPIO_ON_RESET) = GPIO_bit(TOSA_GPIO_ON_RESET);
|
||||
|
||||
mdelay(1000);
|
||||
+ wm97xx_unset_machinfo();
|
||||
}
|
||||
|
||||
static void tosa_restart(void)
|
||||
@@ -501,6 +515,8 @@
|
||||
platform_scoop_config = &tosa_pcmcia_config;
|
||||
|
||||
platform_add_devices(devices, ARRAY_SIZE(devices));
|
||||
+
|
||||
+ wm97xx_set_machinfo(&tosa_ts_machinfo);
|
||||
}
|
||||
|
||||
static void __init fixup_tosa(struct machine_desc *desc,
|
||||
Index: linux-tosa/arch/arm/mach-pxa/tosa_lcd.c
|
||||
===================================================================
|
||||
--- linux-tosa.orig/arch/arm/mach-pxa/tosa_lcd.c 2006-08-29 16:52:59.000000000 +0100
|
||||
+++ linux-tosa/arch/arm/mach-pxa/tosa_lcd.c 2006-08-29 16:55:32.818664056 +0100
|
||||
@@ -1,6 +1,7 @@
|
||||
/*
|
||||
* LCD / Backlight control code for Sharp SL-6000x (tosa)
|
||||
*
|
||||
+ * Copyright (c) 2006 Wolfson Microelectronics PLC.
|
||||
* Copyright (c) 2005 Dirk Opfer
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@@ -59,6 +60,8 @@
|
||||
static struct ssp_dev tosa_nssp_dev;
|
||||
static struct ssp_state tosa_nssp_state;
|
||||
static spinlock_t tosa_nssp_lock;
|
||||
+static int blanked;
|
||||
+static unsigned long hsync_time;
|
||||
|
||||
static unsigned short normal_i2c[] = {
|
||||
DAC_BASE,
|
||||
@@ -130,6 +133,17 @@
|
||||
pxa_nssp_output(TG_GPOSR,0x02); /* GPOS0=powercontrol, GPOS1=GPIO, GPOS2=TCTL */
|
||||
}
|
||||
|
||||
+static unsigned long calc_hsync_time(const struct fb_videomode *mode) {
|
||||
+ /* The 25 and 44 'magic numbers' are from Sharp's 2.4 patches */
|
||||
+ if (mode->yres == 640) {
|
||||
+ return 25;
|
||||
+ }
|
||||
+ if (mode->yres == 320) {
|
||||
+ return 44;
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static void tosa_lcd_tg_on(struct device *dev, const struct fb_videomode *mode)
|
||||
{
|
||||
const int value = TG_REG0_COLOR | TG_REG0_UD | TG_REG0_LR;
|
||||
@@ -154,6 +168,8 @@
|
||||
/* set common voltage */
|
||||
i2c_smbus_write_byte_data(tosa_i2c_dac, DAC_CH1, comadj);
|
||||
|
||||
+ blanked = 0;
|
||||
+ hsync_time = calc_hsync_time(mode);
|
||||
}
|
||||
|
||||
static void tosa_lcd_tg_off(struct device *dev)
|
||||
@@ -172,6 +188,8 @@
|
||||
|
||||
/* L3V Off */
|
||||
reset_scoop_gpio( &tosascoop_jc_device.dev,TOSA_SCOOP_JC_TC3693_L3V_ON);
|
||||
+
|
||||
+ blanked = 1;
|
||||
}
|
||||
|
||||
static int tosa_detect_client(struct i2c_adapter* adapter, int address, int kind) {
|
||||
@@ -238,6 +256,23 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
+unsigned long tosa_get_hsync_time(void)
|
||||
+{
|
||||
+/* This method should eventually contain the correct algorithm for calculating
|
||||
+ the hsync_time */
|
||||
+ if (blanked)
|
||||
+ return 0;
|
||||
+ else
|
||||
+ return hsync_time;
|
||||
+}
|
||||
+
|
||||
+void tosa_wait_hsync(void)
|
||||
+{
|
||||
+ /* Waits for a rising edge on the VGA line */
|
||||
+ while((GPLR(TOSA_GPIO_VGA_LINE) & GPIO_bit(TOSA_GPIO_VGA_LINE)) == 0);
|
||||
+ while((GPLR(TOSA_GPIO_VGA_LINE) & GPIO_bit(TOSA_GPIO_VGA_LINE)) != 0);
|
||||
+}
|
||||
+
|
||||
static struct i2c_driver tosa_driver={
|
||||
.id = TOSA_LCD_I2C_DEVICEID,
|
||||
.attach_adapter = tosa_attach_adapter,
|
||||
Index: linux-tosa/include/asm-arm/arch-pxa/tosa.h
|
||||
===================================================================
|
||||
--- linux-tosa.orig/include/asm-arm/arch-pxa/tosa.h 2006-08-29 16:52:59.000000000 +0100
|
||||
+++ linux-tosa/include/asm-arm/arch-pxa/tosa.h 2006-08-29 16:55:12.442761664 +0100
|
||||
@@ -1,6 +1,7 @@
|
||||
/*
|
||||
* Hardware specific definitions for Sharp SL-C6000x series of PDAs
|
||||
*
|
||||
+ * Copyright (c) 2006 Wolfson Microelectronics PLC.
|
||||
* Copyright (c) 2005 Dirk Opfer
|
||||
*
|
||||
* Based on Sharp's 2.4 kernel patches
|
||||
@@ -187,4 +188,8 @@
|
||||
extern struct platform_device tosascoop_jc_device;
|
||||
extern struct platform_device tosascoop_device;
|
||||
extern struct platform_device tc6393_device;
|
||||
+
|
||||
+unsigned long tosa_get_hsync_time(void);
|
||||
+void tosa_wait_hsync(void);
|
||||
+
|
||||
#endif /* _ASM_ARCH_TOSA_H_ */
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,44 +0,0 @@
|
||||
sound/soc/codecs/wm9712.c | 28 ++++++++++++++++++----------
|
||||
1 file changed, 18 insertions(+), 10 deletions(-)
|
||||
|
||||
Index: linux-2.6.18/sound/soc/codecs/wm9712.c
|
||||
===================================================================
|
||||
--- linux-2.6.18.orig/sound/soc/codecs/wm9712.c 2006-12-05 23:25:33.000000000 +0000
|
||||
+++ linux-2.6.18/sound/soc/codecs/wm9712.c 2006-12-05 23:27:20.000000000 +0000
|
||||
@@ -618,18 +618,26 @@ static int wm9712_dapm_event(struct snd_
|
||||
|
||||
static int wm9712_reset(struct snd_soc_codec *codec, int try_warm)
|
||||
{
|
||||
- if (try_warm && soc_ac97_ops.warm_reset) {
|
||||
- soc_ac97_ops.warm_reset(codec->ac97);
|
||||
- if (!(ac97_read(codec, 0) & 0x8000))
|
||||
- return 1;
|
||||
- }
|
||||
+ int retry = 3;
|
||||
+
|
||||
+ while (retry--)
|
||||
+ {
|
||||
+ if(try_warm && soc_ac97_ops.warm_reset) {
|
||||
+ soc_ac97_ops.warm_reset(codec->ac97);
|
||||
+ if(ac97_read(codec, 0) & 0x8000)
|
||||
+ continue;
|
||||
+ else
|
||||
+ return 1;
|
||||
+ }
|
||||
|
||||
- soc_ac97_ops.reset(codec->ac97);
|
||||
- if (ac97_read(codec, 0) & 0x8000)
|
||||
- goto err;
|
||||
- return 0;
|
||||
+ soc_ac97_ops.reset(codec->ac97);
|
||||
+ if(ac97_read(codec, 0) & 0x8000)
|
||||
+ continue;
|
||||
+ else
|
||||
+ return 0;
|
||||
+
|
||||
+ }
|
||||
|
||||
-err:
|
||||
printk(KERN_ERR "WM9712 AC97 reset failed\n");
|
||||
return -EIO;
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
sound/soc/codecs/wm9712.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: linux-2.6.18/sound/soc/codecs/wm9712.c
|
||||
===================================================================
|
||||
--- linux-2.6.18.orig/sound/soc/codecs/wm9712.c 2006-12-05 23:19:53.000000000 +0000
|
||||
+++ linux-2.6.18/sound/soc/codecs/wm9712.c 2006-12-05 23:22:04.000000000 +0000
|
||||
@@ -651,7 +651,7 @@ static int wm9712_soc_resume(struct plat
|
||||
int i, ret;
|
||||
u16 *cache = codec->reg_cache;
|
||||
|
||||
- ret = wm9712_reset(codec, 1);
|
||||
+ ret = wm9712_reset(codec, 0);
|
||||
if (ret < 0){
|
||||
printk(KERN_ERR "could not reset AC97 codec\n");
|
||||
return ret;
|
||||
@@ -1,208 +0,0 @@
|
||||
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
|
||||
@@ -1,12 +0,0 @@
|
||||
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);
|
||||
1739
meta/packages/linux/linux-rp-2.6.20/defconfig-akita
vendored
1739
meta/packages/linux/linux-rp-2.6.20/defconfig-akita
vendored
File diff suppressed because it is too large
Load Diff
1786
meta/packages/linux/linux-rp-2.6.20/defconfig-c7x0
vendored
1786
meta/packages/linux/linux-rp-2.6.20/defconfig-c7x0
vendored
File diff suppressed because it is too large
Load Diff
1739
meta/packages/linux/linux-rp-2.6.20/defconfig-collie
vendored
1739
meta/packages/linux/linux-rp-2.6.20/defconfig-collie
vendored
File diff suppressed because it is too large
Load Diff
1165
meta/packages/linux/linux-rp-2.6.20/defconfig-hx2000
vendored
1165
meta/packages/linux/linux-rp-2.6.20/defconfig-hx2000
vendored
File diff suppressed because it is too large
Load Diff
1656
meta/packages/linux/linux-rp-2.6.20/defconfig-poodle
vendored
1656
meta/packages/linux/linux-rp-2.6.20/defconfig-poodle
vendored
File diff suppressed because it is too large
Load Diff
1193
meta/packages/linux/linux-rp-2.6.20/defconfig-qemuarm
vendored
1193
meta/packages/linux/linux-rp-2.6.20/defconfig-qemuarm
vendored
File diff suppressed because it is too large
Load Diff
1567
meta/packages/linux/linux-rp-2.6.20/defconfig-qemux86
vendored
1567
meta/packages/linux/linux-rp-2.6.20/defconfig-qemux86
vendored
File diff suppressed because it is too large
Load Diff
1739
meta/packages/linux/linux-rp-2.6.20/defconfig-spitz
vendored
1739
meta/packages/linux/linux-rp-2.6.20/defconfig-spitz
vendored
File diff suppressed because it is too large
Load Diff
1612
meta/packages/linux/linux-rp-2.6.20/defconfig-tosa
vendored
1612
meta/packages/linux/linux-rp-2.6.20/defconfig-tosa
vendored
File diff suppressed because it is too large
Load Diff
@@ -1,209 +0,0 @@
|
||||
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,
|
||||
@@ -1,90 +0,0 @@
|
||||
---
|
||||
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++;
|
||||
@@ -1,155 +0,0 @@
|
||||
|
||||
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 files changed, 64 insertions(+), 18 deletions(-)
|
||||
|
||||
diff -puN drivers/serial/8250.c~serial-add-support-for-non-standard-xtals-to-16c950-driver drivers/serial/8250.c
|
||||
--- devel/drivers/serial/8250.c~serial-add-support-for-non-standard-xtals-to-16c950-driver 2005-09-12 03:34:57.000000000 -0700
|
||||
+++ devel-akpm/drivers/serial/8250.c 2005-09-12 03:34:57.000000000 -0700
|
||||
@@ -1653,24 +1653,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
|
||||
@@ -1680,7 +1714,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:
|
||||
@@ -1712,8 +1746,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
|
||||
@@ -1817,6 +1856,13 @@ serial8250_set_termios(struct uart_port
|
||||
serial_outp(up, UART_DLM, quot >> 8); /* MS of divisor */
|
||||
|
||||
/*
|
||||
+ * 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.
|
||||
*/
|
||||
_
|
||||
@@ -1,519 +0,0 @@
|
||||
Index: linux-2.6.20/arch/arm/mach-pxa/spitz.c
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/arch/arm/mach-pxa/spitz.c
|
||||
+++ linux-2.6.20/arch/arm/mach-pxa/spitz.c
|
||||
@@ -244,6 +244,13 @@ static struct platform_device spitzkbd_d
|
||||
.id = -1,
|
||||
};
|
||||
|
||||
+/*
|
||||
+ * Spitz Remote Control Device
|
||||
+ */
|
||||
+static struct platform_device sharpsl_rc_device = {
|
||||
+ .name = "sharpsl-remote-control",
|
||||
+ .id = -1,
|
||||
+};
|
||||
|
||||
/*
|
||||
* Spitz LEDs
|
||||
@@ -476,6 +483,7 @@ static struct platform_device *devices[]
|
||||
&spitzscoop_device,
|
||||
&spitzssp_device,
|
||||
&spitzkbd_device,
|
||||
+ &sharpsl_rc_device,
|
||||
&spitzts_device,
|
||||
&spitzbl_device,
|
||||
&spitzled_device,
|
||||
Index: linux-2.6.20/drivers/input/keyboard/Kconfig
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/drivers/input/keyboard/Kconfig
|
||||
+++ linux-2.6.20/drivers/input/keyboard/Kconfig
|
||||
@@ -154,6 +154,17 @@ config KEYBOARD_SPITZ
|
||||
To compile this driver as a module, choose M here: the
|
||||
module will be called spitzkbd.
|
||||
|
||||
+config SHARPSL_RC
|
||||
+ tristate "Sharp SL-Cxx00 Remote Control"
|
||||
+ depends on PXA_SHARPSL
|
||||
+ default y
|
||||
+ help
|
||||
+ Say Y here to enable the remote on the Sharp Zaurus SL-Cxx00,
|
||||
+ SL-C1000, SL-C3000 and Sl-C3100 series of PDAs.
|
||||
+
|
||||
+ To compile this driver as a module, choose M here: the
|
||||
+ module will be called sharpsl_rc.
|
||||
+
|
||||
config KEYBOARD_AMIGA
|
||||
tristate "Amiga keyboard"
|
||||
depends on AMIGA
|
||||
Index: linux-2.6.20/drivers/input/keyboard/Makefile
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/drivers/input/keyboard/Makefile
|
||||
+++ linux-2.6.20/drivers/input/keyboard/Makefile
|
||||
@@ -14,6 +14,7 @@ obj-$(CONFIG_KEYBOARD_NEWTON) += newton
|
||||
obj-$(CONFIG_KEYBOARD_STOWAWAY) += stowaway.o
|
||||
obj-$(CONFIG_KEYBOARD_CORGI) += corgikbd.o
|
||||
obj-$(CONFIG_KEYBOARD_SPITZ) += spitzkbd.o
|
||||
+obj-$(CONFIG_SHARPSL_RC) += sharpsl_rc.o
|
||||
obj-$(CONFIG_KEYBOARD_HIL) += hil_kbd.o
|
||||
obj-$(CONFIG_KEYBOARD_HIL_OLD) += hilkbd.o
|
||||
obj-$(CONFIG_KEYBOARD_OMAP) += omap-keypad.o
|
||||
Index: linux-2.6.20/drivers/input/keyboard/sharpsl_rc.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ linux-2.6.20/drivers/input/keyboard/sharpsl_rc.c
|
||||
@@ -0,0 +1,291 @@
|
||||
+/*
|
||||
+ * Keyboard driver for Sharp Clamshell Models (SL-Cxx00)
|
||||
+ *
|
||||
+ * Copyright (c) 2004-2005 Richard Purdie
|
||||
+ *
|
||||
+ * Based on corgikbd.c and Sharp's RC driver
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License version 2 as
|
||||
+ * published by the Free Software Foundation.
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#define DEBUG 1
|
||||
+#include <linux/delay.h>
|
||||
+#include <linux/platform_device.h>
|
||||
+#include <linux/init.h>
|
||||
+#include <linux/input.h>
|
||||
+#include <linux/interrupt.h>
|
||||
+#include <linux/jiffies.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/slab.h>
|
||||
+
|
||||
+#ifdef CONFIG_MACH_SPITZ
|
||||
+#include <asm/arch/spitz.h>
|
||||
+#endif
|
||||
+#ifdef CONFIG_MACH_CORGI
|
||||
+#include <asm/arch/corgi.h>
|
||||
+#endif
|
||||
+
|
||||
+#include <asm/arch/hardware.h>
|
||||
+#include <asm/arch/pxa-regs.h>
|
||||
+#include <asm/hardware/scoop.h>
|
||||
+#include <asm/arch/sharpsl.h>
|
||||
+#include <asm/hardware/sharpsl_pm.h>
|
||||
+
|
||||
+#define DPRINTK(fmt, args...) dev_dbg(data->dev, fmt "\n", ##args)
|
||||
+
|
||||
+struct remote_control_key {
|
||||
+ unsigned char min;
|
||||
+ unsigned char max;
|
||||
+ unsigned char key;
|
||||
+};
|
||||
+
|
||||
+#ifdef CONFIG_MACH_SPITZ
|
||||
+#define REMOTE_AKIN_PULLUP SPITZ_SCP2_AKIN_PULLUP
|
||||
+#define REMOTE_SCOOP_DEVICE spitzscoop2_device
|
||||
+#define REMOTE_GPIO_INT SPITZ_GPIO_AK_INT
|
||||
+#define REMOTE_IRQ_INT SPITZ_IRQ_GPIO_AK_INT
|
||||
+static struct remote_control_key remote_keys[] = {
|
||||
+ { 25, 35, KEY_STOPCD},
|
||||
+ { 55, 65, KEY_PLAYPAUSE},
|
||||
+ { 85, 95, KEY_NEXTSONG},
|
||||
+ { 115, 125, KEY_VOLUMEUP},
|
||||
+ { 145, 155, KEY_PREVIOUSSONG},
|
||||
+ { 180, 190, KEY_MUTE},
|
||||
+ { 215, 225, KEY_VOLUMEDOWN},
|
||||
+};
|
||||
+#endif
|
||||
+#ifdef CONFIG_MACH_CORGI
|
||||
+#define REMOTE_AKIN_PULLUP CORGI_SCP_AKIN_PULLUP
|
||||
+#define REMOTE_SCOOP_DEVICE corgiscoop_device
|
||||
+#define REMOTE_GPIO_INT CORGI_GPIO_AK_INT
|
||||
+#define REMOTE_IRQ_INT CORGI_IRQ_GPIO_AK_INT
|
||||
+static struct remote_control_key remote_keys[] = {
|
||||
+ //These need to be fixed for the CE-RH1's values
|
||||
+ { 25, 35, KEY_STOPCD},
|
||||
+ { 55, 65, KEY_PLAYPAUSE},
|
||||
+ { 85, 95, KEY_NEXTSONG},
|
||||
+ { 115, 125, KEY_VOLUMEUP},
|
||||
+ { 145, 155, KEY_PREVIOUSSONG},
|
||||
+ { 180, 190, KEY_MUTE},
|
||||
+ { 215, 225, KEY_VOLUMEDOWN},
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
+#define RELEASE_HI 230
|
||||
+#define MAX_EARPHONE 6
|
||||
+#define RC_POLL_MS 10
|
||||
+#define RC_FINISH_MS 500
|
||||
+#define WAIT_STATE 3
|
||||
+#define NOISE_THRESHOLD 100
|
||||
+
|
||||
+struct sharpsl_rc {
|
||||
+ struct input_dev *input;
|
||||
+ struct device *dev;
|
||||
+
|
||||
+ spinlock_t lock;
|
||||
+ struct timer_list rctimer;
|
||||
+ struct timer_list rctimer_finish;
|
||||
+
|
||||
+ unsigned int handling_press;
|
||||
+ unsigned int noise;
|
||||
+ unsigned int state;
|
||||
+ unsigned int last_key;
|
||||
+};
|
||||
+
|
||||
+static int get_remocon_raw(void)
|
||||
+{
|
||||
+ int i, val;
|
||||
+
|
||||
+ val = sharpsl_pm_pxa_read_max1111(MAX1111_REMCOM);
|
||||
+ for (i = 0; i < ARRAY_SIZE(remote_keys); ++i) {
|
||||
+ if (val >= remote_keys[i].min
|
||||
+ && val <= remote_keys[i].max) {
|
||||
+ printk("get_remocon_raw: VAL=%i, KEY=%i\n", val, remote_keys[i].key);
|
||||
+ return remote_keys[i].key;
|
||||
+ }
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static irqreturn_t sharpsl_rc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
+{
|
||||
+ struct sharpsl_rc *data = dev_id;
|
||||
+ DPRINTK("sharpsl_rc_interrupt %d\n", irq);
|
||||
+ if (!data->handling_press) {
|
||||
+ DPRINTK("handling interrupt");
|
||||
+ data->handling_press = 1;
|
||||
+ data->noise = 0;
|
||||
+ data->state = 0;
|
||||
+ data->last_key = 0;
|
||||
+
|
||||
+ reset_scoop_gpio(&REMOTE_SCOOP_DEVICE.dev, REMOTE_AKIN_PULLUP);
|
||||
+
|
||||
+ mod_timer(&data->rctimer, jiffies + msecs_to_jiffies(RC_POLL_MS));
|
||||
+ }
|
||||
+ return IRQ_HANDLED;
|
||||
+}
|
||||
+
|
||||
+static void sharpsl_rc_timer_callback(unsigned long dataPtr)
|
||||
+{
|
||||
+ struct sharpsl_rc *data = (struct sharpsl_rc *) dataPtr;
|
||||
+ int timer = 1;
|
||||
+ int key = get_remocon_raw();
|
||||
+ DPRINTK("timer callback, key: %d", key);
|
||||
+
|
||||
+ //wait for value to stabilize
|
||||
+ if (data->state < WAIT_STATE) {
|
||||
+ if (data->last_key != key) {
|
||||
+ ++data->noise;
|
||||
+ if (data->noise > NOISE_THRESHOLD) {
|
||||
+ DPRINTK("too much noise, bailing");
|
||||
+ timer = 0;
|
||||
+ }
|
||||
+ data->state = 0;
|
||||
+ } else {
|
||||
+ ++data->state;
|
||||
+ }
|
||||
+ data->last_key = key;
|
||||
+
|
||||
+ //stable value, send event
|
||||
+ } else if (data->state == WAIT_STATE) {
|
||||
+ data->noise = 0;
|
||||
+ //non-key returned, skip the rest of the states and bail now
|
||||
+ if (data->last_key == 0) {
|
||||
+ DPRINTK("non-key detected %d, noise: %d", data->last_key, data->noise);
|
||||
+ timer = 0;
|
||||
+ //send button press
|
||||
+ } else {
|
||||
+ DPRINTK("key press detected %d, noise %d", data->last_key, data->noise);
|
||||
+ input_report_key(data->input, data->last_key, 1);
|
||||
+ }
|
||||
+ ++data->state;
|
||||
+
|
||||
+ //wait until key is released
|
||||
+ } else if (data->state < WAIT_STATE * 2) {
|
||||
+ if (key == data->last_key
|
||||
+ && data->noise < NOISE_THRESHOLD) {
|
||||
+ data->state = WAIT_STATE + 1;
|
||||
+ ++data->noise;
|
||||
+ } else {
|
||||
+ ++data->state;
|
||||
+ }
|
||||
+ //key is released, send event
|
||||
+ } else {
|
||||
+ //send button release
|
||||
+ DPRINTK("release key %d", data->last_key);
|
||||
+ input_report_key(data->input, data->last_key, 0);
|
||||
+ timer = 0;
|
||||
+ }
|
||||
+ if (timer) {
|
||||
+ mod_timer(&data->rctimer, jiffies + msecs_to_jiffies(RC_POLL_MS));
|
||||
+ } else {
|
||||
+ set_scoop_gpio(&REMOTE_SCOOP_DEVICE.dev, REMOTE_AKIN_PULLUP);
|
||||
+ data->handling_press = 0;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static int __init sharpsl_rc_probe(struct platform_device *pdev)
|
||||
+{
|
||||
+ struct sharpsl_rc *sharpsl_rc;
|
||||
+ struct input_dev *input_dev;
|
||||
+ int i, ret;
|
||||
+
|
||||
+ dev_dbg(&pdev->dev, "sharpsl_rc_probe\n");
|
||||
+
|
||||
+ sharpsl_rc = kzalloc(sizeof(struct sharpsl_rc), GFP_KERNEL);
|
||||
+ input_dev = input_allocate_device();
|
||||
+ if (!sharpsl_rc || !input_dev) {
|
||||
+ kfree(sharpsl_rc);
|
||||
+ input_free_device(input_dev);
|
||||
+ return -ENOMEM;
|
||||
+ }
|
||||
+
|
||||
+ platform_set_drvdata(pdev, sharpsl_rc);
|
||||
+
|
||||
+ sharpsl_rc->dev = &pdev->dev;
|
||||
+ sharpsl_rc->input = input_dev;
|
||||
+ spin_lock_init(&sharpsl_rc->lock);
|
||||
+
|
||||
+ /* Init Remote Control Timer */
|
||||
+ init_timer(&sharpsl_rc->rctimer);
|
||||
+ sharpsl_rc->rctimer.function = sharpsl_rc_timer_callback;
|
||||
+ sharpsl_rc->rctimer.data = (unsigned long) sharpsl_rc;
|
||||
+
|
||||
+ input_dev->name = "Sharp Remote Control CE-RHX";
|
||||
+ input_dev->phys = "sharpsl_rc/input0";
|
||||
+ input_dev->id.bustype = BUS_HOST;
|
||||
+ input_dev->id.vendor = 0x0001;
|
||||
+ input_dev->id.product = 0x0001;
|
||||
+ input_dev->id.version = 0x0100;
|
||||
+ input_dev->cdev.dev = &pdev->dev;
|
||||
+ input_dev->private = sharpsl_rc;
|
||||
+
|
||||
+ input_dev->evbit[0] = BIT(EV_KEY);
|
||||
+
|
||||
+ for (i = 0; i <= ARRAY_SIZE(remote_keys); i++)
|
||||
+ set_bit(remote_keys[i].key, input_dev->keybit);
|
||||
+
|
||||
+ input_register_device(sharpsl_rc->input);
|
||||
+
|
||||
+ pxa_gpio_mode(REMOTE_GPIO_INT | GPIO_IN);
|
||||
+ ret = request_irq(REMOTE_IRQ_INT,
|
||||
+ sharpsl_rc_interrupt,
|
||||
+ IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED,
|
||||
+ "sharpsl_rc",
|
||||
+ sharpsl_rc);
|
||||
+ if (ret < 0) {
|
||||
+ dev_dbg(&pdev->dev, "Can't get IRQ: %d!\n", i);
|
||||
+ kfree(sharpsl_rc);
|
||||
+ input_free_device(input_dev);
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int sharpsl_rc_remove(struct platform_device *pdev)
|
||||
+{
|
||||
+ struct sharpsl_rc *sharpsl_rc = platform_get_drvdata(pdev);
|
||||
+
|
||||
+ dev_dbg(&pdev->dev, "sharpsl_rc_remove\n");
|
||||
+
|
||||
+ free_irq(REMOTE_IRQ_INT, sharpsl_rc);
|
||||
+ del_timer_sync(&sharpsl_rc->rctimer);
|
||||
+ input_unregister_device(sharpsl_rc->input);
|
||||
+ kfree(sharpsl_rc);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static struct platform_driver sharpsl_rc_driver = {
|
||||
+ .probe = sharpsl_rc_probe,
|
||||
+ .remove = sharpsl_rc_remove,
|
||||
+ .suspend = NULL,
|
||||
+ .resume = NULL,
|
||||
+ .driver = {
|
||||
+ .name = "sharpsl-remote-control",
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+static int __devinit sharpsl_rc_init(void)
|
||||
+{
|
||||
+ printk("sharpsl_rc_init\n");
|
||||
+ return platform_driver_register(&sharpsl_rc_driver);
|
||||
+}
|
||||
+
|
||||
+static void __exit sharpsl_rc_exit(void)
|
||||
+{
|
||||
+ printk("sharpsl_rc_exit\n");
|
||||
+ platform_driver_unregister(&sharpsl_rc_driver);
|
||||
+}
|
||||
+
|
||||
+module_init(sharpsl_rc_init);
|
||||
+module_exit(sharpsl_rc_exit);
|
||||
+
|
||||
+MODULE_AUTHOR("Justin Patrin <papercrane@reversefold.com>");
|
||||
+MODULE_AUTHOR("Richard Purdie <rpurdie@rpsys.net>");
|
||||
+MODULE_DESCRIPTION("SharpSL Remote Control Driver");
|
||||
+MODULE_LICENSE("GPL");
|
||||
Index: linux-2.6.20/drivers/input/keyboard/spitzkbd.c
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/drivers/input/keyboard/spitzkbd.c
|
||||
+++ linux-2.6.20/drivers/input/keyboard/spitzkbd.c
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/slab.h>
|
||||
+#include <linux/kmod.h>
|
||||
|
||||
#include <asm/arch/spitz.h>
|
||||
#include <asm/arch/hardware.h>
|
||||
@@ -279,13 +280,21 @@ static irqreturn_t spitzkbd_hinge_isr(in
|
||||
static int sharpsl_hinge_state;
|
||||
static int hinge_count;
|
||||
|
||||
+void spitzkbd_handle_sharpsl_rc(void *arg) {
|
||||
+ request_module("sharpsl_rc");
|
||||
+}
|
||||
+
|
||||
+DECLARE_WORK(spitzkbd_work, spitzkbd_handle_sharpsl_rc);
|
||||
+
|
||||
static void spitzkbd_hinge_timer(unsigned long data)
|
||||
{
|
||||
struct spitzkbd *spitzkbd_data = (struct spitzkbd *) data;
|
||||
unsigned long state;
|
||||
unsigned long flags;
|
||||
+ unsigned int headphone, remote;
|
||||
|
||||
state = GPLR(SPITZ_GPIO_SWA) & (GPIO_bit(SPITZ_GPIO_SWA)|GPIO_bit(SPITZ_GPIO_SWB));
|
||||
+ state |= (GPLR(SPITZ_GPIO_HP_IN) & GPIO_bit(SPITZ_GPIO_HP_IN));
|
||||
state |= (GPLR(SPITZ_GPIO_AK_INT) & GPIO_bit(SPITZ_GPIO_AK_INT));
|
||||
if (state != sharpsl_hinge_state) {
|
||||
hinge_count = 0;
|
||||
@@ -299,9 +308,18 @@ static void spitzkbd_hinge_timer(unsigne
|
||||
|
||||
input_report_switch(spitzkbd_data->input, SW_LID, ((GPLR(SPITZ_GPIO_SWA) & GPIO_bit(SPITZ_GPIO_SWA)) != 0));
|
||||
input_report_switch(spitzkbd_data->input, SW_TABLET_MODE, ((GPLR(SPITZ_GPIO_SWB) & GPIO_bit(SPITZ_GPIO_SWB)) != 0));
|
||||
- input_report_switch(spitzkbd_data->input, SW_HEADPHONE_INSERT, ((GPLR(SPITZ_GPIO_AK_INT) & GPIO_bit(SPITZ_GPIO_AK_INT)) != 0));
|
||||
+
|
||||
+ headphone = ((GPLR(SPITZ_GPIO_HP_IN) & GPIO_bit(SPITZ_GPIO_HP_IN)) != 0);
|
||||
+ input_report_switch(spitzkbd_data->input, SW_HEADPHONE_INSERT, headphone);
|
||||
+
|
||||
+ remote = headphone && ((GPLR(SPITZ_GPIO_AK_INT) & GPIO_bit(SPITZ_GPIO_AK_INT)) == 0);
|
||||
+ input_report_switch(spitzkbd_data->input, SW_REMOTE_INSERT, remote);
|
||||
input_sync(spitzkbd_data->input);
|
||||
|
||||
+ if (remote) {
|
||||
+ schedule_work(&spitzkbd_work);
|
||||
+ }
|
||||
+
|
||||
spin_unlock_irqrestore(&spitzkbd_data->lock, flags);
|
||||
} else {
|
||||
mod_timer(&spitzkbd_data->htimer, jiffies + msecs_to_jiffies(HINGE_SCAN_INTERVAL));
|
||||
@@ -394,6 +412,7 @@ static int __init spitzkbd_probe(struct
|
||||
set_bit(SW_LID, input_dev->swbit);
|
||||
set_bit(SW_TABLET_MODE, input_dev->swbit);
|
||||
set_bit(SW_HEADPHONE_INSERT, input_dev->swbit);
|
||||
+ set_bit(SW_REMOTE_INSERT, input_dev->swbit);
|
||||
|
||||
err = input_register_device(input_dev);
|
||||
if (err)
|
||||
@@ -431,9 +450,12 @@ static int __init spitzkbd_probe(struct
|
||||
request_irq(SPITZ_IRQ_GPIO_SWB, spitzkbd_hinge_isr,
|
||||
IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
|
||||
"Spitzkbd SWB", spitzkbd);
|
||||
- request_irq(SPITZ_IRQ_GPIO_AK_INT, spitzkbd_hinge_isr,
|
||||
+ request_irq(SPITZ_IRQ_GPIO_HP_IN, spitzkbd_hinge_isr,
|
||||
IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
|
||||
"Spitzkbd HP", spitzkbd);
|
||||
+ request_irq(SPITZ_IRQ_GPIO_AK_INT, spitzkbd_hinge_isr,
|
||||
+ IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED,
|
||||
+ "Spitzkbd HP Type", spitzkbd);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -454,6 +476,7 @@ static int spitzkbd_remove(struct platfo
|
||||
free_irq(SPITZ_IRQ_GPIO_ON_KEY, spitzkbd);
|
||||
free_irq(SPITZ_IRQ_GPIO_SWA, spitzkbd);
|
||||
free_irq(SPITZ_IRQ_GPIO_SWB, spitzkbd);
|
||||
+ free_irq(SPITZ_IRQ_GPIO_HP_IN, spitzkbd);
|
||||
free_irq(SPITZ_IRQ_GPIO_AK_INT, spitzkbd);
|
||||
|
||||
del_timer_sync(&spitzkbd->htimer);
|
||||
Index: linux-2.6.20/arch/arm/mach-pxa/sharpsl.h
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/arch/arm/mach-pxa/sharpsl.h
|
||||
+++ linux-2.6.20/arch/arm/mach-pxa/sharpsl.h
|
||||
@@ -50,15 +50,10 @@ void spitz_wait_hsync(void);
|
||||
|
||||
#define READ_GPIO_BIT(x) (GPLR(x) & GPIO_bit(x))
|
||||
|
||||
-/* MAX1111 Channel Definitions */
|
||||
-#define MAX1111_BATT_VOLT 4u
|
||||
-#define MAX1111_BATT_TEMP 2u
|
||||
-#define MAX1111_ACIN_VOLT 6u
|
||||
-
|
||||
extern struct battery_thresh spitz_battery_levels_acin[];
|
||||
extern struct battery_thresh spitz_battery_levels_noac[];
|
||||
void sharpsl_pm_pxa_init(void);
|
||||
void sharpsl_pm_pxa_remove(void);
|
||||
-int sharpsl_pm_pxa_read_max1111(int channel);
|
||||
+
|
||||
|
||||
|
||||
Index: linux-2.6.20/arch/arm/mach-pxa/sharpsl_pm.c
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/arch/arm/mach-pxa/sharpsl_pm.c
|
||||
+++ linux-2.6.20/arch/arm/mach-pxa/sharpsl_pm.c
|
||||
@@ -135,6 +135,8 @@ int sharpsl_pm_pxa_read_max1111(int chan
|
||||
| MAXCTRL_SGL | MAXCTRL_UNI | MAXCTRL_STR);
|
||||
}
|
||||
|
||||
+EXPORT_SYMBOL(sharpsl_pm_pxa_read_max1111);
|
||||
+
|
||||
void sharpsl_pm_pxa_init(void)
|
||||
{
|
||||
pxa_gpio_mode(sharpsl_pm.machinfo->gpio_acin | GPIO_IN);
|
||||
Index: linux-2.6.20/include/asm-arm/hardware/sharpsl_pm.h
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/include/asm-arm/hardware/sharpsl_pm.h
|
||||
+++ linux-2.6.20/include/asm-arm/hardware/sharpsl_pm.h
|
||||
@@ -104,3 +104,10 @@ irqreturn_t sharpsl_ac_isr(int irq, void
|
||||
irqreturn_t sharpsl_chrg_full_isr(int irq, void *dev_id);
|
||||
irqreturn_t sharpsl_fatal_isr(int irq, void *dev_id);
|
||||
|
||||
+/* MAX1111 Channel Definitions */
|
||||
+#define MAX1111_REMCOM 0u
|
||||
+#define MAX1111_BATT_VOLT 4u
|
||||
+#define MAX1111_BATT_TEMP 2u
|
||||
+#define MAX1111_ACIN_VOLT 6u
|
||||
+
|
||||
+int sharpsl_pm_pxa_read_max1111(int channel);
|
||||
Index: linux-2.6.20/include/linux/input.h
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/include/linux/input.h
|
||||
+++ linux-2.6.20/include/linux/input.h
|
||||
@@ -602,6 +602,7 @@ struct input_absinfo {
|
||||
#define SW_LID 0x00 /* set = lid shut */
|
||||
#define SW_TABLET_MODE 0x01 /* set = tablet mode */
|
||||
#define SW_HEADPHONE_INSERT 0x02 /* set = inserted */
|
||||
+#define SW_REMOTE_INSERT 0x04 /* set = remote */
|
||||
#define SW_MAX 0x0f
|
||||
|
||||
/*
|
||||
Index: linux-2.6.20/arch/arm/mach-pxa/spitz_pm.c
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/arch/arm/mach-pxa/spitz_pm.c
|
||||
+++ linux-2.6.20/arch/arm/mach-pxa/spitz_pm.c
|
||||
@@ -161,6 +161,13 @@ static int spitz_should_wakeup(unsigned
|
||||
if (resume_on_alarm && (PEDR & PWER_RTC))
|
||||
is_resume |= PWER_RTC;
|
||||
|
||||
+ printk("wakeup: PEDR: %x, PKSR: %x, HP_IN: %x, AK_INT: %x\n", PEDR, PKSR, GPIO_bit(SPITZ_GPIO_HP_IN), GPIO_bit(SPITZ_GPIO_AK_INT));
|
||||
+
|
||||
+ //remote/headphone interrupt, wakeup
|
||||
+ if (PEDR == 0 && (PKSR & 0xc0d01) != 0) {
|
||||
+ is_resume |= PWER_RTC;
|
||||
+ }
|
||||
+
|
||||
dev_dbg(sharpsl_pm.dev, "is_resume: %x\n",is_resume);
|
||||
return is_resume;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,208 +0,0 @@
|
||||
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
|
||||
@@ -1,17 +0,0 @@
|
||||
Index: linux-2.6.21/drivers/net/wireless/hostap/hostap_hw.c
|
||||
===================================================================
|
||||
--- linux-2.6.21.orig/drivers/net/wireless/hostap/hostap_hw.c 2007-07-07 12:45:39.000000000 +0100
|
||||
+++ linux-2.6.21/drivers/net/wireless/hostap/hostap_hw.c 2007-07-07 12:47:30.000000000 +0100
|
||||
@@ -2666,6 +2666,12 @@
|
||||
iface = netdev_priv(dev);
|
||||
local = iface->local;
|
||||
|
||||
+ if(dev->base_addr == 0)
|
||||
+ {
|
||||
+ printk(KERN_DEBUG "%s: IRQ before base_addr set\n", dev->name);
|
||||
+ return IRQ_HANDLED;
|
||||
+ }
|
||||
+
|
||||
prism2_io_debug_add(dev, PRISM2_IO_DEBUG_CMD_INTERRUPT, 0, 0);
|
||||
|
||||
if (local->func->card_present && !local->func->card_present(local)) {
|
||||
@@ -1,12 +0,0 @@
|
||||
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);
|
||||
1744
meta/packages/linux/linux-rp-2.6.21/defconfig-akita
vendored
1744
meta/packages/linux/linux-rp-2.6.21/defconfig-akita
vendored
File diff suppressed because it is too large
Load Diff
1606
meta/packages/linux/linux-rp-2.6.21/defconfig-bootcdx86
vendored
1606
meta/packages/linux/linux-rp-2.6.21/defconfig-bootcdx86
vendored
File diff suppressed because it is too large
Load Diff
1787
meta/packages/linux/linux-rp-2.6.21/defconfig-c7x0
vendored
1787
meta/packages/linux/linux-rp-2.6.21/defconfig-c7x0
vendored
File diff suppressed because it is too large
Load Diff
1739
meta/packages/linux/linux-rp-2.6.21/defconfig-collie
vendored
1739
meta/packages/linux/linux-rp-2.6.21/defconfig-collie
vendored
File diff suppressed because it is too large
Load Diff
1166
meta/packages/linux/linux-rp-2.6.21/defconfig-hx2000
vendored
1166
meta/packages/linux/linux-rp-2.6.21/defconfig-hx2000
vendored
File diff suppressed because it is too large
Load Diff
1657
meta/packages/linux/linux-rp-2.6.21/defconfig-poodle
vendored
1657
meta/packages/linux/linux-rp-2.6.21/defconfig-poodle
vendored
File diff suppressed because it is too large
Load Diff
1194
meta/packages/linux/linux-rp-2.6.21/defconfig-qemuarm
vendored
1194
meta/packages/linux/linux-rp-2.6.21/defconfig-qemuarm
vendored
File diff suppressed because it is too large
Load Diff
1568
meta/packages/linux/linux-rp-2.6.21/defconfig-qemux86
vendored
1568
meta/packages/linux/linux-rp-2.6.21/defconfig-qemux86
vendored
File diff suppressed because it is too large
Load Diff
1781
meta/packages/linux/linux-rp-2.6.21/defconfig-spitz
vendored
1781
meta/packages/linux/linux-rp-2.6.21/defconfig-spitz
vendored
File diff suppressed because it is too large
Load Diff
1613
meta/packages/linux/linux-rp-2.6.21/defconfig-tosa
vendored
1613
meta/packages/linux/linux-rp-2.6.21/defconfig-tosa
vendored
File diff suppressed because it is too large
Load Diff
@@ -1,209 +0,0 @@
|
||||
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,
|
||||
@@ -1,90 +0,0 @@
|
||||
---
|
||||
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++;
|
||||
@@ -1,155 +0,0 @@
|
||||
|
||||
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 files changed, 64 insertions(+), 18 deletions(-)
|
||||
|
||||
diff -puN drivers/serial/8250.c~serial-add-support-for-non-standard-xtals-to-16c950-driver drivers/serial/8250.c
|
||||
--- devel/drivers/serial/8250.c~serial-add-support-for-non-standard-xtals-to-16c950-driver 2005-09-12 03:34:57.000000000 -0700
|
||||
+++ devel-akpm/drivers/serial/8250.c 2005-09-12 03:34:57.000000000 -0700
|
||||
@@ -1653,24 +1653,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
|
||||
@@ -1680,7 +1714,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:
|
||||
@@ -1712,8 +1746,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
|
||||
@@ -1817,6 +1856,13 @@ serial8250_set_termios(struct uart_port
|
||||
serial_outp(up, UART_DLM, quot >> 8); /* MS of divisor */
|
||||
|
||||
/*
|
||||
+ * 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.
|
||||
*/
|
||||
_
|
||||
@@ -1,519 +0,0 @@
|
||||
Index: linux-2.6.20/arch/arm/mach-pxa/spitz.c
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/arch/arm/mach-pxa/spitz.c
|
||||
+++ linux-2.6.20/arch/arm/mach-pxa/spitz.c
|
||||
@@ -244,6 +244,13 @@ static struct platform_device spitzkbd_d
|
||||
.id = -1,
|
||||
};
|
||||
|
||||
+/*
|
||||
+ * Spitz Remote Control Device
|
||||
+ */
|
||||
+static struct platform_device sharpsl_rc_device = {
|
||||
+ .name = "sharpsl-remote-control",
|
||||
+ .id = -1,
|
||||
+};
|
||||
|
||||
/*
|
||||
* Spitz LEDs
|
||||
@@ -476,6 +483,7 @@ static struct platform_device *devices[]
|
||||
&spitzscoop_device,
|
||||
&spitzssp_device,
|
||||
&spitzkbd_device,
|
||||
+ &sharpsl_rc_device,
|
||||
&spitzts_device,
|
||||
&spitzbl_device,
|
||||
&spitzled_device,
|
||||
Index: linux-2.6.20/drivers/input/keyboard/Kconfig
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/drivers/input/keyboard/Kconfig
|
||||
+++ linux-2.6.20/drivers/input/keyboard/Kconfig
|
||||
@@ -154,6 +154,17 @@ config KEYBOARD_SPITZ
|
||||
To compile this driver as a module, choose M here: the
|
||||
module will be called spitzkbd.
|
||||
|
||||
+config SHARPSL_RC
|
||||
+ tristate "Sharp SL-Cxx00 Remote Control"
|
||||
+ depends on PXA_SHARPSL
|
||||
+ default y
|
||||
+ help
|
||||
+ Say Y here to enable the remote on the Sharp Zaurus SL-Cxx00,
|
||||
+ SL-C1000, SL-C3000 and Sl-C3100 series of PDAs.
|
||||
+
|
||||
+ To compile this driver as a module, choose M here: the
|
||||
+ module will be called sharpsl_rc.
|
||||
+
|
||||
config KEYBOARD_AMIGA
|
||||
tristate "Amiga keyboard"
|
||||
depends on AMIGA
|
||||
Index: linux-2.6.20/drivers/input/keyboard/Makefile
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/drivers/input/keyboard/Makefile
|
||||
+++ linux-2.6.20/drivers/input/keyboard/Makefile
|
||||
@@ -14,6 +14,7 @@ obj-$(CONFIG_KEYBOARD_NEWTON) += newton
|
||||
obj-$(CONFIG_KEYBOARD_STOWAWAY) += stowaway.o
|
||||
obj-$(CONFIG_KEYBOARD_CORGI) += corgikbd.o
|
||||
obj-$(CONFIG_KEYBOARD_SPITZ) += spitzkbd.o
|
||||
+obj-$(CONFIG_SHARPSL_RC) += sharpsl_rc.o
|
||||
obj-$(CONFIG_KEYBOARD_HIL) += hil_kbd.o
|
||||
obj-$(CONFIG_KEYBOARD_HIL_OLD) += hilkbd.o
|
||||
obj-$(CONFIG_KEYBOARD_OMAP) += omap-keypad.o
|
||||
Index: linux-2.6.20/drivers/input/keyboard/sharpsl_rc.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ linux-2.6.20/drivers/input/keyboard/sharpsl_rc.c
|
||||
@@ -0,0 +1,291 @@
|
||||
+/*
|
||||
+ * Keyboard driver for Sharp Clamshell Models (SL-Cxx00)
|
||||
+ *
|
||||
+ * Copyright (c) 2004-2005 Richard Purdie
|
||||
+ *
|
||||
+ * Based on corgikbd.c and Sharp's RC driver
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License version 2 as
|
||||
+ * published by the Free Software Foundation.
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#define DEBUG 1
|
||||
+#include <linux/delay.h>
|
||||
+#include <linux/platform_device.h>
|
||||
+#include <linux/init.h>
|
||||
+#include <linux/input.h>
|
||||
+#include <linux/interrupt.h>
|
||||
+#include <linux/jiffies.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/slab.h>
|
||||
+
|
||||
+#ifdef CONFIG_MACH_SPITZ
|
||||
+#include <asm/arch/spitz.h>
|
||||
+#endif
|
||||
+#ifdef CONFIG_MACH_CORGI
|
||||
+#include <asm/arch/corgi.h>
|
||||
+#endif
|
||||
+
|
||||
+#include <asm/arch/hardware.h>
|
||||
+#include <asm/arch/pxa-regs.h>
|
||||
+#include <asm/hardware/scoop.h>
|
||||
+#include <asm/arch/sharpsl.h>
|
||||
+#include <asm/hardware/sharpsl_pm.h>
|
||||
+
|
||||
+#define DPRINTK(fmt, args...) dev_dbg(data->dev, fmt "\n", ##args)
|
||||
+
|
||||
+struct remote_control_key {
|
||||
+ unsigned char min;
|
||||
+ unsigned char max;
|
||||
+ unsigned char key;
|
||||
+};
|
||||
+
|
||||
+#ifdef CONFIG_MACH_SPITZ
|
||||
+#define REMOTE_AKIN_PULLUP SPITZ_SCP2_AKIN_PULLUP
|
||||
+#define REMOTE_SCOOP_DEVICE spitzscoop2_device
|
||||
+#define REMOTE_GPIO_INT SPITZ_GPIO_AK_INT
|
||||
+#define REMOTE_IRQ_INT SPITZ_IRQ_GPIO_AK_INT
|
||||
+static struct remote_control_key remote_keys[] = {
|
||||
+ { 25, 35, KEY_STOPCD},
|
||||
+ { 55, 65, KEY_PLAYPAUSE},
|
||||
+ { 85, 95, KEY_NEXTSONG},
|
||||
+ { 115, 125, KEY_VOLUMEUP},
|
||||
+ { 145, 155, KEY_PREVIOUSSONG},
|
||||
+ { 180, 190, KEY_MUTE},
|
||||
+ { 215, 225, KEY_VOLUMEDOWN},
|
||||
+};
|
||||
+#endif
|
||||
+#ifdef CONFIG_MACH_CORGI
|
||||
+#define REMOTE_AKIN_PULLUP CORGI_SCP_AKIN_PULLUP
|
||||
+#define REMOTE_SCOOP_DEVICE corgiscoop_device
|
||||
+#define REMOTE_GPIO_INT CORGI_GPIO_AK_INT
|
||||
+#define REMOTE_IRQ_INT CORGI_IRQ_GPIO_AK_INT
|
||||
+static struct remote_control_key remote_keys[] = {
|
||||
+ //These need to be fixed for the CE-RH1's values
|
||||
+ { 25, 35, KEY_STOPCD},
|
||||
+ { 55, 65, KEY_PLAYPAUSE},
|
||||
+ { 85, 95, KEY_NEXTSONG},
|
||||
+ { 115, 125, KEY_VOLUMEUP},
|
||||
+ { 145, 155, KEY_PREVIOUSSONG},
|
||||
+ { 180, 190, KEY_MUTE},
|
||||
+ { 215, 225, KEY_VOLUMEDOWN},
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
+#define RELEASE_HI 230
|
||||
+#define MAX_EARPHONE 6
|
||||
+#define RC_POLL_MS 10
|
||||
+#define RC_FINISH_MS 500
|
||||
+#define WAIT_STATE 3
|
||||
+#define NOISE_THRESHOLD 100
|
||||
+
|
||||
+struct sharpsl_rc {
|
||||
+ struct input_dev *input;
|
||||
+ struct device *dev;
|
||||
+
|
||||
+ spinlock_t lock;
|
||||
+ struct timer_list rctimer;
|
||||
+ struct timer_list rctimer_finish;
|
||||
+
|
||||
+ unsigned int handling_press;
|
||||
+ unsigned int noise;
|
||||
+ unsigned int state;
|
||||
+ unsigned int last_key;
|
||||
+};
|
||||
+
|
||||
+static int get_remocon_raw(void)
|
||||
+{
|
||||
+ int i, val;
|
||||
+
|
||||
+ val = sharpsl_pm_pxa_read_max1111(MAX1111_REMCOM);
|
||||
+ for (i = 0; i < ARRAY_SIZE(remote_keys); ++i) {
|
||||
+ if (val >= remote_keys[i].min
|
||||
+ && val <= remote_keys[i].max) {
|
||||
+ printk("get_remocon_raw: VAL=%i, KEY=%i\n", val, remote_keys[i].key);
|
||||
+ return remote_keys[i].key;
|
||||
+ }
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static irqreturn_t sharpsl_rc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
+{
|
||||
+ struct sharpsl_rc *data = dev_id;
|
||||
+ DPRINTK("sharpsl_rc_interrupt %d\n", irq);
|
||||
+ if (!data->handling_press) {
|
||||
+ DPRINTK("handling interrupt");
|
||||
+ data->handling_press = 1;
|
||||
+ data->noise = 0;
|
||||
+ data->state = 0;
|
||||
+ data->last_key = 0;
|
||||
+
|
||||
+ reset_scoop_gpio(&REMOTE_SCOOP_DEVICE.dev, REMOTE_AKIN_PULLUP);
|
||||
+
|
||||
+ mod_timer(&data->rctimer, jiffies + msecs_to_jiffies(RC_POLL_MS));
|
||||
+ }
|
||||
+ return IRQ_HANDLED;
|
||||
+}
|
||||
+
|
||||
+static void sharpsl_rc_timer_callback(unsigned long dataPtr)
|
||||
+{
|
||||
+ struct sharpsl_rc *data = (struct sharpsl_rc *) dataPtr;
|
||||
+ int timer = 1;
|
||||
+ int key = get_remocon_raw();
|
||||
+ DPRINTK("timer callback, key: %d", key);
|
||||
+
|
||||
+ //wait for value to stabilize
|
||||
+ if (data->state < WAIT_STATE) {
|
||||
+ if (data->last_key != key) {
|
||||
+ ++data->noise;
|
||||
+ if (data->noise > NOISE_THRESHOLD) {
|
||||
+ DPRINTK("too much noise, bailing");
|
||||
+ timer = 0;
|
||||
+ }
|
||||
+ data->state = 0;
|
||||
+ } else {
|
||||
+ ++data->state;
|
||||
+ }
|
||||
+ data->last_key = key;
|
||||
+
|
||||
+ //stable value, send event
|
||||
+ } else if (data->state == WAIT_STATE) {
|
||||
+ data->noise = 0;
|
||||
+ //non-key returned, skip the rest of the states and bail now
|
||||
+ if (data->last_key == 0) {
|
||||
+ DPRINTK("non-key detected %d, noise: %d", data->last_key, data->noise);
|
||||
+ timer = 0;
|
||||
+ //send button press
|
||||
+ } else {
|
||||
+ DPRINTK("key press detected %d, noise %d", data->last_key, data->noise);
|
||||
+ input_report_key(data->input, data->last_key, 1);
|
||||
+ }
|
||||
+ ++data->state;
|
||||
+
|
||||
+ //wait until key is released
|
||||
+ } else if (data->state < WAIT_STATE * 2) {
|
||||
+ if (key == data->last_key
|
||||
+ && data->noise < NOISE_THRESHOLD) {
|
||||
+ data->state = WAIT_STATE + 1;
|
||||
+ ++data->noise;
|
||||
+ } else {
|
||||
+ ++data->state;
|
||||
+ }
|
||||
+ //key is released, send event
|
||||
+ } else {
|
||||
+ //send button release
|
||||
+ DPRINTK("release key %d", data->last_key);
|
||||
+ input_report_key(data->input, data->last_key, 0);
|
||||
+ timer = 0;
|
||||
+ }
|
||||
+ if (timer) {
|
||||
+ mod_timer(&data->rctimer, jiffies + msecs_to_jiffies(RC_POLL_MS));
|
||||
+ } else {
|
||||
+ set_scoop_gpio(&REMOTE_SCOOP_DEVICE.dev, REMOTE_AKIN_PULLUP);
|
||||
+ data->handling_press = 0;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static int __init sharpsl_rc_probe(struct platform_device *pdev)
|
||||
+{
|
||||
+ struct sharpsl_rc *sharpsl_rc;
|
||||
+ struct input_dev *input_dev;
|
||||
+ int i, ret;
|
||||
+
|
||||
+ dev_dbg(&pdev->dev, "sharpsl_rc_probe\n");
|
||||
+
|
||||
+ sharpsl_rc = kzalloc(sizeof(struct sharpsl_rc), GFP_KERNEL);
|
||||
+ input_dev = input_allocate_device();
|
||||
+ if (!sharpsl_rc || !input_dev) {
|
||||
+ kfree(sharpsl_rc);
|
||||
+ input_free_device(input_dev);
|
||||
+ return -ENOMEM;
|
||||
+ }
|
||||
+
|
||||
+ platform_set_drvdata(pdev, sharpsl_rc);
|
||||
+
|
||||
+ sharpsl_rc->dev = &pdev->dev;
|
||||
+ sharpsl_rc->input = input_dev;
|
||||
+ spin_lock_init(&sharpsl_rc->lock);
|
||||
+
|
||||
+ /* Init Remote Control Timer */
|
||||
+ init_timer(&sharpsl_rc->rctimer);
|
||||
+ sharpsl_rc->rctimer.function = sharpsl_rc_timer_callback;
|
||||
+ sharpsl_rc->rctimer.data = (unsigned long) sharpsl_rc;
|
||||
+
|
||||
+ input_dev->name = "Sharp Remote Control CE-RHX";
|
||||
+ input_dev->phys = "sharpsl_rc/input0";
|
||||
+ input_dev->id.bustype = BUS_HOST;
|
||||
+ input_dev->id.vendor = 0x0001;
|
||||
+ input_dev->id.product = 0x0001;
|
||||
+ input_dev->id.version = 0x0100;
|
||||
+ input_dev->cdev.dev = &pdev->dev;
|
||||
+ input_dev->private = sharpsl_rc;
|
||||
+
|
||||
+ input_dev->evbit[0] = BIT(EV_KEY);
|
||||
+
|
||||
+ for (i = 0; i <= ARRAY_SIZE(remote_keys); i++)
|
||||
+ set_bit(remote_keys[i].key, input_dev->keybit);
|
||||
+
|
||||
+ input_register_device(sharpsl_rc->input);
|
||||
+
|
||||
+ pxa_gpio_mode(REMOTE_GPIO_INT | GPIO_IN);
|
||||
+ ret = request_irq(REMOTE_IRQ_INT,
|
||||
+ sharpsl_rc_interrupt,
|
||||
+ IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED,
|
||||
+ "sharpsl_rc",
|
||||
+ sharpsl_rc);
|
||||
+ if (ret < 0) {
|
||||
+ dev_dbg(&pdev->dev, "Can't get IRQ: %d!\n", i);
|
||||
+ kfree(sharpsl_rc);
|
||||
+ input_free_device(input_dev);
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int sharpsl_rc_remove(struct platform_device *pdev)
|
||||
+{
|
||||
+ struct sharpsl_rc *sharpsl_rc = platform_get_drvdata(pdev);
|
||||
+
|
||||
+ dev_dbg(&pdev->dev, "sharpsl_rc_remove\n");
|
||||
+
|
||||
+ free_irq(REMOTE_IRQ_INT, sharpsl_rc);
|
||||
+ del_timer_sync(&sharpsl_rc->rctimer);
|
||||
+ input_unregister_device(sharpsl_rc->input);
|
||||
+ kfree(sharpsl_rc);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static struct platform_driver sharpsl_rc_driver = {
|
||||
+ .probe = sharpsl_rc_probe,
|
||||
+ .remove = sharpsl_rc_remove,
|
||||
+ .suspend = NULL,
|
||||
+ .resume = NULL,
|
||||
+ .driver = {
|
||||
+ .name = "sharpsl-remote-control",
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+static int __devinit sharpsl_rc_init(void)
|
||||
+{
|
||||
+ printk("sharpsl_rc_init\n");
|
||||
+ return platform_driver_register(&sharpsl_rc_driver);
|
||||
+}
|
||||
+
|
||||
+static void __exit sharpsl_rc_exit(void)
|
||||
+{
|
||||
+ printk("sharpsl_rc_exit\n");
|
||||
+ platform_driver_unregister(&sharpsl_rc_driver);
|
||||
+}
|
||||
+
|
||||
+module_init(sharpsl_rc_init);
|
||||
+module_exit(sharpsl_rc_exit);
|
||||
+
|
||||
+MODULE_AUTHOR("Justin Patrin <papercrane@reversefold.com>");
|
||||
+MODULE_AUTHOR("Richard Purdie <rpurdie@rpsys.net>");
|
||||
+MODULE_DESCRIPTION("SharpSL Remote Control Driver");
|
||||
+MODULE_LICENSE("GPL");
|
||||
Index: linux-2.6.20/drivers/input/keyboard/spitzkbd.c
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/drivers/input/keyboard/spitzkbd.c
|
||||
+++ linux-2.6.20/drivers/input/keyboard/spitzkbd.c
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/slab.h>
|
||||
+#include <linux/kmod.h>
|
||||
|
||||
#include <asm/arch/spitz.h>
|
||||
#include <asm/arch/hardware.h>
|
||||
@@ -279,13 +280,21 @@ static irqreturn_t spitzkbd_hinge_isr(in
|
||||
static int sharpsl_hinge_state;
|
||||
static int hinge_count;
|
||||
|
||||
+void spitzkbd_handle_sharpsl_rc(void *arg) {
|
||||
+ request_module("sharpsl_rc");
|
||||
+}
|
||||
+
|
||||
+DECLARE_WORK(spitzkbd_work, spitzkbd_handle_sharpsl_rc);
|
||||
+
|
||||
static void spitzkbd_hinge_timer(unsigned long data)
|
||||
{
|
||||
struct spitzkbd *spitzkbd_data = (struct spitzkbd *) data;
|
||||
unsigned long state;
|
||||
unsigned long flags;
|
||||
+ unsigned int headphone, remote;
|
||||
|
||||
state = GPLR(SPITZ_GPIO_SWA) & (GPIO_bit(SPITZ_GPIO_SWA)|GPIO_bit(SPITZ_GPIO_SWB));
|
||||
+ state |= (GPLR(SPITZ_GPIO_HP_IN) & GPIO_bit(SPITZ_GPIO_HP_IN));
|
||||
state |= (GPLR(SPITZ_GPIO_AK_INT) & GPIO_bit(SPITZ_GPIO_AK_INT));
|
||||
if (state != sharpsl_hinge_state) {
|
||||
hinge_count = 0;
|
||||
@@ -299,9 +308,18 @@ static void spitzkbd_hinge_timer(unsigne
|
||||
|
||||
input_report_switch(spitzkbd_data->input, SW_LID, ((GPLR(SPITZ_GPIO_SWA) & GPIO_bit(SPITZ_GPIO_SWA)) != 0));
|
||||
input_report_switch(spitzkbd_data->input, SW_TABLET_MODE, ((GPLR(SPITZ_GPIO_SWB) & GPIO_bit(SPITZ_GPIO_SWB)) != 0));
|
||||
- input_report_switch(spitzkbd_data->input, SW_HEADPHONE_INSERT, ((GPLR(SPITZ_GPIO_AK_INT) & GPIO_bit(SPITZ_GPIO_AK_INT)) != 0));
|
||||
+
|
||||
+ headphone = ((GPLR(SPITZ_GPIO_HP_IN) & GPIO_bit(SPITZ_GPIO_HP_IN)) != 0);
|
||||
+ input_report_switch(spitzkbd_data->input, SW_HEADPHONE_INSERT, headphone);
|
||||
+
|
||||
+ remote = headphone && ((GPLR(SPITZ_GPIO_AK_INT) & GPIO_bit(SPITZ_GPIO_AK_INT)) == 0);
|
||||
+ input_report_switch(spitzkbd_data->input, SW_REMOTE_INSERT, remote);
|
||||
input_sync(spitzkbd_data->input);
|
||||
|
||||
+ if (remote) {
|
||||
+ schedule_work(&spitzkbd_work);
|
||||
+ }
|
||||
+
|
||||
spin_unlock_irqrestore(&spitzkbd_data->lock, flags);
|
||||
} else {
|
||||
mod_timer(&spitzkbd_data->htimer, jiffies + msecs_to_jiffies(HINGE_SCAN_INTERVAL));
|
||||
@@ -394,6 +412,7 @@ static int __init spitzkbd_probe(struct
|
||||
set_bit(SW_LID, input_dev->swbit);
|
||||
set_bit(SW_TABLET_MODE, input_dev->swbit);
|
||||
set_bit(SW_HEADPHONE_INSERT, input_dev->swbit);
|
||||
+ set_bit(SW_REMOTE_INSERT, input_dev->swbit);
|
||||
|
||||
err = input_register_device(input_dev);
|
||||
if (err)
|
||||
@@ -431,9 +450,12 @@ static int __init spitzkbd_probe(struct
|
||||
request_irq(SPITZ_IRQ_GPIO_SWB, spitzkbd_hinge_isr,
|
||||
IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
|
||||
"Spitzkbd SWB", spitzkbd);
|
||||
- request_irq(SPITZ_IRQ_GPIO_AK_INT, spitzkbd_hinge_isr,
|
||||
+ request_irq(SPITZ_IRQ_GPIO_HP_IN, spitzkbd_hinge_isr,
|
||||
IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
|
||||
"Spitzkbd HP", spitzkbd);
|
||||
+ request_irq(SPITZ_IRQ_GPIO_AK_INT, spitzkbd_hinge_isr,
|
||||
+ IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED,
|
||||
+ "Spitzkbd HP Type", spitzkbd);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -454,6 +476,7 @@ static int spitzkbd_remove(struct platfo
|
||||
free_irq(SPITZ_IRQ_GPIO_ON_KEY, spitzkbd);
|
||||
free_irq(SPITZ_IRQ_GPIO_SWA, spitzkbd);
|
||||
free_irq(SPITZ_IRQ_GPIO_SWB, spitzkbd);
|
||||
+ free_irq(SPITZ_IRQ_GPIO_HP_IN, spitzkbd);
|
||||
free_irq(SPITZ_IRQ_GPIO_AK_INT, spitzkbd);
|
||||
|
||||
del_timer_sync(&spitzkbd->htimer);
|
||||
Index: linux-2.6.20/arch/arm/mach-pxa/sharpsl.h
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/arch/arm/mach-pxa/sharpsl.h
|
||||
+++ linux-2.6.20/arch/arm/mach-pxa/sharpsl.h
|
||||
@@ -50,15 +50,10 @@ void spitz_wait_hsync(void);
|
||||
|
||||
#define READ_GPIO_BIT(x) (GPLR(x) & GPIO_bit(x))
|
||||
|
||||
-/* MAX1111 Channel Definitions */
|
||||
-#define MAX1111_BATT_VOLT 4u
|
||||
-#define MAX1111_BATT_TEMP 2u
|
||||
-#define MAX1111_ACIN_VOLT 6u
|
||||
-
|
||||
extern struct battery_thresh spitz_battery_levels_acin[];
|
||||
extern struct battery_thresh spitz_battery_levels_noac[];
|
||||
void sharpsl_pm_pxa_init(void);
|
||||
void sharpsl_pm_pxa_remove(void);
|
||||
-int sharpsl_pm_pxa_read_max1111(int channel);
|
||||
+
|
||||
|
||||
|
||||
Index: linux-2.6.20/arch/arm/mach-pxa/sharpsl_pm.c
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/arch/arm/mach-pxa/sharpsl_pm.c
|
||||
+++ linux-2.6.20/arch/arm/mach-pxa/sharpsl_pm.c
|
||||
@@ -135,6 +135,8 @@ int sharpsl_pm_pxa_read_max1111(int chan
|
||||
| MAXCTRL_SGL | MAXCTRL_UNI | MAXCTRL_STR);
|
||||
}
|
||||
|
||||
+EXPORT_SYMBOL(sharpsl_pm_pxa_read_max1111);
|
||||
+
|
||||
void sharpsl_pm_pxa_init(void)
|
||||
{
|
||||
pxa_gpio_mode(sharpsl_pm.machinfo->gpio_acin | GPIO_IN);
|
||||
Index: linux-2.6.20/include/asm-arm/hardware/sharpsl_pm.h
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/include/asm-arm/hardware/sharpsl_pm.h
|
||||
+++ linux-2.6.20/include/asm-arm/hardware/sharpsl_pm.h
|
||||
@@ -104,3 +104,10 @@ irqreturn_t sharpsl_ac_isr(int irq, void
|
||||
irqreturn_t sharpsl_chrg_full_isr(int irq, void *dev_id);
|
||||
irqreturn_t sharpsl_fatal_isr(int irq, void *dev_id);
|
||||
|
||||
+/* MAX1111 Channel Definitions */
|
||||
+#define MAX1111_REMCOM 0u
|
||||
+#define MAX1111_BATT_VOLT 4u
|
||||
+#define MAX1111_BATT_TEMP 2u
|
||||
+#define MAX1111_ACIN_VOLT 6u
|
||||
+
|
||||
+int sharpsl_pm_pxa_read_max1111(int channel);
|
||||
Index: linux-2.6.20/include/linux/input.h
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/include/linux/input.h
|
||||
+++ linux-2.6.20/include/linux/input.h
|
||||
@@ -602,6 +602,7 @@ struct input_absinfo {
|
||||
#define SW_LID 0x00 /* set = lid shut */
|
||||
#define SW_TABLET_MODE 0x01 /* set = tablet mode */
|
||||
#define SW_HEADPHONE_INSERT 0x02 /* set = inserted */
|
||||
+#define SW_REMOTE_INSERT 0x04 /* set = remote */
|
||||
#define SW_MAX 0x0f
|
||||
|
||||
/*
|
||||
Index: linux-2.6.20/arch/arm/mach-pxa/spitz_pm.c
|
||||
===================================================================
|
||||
--- linux-2.6.20.orig/arch/arm/mach-pxa/spitz_pm.c
|
||||
+++ linux-2.6.20/arch/arm/mach-pxa/spitz_pm.c
|
||||
@@ -161,6 +161,13 @@ static int spitz_should_wakeup(unsigned
|
||||
if (resume_on_alarm && (PEDR & PWER_RTC))
|
||||
is_resume |= PWER_RTC;
|
||||
|
||||
+ printk("wakeup: PEDR: %x, PKSR: %x, HP_IN: %x, AK_INT: %x\n", PEDR, PKSR, GPIO_bit(SPITZ_GPIO_HP_IN), GPIO_bit(SPITZ_GPIO_AK_INT));
|
||||
+
|
||||
+ //remote/headphone interrupt, wakeup
|
||||
+ if (PEDR == 0 && (PKSR & 0xc0d01) != 0) {
|
||||
+ is_resume |= PWER_RTC;
|
||||
+ }
|
||||
+
|
||||
dev_dbg(sharpsl_pm.dev, "is_resume: %x\n",is_resume);
|
||||
return is_resume;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,208 +0,0 @@
|
||||
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
|
||||
@@ -1,12 +0,0 @@
|
||||
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);
|
||||
1747
meta/packages/linux/linux-rp-2.6.22/defconfig-akita
vendored
1747
meta/packages/linux/linux-rp-2.6.22/defconfig-akita
vendored
File diff suppressed because it is too large
Load Diff
1607
meta/packages/linux/linux-rp-2.6.22/defconfig-bootcdx86
vendored
1607
meta/packages/linux/linux-rp-2.6.22/defconfig-bootcdx86
vendored
File diff suppressed because it is too large
Load Diff
1789
meta/packages/linux/linux-rp-2.6.22/defconfig-c7x0
vendored
1789
meta/packages/linux/linux-rp-2.6.22/defconfig-c7x0
vendored
File diff suppressed because it is too large
Load Diff
1741
meta/packages/linux/linux-rp-2.6.22/defconfig-collie
vendored
1741
meta/packages/linux/linux-rp-2.6.22/defconfig-collie
vendored
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1168
meta/packages/linux/linux-rp-2.6.22/defconfig-hx2000
vendored
1168
meta/packages/linux/linux-rp-2.6.22/defconfig-hx2000
vendored
File diff suppressed because it is too large
Load Diff
1659
meta/packages/linux/linux-rp-2.6.22/defconfig-poodle
vendored
1659
meta/packages/linux/linux-rp-2.6.22/defconfig-poodle
vendored
File diff suppressed because it is too large
Load Diff
1386
meta/packages/linux/linux-rp-2.6.22/defconfig-qemuarm
vendored
1386
meta/packages/linux/linux-rp-2.6.22/defconfig-qemuarm
vendored
File diff suppressed because it is too large
Load Diff
1753
meta/packages/linux/linux-rp-2.6.22/defconfig-qemux86
vendored
1753
meta/packages/linux/linux-rp-2.6.22/defconfig-qemux86
vendored
File diff suppressed because it is too large
Load Diff
1723
meta/packages/linux/linux-rp-2.6.22/defconfig-spitz
vendored
1723
meta/packages/linux/linux-rp-2.6.22/defconfig-spitz
vendored
File diff suppressed because it is too large
Load Diff
1614
meta/packages/linux/linux-rp-2.6.22/defconfig-tosa
vendored
1614
meta/packages/linux/linux-rp-2.6.22/defconfig-tosa
vendored
File diff suppressed because it is too large
Load Diff
@@ -1,209 +0,0 @@
|
||||
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,
|
||||
33526
meta/packages/linux/linux-rp-2.6.22/htcuni-acx.patch
vendored
33526
meta/packages/linux/linux-rp-2.6.22/htcuni-acx.patch
vendored
File diff suppressed because it is too large
Load Diff
8480
meta/packages/linux/linux-rp-2.6.22/htcuni.patch
vendored
8480
meta/packages/linux/linux-rp-2.6.22/htcuni.patch
vendored
File diff suppressed because it is too large
Load Diff
3373
meta/packages/linux/linux-rp-2.6.22/pda-power.patch
vendored
3373
meta/packages/linux/linux-rp-2.6.22/pda-power.patch
vendored
File diff suppressed because it is too large
Load Diff
@@ -1,90 +0,0 @@
|
||||
---
|
||||
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++;
|
||||
@@ -1,155 +0,0 @@
|
||||
|
||||
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
@@ -1,208 +0,0 @@
|
||||
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
|
||||
@@ -1,125 +0,0 @@
|
||||
require linux-rp.inc
|
||||
|
||||
PR = "r37"
|
||||
|
||||
# Handy URLs
|
||||
# git://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git \
|
||||
# ${KERNELORG_MIRROR}pub/linux/kernel/v2.6/linux-2.6.14.tar.bz2 \
|
||||
# ${KERNELORG_MIRROR}pub/linux/kernel/v2.6/testing/patch-2.6.15-rc1.bz2;patch=1 \
|
||||
# ${KERNELORG_MIRROR}pub/linux/kernel/v2.6/snapshots/patch-2.6.15-rc2-git1.bz2;patch=1 \
|
||||
# ${KERNELORG_MIRROR}pub/linux/kernel/people/alan/linux-2.6/2.6.10/patch-2.6.10-ac8.gz;patch=1 \
|
||||
# ${KERNELORG_MIRROR}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 = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.17.tar.bz2 \
|
||||
${RPSRC}/poodle_partsize-r0.patch;patch=1;status=merged \
|
||||
${RPSRC}/jffs2_longfilename-r1.patch;patch=1;status=merged \
|
||||
${RPSRC}/locomo_led_default_trigger-r0.patch;patch=1;status=merged \
|
||||
${RPSRC}/zaurus_reboot-r3.patch;patch=1;status=merged \
|
||||
${RPSRC}/poodle_mmcsd_fix-r0.patch;patch=1;status=merged \
|
||||
${RPSRC}/poodle_ssp-r1.patch;patch=1;status=merged \
|
||||
${RPSRC}/sharpsl_pm-do-r2.patch;patch=1;status=merged \
|
||||
${RPSRC}/zlib_inflate-r3.patch;patch=1;status=merged \
|
||||
${RPSRC}/logo_rotate_fix-r1.patch;patch=1;status=merged \
|
||||
${RPSRC}/collie_frontlight-r6.patch;patch=1;status=merged \
|
||||
${RPSRC}/input_modalias_fix-r0.patch;patch=1;status=merged \
|
||||
${RPSRC}/spectrumcs_fix-r0.patch;patch=1 \
|
||||
file://00-hostap.patch;patch=1;status=merged \
|
||||
file://10-pcnet.patch;patch=1;status=merged \
|
||||
file://asoc-v0.12.4_2.6.17.patch;patch=1 \
|
||||
${RPSRC}/hx2750_base-r27.patch;patch=1 \
|
||||
${RPSRC}/hx2750_bl-r7.patch;patch=1 \
|
||||
${RPSRC}/hx2750_pcmcia-r2.patch;patch=1 \
|
||||
${RPSRC}/pxa_keys-r5.patch;patch=1 \
|
||||
${RPSRC}/tsc2101-r12.patch;patch=1 \
|
||||
${RPSRC}/hx2750_test1-r4.patch;patch=1 \
|
||||
${RPSRC}/pxa_timerfix-r0.patch;patch=1 \
|
||||
${RPSRC}/input_power-r5.patch;patch=1 \
|
||||
${RPSRC}/pxa25x_cpufreq-r0.patch;patch=1 \
|
||||
${RPSRC}/sharpsl_pm_fixes1-r0.patch;patch=1 \
|
||||
${RPSRC}/pm_changes-r1.patch;patch=1 \
|
||||
${RPSRC}/usb_pxa27x_udc-r0.patch;patch=1 \
|
||||
${RPSRC}/usb_add_epalloc-r1.patch;patch=1 \
|
||||
${RPSRC}/kexec-arm-r3a.patch;patch=1 \
|
||||
${RPSRC}/locomo_kbd_tweak-r1.patch;patch=1 \
|
||||
${RPSRC}/poodle_pm-r3.patch;patch=1 \
|
||||
${RPSRC}/pxafb_changeres-r0.patch;patch=1 \
|
||||
${RPSRC}/poodle_audio-r7.patch;patch=1 \
|
||||
${RPSRC}/pxa27x_overlay-r2.patch;patch=1 \
|
||||
${RPSRC}/w100_extaccel-r0.patch;patch=1 \
|
||||
${RPSRC}/xscale_cache_workaround-r1.patch;patch=1 \
|
||||
file://serial-add-support-for-non-standard-xtals-to-16c950-driver.patch;patch=1 \
|
||||
file://hrw-pcmcia-ids-r5.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 \
|
||||
file://add-oz-release-string.patch;patch=1;status=unmergable \
|
||||
${RPSRC}/mmcsd_large_cards-r0.patch;patch=1;status=hack \
|
||||
${RPSRC}/mmcsd_no_scr_check-r0.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://orinoco-remove-all-which-are-in-hostap-HACK.patch;patch=1;status=unmergable-hack \
|
||||
file://squashfs3.0-2.6.15.patch;patch=1;status=external \
|
||||
file://vesafb-tng-1.0-rc2-git-20060629.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-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 \
|
||||
|
||||
# http://tglx.de/projects/armirq/2.6.17-rc3/patch-2.6.17-rc3-armirq4.patch;patch=1 \
|
||||
# ${RPSRC}/../pxa27x_overlay-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 \
|
||||
${DOSRC}/collie/collie-mcp-r0.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 \
|
||||
${DOSRC}/temp/tmio-tc6393-r6.patch;patch=1 \
|
||||
${CHSRC}/tmio-nand-r5.patch;patch=1 \
|
||||
${DOSRC}/temp/tmio-ohci-r4.patch;patch=1 \
|
||||
${CHSRC}/tmio-fb-r6.patch;patch=1 \
|
||||
${DOSRC}/tosa-keyboard-r17.patch;patch=1 \
|
||||
${DOSRC}/tosa-pxaac97-r6.patch;patch=1 \
|
||||
${DOSRC}/tosa-tmio-r6.patch;patch=1 \
|
||||
${DOSRC}/tosa-power-r17.patch;patch=1 \
|
||||
${DOSRC}/tosa-tmio-lcd-r8.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 \
|
||||
${DOSRC}/sharpsl-pm-postresume-r0.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-r0.patch;patch=1 \
|
||||
file://wm97xx-lcdnoise-r0.patch;patch=1 "
|
||||
# ${DOSRC}/tosa-asoc-r1.patch;patch=1 "
|
||||
|
||||
S = "${WORKDIR}/linux-2.6.17"
|
||||
@@ -1,120 +0,0 @@
|
||||
require linux-rp.inc
|
||||
|
||||
PR = "r20"
|
||||
|
||||
# Handy URLs
|
||||
# git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=ef7d1b244fa6c94fb76d5f787b8629df64ea4046
|
||||
# ${KERNELORG_MIRROR}pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2
|
||||
# ${KERNELORG_MIRROR}pub/linux/kernel/v2.6/testing/linux-2.6.20-rc4.tar.bz2
|
||||
# ${KERNELORG_MIRROR}pub/linux/kernel/v2.6/testing/patch-2.6.18-rc6.bz2;patch=1
|
||||
# ${KERNELORG_MIRROR}pub/linux/kernel/v2.6/snapshots/patch-2.6.18-rc2-git1.bz2;patch=1
|
||||
# ${KERNELORG_MIRROR}pub/linux/kernel/people/alan/linux-2.6/2.6.10/patch-2.6.10-ac8.gz;patch=1
|
||||
# ${KERNELORG_MIRROR}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 = "${KERNELORG_MIRROR}pub/linux/kernel/v2.6/linux-2.6.20.tar.bz2 \
|
||||
${KERNELORG_MIRROR}pub/linux/kernel/v2.6/patch-2.6.20.6.bz2;patch=1 \
|
||||
http://opensource.wolfsonmicro.com/~lg/asoc/asoc-v0.13.3.patch;patch=1;status=merged \
|
||||
${RPSRC}/oprofile_always_bt_arm-r0.patch;patch=1 \
|
||||
${RPSRC}/lzo_kernel-r0.patch;patch=1 \
|
||||
${RPSRC}/lzo_jffs2-r0.patch;patch=1 \
|
||||
${RPSRC}/lzo_crypto-r0a.patch;patch=1 \
|
||||
${RPSRC}/lzo_jffs2_lzomode-r0.patch;patch=1 \
|
||||
${RPSRC}/lzo_jffs2_sysfs-r0.patch;patch=1 \
|
||||
${RPSRC}/hx2750_base-r28.patch;patch=1 \
|
||||
${RPSRC}/hx2750_bl-r8.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-r6.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-r3.patch;patch=1 \
|
||||
${RPSRC}/kexec-arm-r4a.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-r0.patch;patch=1 \
|
||||
${RPSRC}/w100_extmem-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-r0.patch;patch=1;status=hack \
|
||||
${RPSRC}/mmcsd_no_scr_check-r0.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://sharpsl-rc-r1.patch;patch=1 \
|
||||
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-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 = "\
|
||||
${TKSRC}/mtd-sharp-flash-hack-r2.patch;patch=1 \
|
||||
${TKSRC}/ucb1x00-touch-audio-r1.patch;patch=1 \
|
||||
${TKSRC}/mcp-sa11x0-r0.patch;patch=1 \
|
||||
${TKSRC}/sa1100-udc-r2.patch;patch=1 \
|
||||
${TKSRC}/mmc_spi-r4.patch;patch=1 \
|
||||
${TKSRC}/locomo-r0.patch;patch=1 \
|
||||
${TKSRC}/collie-kexec.patch;patch=1 \
|
||||
${TKSRC}/locomo_spi-r3.patch;patch=1 \
|
||||
${TKSRC}/sharpsl_pm.patch;patch=1 \
|
||||
${TKSRC}/collie_pm-2.patch;patch=1 \
|
||||
${TKSRC}/locomokeyb_suspendkey.patch;patch=1 \
|
||||
${TKSRC}/pcmcia_suspend.patch;patch=1 \
|
||||
${TKSRC}/ucb1x00_suspend.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.20"
|
||||
@@ -1,118 +0,0 @@
|
||||
require linux-rp.inc
|
||||
|
||||
PR = "r10"
|
||||
|
||||
DEFAULT_PREFERENCE_collie = "1"
|
||||
|
||||
# Handy URLs
|
||||
# git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=ef7d1b244fa6c94fb76d5f787b8629df64ea4046
|
||||
# ${KERNELORG_MIRROR}pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2
|
||||
# ${KERNELORG_MIRROR}pub/linux/kernel/v2.6/testing/linux-2.6.20-rc4.tar.bz2
|
||||
# ${KERNELORG_MIRROR}pub/linux/kernel/v2.6/testing/patch-2.6.18-rc6.bz2;patch=1
|
||||
# ${KERNELORG_MIRROR}pub/linux/kernel/v2.6/snapshots/patch-2.6.18-rc2-git1.bz2;patch=1
|
||||
# ${KERNELORG_MIRROR}pub/linux/kernel/people/alan/linux-2.6/2.6.10/patch-2.6.10-ac8.gz;patch=1
|
||||
# ${KERNELORG_MIRROR}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 = "${KERNELORG_MIRROR}pub/linux/kernel/v2.6/linux-2.6.21.tar.bz2 \
|
||||
${RPSRC}/lzo_kernel-r0.patch;patch=1 \
|
||||
${RPSRC}/lzo_jffs2-r0.patch;patch=1 \
|
||||
${RPSRC}/lzo_crypto-r1.patch;patch=1 \
|
||||
${RPSRC}/lzo_jffs2_lzomode-r0.patch;patch=1 \
|
||||
${RPSRC}/lzo_jffs2_sysfs-r0.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-r7.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-r4.patch;patch=1 \
|
||||
${RPSRC}/locomo_kbd_tweak-r1.patch;patch=1 \
|
||||
${RPSRC}/poodle_pm-r4.patch;patch=1 \
|
||||
${RPSRC}/pxa27x_overlay-r5.patch;patch=1 \
|
||||
${RPSRC}/w100_extaccel-r0.patch;patch=1 \
|
||||
${RPSRC}/asoc_fix_typo-r0.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-r0.patch;patch=1;status=hack \
|
||||
${RPSRC}/mmcsd_no_scr_check-r0.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://connectplus-prevent-oops-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://sharpsl-rc-r1.patch;patch=1 \
|
||||
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
|
||||
|
||||
SRC_URI_append_collie = "\
|
||||
${TKSRC}/mtd-sharp-flash-hack-r2.patch;patch=1 \
|
||||
${TKSRC}/ucb1x00-touch-audio-r1.patch;patch=1 \
|
||||
${TKSRC}/mcp-sa11x0-r0.patch;patch=1 \
|
||||
${TKSRC}/sa1100-udc-r2.patch;patch=1 \
|
||||
${TKSRC}/mmc_spi-r4.patch;patch=1 \
|
||||
${TKSRC}/locomo-r0.patch;patch=1 \
|
||||
${TKSRC}/collie-kexec.patch;patch=1 \
|
||||
${TKSRC}/locomo_spi-r4.patch;patch=1 \
|
||||
${TKSRC}/sharpsl_pm-r2.patch;patch=1 \
|
||||
${TKSRC}/collie_pm-r2.patch;patch=1 \
|
||||
${TKSRC}/locomokeyb_suspendkey-2.patch;patch=1 \
|
||||
${TKSRC}/pcmcia_suspend.patch;patch=1 \
|
||||
${TKSRC}/ucb1x00_suspend.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"
|
||||
@@ -1,115 +0,0 @@
|
||||
require linux-rp.inc
|
||||
|
||||
PR = "r11"
|
||||
|
||||
# Handy URLs
|
||||
# git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=ef7d1b244fa6c94fb76d5f787b8629df64ea4046
|
||||
# ${KERNELORG_MIRROR}pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2
|
||||
# ${KERNELORG_MIRROR}pub/linux/kernel/v2.6/testing/linux-2.6.20-rc4.tar.bz2
|
||||
# ${KERNELORG_MIRROR}pub/linux/kernel/v2.6/testing/patch-2.6.18-rc6.bz2;patch=1
|
||||
# ${KERNELORG_MIRROR}pub/linux/kernel/v2.6/snapshots/patch-2.6.18-rc2-git1.bz2;patch=1
|
||||
# ${KERNELORG_MIRROR}pub/linux/kernel/people/alan/linux-2.6/2.6.10/patch-2.6.10-ac8.gz;patch=1
|
||||
# ${KERNELORG_MIRROR}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 = "${KERNELORG_MIRROR}pub/linux/kernel/v2.6/linux-2.6.22.tar.bz2 \
|
||||
${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}/lzo_fix-r0.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-r9.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-r4.patch;patch=1 \
|
||||
${RPSRC}/pxa27x_overlay-r5.patch;patch=1 \
|
||||
${RPSRC}/w100_extaccel-r1.patch;patch=1 \
|
||||
${RPSRC}/w100_extmem-r1.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://htcuni.patch;patch=1 \
|
||||
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://pda-power.patch;patch=1 \
|
||||
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-htcuniversal \
|
||||
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 "
|
||||
|
||||
SRC_URI_append_htcuniversal ="file://htcuni-acx.patch;patch=1;status=external"
|
||||
|
||||
S = "${WORKDIR}/linux-2.6.22"
|
||||
Reference in New Issue
Block a user