This list is closed, nobody may subscribe to it.
2004 |
Jan
(53) |
Feb
(78) |
Mar
(34) |
Apr
(26) |
May
(25) |
Jun
(34) |
Jul
(16) |
Aug
(16) |
Sep
(2) |
Oct
(58) |
Nov
(13) |
Dec
(32) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(62) |
Feb
(4) |
Mar
(40) |
Apr
(9) |
May
(13) |
Jun
(26) |
Jul
(32) |
Aug
(24) |
Sep
(18) |
Oct
(18) |
Nov
(14) |
Dec
|
2006 |
Jan
(15) |
Feb
(2) |
Mar
(23) |
Apr
(2) |
May
(2) |
Jun
(13) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2007 |
Jan
(1) |
Feb
(45) |
Mar
|
Apr
(13) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(31) |
Dec
(5) |
2008 |
Jan
(6) |
Feb
(34) |
Mar
(113) |
Apr
(40) |
May
(19) |
Jun
(5) |
Jul
(41) |
Aug
(13) |
Sep
(53) |
Oct
(4) |
Nov
(53) |
Dec
|
2009 |
Jan
(1) |
Feb
(29) |
Mar
(66) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(163) |
Nov
|
Dec
(91) |
From: Albert H. <he...@us...> - 2009-10-25 18:50:42
|
Update of /cvsroot/gc-linux/linux/include/asm-generic In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/include/asm-generic Modified Files: gpio.h Log Message: Merge gc-linux-v2.6.30. Index: gpio.h =================================================================== RCS file: /cvsroot/gc-linux/linux/include/asm-generic/gpio.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** gpio.h 25 Oct 2009 18:45:36 -0000 1.4 --- gpio.h 25 Oct 2009 18:50:28 -0000 1.5 *************** *** 119,122 **** --- 119,123 ---- extern int gpio_direction_input(unsigned gpio); extern int gpio_direction_output(unsigned gpio, int value); + extern int gpio_direction_is_output(unsigned gpio); extern int gpio_get_value_cansleep(unsigned gpio); |
From: Albert H. <he...@us...> - 2009-10-25 18:50:42
|
Update of /cvsroot/gc-linux/linux/drivers/exi In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/drivers/exi Modified Files: exi-driver.c Log Message: Merge gc-linux-v2.6.30. Index: exi-driver.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/exi/exi-driver.c,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** exi-driver.c 28 Mar 2009 20:44:19 -0000 1.19 --- exi-driver.c 25 Oct 2009 18:50:27 -0000 1.20 *************** *** 21,24 **** --- 21,25 ---- #include <linux/module.h> #include <linux/of_platform.h> + #include <linux/dma-mapping.h> #define DRV_MODULE_NAME "exi" *************** *** 52,68 **** static struct device exi_bus_devices[EXI_MAX_CHANNELS] = { [0] = { ! .bus_id = "exi0", .release = exi_bus_device_release, - .parent = NULL }, [1] = { ! .bus_id = "exi1", .release = exi_bus_device_release, - .parent = NULL }, [2] = { ! .bus_id = "exi2", .release = exi_bus_device_release, - .parent = NULL }, }; --- 53,66 ---- static struct device exi_bus_devices[EXI_MAX_CHANNELS] = { [0] = { ! .init_name = "exi0", .release = exi_bus_device_release, }, [1] = { ! .init_name = "exi1", .release = exi_bus_device_release, }, [2] = { ! .init_name = "exi2", .release = exi_bus_device_release, }, }; *************** *** 179,189 **** exi_device->eid.device = device; exi_device->frequency = EXI_FREQ_SCAN; - exi_device->exi_channel = to_exi_channel(channel); exi_device->dev.parent = &exi_bus_devices[channel]; exi_device->dev.bus = &exi_bus_type; ! sprintf(exi_device->dev.bus_id, "exi%01x:%01x", channel, device); exi_device->dev.platform_data = to_exi_channel(channel); exi_device->dev.release = exi_device_release; } --- 177,187 ---- exi_device->eid.device = device; exi_device->frequency = EXI_FREQ_SCAN; exi_device->exi_channel = to_exi_channel(channel); exi_device->dev.parent = &exi_bus_devices[channel]; exi_device->dev.bus = &exi_bus_type; ! dev_set_name(&exi_device->dev, "exi%01x:%01x", channel, device); exi_device->dev.platform_data = to_exi_channel(channel); + set_dma_ops(&exi_device->dev, &dma_direct_ops); exi_device->dev.release = exi_device_release; } *************** *** 332,336 **** /* device removed or changed */ drv_printk(KERN_INFO, "about to remove [%s] id=0x%08x %s\n", ! exi_device->dev.bus_id, exi_device->eid.id, exi_name_id(exi_device->eid.id)); --- 330,334 ---- /* device removed or changed */ drv_printk(KERN_INFO, "about to remove [%s] id=0x%08x %s\n", ! dev_name(&exi_device->dev), exi_device->eid.id, exi_name_id(exi_device->eid.id)); *************** *** 343,347 **** /* a new device has been found */ drv_printk(KERN_INFO, "about to add [%s] id=0x%08x %s\n", ! exi_device->dev.bus_id, id, exi_name_id(id)); exi_device->eid.id = id; --- 341,345 ---- /* a new device has been found */ drv_printk(KERN_INFO, "about to add [%s] id=0x%08x %s\n", ! dev_name(&exi_device->dev), id, exi_name_id(id)); exi_device->eid.id = id; *************** *** 446,449 **** --- 444,454 ---- goto err_hw_init; + /* register root devices */ + for (channel = 0; channel < EXI_MAX_CHANNELS; ++channel) { + retval = device_register(&exi_bus_devices[channel]); + if (retval) + goto err_device_register; + } + /* initialize devices */ for (channel = 0; channel < EXI_MAX_CHANNELS; ++channel) { *************** *** 455,465 **** } - /* register root devices */ - for (channel = 0; channel < EXI_MAX_CHANNELS; ++channel) { - retval = device_register(&exi_bus_devices[channel]); - if (retval) - goto err_device_register; - } - /* register the bus */ retval = bus_register(&exi_bus_type); --- 460,463 ---- |
From: Albert H. <he...@us...> - 2009-10-25 18:50:41
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/include/asm In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/arch/powerpc/include/asm Modified Files: dma-mapping.h starlet.h udbg.h Added Files: starlet-ios.h starlet-mini.h Log Message: Merge gc-linux-v2.6.30. Index: starlet.h =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/include/asm/starlet.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** starlet.h 28 Mar 2009 20:44:19 -0000 1.3 --- starlet.h 25 Oct 2009 18:50:26 -0000 1.4 *************** *** 2,8 **** * arch/powerpc/include/asm/starlet.h * ! * Nintendo Wii starlet processor definitions ! * Copyright (C) 2008-2009 The GameCube Linux Team ! * Copyright (C) 2008,2009 Albert Herranz * * This program is free software; you can redistribute it and/or --- 2,8 ---- * arch/powerpc/include/asm/starlet.h * ! * Definitions for the Starlet co-processor ! * Copyright (C) 2009 The GameCube Linux Team ! * Copyright (C) 2009 Albert Herranz * * This program is free software; you can redistribute it and/or *************** *** 13,252 **** */ ! #ifndef __ASM_POWERPC_STARLET_H ! #define __ASM_POWERPC_STARLET_H ! ! #include <linux/types.h> ! #include <linux/spinlock_types.h> ! #include <linux/platform_device.h> ! #include <linux/dmapool.h> ! #include <linux/dma-mapping.h> ! #include <linux/list.h> ! #include <linux/scatterlist.h> ! #include <linux/timer.h> ! #include <asm/rheap.h> ! ! #define STARLET_TITLE_HBC 0x0001000148415858ULL ! ! #define STARLET_EINVAL -4 ! ! #define STARLET_IPC_DMA_ALIGN 0x1f /* 32 bytes */ ! ! struct starlet_ipc_request; ! ! /* input/output heap */ ! struct starlet_ioh { ! spinlock_t lock; ! rh_info_t *rheap; ! unsigned long base_phys; ! void *base; ! size_t size; ! }; ! ! /* pseudo-scatterlist support for the input/output heap */ ! struct starlet_ioh_sg { ! void *buf; ! size_t len; ! dma_addr_t dma_addr; ! }; ! ! /* inter-process communication device abstraction */ ! struct starlet_ipc_device { ! unsigned long flags; ! ! void __iomem *io_base; ! int irq; ! ! struct dma_pool *dma_pool; /* to allocate requests */ ! struct starlet_ioh *ioh; /* to allocate special io buffers */ ! ! unsigned int random_id; ! ! spinlock_t list_lock; ! struct list_head outstanding_list; ! unsigned long nr_outstanding; ! struct list_head pending_list; ! unsigned long nr_pending; ! ! struct timer_list timer; ! ! struct starlet_ipc_request *req; /* for requests causing a ios reboot */ ! ! struct device *dev; ! }; ! ! /* iovec entry suitable for ioctlv */ ! struct starlet_iovec { ! dma_addr_t dma_addr; ! u32 dma_len; ! }; ! ! typedef int (*starlet_ipc_callback_t)(struct starlet_ipc_request *req); ! ! struct starlet_ipc_request { ! /* begin starlet firmware request format */ ! u32 cmd; /* 0x00 */ ! s32 result; /* 0x04 */ ! union { /* 0x08 */ ! s32 fd; ! u32 req_cmd; ! }; ! union { ! struct { ! dma_addr_t pathname; /* 0x0c */ ! u32 mode; /* 0x10 */ ! } open; ! struct { ! u32 request; /* 0x0c */ ! dma_addr_t ibuf; /* 0x10 */ ! u32 ilen; /* 0x14 */ ! dma_addr_t obuf; /* 0x18 */ ! u32 olen; /* 0x1c */ ! } ioctl; ! struct { ! u32 request; /* 0x0c */ ! u32 argc_in; /* 0x10 */ ! u32 argc_io; /* 0x14 */ ! dma_addr_t iovec_da; /* 0x18 */ ! } ioctlv; ! u32 argv[5]; /* 0x0c,0x10,0x14,0x18,0x1c */ ! }; ! /* end starlet firmware request format */ ! ! /* ! * A signature is used to discard bogus requests from earlier ! * IPC instances. ! */ ! unsigned int sig; ! ! dma_addr_t dma_addr; /* request dma address */ ! ! /* ioctlv related data */ ! struct starlet_iovec *iovec; ! size_t iovec_size; ! ! unsigned sgl_nents_in; ! unsigned sgl_nents_io; ! union { ! struct scatterlist *sgl_in; ! struct starlet_ioh_sg *ioh_sgl_in; ! }; ! union { ! struct scatterlist *sgl_io; ! struct starlet_ioh_sg *ioh_sgl_io; ! }; ! ! void *done_data; ! starlet_ipc_callback_t done; ! ! starlet_ipc_callback_t complete; ! ! unsigned long jiffies; - struct list_head node; /* for queueing */ ! struct starlet_ipc_device *ipc_dev; }; ! ! /* from starlet-malloc.c */ ! ! extern int starlet_malloc_lib_bootstrap(struct resource *mem); ! ! extern void *starlet_kzalloc(size_t size, gfp_t flags); ! extern void starlet_kfree(void *ptr); ! ! extern void *starlet_ioh_kzalloc(size_t size); ! extern void starlet_ioh_kfree(void *ptr); ! ! extern unsigned long starlet_ioh_virt_to_phys(void *ptr); ! ! extern void starlet_ioh_sg_init_table(struct starlet_ioh_sg *sgl, ! unsigned int nents); ! extern void starlet_ioh_sg_set_buf(struct starlet_ioh_sg *sg, ! void *buf, size_t len); ! ! #define starlet_ioh_for_each_sg(sgl, sg, nr, __i) \ ! for (__i = 0, sg = (sgl); __i < nr; __i++, sg++) ! ! extern int starlet_ioh_dma_map_sg(struct device *dev, ! struct starlet_ioh_sg *sgl, int nents, ! enum dma_data_direction direction); ! extern void starlet_ioh_dma_unmap_sg(struct device *dev, ! struct starlet_ioh_sg *sgl, int nents, ! enum dma_data_direction direction); ! /* from starlet-ipc.c */ ! ! extern struct starlet_ipc_device *starlet_ipc_get_device(void); ! ! extern struct starlet_ipc_request * ! starlet_ipc_alloc_request(struct starlet_ipc_device *ipc_dev, gfp_t flags); ! extern void starlet_ipc_free_request(struct starlet_ipc_request *req); ! ! ! extern int starlet_open(const char *pathname, int flags); ! extern int starlet_open_polled(const char *pathname, int flags, ! unsigned long usecs); ! extern int starlet_close(int fd); ! extern int starlet_close_polled(int fd, unsigned long usecs); ! ! extern int starlet_ioctl(int fd, int request, ! void *ibuf, size_t ilen, ! void *obuf, size_t olen); ! extern int starlet_ioctl_nowait(int fd, int request, ! void *ibuf, size_t ilen, ! void *obuf, size_t olen, ! starlet_ipc_callback_t callback, ! void *arg); ! extern int starlet_ioctl_polled(int fd, int request, ! void *ibuf, size_t ilen, ! void *obuf, size_t olen, unsigned long usecs); ! ! extern int starlet_ioctlv(int fd, int request, ! unsigned int nents_in, ! struct scatterlist *sgl_in, ! unsigned int nents_out, ! struct scatterlist *sgl_out); ! extern int starlet_ioctlv_nowait(int fd, int request, ! unsigned int nents_in, ! struct scatterlist *sgl_in, ! unsigned int nents_out, ! struct scatterlist *sgl_out, ! starlet_ipc_callback_t callback, ! void *arg); ! extern int starlet_ioctlv_polled(int fd, int request, ! unsigned int nents_in, ! struct scatterlist *sgl_in, ! unsigned int nents_out, ! struct scatterlist *sgl_out, ! unsigned long usecs); ! extern int starlet_ioctlv_and_reboot(int fd, int request, ! unsigned int nents_in, ! struct scatterlist *sgl_in, ! unsigned int nents_out, ! struct scatterlist *sgl_out); ! ! extern int starlet_ioh_ioctlv(int fd, int request, ! unsigned int nents_in, ! struct starlet_ioh_sg *ioh_sgl_in, ! unsigned int nents_io, ! struct starlet_ioh_sg *ioh_sgl_io); ! extern int starlet_ioh_ioctlv_nowait(int fd, int request, ! unsigned int nents_in, ! struct starlet_ioh_sg *ioh_sgl_in, ! unsigned int nents_io, ! struct starlet_ioh_sg *ioh_sgl_io, ! starlet_ipc_callback_t callback, ! void *arg); ! ! /* from starlet-es.c */ ! ! extern int starlet_es_reload_ios_and_discard(void); ! extern int starlet_es_reload_ios_and_launch(u64 title); ! ! /* from starlet-stm.c */ ! ! extern void starlet_stm_restart(void); ! extern void starlet_stm_power_off(void); ! ! #endif /* __ASM_POWERPC_STARLET_H */ --- 13,27 ---- */ ! #ifndef __STARLET_H ! #define __STARLET_H ! enum starlet_ipc_flavour { ! STARLET_IPC_IOS, ! STARLET_IPC_MINI, }; + int starlet_discover_ipc_flavour(void); + enum starlet_ipc_flavour starlet_get_ipc_flavour(void); ! #endif /* __STARLET_H */ Index: dma-mapping.h =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/include/asm/dma-mapping.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** dma-mapping.h 25 Oct 2009 18:45:35 -0000 1.1 --- dma-mapping.h 25 Oct 2009 18:50:26 -0000 1.2 *************** *** 16,19 **** --- 16,20 ---- #include <linux/dma-attrs.h> #include <asm/io.h> + #include <asm-generic/dma-coherent.h> #define DMA_ERROR_CODE (~(dma_addr_t)0x0) Index: udbg.h =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/include/asm/udbg.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** udbg.h 25 Oct 2009 18:45:35 -0000 1.4 --- udbg.h 25 Oct 2009 18:50:26 -0000 1.5 *************** *** 52,55 **** --- 52,56 ---- extern void __init udbg_init_40x_realmode(void); extern void __init udbg_init_cpm(void); + extern void __init udbg_init_usbgecko(void); #endif /* __KERNEL__ */ --- NEW FILE: starlet-ios.h --- /* * arch/powerpc/include/asm/starlet-ios.h * * Nintendo Wii Starlet IOS definitions * Copyright (C) 2008-2009 The GameCube Linux Team * Copyright (C) 2008,2009 Albert Herranz * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * */ #ifndef __STARLET_IOS_H #define __STARLET_IOS_H #include <linux/types.h> #include <linux/spinlock_types.h> #include <linux/platform_device.h> #include <linux/dmapool.h> #include <linux/dma-mapping.h> #include <linux/list.h> #include <linux/scatterlist.h> #include <linux/timer.h> #include <asm/rheap.h> #define STARLET_TITLE_HBC 0x0001000148415858ULL #define STARLET_EINVAL -4 #define STARLET_IPC_DMA_ALIGN 0x1f /* 32 bytes */ struct starlet_ipc_request; /* input/output heap */ struct starlet_ioh { spinlock_t lock; rh_info_t *rheap; unsigned long base_phys; void *base; size_t size; }; /* pseudo-scatterlist support for the input/output heap */ struct starlet_ioh_sg { void *buf; size_t len; dma_addr_t dma_addr; }; /* inter-process communication device abstraction */ struct starlet_ipc_device { unsigned long flags; void __iomem *io_base; int irq; struct dma_pool *dma_pool; /* to allocate requests */ struct starlet_ioh *ioh; /* to allocate special io buffers */ unsigned int random_id; spinlock_t list_lock; struct list_head outstanding_list; unsigned long nr_outstanding; struct list_head pending_list; unsigned long nr_pending; struct timer_list timer; struct starlet_ipc_request *req; /* for requests causing a ios reboot */ struct device *dev; }; /* iovec entry suitable for ioctlv */ struct starlet_iovec { dma_addr_t dma_addr; u32 dma_len; }; typedef int (*starlet_ipc_callback_t)(struct starlet_ipc_request *req); struct starlet_ipc_request { /* begin starlet firmware request format */ u32 cmd; /* 0x00 */ s32 result; /* 0x04 */ union { /* 0x08 */ s32 fd; u32 req_cmd; }; union { struct { dma_addr_t pathname; /* 0x0c */ u32 mode; /* 0x10 */ } open; struct { u32 request; /* 0x0c */ dma_addr_t ibuf; /* 0x10 */ u32 ilen; /* 0x14 */ dma_addr_t obuf; /* 0x18 */ u32 olen; /* 0x1c */ } ioctl; struct { u32 request; /* 0x0c */ u32 argc_in; /* 0x10 */ u32 argc_io; /* 0x14 */ dma_addr_t iovec_da; /* 0x18 */ } ioctlv; u32 argv[5]; /* 0x0c,0x10,0x14,0x18,0x1c */ }; /* end starlet firmware request format */ /* * A signature is used to discard bogus requests from earlier * IPC instances. */ unsigned int sig; dma_addr_t dma_addr; /* request dma address */ /* ioctlv related data */ struct starlet_iovec *iovec; size_t iovec_size; unsigned sgl_nents_in; unsigned sgl_nents_io; union { struct scatterlist *sgl_in; struct starlet_ioh_sg *ioh_sgl_in; }; union { struct scatterlist *sgl_io; struct starlet_ioh_sg *ioh_sgl_io; }; void *done_data; starlet_ipc_callback_t done; starlet_ipc_callback_t complete; unsigned long jiffies; struct list_head node; /* for queueing */ struct starlet_ipc_device *ipc_dev; }; /* from starlet-malloc.c */ extern int starlet_malloc_lib_bootstrap(struct resource *mem); extern void *starlet_kzalloc(size_t size, gfp_t flags); extern void starlet_kfree(void *ptr); extern void *starlet_ioh_kzalloc(size_t size); extern void starlet_ioh_kfree(void *ptr); extern unsigned long starlet_ioh_virt_to_phys(void *ptr); extern void starlet_ioh_sg_init_table(struct starlet_ioh_sg *sgl, unsigned int nents); extern void starlet_ioh_sg_set_buf(struct starlet_ioh_sg *sg, void *buf, size_t len); #define starlet_ioh_for_each_sg(sgl, sg, nr, __i) \ for (__i = 0, sg = (sgl); __i < nr; __i++, sg++) extern int starlet_ioh_dma_map_sg(struct device *dev, struct starlet_ioh_sg *sgl, int nents, enum dma_data_direction direction); extern void starlet_ioh_dma_unmap_sg(struct device *dev, struct starlet_ioh_sg *sgl, int nents, enum dma_data_direction direction); /* from starlet-ipc.c */ extern struct starlet_ipc_device *starlet_ipc_get_device(void); extern struct starlet_ipc_request * starlet_ipc_alloc_request(struct starlet_ipc_device *ipc_dev, gfp_t flags); extern void starlet_ipc_free_request(struct starlet_ipc_request *req); extern int starlet_open(const char *pathname, int flags); extern int starlet_open_polled(const char *pathname, int flags, unsigned long usecs); extern int starlet_close(int fd); extern int starlet_close_polled(int fd, unsigned long usecs); extern int starlet_ioctl(int fd, int request, void *ibuf, size_t ilen, void *obuf, size_t olen); extern int starlet_ioctl_nowait(int fd, int request, void *ibuf, size_t ilen, void *obuf, size_t olen, starlet_ipc_callback_t callback, void *arg); extern int starlet_ioctl_polled(int fd, int request, void *ibuf, size_t ilen, void *obuf, size_t olen, unsigned long usecs); extern int starlet_ioctlv(int fd, int request, unsigned int nents_in, struct scatterlist *sgl_in, unsigned int nents_out, struct scatterlist *sgl_out); extern int starlet_ioctlv_nowait(int fd, int request, unsigned int nents_in, struct scatterlist *sgl_in, unsigned int nents_out, struct scatterlist *sgl_out, starlet_ipc_callback_t callback, void *arg); extern int starlet_ioctlv_polled(int fd, int request, unsigned int nents_in, struct scatterlist *sgl_in, unsigned int nents_out, struct scatterlist *sgl_out, unsigned long usecs); extern int starlet_ioctlv_and_reboot(int fd, int request, unsigned int nents_in, struct scatterlist *sgl_in, unsigned int nents_out, struct scatterlist *sgl_out); extern int starlet_ioh_ioctlv(int fd, int request, unsigned int nents_in, struct starlet_ioh_sg *ioh_sgl_in, unsigned int nents_io, struct starlet_ioh_sg *ioh_sgl_io); extern int starlet_ioh_ioctlv_nowait(int fd, int request, unsigned int nents_in, struct starlet_ioh_sg *ioh_sgl_in, unsigned int nents_io, struct starlet_ioh_sg *ioh_sgl_io, starlet_ipc_callback_t callback, void *arg); /* from starlet-es.c */ extern int starlet_es_reload_ios_and_discard(void); extern int starlet_es_reload_ios_and_launch(u64 title); /* from starlet-stm.c */ extern void starlet_stm_restart(void); extern void starlet_stm_power_off(void); #endif /* __STARLET_IOS_H */ --- NEW FILE: starlet-mini.h --- /* * arch/powerpc/include/asm/starlet-mini.h * * Definitions for the 'mini' firmware replacement for Starlet * Copyright (C) 2009 The GameCube Linux Team * Copyright (C) 2009 Albert Herranz * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * */ #ifndef __STARLET_MINI_H #define __STARLET_MINI_H #ifdef CONFIG_STARLET_MINI /* * mini ipc call numbering scheme */ #define _MIPC_FAST 0x01 #define _MIPC_SLOW 0x00 #define _MIPC_DEV_SYS 0x00 #define _MIPC_DEV_NAND 0x01 #define _MIPC_DEV_SDHC 0x02 #define _MIPC_DEV_KEYS 0x03 #define _MIPC_DEV_AES 0x04 #define _MIPC_DEV_BOOT2 0x05 #define _MIPC_DEV_PPC 0x06 #define _MIPC_DEV_SDMMC 0x07 #define _MIPC_SYS_PING 0x0000 #define _MIPC_SYS_JUMP 0x0001 #define _MIPC_SYS_GETVERS 0x0002 #define _MIPC_SYS_GETGITS 0x0003 #define _MIPC_SYS_WRITE32 0x0100 #define _MIPC_SYS_WRITE16 0x0101 #define _MIPC_SYS_WRITE8 0x0102 #define _MIPC_SYS_READ32 0x0103 #define _MIPC_SYS_READ16 0x0104 #define _MIPC_SYS_READ8 0x0105 #define _MIPC_SYS_SET32 0x0106 #define _MIPC_SYS_SET16 0x0107 #define _MIPC_SYS_SET8 0x0108 #define _MIPC_SYS_CLEAR32 0x0109 #define _MIPC_SYS_CLEAR16 0x010a #define _MIPC_SYS_CLEAR8 0x010b #define _MIPC_SYS_MASK32 0x010c #define _MIPC_SYS_MASK16 0x010d #define _MIPC_SYS_MASK8 0x010e #define _MIPC_NAND_RESET 0x0000 #define _MIPC_NAND_GETID 0x0001 #define _MIPC_NAND_READ 0x0002 #define _MIPC_NAND_WRITE 0x0003 #define _MIPC_NAND_ERASE 0x0004 #define _MIPC_NAND_STATUS 0x0005 #define _MIPC_SDHC_DISCOVER 0x0000 #define _MIPC_SDHC_EXIT 0x0001 #define _MIPC_SDMMC_ACK 0x0000 #define _MIPC_SDMMC_READ 0x0001 #define _MIPC_SDMMC_WRITE 0x0002 #define _MIPC_SDMMC_STATE 0x0003 #define _MIPC_SDMMC_SIZE 0x0004 #define _MIPC_KEYS_GETOTP 0x0000 #define _MIPC_KEYS_GETEEP 0x0001 #define _MIPC_AES_RESET 0x0000 #define _MIPC_AES_SETIV 0x0001 #define _MIPC_AES_SETKEY 0x0002 #define _MIPC_AES_DECRYPT 0x0003 #define _MIPC_BOOT2_RUN 0x0000 #define _MIPC_BOOT2_TMD 0x0001 #define _MIPC_PPC_BOOT 0x0000 /* * */ #define _MIPC_MODEBITS 8 #define _MIPC_DEVBITS 8 #define _MIPC_NRBITS 16 #define _MIPC_MODEMASK ((1 << _MIPC_MODEBITS)-1) #define _MIPC_DEVMASK ((1 << _MIPC_DEVBITS)-1) #define _MIPC_NRMASK ((1 << _MIPC_NRBITS)-1) #define _MIPC_MODESHIFT (_MIPC_DEVSHIFT + _MIPC_DEVBITS) #define _MIPC_DEVSHIFT (_MIPC_NRSHIFT + _MIPC_NRBITS) #define _MIPC_NRSHIFT 0 #define _MIPC(mode, dev, nr) \ (((mode) << _MIPC_MODESHIFT) | \ ((dev) << _MIPC_DEVSHIFT) | \ ((nr) << _MIPC_NRSHIFT)) #define _MIPC_FAST_SYS(nr) _MIPC(_MIPC_FAST, _MIPC_DEV_SYS, nr) #define MIPC_SYS_PING _MIPC_FAST_SYS(_MIPC_SYS_PING) #define MIPC_SYS_WRITE32 _MIPC_FAST_SYS(_MIPC_SYS_WRITE32) #define MIPC_SYS_WRITE16 _MIPC_FAST_SYS(_MIPC_SYS_WRITE16) #define MIPC_SYS_WRITE8 _MIPC_FAST_SYS(_MIPC_SYS_WRITE8) #define MIPC_SYS_READ32 _MIPC_FAST_SYS(_MIPC_SYS_READ32) #define MIPC_SYS_READ16 _MIPC_FAST_SYS(_MIPC_SYS_READ16) #define MIPC_SYS_READ8 _MIPC_FAST_SYS(_MIPC_SYS_READ8) #define MIPC_SYS_SET32 _MIPC_FAST_SYS(_MIPC_SYS_SET32) #define MIPC_SYS_SET16 _MIPC_FAST_SYS(_MIPC_SYS_SET16) #define MIPC_SYS_SET8 _MIPC_FAST_SYS(_MIPC_SYS_SET8) #define MIPC_SYS_CLEAR32 _MIPC_FAST_SYS(_MIPC_SYS_CLEAR32) #define MIPC_SYS_CLEAR16 _MIPC_FAST_SYS(_MIPC_SYS_CLEAR16) #define MIPC_SYS_CLEAR8 _MIPC_FAST_SYS(_MIPC_SYS_CLEAR8) #define MIPC_SYS_MASK32 _MIPC_FAST_SYS(_MIPC_SYS_MASK32) #define MIPC_SYS_MASK16 _MIPC_FAST_SYS(_MIPC_SYS_MASK16) #define MIPC_SYS_MASK8 _MIPC_FAST_SYS(_MIPC_SYS_MASK8) #define MIPC_REQ_MAX_ARGS 6 struct mipc_infohdr { char magic[3]; u8 version; phys_addr_t mem2_boundary; phys_addr_t ipc_in; size_t ipc_in_size; phys_addr_t ipc_out; size_t ipc_out_size; }; struct mipc_device; struct mipc_req; extern int mipc_discover(struct mipc_infohdr **hdrp); extern u32 mipc_in_be32(const volatile u32 __iomem *addr); extern u16 mipc_in_be16(const volatile u16 __iomem *addr); extern u8 mipc_in_8(const volatile u8 __iomem *addr); extern void mipc_out_be32(const volatile u32 __iomem *addr, u32 val); extern void mipc_out_be16(const volatile u16 __iomem *addr, u16 val); extern void mipc_out_8(const volatile u8 __iomem *addr, u8 val); extern void mipc_clear_bit(int nr, volatile unsigned long *addr); extern void mipc_set_bit(int nr, volatile unsigned long *addr); extern void mipc_clrsetbits_be32(const volatile u32 __iomem *addr, u32 clear, u32 set); extern void mipc_wmb(void); extern void __iomem *mipc_ioremap(phys_addr_t addr, unsigned long size); extern void mipc_iounmap(volatile void __iomem *addr); #else struct mipc_infohdr; static inline int mipc_discover(struct mipc_infohdr **hdrp) { return -ENODEV; } #endif /* CONFIG_STARLET_MINI */ #endif /* __STARLET_MINI_H */ |
From: Albert H. <he...@us...> - 2009-10-25 18:50:37
|
Update of /cvsroot/gc-linux/linux/drivers/usb In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/drivers/usb Modified Files: Kconfig Makefile Log Message: Merge gc-linux-v2.6.30. Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/usb/Makefile,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Makefile 25 Oct 2009 18:45:36 -0000 1.6 --- Makefile 25 Oct 2009 18:50:27 -0000 1.7 *************** *** 18,21 **** --- 18,22 ---- obj-$(CONFIG_USB_U132_HCD) += host/ obj-$(CONFIG_USB_R8A66597_HCD) += host/ + obj-$(CONFIG_USB_WII_HCD) += host/ obj-$(CONFIG_USB_HWA_HCD) += host/ obj-$(CONFIG_USB_ISP1760_HCD) += host/ Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/usb/Kconfig,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Kconfig 25 Oct 2009 18:45:36 -0000 1.7 --- Kconfig 25 Oct 2009 18:50:27 -0000 1.8 *************** *** 23,26 **** --- 23,27 ---- default y if ARM # SL-811 default y if SUPERH # r8a66597-hcd + default y if STARLET_IOS # rvl-sthcd default PCI |
From: Albert H. <he...@us...> - 2009-10-25 18:50:37
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/boot In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/arch/powerpc/boot Modified Files: Makefile ugecon.c wii.c wrapper Log Message: Merge gc-linux-v2.6.30. Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/boot/Makefile,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Makefile 25 Oct 2009 18:45:35 -0000 1.10 --- Makefile 25 Oct 2009 18:50:26 -0000 1.11 *************** *** 66,70 **** 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \ cpm-serial.c stdlib.c mpc52xx-psc.c planetcore.c uartlite.c \ ! fsl-soc.c mpc8xx.c pq2.c src-plat := of.c cuboot-52xx.c cuboot-824x.c cuboot-83xx.c cuboot-85xx.c holly.c \ cuboot-ebony.c treeboot-ebony.c prpmc2800.c \ --- 66,70 ---- 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \ cpm-serial.c stdlib.c mpc52xx-psc.c planetcore.c uartlite.c \ ! fsl-soc.c mpc8xx.c pq2.c ugecon.c src-plat := of.c cuboot-52xx.c cuboot-824x.c cuboot-83xx.c cuboot-85xx.c holly.c \ cuboot-ebony.c treeboot-ebony.c prpmc2800.c \ *************** *** 76,80 **** cuboot-warp.c cuboot-85xx-cpm2.c cuboot-yosemite.c simpleboot.c \ virtex405-head.S virtex.c redboot-83xx.c cuboot-sam440ep.c \ ! cuboot-acadia.c cuboot-amigaone.c src-boot := $(src-wlib) $(src-plat) empty.c --- 76,80 ---- cuboot-warp.c cuboot-85xx-cpm2.c cuboot-yosemite.c simpleboot.c \ virtex405-head.S virtex.c redboot-83xx.c cuboot-sam440ep.c \ ! cuboot-acadia.c cuboot-amigaone.c gamecube.c wii.c src-boot := $(src-wlib) $(src-plat) empty.c *************** *** 253,256 **** --- 253,258 ---- image-$(CONFIG_MPC7448HPC2) += cuImage.mpc7448hpc2 image-$(CONFIG_PPC_C2K) += cuImage.c2k + image-$(CONFIG_GAMECUBE) += dtbImage.gamecube + image-$(CONFIG_WII) += dtbImage.wii # Board port in arch/powerpc/platform/amigaone/Kconfig Index: wrapper =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/boot/wrapper,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** wrapper 25 Oct 2009 18:45:35 -0000 1.1 --- wrapper 25 Oct 2009 18:50:26 -0000 1.2 *************** *** 226,229 **** --- 226,232 ---- binary=y ;; + wii|gamecube) + link_address='0x500000' + ;; esac Index: ugecon.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/boot/ugecon.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ugecon.c 1 Feb 2009 18:29:34 -0000 1.2 --- ugecon.c 25 Oct 2009 18:50:26 -0000 1.3 *************** *** 115,119 **** void *devp; ! devp = finddevice("/exi/usbgecko"); if (devp == NULL) goto err_out; --- 115,119 ---- void *devp; ! devp = find_node_by_alias("ugecon"); if (devp == NULL) goto err_out; Index: wii.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/boot/wii.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** wii.c 28 Mar 2009 20:44:19 -0000 1.3 --- wii.c 25 Oct 2009 18:50:26 -0000 1.4 *************** *** 38,43 **** mfmsr 9\n\ andi. 0, 9, (1<<4)|(1<<5) /* MSR_DR|MSR_IR */\n\ ! bcl 20,31,1f\n\ ! 1:\n\ mflr 8\n\ clrlwi 8, 8, 3 /* convert to a real address */\n\ --- 38,43 ---- mfmsr 9\n\ andi. 0, 9, (1<<4)|(1<<5) /* MSR_DR|MSR_IR */\n\ ! bcl 20, 31, 1f\n\ ! 1: \n\ mflr 8\n\ clrlwi 8, 8, 3 /* convert to a real address */\n\ *************** *** 48,52 **** sync\n\ rfi\n\ ! _mmu_off:\n\ /* MMU disabled */\n\ \n\ --- 48,52 ---- sync\n\ rfi\n\ ! _mmu_off: \n\ /* MMU disabled */\n\ \n\ *************** *** 97,101 **** \n\ lis 8, 0xcc00 /* I/O mem */\n\ ! ori 8,8, 0x3ff /* 32MiB */\n\ lis 9, 0x0c00\n\ ori 9, 9, 0x002a /* uncached, guarded, rw */\n\ --- 97,101 ---- \n\ lis 8, 0xcc00 /* I/O mem */\n\ ! ori 8, 8, 0x3ff /* 32MiB */\n\ lis 9, 0x0c00\n\ ori 9, 9, 0x002a /* uncached, guarded, rw */\n\ *************** *** 112,124 **** mtspr 0x21d, 9 /* DBAT2L */\n\ \n\ sync\n\ isync\n\ \n\ li 3, 0\n\ li 4, 0\n\ li 5, 0\n\ \n\ ! bcl 20,31,1f\n\ ! 1:\n\ mflr 8\n\ addi 8, 8, _mmu_on - 1b\n\ --- 112,143 ---- mtspr 0x21d, 9 /* DBAT2L */\n\ \n\ + lis 8, 0x1000 /* MEM2 */\n\ + ori 8, 8, 0x07ff /* 64MiB */\n\ + lis 9, 0x1000\n\ + ori 9, 9, 0x0002 /* rw */\n\ + mtspr 0x216, 8 /* IBAT3U */\n\ + mtspr 0x217, 9 /* IBAT3L */\n\ + mtspr 0x21e, 8 /* DBAT3U */\n\ + mtspr 0x21f, 9 /* DBAT3L */\n\ + \n\ sync\n\ isync\n\ \n\ + /* enable high BATs */\n\ + lis 8, 0x8200\n\ + mtspr 0x3f3, 8 /* HID4 */\n\ + \n\ + /* enable caches */\n\ + mfspr 8, 0x3f0\n\ + ori 8, 8, 0xc000\n\ + mtspr 0x3f0, 8 /* HID0 */\n\ + isync\n\ + \n\ li 3, 0\n\ li 4, 0\n\ li 5, 0\n\ \n\ ! bcl 20, 31, 1f\n\ ! 1: \n\ mflr 8\n\ addi 8, 8, _mmu_on - 1b\n\ *************** *** 129,133 **** sync\n\ rfi\n\ ! _mmu_on:\n\ b _zimage_start_lib\n\ "); --- 148,158 ---- sync\n\ rfi\n\ ! _mmu_on: \n\ ! /* turn on the front blue led (aka: yay! we got here!) */\n\ ! lis 8, 0xcd00\n\ ! ori 8, 8, 0x00c0\n\ ! lwz 9, 0(8)\n\ ! ori 9, 9, 0x20\n\ ! stw 9, 0(8)\n\ b _zimage_start_lib\n\ "); *************** *** 171,174 **** --- 196,300 ---- /* * + * + */ + + struct mipc_infohdr { + char magic[3]; + u8 version; + u32 mem2_boundary; + u32 ipc_in; + size_t ipc_in_size; + u32 ipc_out; + size_t ipc_out_size; + }; + + static int mipc_check_address(u32 pa) + { + if (pa < 0x10000000 || pa > 0x14000000) + return -EINVAL; + return 0; + } + + static void platform_fixups(void) + { + struct mipc_infohdr **hdrp, *hdr; + u32 reg[4]; + u32 mem2_boundary, top; + void *devp; + + /* + * The mini header pointer is specified in the second "reg" entry + * of the starlet-mini-ipc node. + */ + devp = find_node_by_compatible(NULL, "twiizers,starlet-mini-ipc"); + if (!devp) { + printf("unable to find %s node\n", "twiizers,starlet-mini-ipc"); + goto err_out; + } + if (getprop(devp, "reg", ®, sizeof(reg)) != sizeof(reg)) { + printf("unable to find %s property\n", "reg"); + goto err_out; + } + hdrp = (struct mipc_infohdr **)reg[2]; + if (mipc_check_address((u32)hdrp)) { + printf("mini: invalid hdrp %08X\n", (u32)hdrp); + goto err_out; + } + + hdr = *hdrp; + if (mipc_check_address((u32)hdr)) { + printf("mini: invalid hdr %08X\n", (u32)hdr); + goto err_out; + } + if (memcmp(hdr->magic, "IPC", 3)) { + printf("mini: invalid magic, asuming ios\n"); + goto err_out; + } + mem2_boundary = hdr->mem2_boundary; + if (mipc_check_address(mem2_boundary)) { + printf("mini: invalid mem2_boundary %08X\n", mem2_boundary); + goto err_out; + } + + top = mem2_boundary; + printf("top of mem @ %08X (%s)\n", top, "current"); + + /* fixup local memory for EHCI controller */ + devp = NULL; + while ((devp = find_node_by_compatible(devp, + "nintendo,hollywood-ehci"))) { + if (getprop(devp, "reg", ®, sizeof(reg)) == sizeof(reg)) { + top -= reg[3]; + printf("ehci %08X -> %08X\n", reg[2], top); + reg[2] = top; + setprop(devp, "reg", ®, sizeof(reg)); + } + } + + /* fixup local memory for OHCI controllers */ + devp = NULL; + while ((devp = find_node_by_compatible(devp, + "nintendo,hollywood-ohci"))) { + if (getprop(devp, "reg", ®, sizeof(reg)) == sizeof(reg)) { + top -= reg[3]; + printf("ohci %08X -> %08X\n", reg[2], top); + reg[2] = top; + setprop(devp, "reg", ®, sizeof(reg)); + } + } + + /* fixup available memory */ + dt_fixup_memory(0, top); + + printf("top of mem @ %08X (%s)\n", top, "final"); + + return; + + err_out: + return; + } + + /* + * */ void platform_init(unsigned long r3, unsigned long r4, unsigned long r5) *************** *** 182,185 **** --- 308,312 ---- console_ops.write = ug_console_write; + platform_ops.fixups = platform_fixups; save_lowmem_stub(); } |
From: Albert H. <he...@us...> - 2009-10-25 18:50:37
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/configs In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/arch/powerpc/configs Modified Files: wii_defconfig Log Message: Merge gc-linux-v2.6.30. Index: wii_defconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/configs/wii_defconfig,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** wii_defconfig 28 Mar 2009 20:44:19 -0000 1.11 --- wii_defconfig 25 Oct 2009 18:50:26 -0000 1.12 *************** *** 1,6 **** # # Automatically generated make config: don't edit ! # Linux kernel version: 2.6.29 ! # Sat Mar 28 19:45:24 2009 # # CONFIG_PPC64 is not set --- 1,6 ---- # # Automatically generated make config: don't edit ! # Linux kernel version: 2.6.30 ! # Fri Jun 26 21:19:27 2009 # # CONFIG_PPC64 is not set *************** *** 15,18 **** --- 15,19 ---- # CONFIG_44x is not set # CONFIG_E200 is not set + CONFIG_PPC_BOOK3S=y CONFIG_PPC_FPU=y # CONFIG_ALTIVEC is not set *************** *** 54,60 **** --- 55,63 ---- CONFIG_AUDIT_ARCH=y CONFIG_GENERIC_BUG=y + CONFIG_DTC=y # CONFIG_DEFAULT_UIMAGE is not set # CONFIG_PPC_DCR_NATIVE is not set # CONFIG_PPC_DCR_MMIO is not set + CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" *************** *** 99,102 **** --- 102,108 ---- CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" + CONFIG_RD_GZIP=y + # CONFIG_RD_BZIP2 is not set + # CONFIG_RD_LZMA is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y *************** *** 107,110 **** --- 113,117 ---- CONFIG_KALLSYMS_ALL=y # CONFIG_KALLSYMS_EXTRA_PASS is not set + # CONFIG_STRIP_ASM_SYMS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y *************** *** 134,138 **** CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_ARCH_TRACEHOOK=y ! # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y --- 141,146 ---- CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_ARCH_TRACEHOOK=y ! # CONFIG_SLOW_WORK is not set ! CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y *************** *** 146,150 **** CONFIG_BLOCK=y CONFIG_LBD=y - # CONFIG_BLK_DEV_IO_TRACE is not set # CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_INTEGRITY is not set --- 154,157 ---- *************** *** 167,172 **** # Platform support # - CONFIG_PPC_MULTIPLATFORM=y - CONFIG_CLASSIC32=y # CONFIG_PPC_CHRP is not set # CONFIG_MPC5121_ADS is not set --- 174,177 ---- *************** *** 189,193 **** --- 194,201 ---- # CONFIG_GAMECUBE is not set CONFIG_WII=y + CONFIG_STARLET_IOS=y + CONFIG_STARLET_MINI=y CONFIG_FLIPPER_PIC=y + CONFIG_HOLLYWOOD_PIC=y CONFIG_GAMECUBE_COMMON=y CONFIG_GAMECUBE_UDBG=y *************** *** 196,199 **** --- 204,209 ---- CONFIG_GAMECUBE_RSW=y CONFIG_WII_GPIO=y + # CONFIG_AMIGAONE is not set + # CONFIG_PPC_OF_BOOT_TRAMPOLINE is not set # CONFIG_IPIC is not set # CONFIG_MPIC is not set *************** *** 253,259 **** --- 263,272 ---- CONFIG_VIRT_TO_BUS=y CONFIG_UNEVICTABLE_LRU=y + CONFIG_HAVE_MLOCK=y + CONFIG_HAVE_MLOCKED_PAGE_BIT=y CONFIG_PPC_4K_PAGES=y # CONFIG_PPC_16K_PAGES is not set # CONFIG_PPC_64K_PAGES is not set + # CONFIG_PPC_256K_PAGES is not set CONFIG_FORCE_MAX_ZONEORDER=11 CONFIG_PROC_DEVICETREE=y *************** *** 289,294 **** # CONFIG_TASK_SIZE_BOOL is not set CONFIG_TASK_SIZE=0xc0000000 - # CONFIG_CONSISTENT_START_BOOL is not set - CONFIG_CONSISTENT_START=0xff100000 # CONFIG_CONSISTENT_SIZE_BOOL is not set CONFIG_CONSISTENT_SIZE=0x00200000 --- 302,305 ---- *************** *** 298,302 **** # Networking options # - CONFIG_COMPAT_NET_DEV_OPS=y CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set --- 309,312 ---- *************** *** 347,350 **** --- 357,361 ---- # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set + # CONFIG_PHONET is not set # CONFIG_NET_SCHED is not set # CONFIG_DCB is not set *************** *** 354,357 **** --- 365,369 ---- # # CONFIG_NET_PKTGEN is not set + # CONFIG_NET_DROP_MONITOR is not set # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set *************** *** 371,374 **** --- 383,387 ---- # CONFIG_BT_HCIBTUSB=y + # CONFIG_BT_HCIBTSDIO is not set # CONFIG_BT_HCIUART is not set # CONFIG_BT_HCIBCM203X is not set *************** *** 377,381 **** # CONFIG_BT_HCIVHCI is not set # CONFIG_AF_RXRPC is not set - # CONFIG_PHONET is not set CONFIG_WIRELESS=y # CONFIG_CFG80211 is not set --- 390,393 ---- *************** *** 410,414 **** CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_FD is not set ! CONFIG_GAMECUBE_SD=y CONFIG_WII_MEM2=m CONFIG_WII_SD=y --- 422,426 ---- CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_FD is not set ! CONFIG_GAMECUBE_SD=m CONFIG_WII_MEM2=m CONFIG_WII_SD=y *************** *** 429,432 **** --- 441,445 ---- # CONFIG_ICS932S401 is not set # CONFIG_ENCLOSURE_SERVICES is not set + # CONFIG_ISL29003 is not set # CONFIG_C2PORT is not set *************** *** 480,489 **** --- 493,505 ---- # CONFIG_ISCSI_TCP is not set # CONFIG_LIBFC is not set + # CONFIG_LIBFCOE is not set # CONFIG_SCSI_DEBUG is not set # CONFIG_SCSI_DH is not set + # CONFIG_SCSI_OSD_INITIATOR is not set # CONFIG_ATA is not set # CONFIG_MD is not set # CONFIG_MACINTOSH_DRIVERS is not set CONFIG_NETDEVICES=y + CONFIG_COMPAT_NET_DEV_OPS=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set *************** *** 495,498 **** --- 511,515 ---- CONFIG_NET_ETHERNET=y CONFIG_MII=y + # CONFIG_ETHOC is not set # CONFIG_DNET is not set # CONFIG_IBM_NEW_EMAC_ZMII is not set *************** *** 512,516 **** # CONFIG_WLAN_PRE80211 is not set # CONFIG_WLAN_80211 is not set - # CONFIG_IWLWIFI_LEDS is not set # --- 529,532 ---- *************** *** 528,531 **** --- 544,548 ---- CONFIG_USB_NET_AX8817X=y # CONFIG_USB_NET_CDCETHER is not set + # CONFIG_USB_NET_CDC_EEM is not set # CONFIG_USB_NET_DM9601 is not set # CONFIG_USB_NET_SMSC95XX is not set *************** *** 614,617 **** --- 631,635 ---- # CONFIG_INPUT_CM109 is not set CONFIG_INPUT_UINPUT=y + # CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set # *************** *** 699,703 **** # CONFIG_PCF8575 is not set # CONFIG_SENSORS_PCA9539 is not set - # CONFIG_SENSORS_PCF8591 is not set # CONFIG_SENSORS_MAX6875 is not set # CONFIG_SENSORS_TSL2550 is not set --- 717,720 ---- *************** *** 816,819 **** --- 833,837 ---- # CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set + # CONFIG_FB_BROADSHEET is not set # CONFIG_BACKLIGHT_LCD_SUPPORT is not set *************** *** 840,843 **** --- 858,863 ---- CONFIG_SND_TIMER=y CONFIG_SND_PCM=y + CONFIG_SND_HWDEP=y + CONFIG_SND_RAWMIDI=y CONFIG_SND_SEQUENCER=y # CONFIG_SND_SEQ_DUMMY is not set *************** *** 861,865 **** CONFIG_SND_GAMECUBE=y CONFIG_SND_GAMECUBE_MIC=m ! # CONFIG_SND_USB is not set # CONFIG_SND_SOC is not set # CONFIG_SOUND_PRIME is not set --- 881,889 ---- CONFIG_SND_GAMECUBE=y CONFIG_SND_GAMECUBE_MIC=m ! CONFIG_SND_USB=y ! CONFIG_SND_USB_AUDIO=y ! CONFIG_SND_USB_USX2Y=m ! CONFIG_SND_USB_CAIAQ=m ! # CONFIG_SND_USB_CAIAQ_INPUT is not set # CONFIG_SND_SOC is not set # CONFIG_SOUND_PRIME is not set *************** *** 879,883 **** # Special HID drivers # - CONFIG_HID_COMPAT=y CONFIG_HID_A4TECH=m CONFIG_HID_APPLE=m --- 903,906 ---- *************** *** 886,891 **** --- 909,917 ---- CONFIG_HID_CHICONY=m CONFIG_HID_CYPRESS=m + CONFIG_DRAGONRISE_FF=m CONFIG_HID_EZKEY=m + CONFIG_HID_KYE=m CONFIG_HID_GYRATION=m + CONFIG_HID_KENSINGTON=m CONFIG_HID_LOGITECH=m # CONFIG_LOGITECH_FF is not set *************** *** 906,911 **** CONFIG_USB_SUPPORT=y CONFIG_USB_ARCH_HAS_HCD=y ! # CONFIG_USB_ARCH_HAS_OHCI is not set ! # CONFIG_USB_ARCH_HAS_EHCI is not set CONFIG_USB=y # CONFIG_USB_DEBUG is not set --- 932,937 ---- CONFIG_USB_SUPPORT=y CONFIG_USB_ARCH_HAS_HCD=y ! CONFIG_USB_ARCH_HAS_OHCI=y ! CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB=y # CONFIG_USB_DEBUG is not set *************** *** 929,935 **** --- 955,972 ---- # # CONFIG_USB_C67X00_HCD is not set + CONFIG_USB_EHCI_HCD=y + # CONFIG_USB_EHCI_ROOT_HUB_TT is not set + # CONFIG_USB_EHCI_TT_NEWSCHED is not set + # CONFIG_USB_EHCI_HCD_PPC_OF is not set + CONFIG_USB_EHCI_HCD_MIPC=y # CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1760_HCD is not set + CONFIG_USB_OHCI_HCD=y + # CONFIG_USB_OHCI_HCD_PPC_OF is not set + CONFIG_USB_OHCI_HCD_MIPC=y + # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set + # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set + CONFIG_USB_OHCI_LITTLE_ENDIAN=y # CONFIG_USB_SL811_HCD is not set # CONFIG_USB_R8A66597_HCD is not set *************** *** 946,954 **** # ! # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; # # ! # see USB_STORAGE Help for more information # CONFIG_USB_STORAGE=y --- 983,991 ---- # ! # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may # # ! # also be needed; see USB_STORAGE Help for more info # CONFIG_USB_STORAGE=y *************** *** 992,999 **** # CONFIG_USB_CYPRESS_CY7C63 is not set # CONFIG_USB_CYTHERM is not set - # CONFIG_USB_PHIDGET is not set # CONFIG_USB_IDMOUSE is not set # CONFIG_USB_FTDI_ELAN is not set # CONFIG_USB_APPLEDISPLAY is not set # CONFIG_USB_LD is not set # CONFIG_USB_TRANCEVIBRATOR is not set --- 1029,1036 ---- # CONFIG_USB_CYPRESS_CY7C63 is not set # CONFIG_USB_CYTHERM is not set # CONFIG_USB_IDMOUSE is not set # CONFIG_USB_FTDI_ELAN is not set # CONFIG_USB_APPLEDISPLAY is not set + # CONFIG_USB_SISUSBVGA is not set # CONFIG_USB_LD is not set # CONFIG_USB_TRANCEVIBRATOR is not set *************** *** 1008,1012 **** # # CONFIG_USB_GPIO_VBUS is not set ! # CONFIG_MMC is not set # CONFIG_MEMSTICK is not set # CONFIG_NEW_LEDS is not set --- 1045,1069 ---- # # CONFIG_USB_GPIO_VBUS is not set ! # CONFIG_NOP_USB_XCEIV is not set ! CONFIG_MMC=y ! # CONFIG_MMC_DEBUG is not set ! # CONFIG_MMC_UNSAFE_RESUME is not set ! ! # ! # MMC/SD/SDIO Card Drivers ! # ! CONFIG_MMC_BLOCK=y ! CONFIG_MMC_BLOCK_BOUNCE=y ! # CONFIG_SDIO_UART is not set ! # CONFIG_MMC_TEST is not set ! ! # ! # MMC/SD/SDIO Host Controller Drivers ! # ! CONFIG_MMC_SDHCI=y ! CONFIG_MMC_SDHCI_IO_ACCESSORS=y ! # CONFIG_MMC_SDHCI_OF is not set ! CONFIG_MMC_SDHCI_MIPC=y ! # CONFIG_MMC_WBSD is not set # CONFIG_MEMSTICK is not set # CONFIG_NEW_LEDS is not set *************** *** 1068,1073 **** # on-CPU RTC drivers # ! # CONFIG_RTC_DRV_PPC is not set # CONFIG_DMADEVICES is not set # CONFIG_UIO is not set # CONFIG_STAGING is not set --- 1125,1131 ---- # on-CPU RTC drivers # ! CONFIG_RTC_DRV_GENERIC=y # CONFIG_DMADEVICES is not set + # CONFIG_AUXDISPLAY is not set # CONFIG_UIO is not set # CONFIG_STAGING is not set *************** *** 1080,1083 **** --- 1138,1142 ---- # CONFIG_EXT2_FS_XIP is not set CONFIG_EXT3_FS=y + # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set # CONFIG_EXT3_FS_XATTR is not set # CONFIG_EXT4_FS is not set *************** *** 1101,1104 **** --- 1160,1168 ---- # + # Caches + # + # CONFIG_FSCACHE is not set + + # # CD-ROM/DVD Filesystems # *************** *** 1148,1151 **** --- 1212,1216 ---- # CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set + # CONFIG_NILFS2_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=y *************** *** 1159,1163 **** CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y - # CONFIG_SUNRPC_REGISTER_V4 is not set # CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_RPCSEC_GSS_SPKM3 is not set --- 1224,1227 ---- *************** *** 1214,1217 **** --- 1278,1282 ---- # CONFIG_NLS_UTF8 is not set # CONFIG_DLM is not set + CONFIG_BINARY_PRINTF=y # *************** *** 1227,1240 **** # CONFIG_CRC7 is not set # CONFIG_LIBCRC32C is not set ! CONFIG_PLIST=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_HAVE_LMB=y # # Kernel hacking # ! # CONFIG_PRINTK_TIME is not set CONFIG_ENABLE_WARN_DEPRECATED=y CONFIG_ENABLE_MUST_CHECK=y --- 1292,1307 ---- # CONFIG_CRC7 is not set # CONFIG_LIBCRC32C is not set ! CONFIG_ZLIB_INFLATE=y ! CONFIG_DECOMPRESS_GZIP=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_HAVE_LMB=y + CONFIG_NLATTR=y # # Kernel hacking # ! CONFIG_PRINTK_TIME=y CONFIG_ENABLE_WARN_DEPRECATED=y CONFIG_ENABLE_MUST_CHECK=y *************** *** 1249,1255 **** # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 CONFIG_SCHED_DEBUG=y CONFIG_SCHEDSTATS=y ! # CONFIG_TIMER_STATS is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_DEBUG_SLAB is not set --- 1316,1323 ---- # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 + # CONFIG_DETECT_HUNG_TASK is not set CONFIG_SCHED_DEBUG=y CONFIG_SCHEDSTATS=y ! CONFIG_TIMER_STATS=y # CONFIG_DEBUG_OBJECTS is not set # CONFIG_DEBUG_SLAB is not set *************** *** 1262,1266 **** CONFIG_STACKTRACE=y # CONFIG_DEBUG_KOBJECT is not set ! # CONFIG_DEBUG_BUGVERBOSE is not set # CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_VM is not set --- 1330,1334 ---- CONFIG_STACKTRACE=y # CONFIG_DEBUG_KOBJECT is not set ! CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_VM is not set *************** *** 1278,1287 **** --- 1346,1358 ---- CONFIG_LATENCYTOP=y CONFIG_SYSCTL_SYSCALL_CHECK=y + # CONFIG_DEBUG_PAGEALLOC is not set CONFIG_NOP_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y + CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_RING_BUFFER=y CONFIG_TRACING=y + CONFIG_TRACING_SUPPORT=y # *************** *** 1292,1299 **** # CONFIG_SCHED_TRACER is not set CONFIG_CONTEXT_SWITCH_TRACER=y CONFIG_BOOT_TRACER=y # CONFIG_TRACE_BRANCH_PROFILING is not set # CONFIG_STACK_TRACER is not set ! # CONFIG_DYNAMIC_PRINTK_DEBUG is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y --- 1363,1375 ---- # CONFIG_SCHED_TRACER is not set CONFIG_CONTEXT_SWITCH_TRACER=y + # CONFIG_EVENT_TRACER is not set CONFIG_BOOT_TRACER=y # CONFIG_TRACE_BRANCH_PROFILING is not set # CONFIG_STACK_TRACER is not set ! # CONFIG_KMEMTRACE is not set ! # CONFIG_WORKQUEUE_TRACER is not set ! # CONFIG_BLK_DEV_IO_TRACE is not set ! # CONFIG_FTRACE_STARTUP_TEST is not set ! # CONFIG_DYNAMIC_DEBUG is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y *************** *** 1302,1306 **** # CONFIG_DEBUG_STACKOVERFLOW is not set # CONFIG_DEBUG_STACK_USAGE is not set - # CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_CODE_PATCHING_SELFTEST is not set # CONFIG_FTR_FIXUP_SELFTEST is not set --- 1378,1381 ---- |
Update of /cvsroot/gc-linux/linux/drivers/usb/host In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/drivers/usb/host Modified Files: Kconfig Makefile ehci-hcd.c ehci.h ohci-hcd.c ohci-q.c ohci.h rvl-sthcd.c Added Files: ehci-mipc.c ohci-mipc.c Log Message: Merge gc-linux-v2.6.30. Index: ohci-q.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/usb/host/ohci-q.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ohci-q.c 25 Oct 2009 18:45:36 -0000 1.1 --- ohci-q.c 25 Oct 2009 18:50:27 -0000 1.2 *************** *** 616,619 **** --- 616,622 ---- /* FALLTHROUGH */ case PIPE_BULK: + if (ohci->flags & OHCI_QUIRK_WII) + ohci_mipc_bulk_quirk(ohci); + info = is_out ? TD_T_TOGGLE | TD_CC | TD_DP_OUT *************** *** 647,650 **** --- 650,656 ---- */ case PIPE_CONTROL: + if (ohci->flags & OHCI_QUIRK_WII) + ohci_mipc_control_quirk(ohci); + info = TD_CC | TD_DP_SETUP | TD_T_DATA0; td_fill (ohci, info, urb->setup_dma, 8, urb, cnt++); Index: ehci.h =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/usb/host/ehci.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ehci.h 25 Oct 2009 18:45:36 -0000 1.1 --- ehci.h 25 Oct 2009 18:50:27 -0000 1.2 *************** *** 38,41 **** --- 38,62 ---- #endif + /* + * Some platforms have weird constraints when accessing memory. + * + * For example, the Nintendo Wii video game console is unable to perform + * non-32 bit writes to non-cached memory for its second block of 64MB of RAM. + * As this platform also requires CONFIG_NOT_COHERENT, all memory allocated + * using the dma memory allocation functions can only be written using + * 32-bit accesses. + * + * Because of this constraint, as a workaround, we make sure that all + * fields in struct ehci_qh (which is allocated from a dma pool) are + * always 32 bit fields. + * Note that the remaining structs allocated from dma-able memory are already + * 32 bit fields. + */ + #ifdef CONFIG_USB_EHCI_HCD_MIPC + #define ehci_fld(type) u32 + #else + #define ehci_fld(type) type + #endif + /* statistics can be kept for for tuning/monitoring */ struct ehci_stats { *************** *** 336,340 **** unsigned stamp; ! u8 qh_state; #define QH_STATE_LINKED 1 /* HC sees this */ #define QH_STATE_UNLINK 2 /* HC may still see this */ --- 357,361 ---- unsigned stamp; ! ehci_fld(u8) qh_state; #define QH_STATE_LINKED 1 /* HC sees this */ #define QH_STATE_UNLINK 2 /* HC may still see this */ *************** *** 343,356 **** #define QH_STATE_COMPLETING 5 /* don't touch token.HALT */ ! u8 xacterrs; /* XactErr retry counter */ #define QH_XACTERR_MAX 32 /* XactErr retry limit */ /* periodic schedule info */ ! u8 usecs; /* intr bandwidth */ ! u8 gap_uf; /* uframes split/csplit gap */ ! u8 c_usecs; /* ... split completion bw */ ! u16 tt_usecs; /* tt downstream bandwidth */ ! unsigned short period; /* polling interval */ ! unsigned short start; /* where polling starts */ #define NO_FRAME ((unsigned short)~0) /* pick new start */ struct usb_device *dev; /* access to TT */ --- 364,377 ---- #define QH_STATE_COMPLETING 5 /* don't touch token.HALT */ ! ehci_fld(u8) xacterrs; /* XactErr retry counter */ #define QH_XACTERR_MAX 32 /* XactErr retry limit */ /* periodic schedule info */ ! ehci_fld(u8) usecs; /* intr bandwidth */ ! ehci_fld(u8) gap_uf; /* uframes split/csplit gap */ ! ehci_fld(u8) c_usecs; /* ... split completion bw */ ! ehci_fld(u16) tt_usecs; /* tt downstream bandwidth */ ! ehci_fld(unsigned short) period; /* polling interval */ ! ehci_fld(unsigned short) start; /* where polling starts */ #define NO_FRAME ((unsigned short)~0) /* pick new start */ struct usb_device *dev; /* access to TT */ *************** *** 589,592 **** --- 610,631 ---- #endif + #ifdef CONFIG_USB_EHCI_HCD_MIPC + + #include <asm/starlet-mini.h> + + static inline unsigned int ehci_readl(const struct ehci_hcd *ehci, + __u32 __iomem *regs) + { + return mipc_in_be32(regs); + } + + static inline void ehci_writel(const struct ehci_hcd *ehci, + const unsigned int val, __u32 __iomem *regs) + { + mipc_out_be32(regs, val); + } + + #else + /* * Big-endian read/write functions are arch-specific. *************** *** 622,625 **** --- 661,666 ---- } + #endif /* CONFIG_USB_EHCI_HCD_MIPC */ + /* * On certain ppc-44x SoC there is a HW issue, that could only worked around with Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/usb/host/Kconfig,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Kconfig 25 Oct 2009 18:45:36 -0000 1.8 --- Kconfig 25 Oct 2009 18:50:27 -0000 1.9 *************** *** 94,97 **** --- 94,105 ---- OpenFirmware platform bus. + config USB_EHCI_HCD_MIPC + bool "Nintendo Wii EHCI USB controller support via 'mini'" + depends on USB_EHCI_HCD && STARLET_MINI + default y + ---help--- + Say Y here to support the EHCI USB controller found in the + Nintendo Wii video game console. + config USB_OXU210HP_HCD tristate "OXU210HP HCD support" *************** *** 170,173 **** --- 178,190 ---- OpenFirmware platform bus. + config USB_OHCI_HCD_MIPC + bool "Nintendo Wii OHCI USB controller support via 'mini'" + depends on USB_OHCI_HCD && STARLET_MINI + select USB_OHCI_LITTLE_ENDIAN + default y + ---help--- + Say Y here to support the OHCI USB controller found in the + Nintendo Wii video game console. + config USB_OHCI_HCD_PPC_OF_BE bool "Support big endian HC" *************** *** 323,326 **** --- 340,362 ---- SH7366 and SH7723 processors. + config USB_WII_HCD + tristate "Nintendo Wii HCD support" + depends on USB && STARLET_IOS && !HIGHMEM && EXPERIMENTAL + help + The Nintendo Wii includes a USB 1.1 host controller that can be + accessed through the API provided by the starlet subsystem. + + Enable this option if you plan to use the internal Nintendo Wii + bluetooth dongle or any USB peripheral connected to the external + ports. + + USB devices using isochronous transfers are not supported. + Use of USB hubs is partially supported. + + Use completely at you own risk. If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called rvl-sthcd. + config USB_WHCI_HCD tristate "Wireless USB Host Controller Interface (WHCI) driver (EXPERIMENTAL)" Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/usb/host/Makefile,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Makefile 25 Oct 2009 18:33:47 -0000 1.5 --- Makefile 25 Oct 2009 18:50:27 -0000 1.6 *************** *** 29,31 **** --- 29,32 ---- obj-$(CONFIG_USB_R8A66597_HCD) += r8a66597-hcd.o obj-$(CONFIG_USB_ISP1760_HCD) += isp1760.o + obj-$(CONFIG_USB_WII_HCD) += rvl-sthcd.o obj-$(CONFIG_USB_HWA_HCD) += hwa-hc.o Index: ohci.h =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/usb/host/ohci.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ohci.h 25 Oct 2009 18:45:36 -0000 1.1 --- ohci.h 25 Oct 2009 18:50:27 -0000 1.2 *************** *** 17,20 **** --- 17,42 ---- /* + * Some platforms have weird constraints when accessing memory. + * + * For example, the Nintendo Wii video game console is unable to perform + * non-32 bit writes to non-cached memory for its second block of 64MB of RAM. + * As this platform also requires CONFIG_NOT_COHERENT_CACHE, all memory + * allocated using the dma memory allocation functions can only be written + * using 32-bit accesses. + * + * Because of this constraint, as a workaround, we make sure that all + * fields in struct ed and td (which are allocated from dma pools) are + * always 32 bit fields. + * Note that the remaining structs allocated from dma-able memory are already + * 32 bit fields. + */ + #ifdef CONFIG_USB_OHCI_HCD_MIPC + #define ohci_fld(type) u32 + #else + #define ohci_fld(type) type + #endif + + + /* * OHCI Endpoint Descriptor (ED) ... holds TD queue * See OHCI spec, section 4.2 *************** *** 52,70 **** * usually: OPER --> UNLINK --> (IDLE | OPER) --> ... */ ! u8 state; /* ED_{IDLE,UNLINK,OPER} */ #define ED_IDLE 0x00 /* NOT linked to HC */ #define ED_UNLINK 0x01 /* being unlinked from hc */ #define ED_OPER 0x02 /* IS linked to hc */ ! u8 type; /* PIPE_{BULK,...} */ /* periodic scheduling params (for intr and iso) */ ! u8 branch; ! u16 interval; ! u16 load; ! u16 last_iso; /* iso only */ /* HC may see EDs on rm_list until next frame (frame_no == tick) */ ! u16 tick; } __attribute__ ((aligned(16))); --- 74,92 ---- * usually: OPER --> UNLINK --> (IDLE | OPER) --> ... */ ! ohci_fld(u8) state; /* ED_{IDLE,UNLINK,OPER} */ #define ED_IDLE 0x00 /* NOT linked to HC */ #define ED_UNLINK 0x01 /* being unlinked from hc */ #define ED_OPER 0x02 /* IS linked to hc */ ! ohci_fld(u8) type; /* PIPE_{BULK,...} */ /* periodic scheduling params (for intr and iso) */ ! ohci_fld(u8) branch; ! ohci_fld(u16) interval; ! ohci_fld(u16) load; ! ohci_fld(u16) last_iso; /* iso only */ /* HC may see EDs on rm_list until next frame (frame_no == tick) */ ! ohci_fld(u16) tick; } __attribute__ ((aligned(16))); *************** *** 119,123 **** /* rest are purely for the driver's use */ ! __u8 index; struct ed *ed; struct td *td_hash; /* dma-->td hashtable */ --- 141,145 ---- /* rest are purely for the driver's use */ ! ohci_fld(__u8) index; struct ed *ed; struct td *td_hash; /* dma-->td hashtable */ *************** *** 403,406 **** --- 425,429 ---- #define OHCI_QUIRK_HUB_POWER 0x100 /* distrust firmware power/oc setup */ #define OHCI_QUIRK_AMD_ISO 0x200 /* ISO transfers*/ + #define OHCI_QUIRK_WII 0x400 /* Hollywood chipset */ // there are also chip quirks/bugs in init logic *************** *** 537,540 **** --- 560,594 ---- #endif + #ifdef CONFIG_USB_OHCI_HCD_MIPC + + #include <asm/starlet-mini.h> + + static inline unsigned int _ohci_readl(const struct ohci_hcd *ohci, + __hc32 __iomem *regs) + { + return mipc_in_be32(regs); + } + + static inline void _ohci_writel(const struct ohci_hcd *ohci, + const unsigned int val, __hc32 __iomem *regs) + { + mipc_out_be32(regs, val); + } + + extern void ohci_mipc_control_quirk(struct ohci_hcd *ohci); + extern void ohci_mipc_bulk_quirk(struct ohci_hcd *ohci); + + #else + + static inline void ohci_mipc_control_quirk(struct ohci_hcd *ohci) + { + return; + } + + static inline void ohci_mipc_bulk_quirk(struct ohci_hcd *ohci) + { + return; + } + /* * Big-endian read/write functions are arch-specific. *************** *** 566,569 **** --- 620,625 ---- } + #endif /* CONFIG_USB_OHCI_HCD_MIPC */ + #ifdef CONFIG_ARCH_LH7A404 /* Marc Singer: at the time this code was written, the LH7A404 Index: ohci-hcd.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/usb/host/ohci-hcd.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ohci-hcd.c 25 Oct 2009 18:45:36 -0000 1.1 --- ohci-hcd.c 25 Oct 2009 18:50:27 -0000 1.2 *************** *** 1062,1065 **** --- 1062,1070 ---- #endif + #ifdef CONFIG_USB_OHCI_HCD_MIPC + #include "ohci-mipc.c" + #define OF_PLATFORM_DRIVER ohci_hcd_mipc_driver + #endif + #ifdef CONFIG_PPC_PS3 #include "ohci-ps3.c" --- NEW FILE: ehci-mipc.c --- /* * drivers/usb/host/ehci-mipc.c * * Nintendo Wii USB Enhanced Host Controller Interface via 'mini' IPC (mipc). * Copyright (C) 2009 The GameCube Linux Team * Copyright (C) 2009 Albert Herranz * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or (at * your option) any later version. * * Based on ehci-ppc-of.c * * EHCI HCD (Host Controller Driver) for USB. * * Bus Glue for PPC On-Chip EHCI driver on the of_platform bus * Tested on AMCC PPC 440EPx * * Valentine Barshak <vba...@ru...> * * Based on "ehci-ppc-soc.c" by Stefan Roese <sr...@de...> * and "ohci-ppc-of.c" by Sylvain Munaut <tn...@24...> * * This file is licenced under the GPL. */ #include <linux/signal.h> #include <linux/of.h> #include <linux/of_platform.h> #include <asm/starlet.h> #define DRV_MODULE_NAME "ehci-mipc" #define DRV_DESCRIPTION "USB Enhanced Host Controller Interface via MINI" #define DRV_AUTHOR "Albert Herranz" #define HOLLYWOOD_EHCI_CTL 0x0d0400cc #define HOLLYWOOD_EHCI_CTL_INTE (1<<15) /* called during probe() after chip reset completes */ static int ehci_mipc_reset(struct usb_hcd *hcd) { struct ehci_hcd *ehci = hcd_to_ehci(hcd); void __iomem *ehci_ctl; int error; error = ehci_halt(ehci); if (error) goto out; error = ehci_init(hcd); if (error) goto out; ehci_ctl = mipc_ioremap(HOLLYWOOD_EHCI_CTL, 4); if (!ehci_ctl) { printk(KERN_ERR __FILE__ ": ioremap failed\n"); error = -EBUSY; goto out; } /* enable notification of EHCI interrupts */ mipc_out_be32(ehci_ctl, mipc_in_be32(ehci_ctl) | HOLLYWOOD_EHCI_CTL_INTE); mipc_iounmap(ehci_ctl); ehci->sbrn = 0x20; error = ehci_reset(ehci); out: return error; } static const struct hc_driver ehci_mipc_hc_driver = { .description = hcd_name, .product_desc = "Nintendo Wii EHCI Host Controller", .hcd_priv_size = sizeof(struct ehci_hcd), /* * generic hardware linkage */ .irq = ehci_irq, .flags = HCD_USB2 | HCD_BOUNCE_DMA_MEM, /* * basic lifecycle operations */ .reset = ehci_mipc_reset, .start = ehci_run, .stop = ehci_stop, .shutdown = ehci_shutdown, /* * managing i/o requests and associated device resources */ .urb_enqueue = ehci_urb_enqueue, .urb_dequeue = ehci_urb_dequeue, .endpoint_disable = ehci_endpoint_disable, /* * scheduling support */ .get_frame_number = ehci_get_frame, /* * root hub support */ .hub_status_data = ehci_hub_status_data, .hub_control = ehci_hub_control, #ifdef CONFIG_PM .bus_suspend = ehci_bus_suspend, .bus_resume = ehci_bus_resume, #endif .relinquish_port = ehci_relinquish_port, .port_handed_over = ehci_port_handed_over, }; static int __devinit ehci_hcd_mipc_probe(struct of_device *op, const struct of_device_id *match) { struct device_node *dn = op->node; struct usb_hcd *hcd; struct ehci_hcd *ehci = NULL; struct resource res; dma_addr_t coherent_mem_addr; size_t coherent_mem_size; int irq; int error = -ENODEV; if (usb_disabled()) goto out; if (starlet_get_ipc_flavour() != STARLET_IPC_MINI) goto out; dev_dbg(&op->dev, "initializing " DRV_MODULE_NAME " USB Controller\n"); error = of_address_to_resource(dn, 0, &res); if (error) goto out; hcd = usb_create_hcd(&ehci_mipc_hc_driver, &op->dev, DRV_MODULE_NAME); if (!hcd) { error = -ENOMEM; goto out; } hcd->rsrc_start = res.start; hcd->rsrc_len = resource_size(&res); error = of_address_to_resource(dn, 1, &res); if (error) { /* satisfy coherent memory allocations from mem1 or mem2 */ dev_warn(&op->dev, "using normal memory\n"); } else { coherent_mem_addr = res.start; coherent_mem_size = res.end - res.start + 1; if (!dma_declare_coherent_memory(&op->dev, coherent_mem_addr, coherent_mem_addr, coherent_mem_size, DMA_MEMORY_MAP | DMA_MEMORY_EXCLUSIVE)) { dev_err(&op->dev, "error declaring %u bytes of" " coherent memory at 0x%p\n", coherent_mem_size, (void *)coherent_mem_addr); error = -EBUSY; goto err_decl_coherent; } } irq = irq_of_parse_and_map(dn, 0); if (irq == NO_IRQ) { printk(KERN_ERR __FILE__ ": irq_of_parse_and_map failed\n"); error = -EBUSY; goto err_irq; } hcd->regs = mipc_ioremap(hcd->rsrc_start, hcd->rsrc_len); if (!hcd->regs) { printk(KERN_ERR __FILE__ ": ioremap failed\n"); error = -EBUSY; goto err_ioremap; } ehci = hcd_to_ehci(hcd); ehci->caps = hcd->regs; ehci->regs = hcd->regs + HC_LENGTH(ehci_readl(ehci, &ehci->caps->hc_capbase)); /* cache this readonly data; minimize chip reads */ ehci->hcs_params = ehci_readl(ehci, &ehci->caps->hcs_params); error = usb_add_hcd(hcd, irq, 0); if (error == 0) return 0; mipc_iounmap(hcd->regs); err_ioremap: irq_dispose_mapping(irq); err_irq: dma_release_declared_memory(&op->dev); err_decl_coherent: usb_put_hcd(hcd); out: return error; } static int ehci_hcd_mipc_remove(struct of_device *op) { struct usb_hcd *hcd = dev_get_drvdata(&op->dev); dev_set_drvdata(&op->dev, NULL); dev_dbg(&op->dev, "stopping " DRV_MODULE_NAME " USB Controller\n"); usb_remove_hcd(hcd); mipc_iounmap(hcd->regs); irq_dispose_mapping(hcd->irq); dma_release_declared_memory(&op->dev); usb_put_hcd(hcd); return 0; } static int ehci_hcd_mipc_shutdown(struct of_device *op) { struct usb_hcd *hcd = dev_get_drvdata(&op->dev); if (hcd->driver->shutdown) hcd->driver->shutdown(hcd); return 0; } static struct of_device_id ehci_hcd_mipc_match[] = { { .compatible = "nintendo,hollywood-ehci", }, {}, }; MODULE_DEVICE_TABLE(of, ehci_hcd_mipc_match); static struct of_platform_driver ehci_hcd_mipc_driver = { .name = DRV_MODULE_NAME, .match_table = ehci_hcd_mipc_match, .probe = ehci_hcd_mipc_probe, .remove = ehci_hcd_mipc_remove, .shutdown = ehci_hcd_mipc_shutdown, .driver = { .name = DRV_MODULE_NAME, .owner = THIS_MODULE, }, }; --- NEW FILE: ohci-mipc.c --- /* * drivers/usb/host/ohci-mipc.c * * Nintendo Wii USB Open Host Controller Interface via 'mini' IPC (mipc). * Copyright (C) 2009 The GameCube Linux Team * Copyright (C) 2009 Albert Herranz * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or (at * your option) any later version. * * Based on ohci-ppc-of.c * * OHCI HCD (Host Controller Driver) for USB. * * (C) Copyright 1999 Roman Weissgaerber <we...@vi...> * (C) Copyright 2000-2002 David Brownell <dbr...@us...> * (C) Copyright 2002 Hewlett-Packard Company * (C) Copyright 2006 Sylvain Munaut <tn...@24...> * * Bus glue for OHCI HC on the of_platform bus * * Modified for of_platform bus from ohci-sa1111.c * * This file is licenced under the GPL. */ #include <linux/signal.h> #include <linux/of_platform.h> #include <asm/prom.h> #include <asm/starlet.h> #include <asm/time.h> /* for get_tbl() */ #define DRV_MODULE_NAME "ohci-mipc" #define DRV_DESCRIPTION "USB Open Host Controller Interface for MINI" #define DRV_AUTHOR "Albert Herranz" #define HOLLYWOOD_EHCI_CTL 0x0d0400cc /* vendor control register */ #define HOLLYWOOD_EHCI_CTL_OH0INTE (1<<11) /* oh0 interrupt enable */ #define HOLLYWOOD_EHCI_CTL_OH1INTE (1<<12) /* oh1 interrupt enable */ #define __spin_event_timeout(condition, timeout_usecs, result, __end_tbl) \ for (__end_tbl = get_tbl() + tb_ticks_per_usec * timeout_usecs; \ !(result = (condition)) && (int)(__end_tbl - get_tbl()) > 0;) static DEFINE_SPINLOCK(control_quirk_lock); void ohci_mipc_control_quirk(struct ohci_hcd *ohci) { static struct ed *ed; /* empty ED */ struct td *td; /* dummy TD */ __hc32 head; __hc32 current; unsigned long ctx; int result; unsigned long flags; /* * One time only. * Allocate and keep a special empty ED with just a dummy TD. */ if (!ed) { ed = ed_alloc(ohci, GFP_ATOMIC); if (!ed) return; td = td_alloc(ohci, GFP_ATOMIC); if (!td) { ed_free(ohci, ed); ed = NULL; return; } ed->hwNextED = 0; ed->hwTailP = ed->hwHeadP = cpu_to_hc32(ohci, td->td_dma & ED_MASK); ed->hwINFO |= cpu_to_hc32(ohci, ED_OUT); wmb(); } spin_lock_irqsave(&control_quirk_lock, flags); /* * The OHCI USB host controllers on the Nintendo Wii * video game console stop working when new TDs are * added to a scheduled control ED after a transfer has * has taken place on it. * * Before scheduling any new control TD, we make the * controller happy by always loading a special control ED * with a single dummy TD and letting the controller attempt * the transfer. * The controller won't do anything with it, as the special * ED has no TDs, but it will keep the controller from failing * on the next transfer. */ head = ohci_readl(ohci, &ohci->regs->ed_controlhead); if (head) { /* * Load the special empty ED and tell the controller to * process the control list. */ ohci_writel(ohci, ed->dma, &ohci->regs->ed_controlhead); ohci_writel (ohci, ohci->hc_control | OHCI_CTRL_CLE, &ohci->regs->control); ohci_writel (ohci, OHCI_CLF, &ohci->regs->cmdstatus); /* spin until the controller is done with the control list */ current = ohci_readl(ohci, &ohci->regs->ed_controlcurrent); __spin_event_timeout(!current, 10 /* usecs */, result, ctx) { cpu_relax(); current = ohci_readl(ohci, &ohci->regs->ed_controlcurrent); } /* restore the old control head and control settings */ ohci_writel (ohci, ohci->hc_control, &ohci->regs->control); ohci_writel(ohci, head, &ohci->regs->ed_controlhead); } spin_unlock_irqrestore(&control_quirk_lock, flags); } void ohci_mipc_bulk_quirk(struct ohci_hcd *ohci) { /* * There seem to be issues too with the bulk list processing on the * OHCI controller found in the Nintendo Wii video game console. * The exact problem remains still unidentified, but adding a small * delay seems to workaround it. * * As an example, without this quirk the wiimote controller stops * responding after a few seconds because one of its bulk endpoint * descriptors gets stuck. */ udelay(250); } static int __devinit ohci_mipc_start(struct usb_hcd *hcd) { struct ohci_hcd *ohci = hcd_to_ohci(hcd); void __iomem *ehci_ctl; int error; error = ohci_init(ohci); if (error) goto out; ehci_ctl = mipc_ioremap(HOLLYWOOD_EHCI_CTL, 4); if (!ehci_ctl) { printk(KERN_ERR __FILE__ ": ioremap failed\n"); error = -EBUSY; ohci_stop(hcd); goto out; } /* enable notification of OHCI interrupts */ mipc_out_be32(ehci_ctl, mipc_in_be32(ehci_ctl) | 0xe0000 | HOLLYWOOD_EHCI_CTL_OH0INTE | HOLLYWOOD_EHCI_CTL_OH1INTE); mipc_iounmap(ehci_ctl); error = ohci_run(ohci); if (error) { err("can't start %s", ohci_to_hcd(ohci)->self.bus_name); ohci_stop(hcd); goto out; } out: return error; } static const struct hc_driver ohci_mipc_hc_driver = { .description = hcd_name, .product_desc = "Nintendo Wii OHCI Host Controller", .hcd_priv_size = sizeof(struct ohci_hcd), /* * generic hardware linkage */ .irq = ohci_irq, .flags = HCD_USB11 | HCD_BOUNCE_DMA_MEM, /* * basic lifecycle operations */ .start = ohci_mipc_start, .stop = ohci_stop, .shutdown = ohci_shutdown, /* * managing i/o requests and associated device resources */ .urb_enqueue = ohci_urb_enqueue, .urb_dequeue = ohci_urb_dequeue, .endpoint_disable = ohci_endpoint_disable, /* * scheduling support */ .get_frame_number = ohci_get_frame, /* * root hub support */ .hub_status_data = ohci_hub_status_data, .hub_control = ohci_hub_control, #ifdef CONFIG_PM .bus_suspend = ohci_bus_suspend, .bus_resume = ohci_bus_resume, #endif .start_port_reset = ohci_start_port_reset, }; static int __devinit ohci_hcd_mipc_probe(struct of_device *op, const struct of_device_id *match) { struct device_node *dn = op->node; struct usb_hcd *hcd; struct ohci_hcd *ohci = NULL; struct resource res; dma_addr_t coherent_mem_addr; size_t coherent_mem_size; int irq; int error = -ENODEV; if (usb_disabled()) goto out; if (starlet_get_ipc_flavour() != STARLET_IPC_MINI) goto out; dev_dbg(&op->dev, "initializing " DRV_MODULE_NAME " USB Controller\n"); error = of_address_to_resource(dn, 0, &res); if (error) goto out; hcd = usb_create_hcd(&ohci_mipc_hc_driver, &op->dev, DRV_MODULE_NAME); if (!hcd) { error = -ENOMEM; goto out; } hcd->rsrc_start = res.start; hcd->rsrc_len = resource_size(&res); error = of_address_to_resource(dn, 1, &res); if (error) { /* satisfy coherent memory allocations from mem1 or mem2 */ dev_warn(&op->dev, "using normal memory\n"); } else { coherent_mem_addr = res.start; coherent_mem_size = res.end - res.start + 1; if (!dma_declare_coherent_memory(&op->dev, coherent_mem_addr, coherent_mem_addr, coherent_mem_size, DMA_MEMORY_MAP | DMA_MEMORY_EXCLUSIVE)) { dev_err(&op->dev, "error declaring %u bytes of" " coherent memory at 0x%p\n", coherent_mem_size, (void *)coherent_mem_addr); error = -EBUSY; goto err_decl_coherent; } } irq = irq_of_parse_and_map(dn, 0); if (irq == NO_IRQ) { printk(KERN_ERR __FILE__ ": irq_of_parse_and_map failed\n"); error = -EBUSY; goto err_irq; } hcd->regs = mipc_ioremap(hcd->rsrc_start, hcd->rsrc_len); if (!hcd->regs) { printk(KERN_ERR __FILE__ ": ioremap failed\n"); error = -EBUSY; goto err_ioremap; } ohci = hcd_to_ohci(hcd); ohci->flags |= OHCI_QUIRK_WII; ohci_hcd_init(ohci); error = usb_add_hcd(hcd, irq, IRQF_DISABLED); if (error) goto err_add_hcd; return 0; err_add_hcd: mipc_iounmap(hcd->regs); err_ioremap: irq_dispose_mapping(irq); err_irq: dma_release_declared_memory(&op->dev); err_decl_coherent: usb_put_hcd(hcd); out: return error; } static int ohci_hcd_mipc_remove(struct of_device *op) { struct usb_hcd *hcd = dev_get_drvdata(&op->dev); dev_set_drvdata(&op->dev, NULL); dev_dbg(&op->dev, "stopping " DRV_MODULE_NAME " USB Controller\n"); usb_remove_hcd(hcd); mipc_iounmap(hcd->regs); irq_dispose_mapping(hcd->irq); dma_release_declared_memory(&op->dev); usb_put_hcd(hcd); return 0; } static int ohci_hcd_mipc_shutdown(struct of_device *op) { struct usb_hcd *hcd = dev_get_drvdata(&op->dev); if (hcd->driver->shutdown) hcd->driver->shutdown(hcd); return 0; } static struct of_device_id ohci_hcd_mipc_match[] = { { .compatible = "nintendo,hollywood-ohci", }, {}, }; MODULE_DEVICE_TABLE(of, ohci_hcd_mipc_match); static struct of_platform_driver ohci_hcd_mipc_driver = { .name = DRV_MODULE_NAME, .match_table = ohci_hcd_mipc_match, .probe = ohci_hcd_mipc_probe, .remove = ohci_hcd_mipc_remove, .shutdown = ohci_hcd_mipc_shutdown, .driver = { .name = DRV_MODULE_NAME, .owner = THIS_MODULE, }, }; Index: ehci-hcd.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/usb/host/ehci-hcd.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ehci-hcd.c 25 Oct 2009 18:45:36 -0000 1.1 --- ehci-hcd.c 25 Oct 2009 18:50:27 -0000 1.2 *************** *** 1063,1066 **** --- 1063,1071 ---- #endif + #ifdef CONFIG_USB_EHCI_HCD_MIPC + #include "ehci-mipc.c" + #define OF_PLATFORM_DRIVER ehci_hcd_mipc_driver + #endif + #ifdef CONFIG_PLAT_ORION #include "ehci-orion.c" Index: rvl-sthcd.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/usb/host/rvl-sthcd.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** rvl-sthcd.c 1 Feb 2009 18:29:35 -0000 1.5 --- rvl-sthcd.c 25 Oct 2009 18:50:27 -0000 1.6 *************** *** 36,39 **** --- 36,40 ---- #include <linux/usb.h> #include <asm/starlet.h> + #include <asm/starlet-ios.h> #include "../core/hcd.h" *************** *** 45,49 **** "Albert Herranz" ! static char sthcd_driver_version[] = "0.4i"; #define drv_printk(level, format, arg...) \ --- 46,50 ---- "Albert Herranz" ! static char sthcd_driver_version[] = "0.5i"; #define drv_printk(level, format, arg...) \ *************** *** 2264,2267 **** --- 2265,2271 ---- int error = -ENOMEM; + if (starlet_get_ipc_flavour() != STARLET_IPC_IOS) + return -ENODEV; + /* * We can't use normal dma as starlet requires MEM2 buffers *************** *** 2329,2333 **** static struct of_device_id sthcd_of_match[] = { ! { .compatible = "nintendo,starlet-hcd" }, { }, }; --- 2333,2337 ---- static struct of_device_id sthcd_of_match[] = { ! { .compatible = "nintendo,starlet-ios-hcd" }, { }, }; |
From: Albert H. <he...@us...> - 2009-10-25 18:50:37
|
Update of /cvsroot/gc-linux/linux/drivers/misc In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/drivers/misc Modified Files: Kconfig Makefile Log Message: Merge gc-linux-v2.6.30. Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/misc/Kconfig,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** Kconfig 25 Oct 2009 18:45:35 -0000 1.17 --- Kconfig 25 Oct 2009 18:50:27 -0000 1.18 *************** *** 56,59 **** --- 56,81 ---- interval timing. + config GAMECUBE_GQR + tristate "Nintendo GameCube/Wii Graphic Quantization Registers (GQR)" + depends on GAMECUBE_COMMON + help + This option enables device driver support for the Gekko/Broadway + processors' Graphic Quantization Registers. + These registers are used with the psql and psqst instructions. + The registers will appear in /proc/sys/gqr. + + config GAMECUBE_MI + tristate "Nintendo GameCube Memory Interface (MI)" + depends on GAMECUBE + help + If you say yes to this option, support will be included for the + Memory Interface (MI) of the Nintendo GameCube. + + The MI allows one to setup up to four protected memory regions, + catching invalid accesses to them. The MI catches out of bounds + memory accesses too. + + If in doubt, say N here. + config IBM_ASM tristate "Device driver for IBM RSA service processor" Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/misc/Makefile,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Makefile 25 Oct 2009 18:45:35 -0000 1.13 --- Makefile 25 Oct 2009 18:50:27 -0000 1.14 *************** *** 21,23 **** --- 21,25 ---- obj-$(CONFIG_ISL29003) += isl29003.o obj-$(CONFIG_C2PORT) += c2port/ + obj-$(CONFIG_GAMECUBE_GQR) += gcn-gqr.o + obj-$(CONFIG_GAMECUBE_MI) += gcn-mi.o obj-y += eeprom/ |
From: Albert H. <he...@us...> - 2009-10-25 18:50:37
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/mm In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/arch/powerpc/mm Modified Files: pgtable_32.c Log Message: Merge gc-linux-v2.6.30. Index: pgtable_32.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/mm/pgtable_32.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** pgtable_32.c 25 Oct 2009 18:45:35 -0000 1.5 --- pgtable_32.c 25 Oct 2009 18:50:27 -0000 1.6 *************** *** 193,199 **** */ if (mem_init_done && (p < virt_to_phys(high_memory))) { ! printk("__ioremap(): phys addr 0x%llx is RAM lr %p\n", ! (unsigned long long)p, __builtin_return_address(0)); ! return NULL; } #endif --- 193,209 ---- */ if (mem_init_done && (p < virt_to_phys(high_memory))) { ! /* ! * On some systems, though, we may want to remap normal RAM ! * that we have memreserve'd at the device tree. ! * But we can't do that safely if we are using BATs. ! * ! */ ! if (!__map_without_bats) { ! printk(KERN_WARNING ! "__ioremap(): phys addr 0x%llx is RAM lr %p\n", ! (unsigned long long)p, ! __builtin_return_address(0)); ! return NULL; ! } } #endif |
From: Albert H. <he...@us...> - 2009-10-25 18:50:37
|
Update of /cvsroot/gc-linux/linux/drivers/input In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/drivers/input Modified Files: Kconfig Log Message: Merge gc-linux-v2.6.30. Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/input/Kconfig,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Kconfig 25 Oct 2009 18:45:35 -0000 1.13 --- Kconfig 25 Oct 2009 18:50:27 -0000 1.14 *************** *** 181,184 **** --- 181,186 ---- source "drivers/input/gameport/Kconfig" + source "drivers/input/si/Kconfig" + endmenu |
From: Albert H. <he...@us...> - 2009-10-25 18:50:37
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/arch/powerpc/platforms/embedded6xx Modified Files: Kconfig Makefile starlet-es.c starlet-gpio.c starlet-ipc.c starlet-malloc.c starlet-stm.c usbgecko_udbg.c wii.c wii_dev.c Added Files: hollywood-pic.c hollywood-pic.h starlet-mipc.c Log Message: Merge gc-linux-v2.6.30. --- NEW FILE: hollywood-pic.h --- /* * arch/powerpc/platforms/embedded6xx/hollywood-pic.h * * Nintendo Wii "hollywood" interrupt controller support. * Copyright (C) 2009 The GameCube Linux Team * Copyright (C) 2009 Albert Herranz * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * */ #ifndef __HOLLYWOOD_PIC_H #define __HOLLYWOOD_PIC_H extern unsigned int hollywood_pic_get_irq(void); extern void hollywood_pic_probe(void); extern void hollywood_quiesce(void); #endif Index: starlet-stm.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx/starlet-stm.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** starlet-stm.c 28 Mar 2009 20:44:19 -0000 1.6 --- starlet-stm.c 25 Oct 2009 18:50:27 -0000 1.7 *************** *** 17,21 **** #include <linux/kernel.h> #include <linux/dma-mapping.h> ! #include <asm/starlet.h> --- 17,21 ---- #include <linux/kernel.h> #include <linux/dma-mapping.h> ! #include <asm/starlet-ios.h> *************** *** 77,81 **** } else { halt: ! for(;;) cpu_relax(); } --- 77,81 ---- } else { halt: ! for (;;) cpu_relax(); } Index: starlet-es.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx/starlet-es.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** starlet-es.c 28 Mar 2009 20:44:19 -0000 1.6 --- starlet-es.c 25 Oct 2009 18:50:27 -0000 1.7 *************** *** 2,6 **** * arch/powerpc/platforms/embedded6xx/starlet-es.c * ! * Nintendo Wii starlet ES routines * Copyright (C) 2008-2009 The GameCube Linux Team * Copyright (C) 2008,2009 Albert Herranz --- 2,6 ---- * arch/powerpc/platforms/embedded6xx/starlet-es.c * ! * Nintendo Wii starlet ES driver * Copyright (C) 2008-2009 The GameCube Linux Team * Copyright (C) 2008,2009 Albert Herranz *************** *** 19,22 **** --- 19,23 ---- #include <linux/scatterlist.h> #include <asm/starlet.h> + #include <asm/starlet-ios.h> #define DRV_MODULE_NAME "starlet-es" *************** *** 24,28 **** #define DRV_AUTHOR "Albert Herranz" ! static const char starlet_es_driver_version[] = "0.2i"; #define DBG(fmt, arg...) pr_debug(fmt, ##arg) --- 25,29 ---- #define DRV_AUTHOR "Albert Herranz" ! static const char starlet_es_driver_version[] = "0.3i"; #define DBG(fmt, arg...) pr_debug(fmt, ##arg) *************** *** 586,589 **** --- 587,593 ---- int retval; + if (starlet_get_ipc_flavour() != STARLET_IPC_IOS) + return -ENODEV; + es_dev = kzalloc(sizeof(*es_dev), GFP_KERNEL); if (!es_dev) { *************** *** 632,636 **** static struct of_device_id starlet_es_of_match[] = { ! { .compatible = "nintendo,starlet-es" }, { }, }; --- 636,640 ---- static struct of_device_id starlet_es_of_match[] = { ! { .compatible = "nintendo,starlet-ios-es" }, { }, }; --- NEW FILE: hollywood-pic.c --- /* * arch/powerpc/platforms/embedded6xx/hollywood-pic.c * * Nintendo Wii "hollywood" interrupt controller support. * Copyright (C) 2009 The GameCube Linux Team * Copyright (C) 2009 Albert Herranz * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * */ #include <linux/kernel.h> #include <linux/init.h> #include <linux/irq.h> #include <linux/of.h> #include <asm/io.h> #include <asm/starlet-mini.h> #include "hollywood-pic.h" #define DRV_MODULE_NAME "hollywood-pic" #define drv_printk(level, format, arg...) \ printk(level DRV_MODULE_NAME ": " format , ## arg) #define HOLLYWOOD_NR_IRQS 32 /* * Each interrupt has a corresponding bit in both * the Interrupt Cause (ICR) and Interrupt Mask (IMR) registers. * * Enabling/disabling an interrupt line involves asserting/clearing * the corresponding bit in IMR. ACK'ing a request simply involves * asserting the corresponding bit in ICR. */ #define HW_BROADWAY_ICR 0x00 #define HW_BROADWAY_IMR 0x04 /* * IRQ chip hooks. * */ static void hollywood_pic_mask_and_ack(unsigned int virq) { int irq = virq_to_hw(virq); void __iomem *io_base = get_irq_chip_data(virq); mipc_clear_bit(irq, io_base + HW_BROADWAY_IMR); mipc_set_bit(irq, io_base + HW_BROADWAY_ICR); mipc_wmb(); } static void hollywood_pic_ack(unsigned int virq) { int irq = virq_to_hw(virq); void __iomem *io_base = get_irq_chip_data(virq); mipc_set_bit(irq, io_base + HW_BROADWAY_ICR); mipc_wmb(); } static void hollywood_pic_mask(unsigned int virq) { int irq = virq_to_hw(virq); void __iomem *io_base = get_irq_chip_data(virq); mipc_clear_bit(irq, io_base + HW_BROADWAY_IMR); mipc_wmb(); } static void hollywood_pic_unmask(unsigned int virq) { int irq = virq_to_hw(virq); void __iomem *io_base = get_irq_chip_data(virq); mipc_set_bit(irq, io_base + HW_BROADWAY_IMR); mipc_wmb(); } static struct irq_chip hollywood_pic = { .typename = "hollywood-pic", .ack = hollywood_pic_ack, .mask_ack = hollywood_pic_mask_and_ack, .mask = hollywood_pic_mask, .unmask = hollywood_pic_unmask, }; /* * IRQ host hooks. * */ static struct irq_host *hollywood_irq_host; static int hollywood_pic_map(struct irq_host *h, unsigned int virq, irq_hw_number_t hwirq) { set_irq_chip_data(virq, h->host_data); set_irq_chip_and_handler(virq, &hollywood_pic, handle_level_irq); return 0; } static void hollywood_pic_unmap(struct irq_host *h, unsigned int irq) { set_irq_chip_data(irq, NULL); set_irq_chip(irq, NULL); } static struct irq_host_ops hollywood_irq_host_ops = { .map = hollywood_pic_map, .unmap = hollywood_pic_unmap, }; static unsigned int __hollywood_pic_get_irq(struct irq_host *h) { void __iomem *io_base = h->host_data; int irq; u32 irq_status; irq_status = mipc_in_be32(io_base + HW_BROADWAY_ICR) & mipc_in_be32(io_base + HW_BROADWAY_IMR); if (irq_status == 0) return NO_IRQ_IGNORE; /* no more IRQs pending */ __asm__ __volatile__("cntlzw %0,%1" : "=r"(irq) : "r"(irq_status)); return irq_linear_revmap(h, 31 - irq); } static void hollywood_pic_irq_cascade(unsigned int cascade_virq, struct irq_desc *desc) { struct irq_host *irq_host = get_irq_data(cascade_virq); unsigned int virq; spin_lock(&desc->lock); desc->chip->mask(cascade_virq); /* IRQ_LEVEL */ spin_unlock(&desc->lock); virq = __hollywood_pic_get_irq(irq_host); if (virq != NO_IRQ_IGNORE) generic_handle_irq(virq); else drv_printk(KERN_ERR, "spurious interrupt!\n"); spin_lock(&desc->lock); desc->chip->ack(cascade_virq); /* IRQ_LEVEL */ if (!(desc->status & IRQ_DISABLED) && desc->chip->unmask) desc->chip->unmask(cascade_virq); spin_unlock(&desc->lock); } /* * Platform hooks. * */ static void __hollywood_quiesce(void __iomem *io_base) { /* mask and ack all IRQs */ mipc_out_be32(io_base + HW_BROADWAY_IMR, 0); mipc_out_be32(io_base + HW_BROADWAY_ICR, ~0); mipc_wmb(); } struct irq_host *hollywood_pic_init(struct device_node *np) { struct irq_host *irq_host; struct resource res; void __iomem *io_base; int retval; retval = of_address_to_resource(np, 0, &res); if (retval) { drv_printk(KERN_ERR, "no io memory range found\n"); return NULL; } io_base = mipc_ioremap(res.start, resource_size(&res)); if (!io_base) { drv_printk(KERN_ERR, "ioremap failed\n"); return NULL; } drv_printk(KERN_INFO, "controller at 0x%p\n", io_base); __hollywood_quiesce(io_base); irq_host = irq_alloc_host(np, IRQ_HOST_MAP_LINEAR, HOLLYWOOD_NR_IRQS, &hollywood_irq_host_ops, NO_IRQ_IGNORE); if (!irq_host) { drv_printk(KERN_ERR, "failed to allocate irq_host\n"); return NULL; } irq_host->host_data = io_base; return irq_host; } unsigned int hollywood_pic_get_irq(void) { return __hollywood_pic_get_irq(hollywood_irq_host); } /* * Probe function. * */ void hollywood_pic_probe(void) { struct irq_host *host; struct device_node *np; const u32 *interrupts; int cascade_virq; for_each_compatible_node(np, NULL, "nintendo,hollywood-pic") { interrupts = of_get_property(np, "interrupts", NULL); if (interrupts) { host = hollywood_pic_init(np); BUG_ON(!host); cascade_virq = irq_of_parse_and_map(np, 0); set_irq_data(cascade_virq, host); set_irq_chained_handler(cascade_virq, hollywood_pic_irq_cascade); } } } /** * hollywood_quiesce() - quiesce hollywood irq controller * * Mask and ack all interrupt sources. * */ void hollywood_quiesce(void) { void __iomem *io_base = hollywood_irq_host->host_data; __hollywood_quiesce(io_base); } Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx/Makefile,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Makefile 25 Oct 2009 18:33:46 -0000 1.9 --- Makefile 25 Oct 2009 18:50:27 -0000 1.10 *************** *** 8,9 **** --- 8,20 ---- obj-$(CONFIG_PPC_PRPMC2800) += prpmc2800.o obj-$(CONFIG_PPC_C2K) += c2k.o + obj-$(CONFIG_GAMECUBE) += gamecube.o gamecube_dev.o + obj-$(CONFIG_WII) += wii.o wii_dev.o + obj-$(CONFIG_WII_GPIO) += starlet-gpio.o + obj-$(CONFIG_STARLET_MINI) += starlet-mipc.o + obj-$(CONFIG_STARLET_IOS) += starlet-ipc.o starlet-malloc.o \ + starlet-stm.o starlet-es.o + obj-$(CONFIG_FLIPPER_PIC) += flipper-pic.o + obj-$(CONFIG_HOLLYWOOD_PIC) += hollywood-pic.o + obj-$(CONFIG_USBGECKO_UDBG) += usbgecko_udbg.o + obj-$(CONFIG_GAMECUBE_VIDEO_UDBG) += gcnvi_udbg.o + obj-$(CONFIG_GAMECUBE_RSW) += gcn-rsw.o Index: starlet-malloc.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx/starlet-malloc.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** starlet-malloc.c 1 Feb 2009 18:29:35 -0000 1.2 --- starlet-malloc.c 25 Oct 2009 18:50:27 -0000 1.3 *************** *** 35,39 **** #include <linux/kernel.h> #include <linux/resource.h> ! #include <asm/starlet.h> --- 35,39 ---- #include <linux/kernel.h> #include <linux/resource.h> ! #include <asm/starlet-ios.h> Index: starlet-gpio.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx/starlet-gpio.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** starlet-gpio.c 2 Mar 2009 18:54:57 -0000 1.4 --- starlet-gpio.c 25 Oct 2009 18:50:27 -0000 1.5 *************** *** 19,22 **** --- 19,28 ---- #include <linux/of_platform.h> + #define DRV_MODULE_NAME "starlet-gpio" + + #define drv_printk(level, format, arg...) \ + printk(level DRV_MODULE_NAME ": " format , ## arg) + + struct stgpio_chip { struct of_mm_gpio_chip mmchip; *************** *** 98,101 **** --- 104,108 ---- struct stgpio_chip *st_gc; const unsigned long *prop; + int error; st_gc = kzalloc(sizeof(*st_gc), GFP_KERNEL); *************** *** 120,124 **** gc->set = stgpio_set; ! return of_mm_gpiochip_add(np, mm_gc); } --- 127,135 ---- gc->set = stgpio_set; ! error = of_mm_gpiochip_add(np, mm_gc); ! if (!error) ! drv_printk(KERN_INFO, "%s: added %u gpios at %p\n", ! np->name, gc->ngpio, mm_gc->regs); ! return error; } *************** *** 131,136 **** error = stgpio_add32(np); if (error < 0) ! printk(KERN_ERR "starlet-gpio: error %d adding gpios" ! " for %s\n", error, np->full_name); } return 0; /* whatever */ --- 142,147 ---- error = stgpio_add32(np); if (error < 0) ! drv_printk(KERN_ERR, "error %d adding gpios" ! " for %s\n", error, np->full_name); } return 0; /* whatever */ Index: usbgecko_udbg.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx/usbgecko_udbg.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** usbgecko_udbg.c 1 Feb 2009 18:29:35 -0000 1.5 --- usbgecko_udbg.c 25 Oct 2009 18:50:27 -0000 1.6 *************** *** 307,311 **** vaddr = 0xc0000000 | paddr; ! setbat(1, vaddr, paddr, 128*1024, _PAGE_IO); ug_io_base = (void __iomem *)(vaddr | 0x6814); --- 307,311 ---- vaddr = 0xc0000000 | paddr; ! setbat(1, vaddr, paddr, 128*1024, PAGE_KERNEL_NCG); ug_io_base = (void __iomem *)(vaddr | 0x6814); Index: starlet-ipc.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx/starlet-ipc.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** starlet-ipc.c 28 Mar 2009 20:44:19 -0000 1.8 --- starlet-ipc.c 25 Oct 2009 18:50:27 -0000 1.9 *************** *** 34,37 **** --- 34,38 ---- #include <asm/time.h> #include <asm/starlet.h> + #include <asm/starlet-ios.h> *************** *** 446,450 **** int result; ! __spin_event_timeout(req->jiffies == 0 && !test_bit(__REBOOT, &ipc_dev->flags), usecs, result, counter) --- 447,451 ---- int result; ! __spin_event_timeout(req->jiffies == 0 && !test_bit(__REBOOT, &ipc_dev->flags), usecs, result, counter) *************** *** 1479,1482 **** --- 1480,1486 ---- int retval; + if (starlet_get_ipc_flavour() != STARLET_IPC_IOS) + return -ENODEV; + ipc_dev = kzalloc(sizeof(*ipc_dev), GFP_KERNEL); if (!ipc_dev) { *************** *** 1560,1564 **** static struct of_device_id starlet_ipc_of_match[] = { ! { .compatible = "nintendo,starlet-ipc" }, { }, }; --- 1564,1568 ---- static struct of_device_id starlet_ipc_of_match[] = { ! { .compatible = "nintendo,starlet-ios-ipc" }, { }, }; Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx/Kconfig,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Kconfig 25 Oct 2009 18:45:35 -0000 1.9 --- Kconfig 25 Oct 2009 18:50:27 -0000 1.10 *************** *** 91,92 **** --- 91,198 ---- bool "Enable MPC10x store gathering" depends on MPC10X_BRIDGE + + config GAMECUBE + bool "Nintendo-GameCube" + depends on EMBEDDED6xx + select GAMECUBE_COMMON + help + Select GAMECUBE if configuring for the Nintendo GameCube. + More information at: <http://gc-linux.sourceforge.net/> + + config WII + bool "Nintendo-Wii" + depends on EMBEDDED6xx + select GAMECUBE_COMMON + select PPC_LIB_RHEAP if STARLET_IOS + select USB_ARCH_HAS_EHCI if STARLET_MINI + select USB_ARCH_HAS_OHCI if STARLET_MINI + select HAVE_GENERIC_DMA_COHERENT + help + Select WII if configuring for the Nintendo Wii. + More information at: <http://gc-linux.sourceforge.net/> + + config STARLET_IOS + bool "Nintendo Wii Starlet IOS support" + depends on WII + default y + + config STARLET_MINI + bool "Team Twiizers 'mini' firmware support" + depends on WII && EXPERIMENTAL + default y + + config FLIPPER_PIC + bool + depends on GAMECUBE_COMMON + default y + + config HOLLYWOOD_PIC + bool + depends on STARLET_MINI + default y + + config GAMECUBE_COMMON + bool + select NOT_COHERENT_CACHE + select FLIPPER_PIC + default n + + config GAMECUBE_UDBG + bool "Nintendo GameCube/Wii udbg support" + depends on GAMECUBE_COMMON + default n + help + If you say yes to this option, you will be able to choose between + several udbg drivers available for the Nintendo GameCube/Wii. + + If in doubt, say N here. + + choice + prompt "Nintendo GameCube/Wii udbg drivers" + depends on GAMECUBE_UDBG + + config USBGECKO_UDBG + bool "USB Gecko udbg console for the Nintendo GameCube/Wii" + help + If you say yes to this option, support will be included for the + USB Gecko adapter as an udbg console. + The USB Gecko is a EXI to USB Serial converter that can be plugged + into a memcard slot in the Nintendo GameCube/Wii. + + This driver bypasses the EXI layer completely. + + If in doubt, say N here. + + config GAMECUBE_VIDEO_UDBG + bool "Nintendo GameCube/Wii framebuffer udbg console" + select FONTS + select FONT_8x16 + help + If you say yes to this option, support will be included for a + framebuffer based udbg console for the Nintendo GameCube/Wii. + + If in doubt, say N here. + + endchoice + + config GAMECUBE_RSW + bool "Nintendo GameCube/Wii reset switch/button" + depends on GAMECUBE_COMMON + default y + help + If you say yes to this option, support will be included for the + reset switch/button of the Nintendo GameCube/Wii. + + If in doubt, say Y here. + + config WII_GPIO + bool "Nintendo Wii GPIO support" + depends on GPIOLIB + default y + help + If you say yes to this option, support will be included for the + Nintendo Wii GPIO lines that control, for example, the sensor + bar IR leds, the front led, or the eject switch of the disk unit. + + If in doubt, say Y here. + Index: wii_dev.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx/wii_dev.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** wii_dev.c 1 Feb 2009 18:29:35 -0000 1.5 --- wii_dev.c 25 Oct 2009 18:50:27 -0000 1.6 *************** *** 21,24 **** --- 21,30 ---- static struct of_device_id wii_of_bus[] = { { .compatible = "nintendo,hollywood", }, + #ifdef CONFIG_STARLET_IOS + { .compatible = "nintendo,starlet-ios-ipc", }, + #endif + #ifdef CONFIG_STARLET_MINI + { .compatible = "twiizers,starlet-mini-ipc", }, + #endif { }, }; Index: wii.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx/wii.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** wii.c 28 Mar 2009 20:44:19 -0000 1.5 --- wii.c 25 Oct 2009 18:50:27 -0000 1.6 *************** *** 19,22 **** --- 19,23 ---- #include <linux/kexec.h> #include <linux/exi.h> + #include <linux/gpio.h> #include <asm/io.h> *************** *** 25,28 **** --- 26,31 ---- #include <asm/time.h> #include <asm/starlet.h> + #include <asm/starlet-ios.h> + #include <asm/starlet-mini.h> #include <asm/udbg.h> *************** *** 32,36 **** ! static void wii_restart(char *cmd) { local_irq_disable(); --- 35,50 ---- ! static enum starlet_ipc_flavour starlet_ipc_flavour; ! ! static void wii_death_loop(void) ! { ! local_irq_disable(); ! for (;;) ! cpu_relax(); ! } ! ! #ifdef CONFIG_STARLET_IOS ! ! static void wii_ios_restart(char *cmd) { local_irq_disable(); *************** *** 46,50 **** } ! static void wii_power_off(void) { local_irq_disable(); --- 60,64 ---- } ! static void wii_ios_power_off(void) { local_irq_disable(); *************** *** 58,64 **** } static void wii_halt(void) { ! wii_restart(NULL); } --- 72,149 ---- } + #else + + static void wii_ios_restart(char *cmd) + { + wii_death_loop(); + } + + static void wii_ios_power_off(void) + { + wii_death_loop(); + } + + #endif /* CONFIG_STARLET_IOS */ + + #ifdef CONFIG_STARLET_MINI + + static void wii_mipc_restart(char *cmd) + { + void __iomem *hw_resets; + + local_irq_disable(); + + hw_resets = mipc_ioremap(0x0d800194, 4); + if (hw_resets) { + /* clear the system reset pin to cause a reset */ + mipc_clear_bit(0, hw_resets); + mipc_wmb(); + mipc_iounmap(hw_resets); + } + + for (;;) + cpu_relax(); + } + + static void wii_mipc_power_off(void) + { + void __iomem *gpio; + + local_irq_disable(); + + gpio = mipc_ioremap(0x0d8000e0, 3*4); + if (gpio) { + /* make sure that the poweroff GPIO is configured as output */ + mipc_out_be32(gpio + 4, mipc_in_be32(gpio + 4) | 0x2); + + /* drive the poweroff GPIO high */ + mipc_out_be32(gpio + 0, mipc_in_be32(gpio + 0) | 0x2); + mipc_wmb(); + mipc_iounmap(gpio); + } + + for (;;) + cpu_relax(); + } + + #else + + static void wii_mipc_restart(char *cmd) + { + wii_death_loop(); + } + + static void wii_mipc_power_off(void) + { + wii_death_loop(); + } + + #endif /* CONFIG_STARLET_MINI */ + static void wii_halt(void) { ! if (ppc_md.restart) ! ppc_md.restart(NULL); ! wii_death_loop(); } *************** *** 69,76 **** --- 154,187 ---- } + int starlet_discover_ipc_flavour(void) + { + struct mipc_infohdr *hdrp; + int error; + + error = mipc_discover(&hdrp); + if (!error) { + starlet_ipc_flavour = STARLET_IPC_MINI; + ppc_md.restart = wii_mipc_restart; + ppc_md.power_off = wii_mipc_power_off; + } else { + starlet_ipc_flavour = STARLET_IPC_IOS; + ppc_md.restart = wii_ios_restart; + ppc_md.power_off = wii_ios_power_off; + } + + return 0; + } + + enum starlet_ipc_flavour starlet_get_ipc_flavour(void) + { + return starlet_ipc_flavour; + } + static void __init wii_setup_arch(void) { ug_udbg_init(); gcnvi_udbg_init(); + + starlet_discover_ipc_flavour(); } *************** *** 155,163 **** local_irq_disable(); /* * Reload IOS to make sure that I/O resources are freed before * the final kexec phase. ! */ ! starlet_es_reload_ios_and_discard(); default_machine_kexec(image); --- 266,277 ---- local_irq_disable(); + #ifdef CONFIG_STARLET_IOS /* * Reload IOS to make sure that I/O resources are freed before * the final kexec phase. ! */ ! if (starlet_get_ipc_flavour() == STARLET_IPC_IOS) ! starlet_es_reload_ios_and_discard(); ! #endif default_machine_kexec(image); *************** *** 173,178 **** .init_early = wii_init_early, .show_cpuinfo = wii_show_cpuinfo, - .restart = wii_restart, - .power_off = wii_power_off, .halt = wii_halt, .init_IRQ = flipper_pic_probe, --- 287,290 ---- --- NEW FILE: starlet-mipc.c --- /* * arch/powerpc/platforms/embedded6xx/starlet-mipc.c * * IPC driver for the 'mini' firmware replacement for Starlet * Copyright (C) 2009 The GameCube Linux Team * Copyright (C) 2009 Albert Herranz * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * */ #include <linux/kernel.h> #include <linux/module.h> #include <linux/init.h> #include <linux/of_platform.h> [...1189 lines suppressed...] static int __init mipc_init_module(void) { drv_printk(KERN_INFO, "%s - version %s\n", DRV_DESCRIPTION, mipc_driver_version); return of_register_platform_driver(&mipc_of_driver); } static void __exit mipc_exit_module(void) { of_unregister_platform_driver(&mipc_of_driver); } module_init(mipc_init_module); module_exit(mipc_exit_module); MODULE_DESCRIPTION(DRV_DESCRIPTION); MODULE_AUTHOR(DRV_AUTHOR); MODULE_LICENSE("GPL"); |
From: Albert H. <he...@us...> - 2009-10-25 18:50:37
|
Update of /cvsroot/gc-linux/linux/include/linux In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/include/linux Modified Files: fb.h gpio.h i2c-gpio.h kexec.h Log Message: Merge gc-linux-v2.6.30. Index: i2c-gpio.h =================================================================== RCS file: /cvsroot/gc-linux/linux/include/linux/i2c-gpio.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** i2c-gpio.h 25 Oct 2009 18:33:47 -0000 1.3 --- i2c-gpio.h 25 Oct 2009 18:50:28 -0000 1.4 *************** *** 34,37 **** --- 34,38 ---- unsigned int scl_is_open_drain:1; unsigned int scl_is_output_only:1; + unsigned int sda_enforce_dir:1; }; Index: kexec.h =================================================================== RCS file: /cvsroot/gc-linux/linux/include/linux/kexec.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** kexec.h 25 Oct 2009 18:45:36 -0000 1.1 --- kexec.h 25 Oct 2009 18:50:28 -0000 1.2 *************** *** 53,60 **** typedef unsigned long kimage_entry_t; ! #define IND_DESTINATION 0x1 ! #define IND_INDIRECTION 0x2 ! #define IND_DONE 0x4 ! #define IND_SOURCE 0x8 #define KEXEC_SEGMENT_MAX 16 --- 53,61 ---- typedef unsigned long kimage_entry_t; ! #define IND_DESTINATION 0x01 ! #define IND_INDIRECTION 0x02 ! #define IND_DONE 0x04 ! #define IND_SOURCE 0x08 ! #define IND_NOALLOC 0x10 /* special case for memory preserving code */ #define KEXEC_SEGMENT_MAX 16 *************** *** 126,129 **** --- 127,132 ---- extern struct page *kimage_alloc_control_pages(struct kimage *image, unsigned int order); + extern int kimage_add_preserved_region(struct kimage *image, unsigned long to, + unsigned long from, int length); extern void crash_kexec(struct pt_regs *); int kexec_should_crash(struct task_struct *); Index: fb.h =================================================================== RCS file: /cvsroot/gc-linux/linux/include/linux/fb.h,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** fb.h 25 Oct 2009 18:45:36 -0000 1.34 --- fb.h 25 Oct 2009 18:50:28 -0000 1.35 *************** *** 39,42 **** --- 39,47 ---- #define FBIOGET_DISPINFO 0x4618 + #define FBIOWAITRETRACE 0x4619 + #define FBIOWAITPEFINISH 0x4620 + #define FBIOVIRTTOPHYS 0x4621 + #define FBIOFLIP 0x4622 + #define FBIOFLIPHACK 0x4623 /* libsdl */ #define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */ *************** *** 902,906 **** #define fb_writeb __raw_writeb #define fb_writew __raw_writew ! #define fb_writel __raw_writel #define fb_writeq __raw_writeq #define fb_memset memset_io --- 907,917 ---- #define fb_writeb __raw_writeb #define fb_writew __raw_writew ! #ifndef CONFIG_FB_GAMECUBE /* XXX Why? O' why? */ ! # define fb_writel __raw_writel ! #else ! extern unsigned int vifb_writel(unsigned int, void *); ! # define fb_writel(b, addr) vifb_writel(b, addr) ! # define fb_writel_real(b, addr) (*(/*volatile*/ u32 __iomem *)(addr) = (b)) ! #endif #define fb_writeq __raw_writeq #define fb_memset memset_io Index: gpio.h =================================================================== RCS file: /cvsroot/gc-linux/linux/include/linux/gpio.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** gpio.h 25 Oct 2009 18:33:47 -0000 1.3 --- gpio.h 25 Oct 2009 18:50:28 -0000 1.4 *************** *** 50,53 **** --- 50,58 ---- } + static inline int gpio_direction_is_output(unsigned gpio) + { + return -EINVAL; + } + static inline int gpio_get_value(unsigned gpio) { |
From: Albert H. <he...@us...> - 2009-10-25 18:50:36
|
Update of /cvsroot/gc-linux/linux/sound/ppc In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/sound/ppc Modified Files: Kconfig Makefile Log Message: Merge gc-linux-v2.6.30. Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/sound/ppc/Makefile,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Makefile 25 Oct 2009 18:33:48 -0000 1.10 --- Makefile 25 Oct 2009 18:50:28 -0000 1.11 *************** *** 5,10 **** --- 5,13 ---- snd-powermac-objs := powermac.o pmac.o awacs.o burgundy.o daca.o tumbler.o keywest.o beep.o + snd-gcn-objs := gcn-ai.o # Toplevel Module Dependency obj-$(CONFIG_SND_POWERMAC) += snd-powermac.o obj-$(CONFIG_SND_PS3) += snd_ps3.o + obj-$(CONFIG_SND_GAMECUBE) += snd-gcn.o + obj-$(CONFIG_SND_GAMECUBE_MIC) += gcn-mic.o Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/sound/ppc/Kconfig,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** Kconfig 25 Oct 2009 18:45:36 -0000 1.19 --- Kconfig 25 Oct 2009 18:50:28 -0000 1.20 *************** *** 50,52 **** --- 50,70 ---- default "2000" + config SND_GAMECUBE + tristate "Nintendo GameCube/Wii" + depends on SND && GAMECUBE_COMMON + help + Say Y here to include support for audio on the Nintendo GameCube/Wii. + + To compile this driver as a module, choose M here: the module + will be called snd-gcn. + + config SND_GAMECUBE_MIC + tristate "Nintendo GameCube Microphone (DOL-022)" + depends on SND && GAMECUBE_EXI && EXPERIMENTAL + help + If you say yes to this option, support will be included for the + Nintendo GameCube Microphone (DOL-022). + + If in doubt, say N here. + endif # SND_PPC |
From: Albert H. <he...@us...> - 2009-10-25 18:50:36
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/kernel In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/arch/powerpc/kernel Modified Files: cputable.c dma.c head_32.S udbg.c Log Message: Merge gc-linux-v2.6.30. Index: udbg.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/kernel/udbg.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** udbg.c 25 Oct 2009 18:45:35 -0000 1.6 --- udbg.c 25 Oct 2009 18:50:26 -0000 1.7 *************** *** 61,64 **** --- 61,66 ---- #elif defined(CONFIG_PPC_EARLY_DEBUG_CPM) udbg_init_cpm(); + #elif defined(CONFIG_PPC_EARLY_DEBUG_USBGECKO) + udbg_init_usbgecko(); #endif Index: dma.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/kernel/dma.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** dma.c 25 Oct 2009 18:45:35 -0000 1.1 --- dma.c 25 Oct 2009 18:50:26 -0000 1.2 *************** *** 33,36 **** --- 33,39 ---- void *ret; #ifdef CONFIG_NOT_COHERENT_CACHE + if (dma_alloc_from_coherent(dev, size, dma_handle, &ret)) + return ret; + ret = __dma_alloc_coherent(dev, size, dma_handle, flag); if (ret == NULL) *************** *** 60,63 **** --- 63,68 ---- { #ifdef CONFIG_NOT_COHERENT_CACHE + if (dma_release_from_coherent(dev, get_order(size), vaddr)) + return; __dma_free_coherent(size, vaddr); #else Index: head_32.S =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/kernel/head_32.S,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** head_32.S 25 Oct 2009 18:45:35 -0000 1.10 --- head_32.S 25 Oct 2009 18:50:26 -0000 1.11 *************** *** 165,168 **** --- 165,171 ---- bl setup_cpm_bat #endif + #ifdef CONFIG_PPC_EARLY_DEBUG_USBGECKO + bl setup_usbgecko_bat + #endif /* *************** *** 1294,1297 **** --- 1297,1318 ---- #endif + #ifdef CONFIG_PPC_EARLY_DEBUG_USBGECKO + setup_usbgecko_bat: + /* prepare a BAT for early io */ + lis r8, 0x0c00 + ori r8, r8, 0x002a /* uncached, guarded ,rw */ + lis r11, 0xcc00 + ori r11, r11, 0x3 /* 128K */ + #ifdef CONFIG_WII + oris r8, r8, 0x0100 + oris r11, r11, 0x0100 + #endif + mtspr SPRN_DBAT1L, r8 + mtspr SPRN_DBAT1U, r11 + sync + isync + blr + #endif + #ifdef CONFIG_8260 /* Jump into the system reset for the rom. Index: cputable.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/kernel/cputable.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** cputable.c 25 Oct 2009 18:45:35 -0000 1.9 --- cputable.c 25 Oct 2009 18:50:26 -0000 1.10 *************** *** 691,699 **** .platform = "ppc750", }, ! { /* 750CL */ ! .pvr_mask = 0xfffff0f0, ! .pvr_value = 0x00087010, ! .cpu_name = "750CL", ! .cpu_features = CPU_FTRS_750CL, .cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE, .mmu_features = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS, --- 691,699 ---- .platform = "ppc750", }, ! { /* 745/755 */ ! .pvr_mask = 0xfffff000, ! .pvr_value = 0x00083000, ! .cpu_name = "745/755", ! .cpu_features = CPU_FTRS_750, .cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE, .mmu_features = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS, *************** *** 706,716 **** .platform = "ppc750", }, ! { /* 745/755 */ ! .pvr_mask = 0xfffff000, ! .pvr_value = 0x00083000, ! .cpu_name = "745/755", ! .cpu_features = CPU_FTRS_750, .cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE, ! .mmu_features = MMU_FTR_HPTE_TABLE, .icache_bsize = 32, .dcache_bsize = 32, --- 706,716 ---- .platform = "ppc750", }, ! { /* 750CL (and "Broadway") */ ! .pvr_mask = 0xfffff0e0, ! .pvr_value = 0x00087000, ! .cpu_name = "750CL", ! .cpu_features = CPU_FTRS_750CL, .cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE, ! .mmu_features = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS, .icache_bsize = 32, .dcache_bsize = 32, |
From: Albert H. <he...@us...> - 2009-10-25 18:50:36
|
Update of /cvsroot/gc-linux/linux/drivers/net In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/drivers/net Modified Files: Kconfig Makefile gcn-bba.c Log Message: Merge gc-linux-v2.6.30. Index: gcn-bba.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/net/gcn-bba.c,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** gcn-bba.c 2 Mar 2009 18:46:20 -0000 1.18 --- gcn-bba.c 25 Oct 2009 18:50:27 -0000 1.19 *************** *** 348,357 **** #if defined(__BIG_ENDIAN_BITFIELD) __u32 status:8, ! packet_len : 12, ! next_packet_ptr : 12; #else __u32 next_packet_ptr:12, ! packet_len : 12, ! status : 8; #endif } __attribute((packed)); --- 348,357 ---- #if defined(__BIG_ENDIAN_BITFIELD) __u32 status:8, ! packet_len:12, ! next_packet_ptr:12; #else __u32 next_packet_ptr:12, ! packet_len:12, ! status:8; #endif } __attribute((packed)); Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/net/Makefile,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** Makefile 25 Oct 2009 18:45:35 -0000 1.34 --- Makefile 25 Oct 2009 18:50:27 -0000 1.35 *************** *** 234,237 **** --- 234,238 ---- obj-$(CONFIG_ENC28J60) += enc28j60.o obj-$(CONFIG_ETHOC) += ethoc.o + obj-$(CONFIG_GAMECUBE_BBA) += gcn-bba.o obj-$(CONFIG_XTENSA_XT2000_SONIC) += xtsonic.o Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/net/Kconfig,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** Kconfig 25 Oct 2009 18:45:35 -0000 1.40 --- Kconfig 25 Oct 2009 18:50:27 -0000 1.41 *************** *** 281,284 **** --- 281,293 ---- will be called bmac. + config GAMECUBE_BBA + tristate "Nintendo GameCube ethernet BroadBand Adapter (BBA)" + depends on GAMECUBE_EXI && GAMECUBE + help + Say Y here to add ethernet support for the Broadband Adapter (BBA). + + To compile this driver as a module, choose M here: the module + will be called gcn-bba. + config ARIADNE tristate "Ariadne support" |
From: Albert H. <he...@us...> - 2009-10-25 18:50:36
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/platforms In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/arch/powerpc/platforms Modified Files: Kconfig.cputype Log Message: Merge gc-linux-v2.6.30. Index: Kconfig.cputype =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/platforms/Kconfig.cputype,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Kconfig.cputype 25 Oct 2009 18:45:35 -0000 1.9 --- Kconfig.cputype 25 Oct 2009 18:50:27 -0000 1.10 *************** *** 271,275 **** config NOT_COHERENT_CACHE bool ! depends on 4xx || 8xx || E200 || PPC_MPC512x default y --- 271,275 ---- config NOT_COHERENT_CACHE bool ! depends on 4xx || 8xx || E200 || PPC_MPC512x || GAMECUBE_COMMON default y |
From: Albert H. <he...@us...> - 2009-10-25 18:50:36
|
Update of /cvsroot/gc-linux/linux/drivers/net/usb In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/drivers/net/usb Modified Files: usbnet.c Log Message: Merge gc-linux-v2.6.30. Index: usbnet.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/net/usb/usbnet.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** usbnet.c 25 Oct 2009 18:45:36 -0000 1.5 --- usbnet.c 25 Oct 2009 18:50:27 -0000 1.6 *************** *** 516,520 **** --- 516,522 ---- // during some PM-driven resume scenarios, // these (async) unlinks complete immediately + spin_unlock(&q->lock); retval = usb_unlink_urb (urb); + spin_lock(&q->lock); if (retval != -EINPROGRESS && retval != 0) devdbg (dev, "unlink urb err, %d", retval); |
From: Albert H. <he...@us...> - 2009-10-25 18:50:36
|
Update of /cvsroot/gc-linux/linux/drivers In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/drivers Modified Files: Kconfig Makefile Log Message: Merge gc-linux-v2.6.30. Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/Makefile,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** Makefile 25 Oct 2009 18:45:35 -0000 1.30 --- Makefile 25 Oct 2009 18:50:27 -0000 1.31 *************** *** 103,106 **** --- 103,108 ---- obj-$(CONFIG_HID) += hid/ obj-$(CONFIG_PPC_PS3) += ps3/ + obj-$(CONFIG_GAMECUBE_EXI) += exi/ + obj-$(CONFIG_GAMECUBE_SI) += input/si/ obj-$(CONFIG_OF) += of/ obj-$(CONFIG_SSB) += ssb/ Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/Kconfig,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Kconfig 25 Oct 2009 18:33:46 -0000 1.6 --- Kconfig 25 Oct 2009 18:50:27 -0000 1.7 *************** *** 51,54 **** --- 51,56 ---- source "drivers/i2c/Kconfig" + source "drivers/exi/Kconfig" + source "drivers/spi/Kconfig" |
From: Albert H. <he...@us...> - 2009-10-25 18:50:36
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/boot/dts In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/arch/powerpc/boot/dts Modified Files: wii.dts Log Message: Merge gc-linux-v2.6.30. Index: wii.dts =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/boot/dts/wii.dts,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** wii.dts 28 Mar 2009 20:44:19 -0000 1.13 --- wii.dts 25 Oct 2009 18:50:26 -0000 1.14 *************** *** 27,31 **** chosen { /* ramdisk */ ! /* bootargs = "nobats root=/dev/ram0 video=gcnfb:tv=NTSC ip=on force_keyboard_port=4"; */ /* nfsroot */ --- 27,31 ---- chosen { /* ramdisk */ ! /* bootargs = "nobats root=/dev/ram0 video=gcnfb ip=on force_keyboard_port=4"; */ /* nfsroot */ *************** *** 33,38 **** /* root filesystem on 2nd partition of SD card, whiite style */ ! bootargs = "nobats root=/dev/rvlsda2 video=gcnfb force_keyboard_port=4 placeholder_for_additional_kernel_options_targetted_at_hexedit_lovers"; ! linux,stdout-path = "/exi@0d006800/usbgecko@0d006814"; }; --- 33,42 ---- /* root filesystem on 2nd partition of SD card, whiite style */ ! bootargs = "nobats root=/dev/mmcblk0p2 rootwait force_keyboard_port=4 video=gcnfb:60Hz,tv=NTSC placeholder_for_additional_kernel_options_targetted_at_hexedit_lovers"; ! linux,stdout-path = &USBGECKO0; ! }; ! ! aliases { ! ugecon = &USBGECKO0; }; *************** *** 67,93 **** }; - pic: pic@0c003000 { - #interrupt-cells = <1>; - compatible = "nintendo,flipper-pic"; - reg = <0c003000 8>; - interrupt-controller; - }; - - /* External Interface bus */ - exi@0d006800 { - #address-cells = <1>; - #size-cells = <1>; - compatible = "nintendo,hollywood-exi"; - reg = <0d006800 40>; - interrupts = <04>; - interrupt-parent = <&pic>; - - udbg_console: usbgecko@0d006814 { - compatible = "usbgecko,usbgecko"; - reg = <0d006814 14>; - virtual-reg = <cd006814>; - }; - }; - /* devices contained in the hollywood chipset */ soc { --- 71,74 ---- *************** *** 100,105 **** ranges = <0c000000 0c000000 00010000 0d000000 0d000000 00010000 0d800000 0d800000 00001000 ! 133e0000 133e0000 00020000>; video@0c002000 { --- 81,87 ---- ranges = <0c000000 0c000000 00010000 0d000000 0d000000 00010000 + 0d040000 0d040000 00050000 0d800000 0d800000 00001000 ! 133e0000 133e0000 00c20000>; video@0c002000 { *************** *** 107,120 **** reg = <0c002000 100>; interrupts = <08>; ! interrupt-parent = <&pic>; xfb-start = <01698000>; /* end-of-mem1 - xfb-size */ xfb-size = <168000>; /* 640x576x2 x 2 bytes */ }; resetswitch@0c003000 { compatible = "nintendo,hollywood-resetswitch"; reg = <0c003000 4>; interrupts = <01>; ! interrupt-parent = <&pic>; }; --- 89,109 ---- reg = <0c002000 100>; interrupts = <08>; ! interrupt-parent = <&PIC0>; xfb-start = <01698000>; /* end-of-mem1 - xfb-size */ xfb-size = <168000>; /* 640x576x2 x 2 bytes */ }; + PIC0: pic0@0c003000 { + #interrupt-cells = <1>; + compatible = "nintendo,flipper-pic"; + reg = <0c003000 8>; + interrupt-controller; + }; + resetswitch@0c003000 { compatible = "nintendo,hollywood-resetswitch"; reg = <0c003000 4>; interrupts = <01>; ! interrupt-parent = <&PIC0>; }; *************** *** 124,128 **** 0d006c00 20>; /* AI */ interrupts = <06>; ! interrupt-parent = <&pic>; }; --- 113,117 ---- 0d006c00 20>; /* AI */ interrupts = <06>; ! interrupt-parent = <&PIC0>; }; *************** *** 131,167 **** reg = <0d006400 100>; interrupts = <03>; ! interrupt-parent = <&pic>; }; ! gpio0: starlet-gpio@0d8000c0 { ! compatible = "nintendo,starlet-gpio"; ! reg = <0d8000c0 4>; ! gpio-controller; ! #gpio-cells = <2>; }; ! starlet-ipc@0d000000 { ! compatible = "nintendo,starlet-ipc"; reg = <0d000000 40 /* IPC */ 133e0000 20000>; /* MEM2 ioh 128K */ interrupts = <0e>; ! interrupt-parent = <&pic>; ! }; ! starlet-es { ! compatible = "nintendo,starlet-es"; ! }; ! starlet-sd { ! compatible = "nintendo,starlet-sd"; }; ! starlet-keyboard { ! compatible = "nintendo,starlet-keyboard"; }; ! starlet-hcd { ! compatible = "nintendo,starlet-hcd"; }; --- 120,227 ---- reg = <0d006400 100>; interrupts = <03>; ! interrupt-parent = <&PIC0>; }; ! /* External Interface bus */ ! exi@0d006800 { ! #address-cells = <1>; ! #size-cells = <1>; ! compatible = "nintendo,hollywood-exi"; ! reg = <0d006800 40>; ! interrupts = <04>; ! interrupt-parent = <&PIC0>; ! ! USBGECKO0: usbgecko@0d006814 { ! compatible = "usbgecko,usbgecko"; ! reg = <0d006814 14>; ! virtual-reg = <cd006814>; ! }; }; ! /* ! * Firmware interfaces accessible through Nintendo IOS IPC. ! */ ! ios@0d000000 { ! compatible = "nintendo,starlet-ios-ipc"; reg = <0d000000 40 /* IPC */ 133e0000 20000>; /* MEM2 ioh 128K */ interrupts = <0e>; ! interrupt-parent = <&PIC0>; ! starlet-ios-es { ! compatible = "nintendo,starlet-ios-es"; ! }; ! starlet-ios-sd { ! compatible = "nintendo,starlet-ios-sd"; ! }; ! starlet-ios-hcd { ! compatible = "nintendo,starlet-ios-hcd"; ! }; ! ! starlet-ios-keyboard { ! compatible = "nintendo,starlet-ios-keyboard"; ! }; }; ! /* ! * Hardware accessible through Team Twiizers 'mini' firmware ! * replacement for Starlet. ! */ ! mini@0d000000 { ! #address-cells = <1>; ! #size-cells = <1>; ! #interrupt-cells = <1>; ! compatible = "twiizers,starlet-mini-ipc"; ! reg = <0d000000 40 /* IPC */ ! 13fffffc 4>; /* mini header pointer */ ! ! ranges = <0d040000 0d040000 00050000 ! 0d800000 0d800000 00001000 ! 133e0000 133e0000 00c20000>; ! ! PIC1: pic1@0d800030 { ! #interrupt-cells = <1>; ! compatible = "nintendo,hollywood-pic"; ! reg = <0d800030 8>; ! interrupt-controller; ! interrupts = <0e>; ! interrupt-parent = <&PIC0>; ! }; ! ehci@0d040000 { ! compatible = "nintendo,hollywood-ehci"; ! reg = <0d040000 100 ! 133e0000 80000>; /* 512 KB */ ! interrupts = <04>; ! interrupt-parent = <&PIC1>; ! }; ! ohci0@0d050000 { ! compatible = "nintendo,hollywood-ohci"; ! reg = <0d050000 100 ! 13460000 80000>; /* 512 KB */ ! interrupts = <05>; ! interrupt-parent = <&PIC1>; ! }; ! ohci1@0d060000 { ! compatible = "nintendo,hollywood-ohci"; ! reg = <0d060000 100 ! 134e0000 80000>; /* 512 KB */ ! interrupts = <06>; ! interrupt-parent = <&PIC1>; ! }; ! sdhc0@0d070000 { ! compatible = "nintendo,hollywood-sdhci"; ! reg = <0d070000 200>; ! interrupts = <07>; ! interrupt-parent = <&PIC1>; ! }; }; ! gpio0: starlet-gpio@0d8000c0 { ! compatible = "nintendo,starlet-gpio"; ! reg = <0d8000c0 4>; ! gpio-controller; ! #gpio-cells = <2>; }; *************** *** 187,188 **** --- 247,249 ---- }; }; + |
From: Albert H. <he...@us...> - 2009-10-25 18:50:36
|
Update of /cvsroot/gc-linux/linux/drivers/input/keyboard In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/drivers/input/keyboard Modified Files: Kconfig Makefile rvl-stkbd.c Log Message: Merge gc-linux-v2.6.30. Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/input/keyboard/Makefile,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Makefile 25 Oct 2009 18:33:47 -0000 1.8 --- Makefile 25 Oct 2009 18:50:27 -0000 1.9 *************** *** 29,30 **** --- 29,31 ---- obj-$(CONFIG_KEYBOARD_BFIN) += bf54x-keys.o obj-$(CONFIG_KEYBOARD_SH_KEYSC) += sh_keysc.o + obj-$(CONFIG_KEYBOARD_WII) += rvl-stkbd.o Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/input/keyboard/Kconfig,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** Kconfig 25 Oct 2009 18:45:35 -0000 1.12 --- Kconfig 25 Oct 2009 18:50:27 -0000 1.13 *************** *** 324,327 **** --- 324,338 ---- module will be called bf54x-keys. + config KEYBOARD_WII + tristate "Nintendo Wii USB keyboard IOS glue" + depends on (STARLET_IOS && !USB) + help + Say Y here if you have a Nintendo Wii console running Linux and have + a keyboard attached to one of its USB ports. + This driver uses the IOS interface glue to access the USB keyboard. + + To compile this driver as a module, choose M here: the + module will be called rvl-stkbd. + config KEYBOARD_SH_KEYSC tristate "SuperH KEYSC keypad support" Index: rvl-stkbd.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/input/keyboard/rvl-stkbd.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** rvl-stkbd.c 1 Feb 2009 18:29:35 -0000 1.3 --- rvl-stkbd.c 25 Oct 2009 18:50:27 -0000 1.4 *************** *** 29,33 **** #include <linux/module.h> #include <linux/of_platform.h> ! #include <asm/starlet.h> #define DRV_MODULE_NAME "rvl-stkbd" --- 29,33 ---- #include <linux/module.h> #include <linux/of_platform.h> ! #include <asm/starlet-ios.h> #define DRV_MODULE_NAME "rvl-stkbd" *************** *** 35,39 **** #define DRV_AUTHOR "Albert Herranz" ! static char stkbd_driver_version[] = "0.1i"; #define drv_printk(level, format, arg...) \ --- 35,39 ---- #define DRV_AUTHOR "Albert Herranz" ! static char stkbd_driver_version[] = "0.2i"; #define drv_printk(level, format, arg...) \ *************** *** 471,475 **** static struct of_device_id stkbd_of_match[] = { ! { .compatible = "nintendo,starlet-keyboard" }, { }, }; --- 471,475 ---- static struct of_device_id stkbd_of_match[] = { ! { .compatible = "nintendo,starlet-ios-keyboard" }, { }, }; |
From: Albert H. <he...@us...> - 2009-10-25 18:50:36
|
Update of /cvsroot/gc-linux/linux/drivers/serial In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/drivers/serial Modified Files: Kconfig Makefile Log Message: Merge gc-linux-v2.6.30. Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/serial/Makefile,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Makefile 25 Oct 2009 18:45:36 -0000 1.8 --- Makefile 25 Oct 2009 18:50:27 -0000 1.9 *************** *** 78,79 **** --- 78,80 ---- obj-$(CONFIG_KGDB_SERIAL_CONSOLE) += kgdboc.o obj-$(CONFIG_SERIAL_QE) += ucc_uart.o + obj-$(CONFIG_SERIAL_USBGECKO) += usbgecko.o Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/serial/Kconfig,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Kconfig 25 Oct 2009 18:45:36 -0000 1.9 --- Kconfig 25 Oct 2009 18:50:27 -0000 1.10 *************** *** 1434,1436 **** --- 1434,1449 ---- default 9600 if (SERIAL_SPORT_BAUD_RATE_9600) + config SERIAL_USBGECKO + bool "USBGecko adapter on the Nintendo GameCube/Wii" + depends on GAMECUBE_EXI + select SERIAL_CORE + help + This is a driver for the USB Gecko adapter for the Nintendo GameCube + and Wii gaming consoles. It provides a console and a tty interface. + + If you have an adapter like this, say Y here, otherwise say N. + + To compile this driver as a module, choose M here: the + module will be called usbgecko. + endmenu |
From: Albert H. <he...@us...> - 2009-10-25 18:50:36
|
Update of /cvsroot/gc-linux/linux/drivers/i2c/busses In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/drivers/i2c/busses Modified Files: Kconfig Makefile i2c-gpio.c Log Message: Merge gc-linux-v2.6.30. Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/i2c/busses/Kconfig,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Kconfig 25 Oct 2009 18:45:35 -0000 1.5 --- Kconfig 25 Oct 2009 18:50:27 -0000 1.6 *************** *** 327,338 **** For details please see http://www.ti.com/davinci ! config I2C_GPIO ! tristate "GPIO-based bitbanging I2C" depends on GENERIC_GPIO select I2C_ALGOBIT help This is a very simple bitbanging I2C driver utilizing the arch-neutral GPIO API to control the SCL and SDA lines. config I2C_HIGHLANDER tristate "Highlander FPGA SMBus interface" --- 327,350 ---- For details please see http://www.ti.com/davinci ! config I2C_GPIO_COMMON ! tristate depends on GENERIC_GPIO select I2C_ALGOBIT + default n + + config I2C_GPIO + tristate "GPIO-based bitbanging I2C" + select I2C_GPIO_COMMON help This is a very simple bitbanging I2C driver utilizing the arch-neutral GPIO API to control the SCL and SDA lines. + config I2C_GPIO_OF + tristate "GPIO-based bitbanging I2C driver with OF bindings" + select I2C_GPIO_COMMON + help + This option allows the declaration of GPIO-based I2C devices + using a device tree source. + config I2C_HIGHLANDER tristate "Highlander FPGA SMBus interface" Index: i2c-gpio.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/i2c/busses/i2c-gpio.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** i2c-gpio.c 25 Oct 2009 18:33:47 -0000 1.3 --- i2c-gpio.c 25 Oct 2009 18:50:27 -0000 1.4 *************** *** 8,87 **** * published by the Free Software Foundation. */ - #include <linux/i2c.h> - #include <linux/i2c-algo-bit.h> - #include <linux/i2c-gpio.h> - #include <linux/init.h> - #include <linux/module.h> - #include <linux/platform_device.h> - - #include <asm/gpio.h> - - /* Toggle SDA by changing the direction of the pin */ - static void i2c_gpio_setsda_dir(void *data, int state) - { - struct i2c_gpio_platform_data *pdata = data; - - if (state) - gpio_direction_input(pdata->sda_pin); - else - gpio_direction_output(pdata->sda_pin, 0); - } - - /* - * Toggle SDA by changing the output value of the pin. This is only - * valid for pins configured as open drain (i.e. setting the value - * high effectively turns off the output driver.) - */ - static void i2c_gpio_setsda_val(void *data, int state) - { - struct i2c_gpio_platform_data *pdata = data; ! gpio_set_value(pdata->sda_pin, state); ! } ! ! /* Toggle SCL by changing the direction of the pin. */ ! static void i2c_gpio_setscl_dir(void *data, int state) ! { ! struct i2c_gpio_platform_data *pdata = data; ! if (state) ! gpio_direction_input(pdata->scl_pin); ! else ! gpio_direction_output(pdata->scl_pin, 0); ! } /* ! * Toggle SCL by changing the output value of the pin. This is used ! * for pins that are configured as open drain and for output-only ! * pins. The latter case will break the i2c protocol, but it will ! * often work in practice. */ - static void i2c_gpio_setscl_val(void *data, int state) - { - struct i2c_gpio_platform_data *pdata = data; - - gpio_set_value(pdata->scl_pin, state); - } - - static int i2c_gpio_getsda(void *data) - { - struct i2c_gpio_platform_data *pdata = data; - - return gpio_get_value(pdata->sda_pin); - } - - static int i2c_gpio_getscl(void *data) - { - struct i2c_gpio_platform_data *pdata = data; - - return gpio_get_value(pdata->scl_pin); - } static int __devinit i2c_gpio_probe(struct platform_device *pdev) { struct i2c_gpio_platform_data *pdata; - struct i2c_algo_bit_data *bit_data; struct i2c_adapter *adap; ! int ret; pdata = pdev->dev.platform_data; --- 8,27 ---- * published by the Free Software Foundation. */ ! #include "i2c-gpio-common.h" ! #include <linux/init.h> ! #include <linux/platform_device.h> /* ! * Platform bindings. ! * */ static int __devinit i2c_gpio_probe(struct platform_device *pdev) { struct i2c_gpio_platform_data *pdata; struct i2c_adapter *adap; ! int error; pdata = pdev->dev.platform_data; *************** *** 89,192 **** return -ENXIO; ! ret = -ENOMEM; ! adap = kzalloc(sizeof(struct i2c_adapter), GFP_KERNEL); if (!adap) goto err_alloc_adap; ! bit_data = kzalloc(sizeof(struct i2c_algo_bit_data), GFP_KERNEL); ! if (!bit_data) ! goto err_alloc_bit_data; ! ! ret = gpio_request(pdata->sda_pin, "sda"); ! if (ret) ! goto err_request_sda; ! ret = gpio_request(pdata->scl_pin, "scl"); ! if (ret) ! goto err_request_scl; ! ! if (pdata->sda_is_open_drain) { ! gpio_direction_output(pdata->sda_pin, 1); ! bit_data->setsda = i2c_gpio_setsda_val; ! } else { ! gpio_direction_input(pdata->sda_pin); ! bit_data->setsda = i2c_gpio_setsda_dir; ! } ! ! if (pdata->scl_is_open_drain || pdata->scl_is_output_only) { ! gpio_direction_output(pdata->scl_pin, 1); ! bit_data->setscl = i2c_gpio_setscl_val; ! } else { ! gpio_direction_input(pdata->scl_pin); ! bit_data->setscl = i2c_gpio_setscl_dir; ! } ! ! if (!pdata->scl_is_output_only) ! bit_data->getscl = i2c_gpio_getscl; ! bit_data->getsda = i2c_gpio_getsda; ! ! if (pdata->udelay) ! bit_data->udelay = pdata->udelay; ! else if (pdata->scl_is_output_only) ! bit_data->udelay = 50; /* 10 kHz */ ! else ! bit_data->udelay = 5; /* 100 kHz */ ! ! if (pdata->timeout) ! bit_data->timeout = pdata->timeout; ! else ! bit_data->timeout = HZ / 10; /* 100 ms */ ! ! bit_data->data = pdata; ! ! adap->owner = THIS_MODULE; ! snprintf(adap->name, sizeof(adap->name), "i2c-gpio%d", pdev->id); ! adap->algo_data = bit_data; ! adap->class = I2C_CLASS_HWMON | I2C_CLASS_SPD; ! adap->dev.parent = &pdev->dev; ! ! /* ! * If "dev->id" is negative we consider it as zero. ! * The reason to do so is to avoid sysfs names that only make ! * sense when there are multiple adapters. ! */ ! adap->nr = (pdev->id != -1) ? pdev->id : 0; ! ret = i2c_bit_add_numbered_bus(adap); ! if (ret) ! goto err_add_bus; platform_set_drvdata(pdev, adap); - dev_info(&pdev->dev, "using pins %u (SDA) and %u (SCL%s)\n", - pdata->sda_pin, pdata->scl_pin, - pdata->scl_is_output_only - ? ", no clock stretching" : ""); - return 0; ! err_add_bus: ! gpio_free(pdata->scl_pin); ! err_request_scl: ! gpio_free(pdata->sda_pin); ! err_request_sda: ! kfree(bit_data); ! err_alloc_bit_data: kfree(adap); err_alloc_adap: ! return ret; } static int __devexit i2c_gpio_remove(struct platform_device *pdev) { - struct i2c_gpio_platform_data *pdata; struct i2c_adapter *adap; adap = platform_get_drvdata(pdev); pdata = pdev->dev.platform_data; ! i2c_del_adapter(adap); ! gpio_free(pdata->scl_pin); ! gpio_free(pdata->sda_pin); ! kfree(adap->algo_data); kfree(adap); - return 0; } --- 29,61 ---- return -ENXIO; ! error = -ENOMEM; ! adap = kzalloc(sizeof(*adap), GFP_KERNEL); if (!adap) goto err_alloc_adap; ! error = i2c_gpio_adapter_probe(adap, pdata, &pdev->dev, pdev->id, ! THIS_MODULE); ! if (error) ! goto err_probe; platform_set_drvdata(pdev, adap); return 0; ! err_probe: kfree(adap); err_alloc_adap: ! return error; } static int __devexit i2c_gpio_remove(struct platform_device *pdev) { struct i2c_adapter *adap; + struct i2c_gpio_platform_data *pdata; adap = platform_get_drvdata(pdev); pdata = pdev->dev.platform_data; ! i2c_gpio_adapter_remove(adap, pdata); kfree(adap); return 0; } *************** *** 203,213 **** static int __init i2c_gpio_init(void) { ! int ret; ! ret = platform_driver_register(&i2c_gpio_driver); ! if (ret) ! printk(KERN_ERR "i2c-gpio: probe failed: %d\n", ret); ! return ret; } module_init(i2c_gpio_init); --- 72,82 ---- static int __init i2c_gpio_init(void) { ! int error; ! error = platform_driver_register(&i2c_gpio_driver); ! if (error) ! printk(KERN_ERR "i2c-gpio: registration failed (%d)\n", error); ! return error; } module_init(i2c_gpio_init); Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/i2c/busses/Makefile,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Makefile 25 Oct 2009 18:45:35 -0000 1.5 --- Makefile 25 Oct 2009 18:50:27 -0000 1.6 *************** *** 31,35 **** --- 31,37 ---- obj-$(CONFIG_I2C_CPM) += i2c-cpm.o obj-$(CONFIG_I2C_DAVINCI) += i2c-davinci.o + obj-$(CONFIG_I2C_GPIO_COMMON) += i2c-gpio-common.o obj-$(CONFIG_I2C_GPIO) += i2c-gpio.o + obj-$(CONFIG_I2C_GPIO_OF) += i2c-gpio-of.o obj-$(CONFIG_I2C_HIGHLANDER) += i2c-highlander.o obj-$(CONFIG_I2C_IBM_IIC) += i2c-ibm_iic.o |
From: Albert H. <he...@us...> - 2009-10-25 18:50:36
|
Update of /cvsroot/gc-linux/linux/drivers/video/logo In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/drivers/video/logo Modified Files: Kconfig Makefile logo.c Log Message: Merge gc-linux-v2.6.30. Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/logo/Makefile,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Makefile 25 Oct 2009 18:33:47 -0000 1.8 --- Makefile 25 Oct 2009 18:50:27 -0000 1.9 *************** *** 8,11 **** --- 8,12 ---- obj-$(CONFIG_LOGO_BLACKFIN_VGA16) += logo_blackfin_vga16.o obj-$(CONFIG_LOGO_DEC_CLUT224) += logo_dec_clut224.o + obj-$(CONFIG_LOGO_GAMECUBE_CLUT224) += logo_gcn_clut224.o obj-$(CONFIG_LOGO_MAC_CLUT224) += logo_mac_clut224.o obj-$(CONFIG_LOGO_PARISC_CLUT224) += logo_parisc_clut224.o Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/logo/Kconfig,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Kconfig 25 Oct 2009 18:33:47 -0000 1.9 --- Kconfig 25 Oct 2009 18:50:27 -0000 1.10 *************** *** 43,46 **** --- 43,51 ---- default y + config LOGO_GAMECUBE_CLUT224 + bool "224-color GameCube Linux logo" + depends on GAMECUBE + default y + config LOGO_MAC_CLUT224 bool "224-color Macintosh Linux logo" Index: logo.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/logo/logo.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** logo.c 25 Oct 2009 18:33:47 -0000 1.8 --- logo.c 25 Oct 2009 18:50:27 -0000 1.9 *************** *** 28,31 **** --- 28,32 ---- extern const struct linux_logo logo_blackfin_clut224; extern const struct linux_logo logo_dec_clut224; + extern const struct linux_logo logo_gcn_clut224; extern const struct linux_logo logo_mac_clut224; extern const struct linux_logo logo_parisc_clut224; *************** *** 91,94 **** --- 92,99 ---- logo = &logo_dec_clut224; #endif + #ifdef CONFIG_LOGO_GAMECUBE_CLUT224 + /* GameCube Linux logo */ + logo = &logo_gcn_clut224; + #endif #ifdef CONFIG_LOGO_MAC_CLUT224 /* Macintosh Linux logo on m68k */ |
From: Albert H. <he...@us...> - 2009-10-25 18:50:36
|
Update of /cvsroot/gc-linux/linux/drivers/rtc In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/drivers/rtc Modified Files: Kconfig Makefile Log Message: Merge gc-linux-v2.6.30. Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/rtc/Makefile,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Makefile 25 Oct 2009 18:45:36 -0000 1.8 --- Makefile 25 Oct 2009 18:50:27 -0000 1.9 *************** *** 40,43 **** --- 40,44 ---- obj-$(CONFIG_RTC_DRV_EP93XX) += rtc-ep93xx.o obj-$(CONFIG_RTC_DRV_FM3130) += rtc-fm3130.o + obj-$(CONFIG_RTC_DRV_GCN) += rtc-gcn.o obj-$(CONFIG_RTC_DRV_ISL1208) += rtc-isl1208.o obj-$(CONFIG_RTC_DRV_M41T80) += rtc-m41t80.o Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/rtc/Kconfig,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Kconfig 25 Oct 2009 18:45:36 -0000 1.8 --- Kconfig 25 Oct 2009 18:50:27 -0000 1.9 *************** *** 527,530 **** --- 527,540 ---- NXP PCF50633 used in embedded systems. + config RTC_DRV_GCN + bool "Nintendo GameCube/Wii Real Time Clock and SRAM" + depends on GAMECUBE_EXI + default y + help + If you say yes to this option, support will be included for the + Real Time Clock and SRAM of the Nintendo GameCube/Wii. + + If in doubt, say Y here. + comment "on-CPU RTC drivers" |
From: Albert H. <he...@us...> - 2009-10-25 18:50:34
|
Update of /cvsroot/gc-linux/linux/arch/powerpc In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31074/arch/powerpc Modified Files: Kconfig Kconfig.debug Log Message: Merge gc-linux-v2.6.30. Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/Kconfig,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Kconfig 25 Oct 2009 18:45:35 -0000 1.9 --- Kconfig 25 Oct 2009 18:50:26 -0000 1.10 *************** *** 659,663 **** bool "PCI support" if PPC_PCI_CHOICE default y if !40x && !CPM2 && !8xx && !PPC_83xx \ ! && !PPC_85xx && !PPC_86xx default PCI_PERMEDIA if !4xx && !CPM2 && !8xx default PCI_QSPAN if !4xx && !CPM2 && 8xx --- 659,663 ---- bool "PCI support" if PPC_PCI_CHOICE default y if !40x && !CPM2 && !8xx && !PPC_83xx \ ! && !PPC_85xx && !PPC_86xx && !GAMECUBE_COMMON default PCI_PERMEDIA if !4xx && !CPM2 && !8xx default PCI_QSPAN if !4xx && !CPM2 && 8xx Index: Kconfig.debug =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/Kconfig.debug,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Kconfig.debug 25 Oct 2009 18:45:35 -0000 1.8 --- Kconfig.debug 25 Oct 2009 18:50:26 -0000 1.9 *************** *** 225,228 **** --- 225,236 ---- has run, and set up the CPM in a particular way. + config PPC_EARLY_DEBUG_USBGECKO + bool "Early debugging through the USB Gecko adapter" + depends on GAMECUBE_COMMON + select USBGECKO_UDBG + help + Select this to enable early debugging for Nintendo GameCube/Wii + consoles via an external USB Gecko adapter. + endchoice |