linux-rp: Add 2.6.20-rc4

git-svn-id: https://svn.o-hand.com/repos/poky/trunk@1133 311d38ba-8fff-0310-9ca6-ca027cbcb966
This commit is contained in:
Richard Purdie 2007-01-09 00:00:30 +00:00
parent 1cacbe3d99
commit 69177da01d
23 changed files with 22708 additions and 4 deletions

View File

@ -0,0 +1,45 @@
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);

View File

@ -0,0 +1,27 @@
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);

View File

@ -0,0 +1,28 @@
---
Makefile | 1 +
init/version.c | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
Index: git/init/version.c
===================================================================
--- git.orig/init/version.c 2006-10-31 16:09:47.000000000 +0000
+++ git/init/version.c 2006-10-31 16:24:54.000000000 +0000
@@ -35,5 +35,5 @@ struct uts_namespace init_uts_ns = {
EXPORT_SYMBOL_GPL(init_uts_ns);
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";
Index: git/Makefile
===================================================================
--- git.orig/Makefile 2006-10-31 16:08:28.000000000 +0000
+++ git/Makefile 2006-10-31 16:27:02.000000000 +0000
@@ -905,6 +905,7 @@ endef
define filechk_version.h
(echo \#define LINUX_VERSION_CODE $(shell \
expr $(VERSION) \* 65536 + $(PATCHLEVEL) \* 256 + $(SUBLEVEL)); \
+ echo \#define OPENZAURUS_RELEASE \"$(OPENZAURUS_RELEASE)\"; \
echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))';)
endef

View File

@ -0,0 +1,12 @@
Index: linux-2.6.13/drivers/ide/legacy/ide-cs.c
===================================================================
--- linux-2.6.13.orig/drivers/ide/legacy/ide-cs.c 2005-09-01 22:43:46.000000000 +0100
+++ linux-2.6.13/drivers/ide/legacy/ide-cs.c 2005-09-01 22:45:46.000000000 +0100
@@ -488,7 +488,6 @@
PCMCIA_DEVICE_PROD_ID123("KODAK Picture Card ", "KODAK ", "V100K", 0x94a0d8f3, 0xe4fc3ea0, 0xe5e7eed4),
PCMCIA_DEVICE_PROD_ID1("STI Flash", 0xe4a13209),
PCMCIA_DEVICE_PROD_ID12("STI", "Flash 5.0", 0xbf2df18d, 0x8cb57a0e),
- PCMCIA_MFC_DEVICE_PROD_ID12(1, "SanDisk", "ConnectPlus", 0x7a954bd9, 0x74be00c6),
PCMCIA_DEVICE_NULL,
};
MODULE_DEVICE_TABLE(pcmcia, ide_ids);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,54 @@
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>
---
Patch follow kernel version 2.6.18
Please Cc: me - I'm not subscribed to linux-pcmcia or linux-kernel
ide-cs.c | 5 +++++
1 file changed, 5 insertions(+)
Index: linux-2.6/drivers/ide/legacy/ide-cs.c
===================================================================
--- linux-2.6.orig/drivers/ide/legacy/ide-cs.c 2006-08-23 11:02:37.958306000 +0200
+++ linux-2.6/drivers/ide/legacy/ide-cs.c 2006-09-25 16:45:35.765780000 +0200
@@ -398,12 +398,17 @@
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),

View File

@ -0,0 +1,88 @@
This patch should resolve problem when people get eth0 (orinoco_cs) instead of wlan0 (hostap_cs)
with their WiFi cards.
Patch will NEVER been accepted upstream.
Signed-off-by: Marcin Juszkiewicz <openembedded@hrw.one.pl>
Index: linux/drivers/net/wireless/orinoco_cs.c
===================================================================
--- linux.orig/drivers/net/wireless/orinoco_cs.c 2006-08-23 16:04:10.000000000 +0200
+++ linux/drivers/net/wireless/orinoco_cs.c 2006-08-23 16:17:43.000000000 +0200
@@ -453,33 +453,21 @@
"Pavel Roskin <proski@gnu.org>, et al)";
static struct pcmcia_device_id orinoco_cs_ids[] = {
- PCMCIA_DEVICE_MANF_CARD(0x000b, 0x7100), /* SonicWALL Long Range Wireless Card */
- PCMCIA_DEVICE_MANF_CARD(0x000b, 0x7300), /* Sohoware NCP110, Philips 802.11b */
PCMCIA_DEVICE_MANF_CARD(0x0089, 0x0002), /* AnyPoint(TM) Wireless II PC Card */
- PCMCIA_DEVICE_MANF_CARD(0x0101, 0x0777), /* 3Com AirConnect PCI 777A */
- PCMCIA_DEVICE_MANF_CARD(0x0126, 0x8000), /* PROXIM RangeLAN-DS/LAN PC CARD */
PCMCIA_DEVICE_MANF_CARD(0x0138, 0x0002), /* Compaq WL100 11 Mbps Wireless Adapter */
PCMCIA_DEVICE_MANF_CARD(0x0156, 0x0002), /* Lucent Orinoco and old Intersil */
PCMCIA_DEVICE_MANF_CARD(0x016b, 0x0001), /* Ericsson WLAN Card C11 */
PCMCIA_DEVICE_MANF_CARD(0x01eb, 0x080a), /* Nortel Networks eMobility 802.11 Wireless Adapter */
PCMCIA_DEVICE_MANF_CARD(0x01ff, 0x0008), /* Intermec MobileLAN 11Mbps 802.11b WLAN Card */
- PCMCIA_DEVICE_MANF_CARD(0x0250, 0x0002), /* Samsung SWL2000-N 11Mb/s WLAN Card */
PCMCIA_DEVICE_MANF_CARD(0x0261, 0x0002), /* AirWay 802.11 Adapter (PCMCIA) */
PCMCIA_DEVICE_MANF_CARD(0x0268, 0x0001), /* ARtem Onair */
PCMCIA_DEVICE_MANF_CARD(0x026f, 0x0305), /* Buffalo WLI-PCM-S11 */
- PCMCIA_DEVICE_MANF_CARD(0x0274, 0x1612), /* Linksys WPC11 Version 2.5 */
- PCMCIA_DEVICE_MANF_CARD(0x0274, 0x1613), /* Linksys WPC11 Version 3 */
- PCMCIA_DEVICE_MANF_CARD(0x028a, 0x0002), /* Compaq HNW-100 11 Mbps Wireless Adapter */
PCMCIA_DEVICE_MANF_CARD(0x028a, 0x0673), /* Linksys WCF12 Wireless CompactFlash Card */
- PCMCIA_DEVICE_MANF_CARD(0x02aa, 0x0002), /* ASUS SpaceLink WL-100 */
PCMCIA_DEVICE_MANF_CARD(0x02ac, 0x0002), /* SpeedStream SS1021 Wireless Adapter */
PCMCIA_DEVICE_MANF_CARD(0x14ea, 0xb001), /* PLANEX RoadLannerWave GW-NS11H */
- PCMCIA_DEVICE_MANF_CARD(0x50c2, 0x7300), /* Airvast WN-100 */
PCMCIA_DEVICE_MANF_CARD(0x9005, 0x0021), /* Adaptec Ultra Wireless ANW-8030 */
PCMCIA_DEVICE_MANF_CARD(0xc001, 0x0008), /* CONTEC FLEXSCAN/FX-DDS110-PCC */
PCMCIA_DEVICE_MANF_CARD(0xc250, 0x0002), /* Conceptronic CON11Cpro, EMTAC A2424i */
- PCMCIA_DEVICE_MANF_CARD(0xd601, 0x0002), /* Safeway 802.11b, ZCOMAX AirRunner/XI-300 */
- PCMCIA_DEVICE_MANF_CARD(0xd601, 0x0005), /* D-Link DCF660, Sandisk Connect SDWCFB-000 */
PCMCIA_DEVICE_PROD_ID12(" ", "IEEE 802.11 Wireless LAN/PC Card", 0x3b6e20c8, 0xefccafe9),
PCMCIA_DEVICE_PROD_ID12("3Com", "3CRWE737A AirConnect Wireless LAN PC Card", 0x41240e5b, 0x56010af3),
PCMCIA_DEVICE_PROD_ID12("ACTIONTEC", "PRISM Wireless LAN PC Card", 0x393089da, 0xa71e69d5),
@@ -487,31 +475,25 @@
PCMCIA_DEVICE_PROD_ID123("AIRVAST", "IEEE 802.11b Wireless PCMCIA Card", "HFA3863", 0xea569531, 0x4bcb9645, 0x355cb092),
PCMCIA_DEVICE_PROD_ID12("Allied Telesyn", "AT-WCL452 Wireless PCMCIA Radio", 0x5cd01705, 0x4271660f),
PCMCIA_DEVICE_PROD_ID12("ASUS", "802_11b_PC_CARD_25", 0x78fc06ee, 0xdb9aa842),
- PCMCIA_DEVICE_PROD_ID12("ASUS", "802_11B_CF_CARD_25", 0x78fc06ee, 0x45a50c1e),
PCMCIA_DEVICE_PROD_ID12("Avaya Communication", "Avaya Wireless PC Card", 0xd8a43b78, 0x0d341169),
PCMCIA_DEVICE_PROD_ID12("BENQ", "AWL100 PCMCIA ADAPTER", 0x35dadc74, 0x01f7fedb),
PCMCIA_DEVICE_PROD_ID12("BUFFALO", "WLI-PCM-L11G", 0x2decece3, 0xf57ca4b3),
- PCMCIA_DEVICE_PROD_ID12("BUFFALO", "WLI-CF-S11G", 0x2decece3, 0x82067c18),
PCMCIA_DEVICE_PROD_ID12("Cabletron", "RoamAbout 802.11 DS", 0x32d445f5, 0xedeffd90),
- PCMCIA_DEVICE_PROD_ID12("Compaq", "WL200_11Mbps_Wireless_PCI_Card", 0x54f7c49c, 0x15a75e5b),
PCMCIA_DEVICE_PROD_ID123("corega", "WL PCCL-11", "ISL37300P", 0x0a21501a, 0x59868926, 0xc9049a39),
PCMCIA_DEVICE_PROD_ID12("corega K.K.", "Wireless LAN PCC-11", 0x5261440f, 0xa6405584),
PCMCIA_DEVICE_PROD_ID12("corega K.K.", "Wireless LAN PCCA-11", 0x5261440f, 0xdf6115f9),
PCMCIA_DEVICE_PROD_ID12("corega_K.K.", "Wireless_LAN_PCCB-11", 0x29e33311, 0xee7a27ae),
PCMCIA_DEVICE_PROD_ID12("D", "Link DRC-650 11Mbps WLAN Card", 0x71b18589, 0xf144e3ac),
- PCMCIA_DEVICE_PROD_ID12("D", "Link DWL-650 11Mbps WLAN Card", 0x71b18589, 0xb6f1b0ab),
PCMCIA_DEVICE_PROD_ID12("D-Link Corporation", "D-Link DWL-650H 11Mbps WLAN Adapter", 0xef544d24, 0xcd8ea916),
PCMCIA_DEVICE_PROD_ID12("Digital Data Communications", "WPC-0100", 0xfdd73470, 0xe0b6f146),
PCMCIA_DEVICE_PROD_ID12("ELSA", "AirLancer MC-11", 0x4507a33a, 0xef54f0e3),
PCMCIA_DEVICE_PROD_ID12("HyperLink", "Wireless PC Card 11Mbps", 0x56cc3f1a, 0x0bcf220c),
PCMCIA_DEVICE_PROD_ID123("Instant Wireless ", " Network PC CARD", "Version 01.02", 0x11d901af, 0x6e9bd926, 0x4b74baa0),
PCMCIA_DEVICE_PROD_ID12("Intel", "PRO/Wireless 2011 LAN PC Card", 0x816cc815, 0x07f58077),
- PCMCIA_DEVICE_PROD_ID12("INTERSIL", "HFA384x/IEEE", 0x74c5e40d, 0xdb472a18),
PCMCIA_DEVICE_PROD_ID12("INTERSIL", "I-GATE 11M PC Card / PC Card plus", 0x74c5e40d, 0x8304ff77),
PCMCIA_DEVICE_PROD_ID12("Intersil", "PRISM 2_5 PCMCIA ADAPTER", 0x4b801a17, 0x6345a0bf),
PCMCIA_DEVICE_PROD_ID123("Intersil", "PRISM Freedom PCMCIA Adapter", "ISL37100P", 0x4b801a17, 0xf222ec2d, 0x630d52b2),
PCMCIA_DEVICE_PROD_ID12("LeArtery", "SYNCBYAIR 11Mbps Wireless LAN PC Card", 0x7e3b326a, 0x49893e92),
- PCMCIA_DEVICE_PROD_ID12("Linksys", "Wireless CompactFlash Card", 0x0733cc81, 0x0c52f395),
PCMCIA_DEVICE_PROD_ID12("Lucent Technologies", "WaveLAN/IEEE", 0x23eb9949, 0xc562e72a),
PCMCIA_DEVICE_PROD_ID12("MELCO", "WLI-PCM-L11", 0x481e0094, 0x7360e410),
PCMCIA_DEVICE_PROD_ID12("MELCO", "WLI-PCM-L11G", 0x481e0094, 0xf57ca4b3),
@@ -529,10 +511,8 @@
PCMCIA_DEVICE_PROD_ID12("PROXIM", "LAN PCI CARD HARMONY 80211B", 0xc6536a5e, 0x9f494e26),
PCMCIA_DEVICE_PROD_ID12("SAMSUNG", "11Mbps WLAN Card", 0x43d74cb4, 0x579bd91b),
PCMCIA_DEVICE_PROD_ID12("SMC", "SMC2532W-B EliteConnect Wireless Adapter", 0xc4f8b18b, 0x196bd757),
- PCMCIA_DEVICE_PROD_ID12("SMC", "SMC2632W", 0xc4f8b18b, 0x474a1f2a),
PCMCIA_DEVICE_PROD_ID12("Symbol Technologies", "LA4111 Spectrum24 Wireless LAN PC Card", 0x3f02b4d6, 0x3663cb0e),
PCMCIA_DEVICE_PROD_ID123("The Linksys Group, Inc.", "Instant Wireless Network PC Card", "ISL37300P", 0xa5f472c2, 0x590eb502, 0xc9049a39),
- PCMCIA_DEVICE_PROD_ID12("ZoomAir 11Mbps High", "Rate wireless Networking", 0x273fe3db, 0x32a1eaee),
PCMCIA_DEVICE_NULL,
};
MODULE_DEVICE_TABLE(pcmcia, orinoco_cs_ids);

View File

@ -0,0 +1,80 @@
---
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: git/drivers/serial/8250.c
===================================================================
--- git.orig/drivers/serial/8250.c 2006-10-31 16:29:50.000000000 +0000
+++ git/drivers/serial/8250.c 2006-10-31 16:29:53.000000000 +0000
@@ -2429,7 +2429,12 @@ static struct uart_driver serial8250_reg
.driver_name = "serial",
.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: git/drivers/serial/serial_core.c
===================================================================
--- git.orig/drivers/serial/serial_core.c 2006-10-31 16:09:17.000000000 +0000
+++ git/drivers/serial/serial_core.c 2006-10-31 16:29:53.000000000 +0000
@@ -2183,6 +2183,7 @@ int uart_register_driver(struct uart_dri
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: git/include/linux/serial_core.h
===================================================================
--- git.orig/include/linux/serial_core.h 2006-10-31 16:09:45.000000000 +0000
+++ git/include/linux/serial_core.h 2006-10-31 16:30:36.000000000 +0000
@@ -339,6 +339,7 @@ struct uart_driver {
struct module *owner;
const char *driver_name;
const char *dev_name;
+ int name_base;
int major;
int minor;
int nr;
Index: git/drivers/serial/serial_cs.c
===================================================================
--- git.orig/drivers/serial/serial_cs.c 2006-10-31 16:09:17.000000000 +0000
+++ git/drivers/serial/serial_cs.c 2006-10-31 16:29:53.000000000 +0000
@@ -390,7 +390,7 @@ static int setup_serial(struct pcmcia_de
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 @@ static int setup_serial(struct pcmcia_de
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++;

View File

@ -0,0 +1,155 @@
From: Petr Vandrovec <vandrove@vc.cvut.cz>
Patch below adds support for using different prescaler than 16 for 16c950
chips. This is needed for using Fujitsu-Siemens Connect2Air compact-flash
card, which comes (apparently) with 806kHz clocks, and so you have to
program prescaler for division by 7, and DLAB to 1, to get 115200Bd.
To get card properly running you also have to add lines below to
/etc/pcmcia/serial.opts so kernel knows that base speed is not 115200 but
50400 (50400 * 16 = 806400; 806400 / 7 = 115200). As I've found no code
specifying baud_rate in serial_cs, I assume that specifying it in
serial.opts is right way to do this type of things.
Patch also fixes problem that for UPF_MAGIC_MULTIPLIER maximum possible
baud rate passed to uart code was uartclk / 16 while correct value for
these devices (and for 16c950) is uartclk / 4.
Patch also fixes problem that for UPF_MAGIC_MULTIPLIER devices with
baud_rate 19200 or 9600 spd_cust did not work correctly. Not that such
devices exist, but we should not ignore spd_cust, user probably knows why
he asked for spd_cust.
serial.opts:
case "$MANFID-$FUNCID-$PRODID_1-$PRODID_2-$PRODID_3-$PRODID_4" in
'0279,950b-2-GPRS Modem---')
SERIAL_OPTS="baud_base 50400"
;;
esac
Cc: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---
drivers/serial/8250.c | 82 +++++++++++++++++++++++++++++++++++++++-----------
1 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

View File

@ -0,0 +1,208 @@
Index: linux-tosa/drivers/input/touchscreen/wm9712.c
===================================================================
--- linux-tosa.orig/drivers/input/touchscreen/wm9712.c 2006-08-29 16:52:36.008543280 +0100
+++ linux-tosa/drivers/input/touchscreen/wm9712.c 2006-08-29 16:52:50.923275896 +0100
@@ -1,7 +1,7 @@
/*
* wm9712.c -- Codec driver for Wolfson WM9712 AC97 Codecs.
*
- * Copyright 2003, 2004, 2005 Wolfson Microelectronics PLC.
+ * Copyright 2003, 2004, 2005, 2006 Wolfson Microelectronics PLC.
* Author: Liam Girdwood
* liam.girdwood@wolfsonmicro.com or linux@wolfsonmicro.com
* Parts Copyright : Ian Molton <spyro@f2s.com>
@@ -13,6 +13,12 @@
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
+ * Revision history
+ * 4th Jul 2005 Initial version.
+ * 29th Aug 2006 Mike Arthur <mike@mikearthur.co.uk>
+ * Added fixes for Sharp SL-6000 (Tosa) LCD noise causing
+ * touchscreen interference.
+ *
*/
#include <linux/module.h>
@@ -28,6 +34,10 @@
#define WM9705_VERSION "0.60"
#define DEFAULT_PRESSURE 0xb0c0
+#define CCNT(a) asm volatile ("mrc p14, 0, %0, C1, C1, 0" : "=r"(a))
+#define CCNT_ON() asm("mcr p14, 0, %0, C0, C0, 0" : : "r"(1))
+#define CCNT_OFF() asm("mcr p14, 0, %0, C0, C0, 0" : : "r"(1))
+
/*
* Debug
*/
@@ -243,6 +253,36 @@
return wm->dig[2] & WM9712_PDEN;
}
+
+#ifdef CONFIG_MACH_TOSA
+/* On the Sharp SL-6000 (Tosa), due to a noisy LCD, we need to perform a wait
+ * before sampling the Y axis of the touchscreen */
+static inline void wm9712_lcd_sync_on(struct wm97xx* wm, int adcsel) {
+ unsigned long timer1 = 0, timer2 = 0, wait_time = 0;
+ if (adcsel == WM97XX_ADCSEL_Y) {
+ wait_time = wm97xx_calc_lcd_waittime(wm);
+
+ CCNT_ON();
+
+ if (wait_time) {
+ /* wait for LCD rising edge */
+ wm_machinfo->wait_hsync();
+ /* get clock */
+ CCNT(timer1);
+ CCNT(timer2);
+
+ while ((timer2 - timer1) < wait_time) {
+ CCNT(timer2);
+ }
+ }
+ }
+}
+
+static inline void wm9712_lcd_sync_off(void) {
+ CCNT_OFF();
+}
+#endif
+
/*
* Read a sample from the WM9712 adc in polling mode.
*/
@@ -260,6 +300,9 @@
/* set up digitiser */
if (adcsel & 0x8000)
adcsel = ((adcsel & 0x7fff) + 3) << 12;
+ #ifdef CONFIG_MACH_TOSA
+ wm9712_lcd_sync_on(wm, adcsel);
+ #endif
wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, adcsel | WM97XX_POLL | WM97XX_DELAY(delay));
/* wait 3 AC97 time slots + delay for conversion */
@@ -282,6 +325,10 @@
*sample = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
+ #ifdef CONFIG_MACH_TOSA
+ wm9712_lcd_sync_off();
+ #endif
+
/* check we have correct sample */
if ((*sample & WM97XX_ADCSEL_MASK) != adcsel) {
dbg ("adc wrong sample, read %x got %x", adcsel,
@@ -303,11 +350,12 @@
static int wm9712_poll_touch(struct wm97xx* wm, struct wm97xx_data *data)
{
int rc;
-
if ((rc = wm9712_poll_sample(wm, WM97XX_ADCSEL_X, &data->x)) != RC_VALID)
return rc;
+
if ((rc = wm9712_poll_sample(wm, WM97XX_ADCSEL_Y, &data->y)) != RC_VALID)
return rc;
+
if (pil && !five_wire) {
if ((rc = wm9712_poll_sample(wm, WM97XX_ADCSEL_PRES, &data->p)) != RC_VALID)
return rc;
Index: linux-tosa/drivers/input/touchscreen/wm97xx-core.c
===================================================================
--- linux-tosa.orig/drivers/input/touchscreen/wm97xx-core.c 2006-08-29 16:52:36.008543280 +0100
+++ linux-tosa/drivers/input/touchscreen/wm97xx-core.c 2006-08-29 16:52:50.924275744 +0100
@@ -2,7 +2,7 @@
* wm97xx-core.c -- Touch screen driver core for Wolfson WM9705, WM9712
* and WM9713 AC97 Codecs.
*
- * Copyright 2003, 2004, 2005 Wolfson Microelectronics PLC.
+ * Copyright 2003, 2004, 2005, 2006 Wolfson Microelectronics PLC.
* Author: Liam Girdwood
* liam.girdwood@wolfsonmicro.com or linux@wolfsonmicro.com
* Parts Copyright : Ian Molton <spyro@f2s.com>
@@ -67,6 +67,9 @@
* GPIOs) and 2.6 power management.
* 29th Nov 2004 Added WM9713 support.
* 4th Jul 2005 Moved codec specific code out to seperate files.
+ * 29th Aug 2006 Mike Arthur <mike@mikearthur.co.uk>
+ * Added fixes for Sharp SL-6000 (Tosa) LCD noise causing
+ * touchscreen interference.
*/
#include <linux/module.h>
@@ -94,6 +97,7 @@
static DECLARE_MUTEX(gpio_sem);
static LIST_HEAD(wm97xx_misc_list);
static struct wm97xx* wm_codec = NULL;
+struct wm97xx_machinfo *wm_machinfo;
/*
* WM97xx - enable/disable AUX ADC sysfs
@@ -832,6 +836,23 @@
mdev->remove(wm_codec);
}
+#ifdef CONFIG_MACH_TOSA
+/* On the Sharp SL-6000 (Tosa), due to a noisy LCD, we need to perform a wait
+ * before sampling the Y axis of the touchscreen */
+unsigned long wm97xx_calc_lcd_waittime(struct wm97xx *wm) {
+ unsigned long hsync_time = wm_machinfo->get_hsync_time();
+ return hsync_time;
+}
+
+void wm97xx_set_machinfo(struct wm97xx_machinfo *machinfo) {
+ wm_machinfo = machinfo;
+}
+
+void wm97xx_unset_machinfo() {
+ wm_machinfo = NULL;
+}
+#endif
+
static struct device_driver wm97xx_driver = {
.name = "ac97",
.bus = &ac97_bus_type,
@@ -861,6 +882,9 @@
EXPORT_SYMBOL_GPL(wm97xx_reg_write);
EXPORT_SYMBOL_GPL(wm97xx_register_misc_dev);
EXPORT_SYMBOL_GPL(wm97xx_unregister_misc_dev);
+EXPORT_SYMBOL_GPL(wm97xx_calc_lcd_waittime);
+EXPORT_SYMBOL_GPL(wm97xx_set_machinfo);
+EXPORT_SYMBOL_GPL(wm97xx_unset_machinfo);
module_init(wm97xx_init);
module_exit(wm97xx_exit);
Index: linux-tosa/include/linux/wm97xx.h
===================================================================
--- linux-tosa.orig/include/linux/wm97xx.h 2006-08-29 16:52:36.008543280 +0100
+++ linux-tosa/include/linux/wm97xx.h 2006-08-29 16:52:50.924275744 +0100
@@ -207,6 +207,7 @@
struct wm97xx;
extern struct wm97xx_codec_drv wm97xx_codec;
+extern struct wm97xx_machinfo *wm_machinfo;
/*
* Codec driver interface - allows mapping to WM9705/12/13 and newer codecs
@@ -253,6 +254,11 @@
struct list_head list;
};
+struct wm97xx_machinfo {
+ unsigned long (*get_hsync_time)(void);
+ void (*wait_hsync)(void);
+};
+
int wm97xx_register_misc_dev(struct wm97xx_misc_dev* mdev);
void wm97xx_unregister_misc_dev(struct wm97xx_misc_dev* mdev);
@@ -281,4 +287,9 @@
int wm97xx_acc_startup(struct wm97xx* wm);
void wm97xx_acc_shutdown(struct wm97xx* wm);
+
+unsigned long wm97xx_calc_lcd_waittime(struct wm97xx *wm);
+void wm97xx_set_machinfo(struct wm97xx_machinfo *machinfo);
+void wm97xx_unset_machinfo(void);
+
#endif

View File

@ -48,7 +48,7 @@ SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.tar.bz2 \
${RPSRC}/pxafb_changeres-r0.patch;patch=1 \
${RPSRC}/poodle_audio-r6.patch;patch=1 \
${RPSRC}/pxa27x_overlay-r2.patch;patch=1 \
${RPSRC}/xscale_cache_workaround-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 \
@ -123,6 +123,3 @@ SRC_URI_append_tosa = "\
# ${DOSRC}/tosa-asoc-r1.patch;patch=1 "
S = "${WORKDIR}/linux-2.6.17"
# to get module dependencies working
KERNEL_RELEASE = "2.6.17"

View File

@ -0,0 +1,102 @@
require linux-rp.inc
PR = "r0"
# Handy URLs
# git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=ef7d1b244fa6c94fb76d5f787b8629df64ea4046
# http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2
# http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.18-rc6.bz2;patch=1
# http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-2.6.18-rc2-git1.bz2;patch=1
# http://www.kernel.org/pub/linux/kernel/people/alan/linux-2.6/2.6.10/patch-2.6.10-ac8.gz;patch=1
# http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.14-rc2/2.6.14-rc2-mm1/2.6.14-rc2-mm1.bz2;patch=1
# Patches submitted upstream are towards top of this list
# Hacks should clearly named and at the bottom
SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.20-rc4.tar.bz2 \
http://opensource.wolfsonmicro.com/~lg/asoc/asoc-v0.13pre1.patch;patch=1;status=merged \
${RPSRC}/asoc_13pre1_fix-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 \
${DOSRC}/kexec-arm-r4.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 \
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://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 = "\
${DOSRC}/collie/mtd-sharp-flash-hack-r0.patch;patch=1 \
${DOSRC}/collie/collie-r0.patch;patch=1 \
${DOSRC}/collie/locomolcd-backlight-r0.patch;patch=1 \
${DOSRC}/collie/ucb1x00-touch-audio-r0.patch;patch=1 \
file://collie-mcp-r1.patch;patch=1 \
${DOSRC}/collie/sa1100-udc-r0.patch;patch=1 \
# ${DOSRC}/collie/collie-pm-r1.patch;patch=1 \
"
SRC_URI_append_tosa = "\
${CHSRC}/usb-ohci-hooks-r1.patch;patch=1 \
${CHSRC}/tmio-core-r4.patch;patch=1 \
file://tmio-tc6393-r8.patch;patch=1 \
file://tmio-nand-r7.patch;patch=1 \
file://tmio-ohci-r6.patch;patch=1 \
${CHSRC}/tmio-fb-r6.patch;patch=1 \
file://tosa-keyboard-r18.patch;patch=1 \
${DOSRC}/tosa-pxaac97-r6.patch;patch=1 \
${DOSRC}/tosa-tmio-r6.patch;patch=1 \
${DOSRC}/tosa-power-r17.patch;patch=1 \
file://tosa-tmio-lcd-r10.patch;patch=1 \
${DOSRC}/tosa-bluetooth-r8.patch;patch=1 \
${DOSRC}/wm97xx-lg7-r0.patch;patch=1 \
file://wm9712-suspend-cold-res-r2.patch;patch=1 \
file://sharpsl-pm-postresume-r1.patch;patch=1 \
${DOSRC}/wm97xx-dig-restore-r0.patch;patch=1 \
${DOSRC}/wm97xx-miscdevs-resume-r0.patch;patch=1 \
file://wm9712-reset-loop-r2.patch;patch=1 \
file://tosa-lcdnoise-r1.patch;patch=1 \
file://wm97xx-lcdnoise-r0.patch;patch=1 "
# ${DOSRC}/tosa-asoc-r1.patch;patch=1 "
S = "${WORKDIR}/linux-2.6.20-rc4"