From: Albert H. <he...@us...> - 2007-11-14 23:09:17
|
Update of /cvsroot/gc-linux/linux/drivers/input/si In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv4431/drivers/input/si Modified Files: gcn-si.c Log Message: Merged 2.6.22. Updated drivers to use in_be* and out_be* instead of read* and write* input/output instructions. Updated DI driver: - do not use debug extensions with unknown drive models - do not load custom firmware on xenogc/duoq - evict alien firmwares and load custom formware on known drive models Index: gcn-si.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/input/si/gcn-si.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- gcn-si.c 18 Feb 2007 22:56:02 -0000 1.6 +++ gcn-si.c 14 Nov 2007 23:08:49 -0000 1.7 @@ -152,34 +152,34 @@ /* SICOUTBUF */ for (i = 0; i < SI_MAX_PORTS; ++i) - writel(0, SICOUTBUF(i)); + out_be32(SICOUTBUF(i), 0); /* SICINBUFH */ for (i = 0; i < SI_MAX_PORTS; ++i) - writel(0, SICINBUFH(i)); + out_be32(SICINBUFH(i), 0); /* SICINBUFL */ for (i = 0; i < SI_MAX_PORTS; ++i) - writel(0, SICINBUFL(i)); + out_be32(SICINBUFL(i), 0); - writel(0, SIPOLL); - writel(0, SICOMCSR); - writel(0, SISR); + out_be32(SIPOLL, 0); + out_be32(SICOMCSR, 0); + out_be32(SISR, 0); - writel(0, (void __iomem *)0xcc006480); - writel(0, (void __iomem *)0xcc006484); - writel(0, (void __iomem *)0xcc006488); - writel(0, (void __iomem *)0xcc00648c); + out_be32((void __iomem *)0xcc006480, 0); + out_be32((void __iomem *)0xcc006484, 0); + out_be32((void __iomem *)0xcc006488, 0); + out_be32((void __iomem *)0xcc00648c, 0); - writel(0, (void __iomem *)0xcc006490); - writel(0, (void __iomem *)0xcc006494); - writel(0, (void __iomem *)0xcc006498); - writel(0, (void __iomem *)0xcc00649c); + out_be32((void __iomem *)0xcc006490, 0); + out_be32((void __iomem *)0xcc006494, 0); + out_be32((void __iomem *)0xcc006498, 0); + out_be32((void __iomem *)0xcc00649c, 0); - writel(0, (void __iomem *)0xcc0064a0); - writel(0, (void __iomem *)0xcc0064a4); - writel(0, (void __iomem *)0xcc0064a8); - writel(0, (void __iomem *)0xcc0064ac); + out_be32((void __iomem *)0xcc0064a0, 0); + out_be32((void __iomem *)0xcc0064a4, 0); + out_be32((void __iomem *)0xcc0064a8, 0); + out_be32((void __iomem *)0xcc0064ac, 0); } /** @@ -190,10 +190,10 @@ unsigned long transfer_done; do { - transfer_done = readl(SICOMCSR) & (1 << 31); + transfer_done = in_be32(SICOMCSR) & (1 << 31); } while (!transfer_done); - writel(readl(SICOMCSR) | (1 << 31), SICOMCSR); /* ack IRQ */ + out_be32(SICOMCSR, in_be32(SICOMCSR) | (1 << 31)); /* ack IRQ */ } /** @@ -203,14 +203,14 @@ { gcn_si_reset(); - writel(0, SIPOLL); - writel(0, SICOUTBUF(port)); - writel(0x80000000, SISR); - writel(0xd0010001 | port << 1, SICOMCSR); + out_be32(SIPOLL, 0); + out_be32(SICOUTBUF(port), 0); + out_be32(SISR, 0x80000000); + out_be32(SICOMCSR, 0xd0010001 | port << 1); gcn_si_wait_transfer_done(); - return readl((void __iomem *)0xcc006480); + return in_be32((void __iomem *)0xcc006480); } /** @@ -224,10 +224,10 @@ for (i = 0; i < SI_MAX_PORTS; ++i) { switch (port[i].id) { case CTL_PAD: - writel(0x00400300, SICOUTBUF(i)); + out_be32(SICOUTBUF(i), 0x00400300); break; case CTL_KEYBOARD: - writel(0x00540000, SICOUTBUF(i)); + out_be32(SICOUTBUF(i), 0x00540000); break; default: continue; @@ -235,9 +235,9 @@ pad_bits |= 1 << (7 - i); } - writel(0x00F70200 | pad_bits, SIPOLL); - writel(0x80000000, SISR); - writel(0xC0010801, SICOMCSR); + out_be32(SIPOLL, 0x00F70200 | pad_bits); + out_be32(SISR, 0x80000000); + out_be32(SICOMCSR, 0xC0010801); gcn_si_wait_transfer_done(); } @@ -247,13 +247,8 @@ */ static void gcn_si_set_rumbling(int portno, int rumble) { - if (rumble) { - writel(0x00400001, SICOUTBUF(portno)); - writel(0x80000000, SISR); - } else { - writel(0x00400000, SICOUTBUF(portno)); - writel(0x80000000, SISR); - } + out_be32(SICOUTBUF(portno), 0x00400000 | (rumble)?1:0); + out_be32(SISR, 0x80000000); } /** @@ -267,8 +262,8 @@ unsigned char oldkey; int i; - raw[0] = readl(SICINBUFH(portno)); - raw[1] = readl(SICINBUFL(portno)); + raw[0] = in_be32(SICINBUFH(portno)); + raw[1] = in_be32(SICINBUFL(portno)); switch (sdev->id) { case CTL_PAD: |