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...> - 2006-06-21 18:56:19
|
Update of /cvsroot/gc-linux/linux/include/linux In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv5081/include/linux Modified Files: fb.h Log Message: Merged 2.6.17. Index: fb.h =================================================================== RCS file: /cvsroot/gc-linux/linux/include/linux/fb.h,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- fb.h 26 Mar 2006 21:22:53 -0000 1.19 +++ fb.h 21 Jun 2006 18:56:07 -0000 1.20 @@ -739,7 +739,7 @@ /* A driver may set this flag to indicate that it does want a set_par to be * called every time when fbcon_switch is executed. The advantage is that with - * this flag set you can really be shure that set_par is always called before + * this flag set you can really be sure that set_par is always called before * any of the functions dependant on the correct hardware state or altering * that state, even if you are using some broken X releases. The disadvantage * is that it introduces unwanted delays to every console switch if set_par @@ -850,12 +850,10 @@ #define FB_LEFT_POS(bpp) (32 - bpp) #define FB_SHIFT_HIGH(val, bits) ((val) >> (bits)) #define FB_SHIFT_LOW(val, bits) ((val) << (bits)) -#define FB_BIT_NR(b) (7 - (b)) #else #define FB_LEFT_POS(bpp) (0) #define FB_SHIFT_HIGH(val, bits) ((val) << (bits)) #define FB_SHIFT_LOW(val, bits) ((val) >> (bits)) -#define FB_BIT_NR(b) (b) #endif /* |
From: Albert H. <he...@us...> - 2006-05-17 22:15:34
|
Update of /cvsroot/gc-linux/linux/drivers/exi In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv13454/drivers/exi Modified Files: exi-driver.c exi-hw.c Log Message: Added initial support for the Nintendo GameCube microphone (DOL-022). Small EXI and AI fixes. Index: exi-driver.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/exi/exi-driver.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- exi-driver.c 7 Nov 2005 21:34:17 -0000 1.11 +++ exi-driver.c 17 May 2006 22:14:39 -0000 1.12 @@ -50,11 +50,12 @@ { .id = 0x00000080, .name = "Memory Card 2043" }, { .id = 0x01010000, .name = "USB Adapter" }, { .id = 0x01020000, .name = "NPDP GDEV" }, - { .id = 0x05070000, .name = "IS Viewer" }, - { .id = 0x04120000, .name = "AD16" }, - { .id = 0x03010000, .name = "Marlin?" }, { .id = 0x02020000, .name = "Modem" }, - { .id = 0x04020200, .name = "BroadBand Adapter" }, + { .id = 0x03010000, .name = "Marlin?" }, + { .id = 0x04020200, .name = "BroadBand Adapter (DOL-015)" }, + { .id = 0x04120000, .name = "AD16" }, + { .id = 0x05070000, .name = "IS Viewer" }, + { .id = 0x0a000000, .name = "Microphone (DOL-022)" }, { .id = 0 } }; Index: exi-hw.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/exi/exi-hw.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- exi-hw.c 7 Nov 2005 21:34:17 -0000 1.12 +++ exi-hw.c 17 May 2006 22:14:39 -0000 1.13 @@ -1026,20 +1026,17 @@ struct exi_event *event; unsigned long flags; - event = &exi_channel->events[event_id]; - if (exi_can_trigger_event(event)) { - spin_lock_irqsave(&exi_channel->lock, flags); - if ((exi_channel->csr & csr_mask)) { + if ((exi_channel->csr & csr_mask)) { + event = &exi_channel->events[event_id]; + if (exi_can_trigger_event(event)) { + spin_lock_irqsave(&exi_channel->lock, flags); exi_channel->csr &= ~csr_mask; spin_unlock_irqrestore(&exi_channel->lock, flags); exi_trigger_event(exi_channel, event); exi_finish_event(event); - goto out; } - spin_unlock_irqrestore(&exi_channel->lock, flags); } -out: return; } @@ -1294,6 +1291,9 @@ exi_dev_deselect(exi_device); exi_dev_give(exi_device); + /* "canonicalize" the id */ + if (!id) + id = EXI_ID_INVALID; /* * We return a EXI_ID_NONE if there is some unidentified device * inserted in memcard slot A or memcard slot B. |
From: Albert H. <he...@us...> - 2006-05-17 22:14:52
|
Update of /cvsroot/gc-linux/linux/sound/ppc In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv13454/sound/ppc Modified Files: Kconfig Makefile gcn-ai.c Added Files: gcn-mic.c Log Message: Added initial support for the Nintendo GameCube microphone (DOL-022). Small EXI and AI fixes. --- NEW FILE: gcn-mic.c --- /* * gcn-mic.c * * Nintendo Microphone (DOL-022) driver * Copyright (C) 2006 The GameCube Linux Team * Copyright (C) 2006 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. * */ #define MIC_DEBUG #include <linux/kernel.h> #include <linux/module.h> #include <linux/init.h> #include <linux/kthread.h> #include <linux/delay.h> #include <linux/proc_fs.h> #include <linux/exi.h> #include <sound/driver.h> #include <sound/core.h> #include <sound/pcm.h> #define SNDRV_GET_ID #include <sound/initval.h> #define DRV_MODULE_NAME "gcn-mic" #define DRV_DESCRIPTION "Nintendo GameCube Microphone (DOL-022) driver" #define DRV_AUTHOR "Albert Herranz" MODULE_AUTHOR(DRV_AUTHOR); MODULE_DESCRIPTION(DRV_DESCRIPTION); MODULE_LICENSE("GPL"); static char mic_driver_version[] = "0.1-isobel"; #define mic_printk(level, format, arg...) \ printk(level DRV_MODULE_NAME ": " format , ## arg) #ifdef MIC_DEBUG # define DBG(fmt, args...) \ printk(KERN_ERR "%s: " fmt, __FUNCTION__ , ## args) #else # define DBG(fmt, args...) #endif #define MIC_EXI_ID 0x0a000000 #define MIC_SLOTA_CHANNEL 0 /* EXI0xxx */ #define MIC_SLOTA_DEVICE 0 /* chip select, EXI0CSB0 */ #define MIC_SLOTB_CHANNEL 1 /* EXI1xxx */ #define MIC_SLOTB_DEVICE 0 /* chip select, EXI1CSB0 */ #define MIC_SPI_CLK_IDX EXI_CLK_16MHZ struct mic_device { spinlock_t lock; unsigned long flags; u16 status; u16 control; #define MIC_CTL_RATE_MASK (0x3<<11) #define MIC_CTL_RATE_11025 (0x0<<11) #define MIC_CTL_RATE_22050 (0x1<<11) #define MIC_CTL_RATE_44100 (0x2<<11) #define MIC_CTL_PERIOD_MASK (0x3<<13) #define MIC_CTL_PERIOD_32 (0x0<<13) #define MIC_CTL_PERIOD_64 (0x1<<13) #define MIC_CTL_PERIOD_128 (0x2<<13) #define MIC_CTL_START_SAMPLING (1<<15) struct task_struct *io_thread; wait_queue_head_t io_waitq; atomic_t io_pending; struct snd_card *card; struct snd_pcm *pcm; struct snd_pcm_substream *c_substream; u8 *c_orig, *c_cur; int c_left; int running; #ifdef CONFIG_PROC_FS struct proc_dir_entry *proc; #endif /* CONFIG_PROC_FS */ int refcnt; struct exi_device *exi_device; }; /* * */ static void mic_hey(struct mic_device *dev) { struct exi_device *exi_device = dev->exi_device; u8 cmd = 0xff; exi_dev_select(exi_device); exi_dev_write(exi_device, &cmd, sizeof(cmd)); exi_dev_deselect(exi_device); } /* * */ static int mic_get_status(struct mic_device *dev) { struct exi_device *exi_device = dev->exi_device; u8 cmd = 0x40; exi_dev_select(exi_device); exi_dev_write(exi_device, &cmd, sizeof(cmd)); exi_dev_read(exi_device, &dev->status, sizeof(dev->status)); exi_dev_deselect(exi_device); return dev->status; } /* * */ static void mic_control(struct mic_device *dev) { struct exi_device *exi_device = dev->exi_device; u8 cmd[3]; cmd[0] = 0x80; cmd[1] = dev->control >> 8; cmd[2] = dev->control & 0xff; DBG("control 0x80%02x%02x\n", cmd[1], cmd[2]); exi_dev_select(exi_device); exi_dev_write(exi_device, cmd, sizeof(cmd)); exi_dev_deselect(exi_device); } /* * */ static void mic_read_period(struct mic_device *dev, void *buf, size_t len) { struct exi_device *exi_device = dev->exi_device; u8 cmd = 0x20; exi_dev_select(exi_device); exi_dev_write(exi_device, &cmd, sizeof(cmd)); exi_dev_read(exi_device, buf, len); exi_dev_deselect(exi_device); // DBG("mic cmd 0x20\n"); } /* * */ static void mic_enable_sampling(struct mic_device *dev, int enable) { if (enable) dev->control |= MIC_CTL_START_SAMPLING; else dev->control &= ~MIC_CTL_START_SAMPLING; } /* * */ static int mic_set_sample_rate(struct mic_device *dev, int rate) { u16 control; switch(rate) { case 11025: control = MIC_CTL_RATE_11025; break; case 22050: control = MIC_CTL_RATE_22050; break; case 44100: control = MIC_CTL_RATE_44100; break; default: mic_printk(KERN_ERR, "unsupported rate: %d\n", rate); return -EINVAL; } dev->control &= ~MIC_CTL_RATE_MASK; dev->control |= control; return 0; } /* * */ static int mic_set_period(struct mic_device *dev, int period_bytes) { u16 control; switch(period_bytes) { case 32: control = MIC_CTL_PERIOD_32; break; case 64: control = MIC_CTL_PERIOD_64; break; case 128: control = MIC_CTL_PERIOD_128; break; default: mic_printk(KERN_ERR, "unsupported period: %d bytes\n", period_bytes); return -EINVAL; } dev->control &= ~MIC_CTL_PERIOD_MASK; dev->control |= control; return 0; } /* * /proc support * */ /* * */ static int mic_init_proc(struct mic_device *dev) { return 0; } /* * */ static void mic_exit_proc(struct mic_device *dev) { } /* * Driver * */ static int index = SNDRV_DEFAULT_IDX1; static char *id = SNDRV_DEFAULT_STR1; static snd_pcm_hardware_t mic_snd_capture = { #if 0 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_NONINTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_MMAP_VALID), #endif .info = (SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_NONINTERLEAVED), .formats = SNDRV_PCM_FMTBIT_S16_BE, .rates = SNDRV_PCM_RATE_11025 | SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_44100, .rate_min = 11025, .rate_max = 44100, .channels_min = 1, .channels_max = 1, .buffer_bytes_max = 32768, .period_bytes_min = 32, .period_bytes_max = 128, .periods_min = 1, .periods_max = 1024, }; static unsigned int period_bytes[] = { 32, 64, 128 }; static struct snd_pcm_hw_constraint_list constraints_period_bytes = { .count = ARRAY_SIZE(period_bytes), .list = period_bytes, .mask = 0, }; /* * */ static void mic_wakeup_io_thread(struct mic_device *dev) { if (!IS_ERR(dev->io_thread)) { atomic_inc(&dev->io_pending); wake_up(&dev->io_waitq); } } /* * */ static void mic_stop_io_thread(struct mic_device *dev) { if (!IS_ERR(dev->io_thread)) { atomic_inc(&dev->io_pending); kthread_stop(dev->io_thread); } } /* * Input/Output thread. Receives audio samples from the microphone. */ static int mic_io_thread(void *param) { struct mic_device *dev = param; struct snd_pcm_substream *substream; int period_bytes; u16 status; set_user_nice(current, -20); set_current_state(TASK_RUNNING); for(;;) { wait_event(dev->io_waitq, atomic_read(&dev->io_pending) > 0); atomic_dec(&dev->io_pending); if (kthread_should_stop()) break; if (try_to_freeze()) continue; exi_dev_take(dev->exi_device); status = mic_get_status(dev); if (dev->running) { substream = dev->c_substream; if (!dev->c_left) { dev->c_cur = dev->c_orig; dev->c_left = snd_pcm_lib_buffer_bytes(substream); } period_bytes = snd_pcm_lib_period_bytes(substream); if (period_bytes > dev->c_left) period_bytes = dev->c_left; mic_read_period(dev, dev->c_cur, period_bytes); dev->c_cur += period_bytes; dev->c_left -= period_bytes; exi_dev_give(dev->exi_device); snd_pcm_period_elapsed(substream); exi_dev_take(dev->exi_device); if (status & 0x0200) { DBG("0x0200\n"); mic_hey(dev); mic_enable_sampling(dev, 1); mic_control(dev); } } else { //mic_enable_sampling(dev, 0); dev->control = 0; mic_control(dev); } exi_dev_give(dev->exi_device); } return 0; } /* * */ static int mic_event_handler(struct exi_channel *exi_channel, unsigned int event, void *dev0) { struct mic_device *dev = (struct mic_device *)dev0; /* exi channel is not taken, no exi operations here please */ mic_wakeup_io_thread(dev); return 0; } static int hw_rule_period_bytes_by_rate(struct snd_pcm_hw_params *params, struct snd_pcm_hw_rule *rule) { struct snd_interval *period_bytes = hw_param_interval(params, SNDRV_PCM_HW_PARAM_PERIOD_BYTES); struct snd_interval *rate = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); DBG("rate: min %d, max %d\n", rate->min, rate->max); if (rate->min == rate->max) { if (rate->min >= 44100) { snd_interval_t t = { .min = 128, .max = 128, .integer = 1, }; return snd_interval_refine(period_bytes, &t); } else if (rate->min >= 22050) { snd_interval_t t = { .min = 32, .max = 32, .integer = 1, }; return snd_interval_refine(period_bytes, &t); } else { snd_interval_t t = { .min = 32, .max = 32, .integer = 1, }; return snd_interval_refine(period_bytes, &t); } } return 0; } static int mic_snd_pcm_capture_open(snd_pcm_substream_t *substream) { struct mic_device *dev = snd_pcm_substream_chip(substream); snd_pcm_runtime_t *runtime = substream->runtime; unsigned long flags; int retval; DBG("enter\n"); spin_lock_irqsave(&dev->lock, flags); dev->running = 0; dev->c_substream = substream; spin_unlock_irqrestore(&dev->lock, flags); runtime->hw = mic_snd_capture; #if 0 /* only 32, 64 and 128 */ retval = snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_PERIOD_BYTES, &constraints_period_bytes); if (retval < 0) return retval; #endif snd_pcm_hw_rule_add(runtime, 0, SNDRV_PCM_HW_PARAM_PERIOD_BYTES, hw_rule_period_bytes_by_rate, 0, SNDRV_PCM_HW_PARAM_RATE, -1); /* align to 32 bytes */ retval = snd_pcm_hw_constraint_step(runtime, 0, SNDRV_PCM_HW_PARAM_BUFFER_BYTES, 32); return retval; } static int mic_snd_pcm_capture_close(snd_pcm_substream_t *substream) { struct mic_device *dev = snd_pcm_substream_chip(substream); unsigned long flags; DBG("enter\n"); spin_lock_irqsave(&dev->lock, flags); dev->running = 0; dev->c_substream = NULL; spin_unlock_irqrestore(&dev->lock, flags); mic_wakeup_io_thread(dev); return 0; } static int mic_snd_pcm_hw_params(snd_pcm_substream_t *substream, snd_pcm_hw_params_t *hw_params) { DBG("enter\n"); return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } static int mic_snd_pcm_hw_free(snd_pcm_substream_t *substream) { DBG("enter\n"); snd_pcm_lib_free_pages(substream); return 0; } static int mic_snd_pcm_prepare(snd_pcm_substream_t *substream) { struct mic_device *dev = snd_pcm_substream_chip(substream); snd_pcm_runtime_t *runtime = substream->runtime; unsigned long flags; int retval; DBG("enter\n"); mic_printk(KERN_INFO, "rate=%d, channels=%d, sample_bits=%d\n", runtime->rate, runtime->channels, runtime->sample_bits); mic_printk(KERN_INFO, "format=%d, access=%d\n", runtime->format, runtime->access); mic_printk(KERN_INFO, "buffer_bytes=%d, period_bytes=%d\n", snd_pcm_lib_buffer_bytes(substream), snd_pcm_lib_period_bytes(substream)); spin_lock_irqsave(&dev->lock, flags); dev->c_orig = runtime->dma_area; dev->c_left = 0; spin_unlock_irqrestore(&dev->lock, flags); retval = mic_set_sample_rate(dev, runtime->rate); if (retval < 0) return retval; retval = mic_set_period(dev, snd_pcm_lib_period_bytes(substream)); return retval; } static int mic_snd_pcm_trigger(snd_pcm_substream_t *substream, int cmd) { struct mic_device *dev = snd_pcm_substream_chip(substream); switch(cmd) { case SNDRV_PCM_TRIGGER_START: if (!dev->running) { DBG("trigger start\n"); dev->running = 1; exi_dev_take(dev->exi_device); mic_hey(dev); mic_enable_sampling(dev, 1); mic_control(dev); exi_dev_give(dev->exi_device); } break; case SNDRV_PCM_TRIGGER_STOP: DBG("trigger stop\n"); dev->running = 0; break; } return 0; } static snd_pcm_uframes_t mic_snd_pcm_pointer(snd_pcm_substream_t *substream) { struct mic_device *dev = snd_pcm_substream_chip(substream); size_t ptr; if (!dev->running || !dev->c_left) return 0; ptr = dev->c_cur - dev->c_orig; return bytes_to_frames(substream->runtime, ptr); } static struct snd_pcm_ops mic_snd_pcm_capture_ops = { .open = mic_snd_pcm_capture_open, .close = mic_snd_pcm_capture_close, .ioctl = snd_pcm_lib_ioctl, .hw_params = mic_snd_pcm_hw_params, .hw_free = mic_snd_pcm_hw_free, .prepare = mic_snd_pcm_prepare, .trigger = mic_snd_pcm_trigger, .pointer = mic_snd_pcm_pointer, }; /* * */ static int mic_snd_new_pcm(struct mic_device *dev) { struct snd_pcm *pcm; int retval; DBG("enter\n"); retval = snd_pcm_new(dev->card, dev->card->shortname, 0, 0, 1, &pcm); if (retval < 0) return retval; pcm->private_data = dev; strcpy(pcm->name, dev->card->shortname); dev->pcm = pcm; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &mic_snd_pcm_capture_ops); snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS, snd_dma_continuous_data (GFP_KERNEL), 32*1024, 32*1024); return 0; } /* * */ static int mic_init_snd(struct mic_device *dev) { snd_card_t *card; int retval = -ENOMEM; DBG("enter\n"); card = snd_card_new(index, id, THIS_MODULE, 0); if (!card) { mic_printk(KERN_ERR, "unable to create sound card\n"); goto err_card; } strcpy(card->driver, DRV_MODULE_NAME); strcpy(card->shortname, DRV_MODULE_NAME); strcpy(card->longname, "Nintendo GameCube Microphone"); dev->card = card; retval = mic_snd_new_pcm(dev); if (retval < 0) goto err_new_pcm; retval = snd_card_register(card); if (retval) { mic_printk(KERN_ERR, "unable to register sound card\n"); goto err_card_register; } return 0; err_card_register: err_new_pcm: snd_card_free(card); dev->card = NULL; err_card: return retval; } /* * */ static void mic_exit_snd(struct mic_device *dev) { DBG("enter\n"); if (dev->card) { snd_card_disconnect(dev->card); snd_card_free_in_thread(dev->card); dev->card = NULL; dev->pcm = NULL; dev->c_substream = NULL; } } /* * */ static int mic_init(struct mic_device *dev) { struct exi_device *exi_device = dev->exi_device; struct exi_channel *exi_channel = exi_get_exi_channel(exi_device); int channel; int retval = -ENOMEM; DBG("enter\n"); spin_lock_init(&dev->lock); dev->running = 0; retval = mic_init_snd(dev); if (retval) goto err_init_snd; init_waitqueue_head(&dev->io_waitq); channel = to_channel(exi_get_exi_channel(dev->exi_device)); dev->io_thread = kthread_run(mic_io_thread, dev, "kmicd/%d", channel); if (IS_ERR(dev->io_thread)) { mic_printk(KERN_ERR, "error creating io thread\n"); goto err_io_thread; } retval = exi_event_register(exi_channel, EXI_EVENT_IRQ, exi_device, mic_event_handler, dev, 0 /*(1 << to_channel(exi_channel))*/); if (retval) { mic_printk(KERN_ERR, "error registering exi event\n"); goto err_event_register; } retval = mic_init_proc(dev); if (retval) goto err_init_proc; return 0; err_init_proc: exi_event_unregister(exi_channel, EXI_EVENT_IRQ); err_event_register: mic_stop_io_thread(dev); err_io_thread: mic_exit_snd(dev); err_init_snd: return retval; } /* * */ static void mic_exit(struct mic_device *dev) { struct exi_device *exi_device = dev->exi_device; struct exi_channel *exi_channel = exi_get_exi_channel(exi_device); DBG("enter\n"); dev->running = 0; mic_exit_proc(dev); exi_event_unregister(exi_channel, EXI_EVENT_IRQ); if (!IS_ERR(dev->io_thread)) mic_stop_io_thread(dev); mic_exit_snd(dev); } /* * */ static int mic_probe(struct exi_device *exi_device) { struct mic_device *dev; int retval; /* we only care about the microphone */ if (exi_device->eid.id != MIC_EXI_ID) return -ENODEV; DBG("Microphone inserted\n"); dev = kzalloc(sizeof(*dev), GFP_KERNEL); if (!dev) return -ENOMEM; dev->exi_device = exi_device_get(exi_device); exi_set_drvdata(exi_device, dev); retval = mic_init(dev); if (retval) { exi_set_drvdata(exi_device, NULL); exi_device_put(exi_device); dev->exi_device = NULL; kfree(dev); } return retval; } /* * */ static void mic_remove(struct exi_device *exi_device) { struct mic_device *dev = exi_get_drvdata(exi_device); DBG("Microphone removed\n"); if (dev) { mic_exit(dev); if (dev->exi_device) exi_device_put(dev->exi_device); dev->exi_device = NULL; kfree(dev); } exi_set_drvdata(exi_device, NULL); } static struct exi_device_id mic_eid_table[] = { [0] = { .channel = MIC_SLOTA_CHANNEL, .device = MIC_SLOTA_DEVICE, .id = MIC_EXI_ID, }, [1] = { .channel = MIC_SLOTB_CHANNEL, .device = MIC_SLOTB_DEVICE, .id = MIC_EXI_ID, }, {.id = 0} }; static struct exi_driver mic_driver = { .name = DRV_MODULE_NAME, .eid_table = mic_eid_table, .frequency = MIC_SPI_CLK_IDX, .probe = mic_probe, .remove = mic_remove, }; static int __init mic_init_module(void) { int retval = 0; mic_printk(KERN_INFO, "%s - version %s\n", DRV_DESCRIPTION, mic_driver_version); retval = exi_driver_register(&mic_driver); return retval; } static void __exit mic_exit_module(void) { exi_driver_unregister(&mic_driver); } module_init(mic_init_module); module_exit(mic_exit_module); Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/sound/ppc/Makefile,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Makefile 23 Jun 2005 20:02:22 -0000 1.4 +++ Makefile 17 May 2006 22:14:40 -0000 1.5 @@ -9,3 +9,4 @@ # Toplevel Module Dependency obj-$(CONFIG_SND_POWERMAC) += snd-powermac.o obj-$(CONFIG_SND_GAMECUBE) += snd-gcn.o +obj-$(CONFIG_SND_GAMECUBE_MIC) += gcn-mic.o Index: gcn-ai.c =================================================================== RCS file: /cvsroot/gc-linux/linux/sound/ppc/gcn-ai.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- gcn-ai.c 18 Jan 2006 23:41:54 -0000 1.5 +++ gcn-ai.c 17 May 2006 22:14:40 -0000 1.6 @@ -316,7 +316,7 @@ int err; if ((err = - snd_pcm_new(chip->card, chip->card->shortname, 0, 1, 1, &pcm)) < 0) + snd_pcm_new(chip->card, chip->card->shortname, 0, 1, 0, &pcm)) < 0) return err; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/sound/ppc/Kconfig,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- Kconfig 24 Mar 2006 21:45:19 -0000 1.11 +++ Kconfig 17 May 2006 22:14:40 -0000 1.12 @@ -35,7 +35,6 @@ config SND_GAMECUBE tristate "Nintendo GameCube (Flipper)" depends on SND && GAMECUBE -# select SND_GENERIC_DRIVER help Say Y here to add audio support for the "Flipper" Graphics and Sound processor as found in the GameCube from Nintendo. @@ -43,4 +42,14 @@ 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 && GAMECUBE_EXI +# default n + 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. + endmenu |
From: Albert H. <he...@us...> - 2006-04-11 18:26:43
|
Update of /cvsroot/gc-linux/libgx/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14482/src Modified Files: gu.c gu_asm.S gx_asm.S ps_cast.S Log Message: Modify instructions to use the underscored style. That seems to be the common consensus out there. Index: gx_asm.S =================================================================== RCS file: /cvsroot/gc-linux/libgx/src/gx_asm.S,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- gx_asm.S 22 Oct 2004 20:13:53 -0000 1.1.1.1 +++ gx_asm.S 11 Apr 2006 18:25:03 -0000 1.2 @@ -3,61 +3,61 @@ #include "asm.h" _GLOBAL(WriteMtxPS4x3) - psql f0,0(r3),0,0 - psql f1,8(r3),0,0 - psql f2,16(r3),0,0 - psql f3,24(r3),0,0 - psql f4,32(r3),0,0 - psql f5,40(r3),0,0 - psqst f0,0(r4),0,0 - psqst f1,0(r4),0,0 - psqst f2,0(r4),0,0 - psqst f3,0(r4),0,0 - psqst f4,0(r4),0,0 - psqst f5,0(r4),0,0 + psq_l f0,0(r3),0,0 + psq_l f1,8(r3),0,0 + psq_l f2,16(r3),0,0 + psq_l f3,24(r3),0,0 + psq_l f4,32(r3),0,0 + psq_l f5,40(r3),0,0 + psq_st f0,0(r4),0,0 + psq_st f1,0(r4),0,0 + psq_st f2,0(r4),0,0 + psq_st f3,0(r4),0,0 + psq_st f4,0(r4),0,0 + psq_st f5,0(r4),0,0 blr # static void WriteMtxPS3x3from4x3(register Mtx mt,register void *wgpipe) _GLOBAL(WriteMtxPS3x3from4x3) - psql f0,0(r3),0,0 + psq_l f0,0(r3),0,0 lfs f1,8(r3) - psql f2,16(r3),0,0 + psq_l f2,16(r3),0,0 lfs f3,24(r3) - psql f4,32(r3),0,0 + psq_l f4,32(r3),0,0 lfs f5,40(r3) - psqst f0,0(r4),0,0 + psq_st f0,0(r4),0,0 stfs f1,0(r4) - psqst f2,0(r4),0,0 + psq_st f2,0(r4),0,0 stfs f3,0(r4) - psqst f4,0(r4),0,0 + psq_st f4,0(r4),0,0 stfs f5,0(r4) blr #static void WriteMtxPS3x3(register Mtx33 mt,register void *wgpipe) _GLOBAL(WriteMtxPS3x3) - psql f0,0(r3),0,0 - psql f1,8(r3),0,0 - psql f2,16(r3),0,0 - psql f3,24(r3),0,0 + psq_l f0,0(r3),0,0 + psq_l f1,8(r3),0,0 + psq_l f2,16(r3),0,0 + psq_l f3,24(r3),0,0 lfs f4,32(r3) - psqst f0,0(r4),0,0 - psqst f1,0(r4),0,0 - psqst f2,0(r4),0,0 - psqst f3,0(r4),0,0 + psq_st f0,0(r4),0,0 + psq_st f1,0(r4),0,0 + psq_st f2,0(r4),0,0 + psq_st f3,0(r4),0,0 stfs f4,0(r4) blr #static void WriteMtxPS4x2(register Mtx mt,register void *wgpipe) _GLOBAL(WriteMtxPS4x2) - psql f0,0(r3),0,0 - psql f1,8(r3),0,0 - psql f2,16(r3),0,0 - psql f3,24(r3),0,0 - psqst f0,0(r4),0,0 - psqst f1,0(r4),0,0 - psqst f2,0(r4),0,0 - psqst f3,0(r4),0,0 + psq_l f0,0(r3),0,0 + psq_l f1,8(r3),0,0 + psq_l f2,16(r3),0,0 + psq_l f3,24(r3),0,0 + psq_st f0,0(r4),0,0 + psq_st f1,0(r4),0,0 + psq_st f2,0(r4),0,0 + psq_st f3,0(r4),0,0 blr _GLOBAL(dcache_flush) Index: gu_asm.S =================================================================== RCS file: /cvsroot/gc-linux/libgx/src/gu_asm.S,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- gu_asm.S 2 Dec 2004 19:56:37 -0000 1.2 +++ gu_asm.S 11 Apr 2006 18:25:03 -0000 1.3 @@ -39,53 +39,53 @@ _GLOBAL(ps_guMtxConcat) //r3 = mtxA, r4 = mtxB, r5 = mtxAB stwu r1,-64(r1) - psql A00_A01,0(r3),0,0 + psq_l A00_A01,0(r3),0,0 stfd f14,8(r1) - psql B00_B01,0(r4),0,0 + psq_l B00_B01,0(r4),0,0 lis r6,Unit01@ha - psql B02_B03,8(r4),0,0 + psq_l B02_B03,8(r4),0,0 stfd f15,16(r1) addi 6,6,Unit01@l stfd f31,40(r1) - psql B10_B11,16(r4),0,0 - psmuls0 D00_D01,B00_B01,A00_A01 - psql A10_A11,16(r3),0,0 - psmuls0 D02_D03,B02_B03,A00_A01 - psql UNIT01,0(r6),0,0 - psmuls0 D10_D11,B00_B01,A10_A11 - psql B12_B13,24(r4),0,0 - psmuls0 D12_D13,B02_B03,A10_A11 - psql A02_A03,8(r3),0,0 - psmadds1 D00_D01,B10_B11,A00_A01,D00_D01 - psql A12_A13,24(r3),0,0 - psmadds1 D10_D11,B10_B11,A10_A11,D10_D11 - psql B20_B21,32(r4),0,0 - psmadds1 D02_D03,B12_B13,A00_A01,D02_D03 - psql B22_B23,40(r4),0,0 - psmadds1 D12_D13,B12_B13,A10_A11,D12_D13 - psql A20_A21,32(r3),0,0 - psql A22_A23,40(r3),0,0 - psmadds0 D00_D01,B20_B21,A02_A03,D00_D01 - psmadds0 D02_D03,B22_B23,A02_A03,D02_D03 - psmadds0 D10_D11,B20_B21,A12_A13,D10_D11 - psmadds0 D12_D13,B22_B23,A12_A13,D12_D13 - psqst D00_D01,0(r5),0,0 - psmuls0 D20_D21,B00_B01,A20_A21 - psmadds1 D02_D03,UNIT01,A02_A03,D02_D03 - psmuls0 D22_D23,B02_B03,A20_A21 - psqst D10_D11,16(r5),0,0 - psmadds1 D12_D13,UNIT01,A12_A13,D12_D13 - psqst D02_D03,8(r5),0,0 - psmadds1 D20_D21,B10_B11,A20_A21,D20_D21 - psmadds1 D22_D23,B12_B13,A20_A21,D22_D23 - psmadds0 D20_D21,B20_B21,A22_A23,D20_D21 + psq_l B10_B11,16(r4),0,0 + ps_muls0 D00_D01,B00_B01,A00_A01 + psq_l A10_A11,16(r3),0,0 + ps_muls0 D02_D03,B02_B03,A00_A01 + psq_l UNIT01,0(r6),0,0 + ps_muls0 D10_D11,B00_B01,A10_A11 + psq_l B12_B13,24(r4),0,0 + ps_muls0 D12_D13,B02_B03,A10_A11 + psq_l A02_A03,8(r3),0,0 + ps_madds1 D00_D01,B10_B11,A00_A01,D00_D01 + psq_l A12_A13,24(r3),0,0 + ps_madds1 D10_D11,B10_B11,A10_A11,D10_D11 + psq_l B20_B21,32(r4),0,0 + ps_madds1 D02_D03,B12_B13,A00_A01,D02_D03 + psq_l B22_B23,40(r4),0,0 + ps_madds1 D12_D13,B12_B13,A10_A11,D12_D13 + psq_l A20_A21,32(r3),0,0 + psq_l A22_A23,40(r3),0,0 + ps_madds0 D00_D01,B20_B21,A02_A03,D00_D01 + ps_madds0 D02_D03,B22_B23,A02_A03,D02_D03 + ps_madds0 D10_D11,B20_B21,A12_A13,D10_D11 + ps_madds0 D12_D13,B22_B23,A12_A13,D12_D13 + psq_st D00_D01,0(r5),0,0 + ps_muls0 D20_D21,B00_B01,A20_A21 + ps_madds1 D02_D03,UNIT01,A02_A03,D02_D03 + ps_muls0 D22_D23,B02_B03,A20_A21 + psq_st D10_D11,16(r5),0,0 + ps_madds1 D12_D13,UNIT01,A12_A13,D12_D13 + psq_st D02_D03,8(r5),0,0 + ps_madds1 D20_D21,B10_B11,A20_A21,D20_D21 + ps_madds1 D22_D23,B12_B13,A20_A21,D22_D23 + ps_madds0 D20_D21,B20_B21,A22_A23,D20_D21 lfd f14,8(r1) - psqst D12_D13,24(r5),0,0 - psmadds0 D22_D23,B22_B23,A22_A23,D22_D23 - psqst D20_D21,32(r5),0,0 - psmadds1 D22_D23,UNIT01,A22_A23,D22_D23 + psq_st D12_D13,24(r5),0,0 + ps_madds0 D22_D23,B22_B23,A22_A23,D22_D23 + psq_st D20_D21,32(r5),0,0 + ps_madds1 D22_D23,UNIT01,A22_A23,D22_D23 lfd f15,16(r1) - psqst D22_D23,40(r5),0,0 + psq_st D22_D23,40(r5),0,0 lfd f31,40(r1) addi r1,r1,64 blr @@ -96,30 +96,30 @@ addi r9,r9,Unit01@l lfs f0,0(r9) lfs f1,4(r9) - psqst f0,8(r3),0,0 - psmerge01 f2,f0,f1 - psqst f0,24(r3),0,0 - psmerge10 f3,f1,f0 - psqst f0,32(r3),0,0 - psqst f2,16(r3),0,0 - psqst f3,0(r3),0,0 - psqst f3,40(r3),0,0 + psq_st f0,8(r3),0,0 + ps_merge01 f2,f0,f1 + psq_st f0,24(r3),0,0 + ps_merge10 f3,f1,f0 + psq_st f0,32(r3),0,0 + psq_st f2,16(r3),0,0 + psq_st f3,0(r3),0,0 + psq_st f3,40(r3),0,0 blr _GLOBAL(ps_guMtxCopy) //r3 = src, r4 = dst - psql f0,0(r3),0,0 - psqst f0,0(r4),0,0 - psql f1,8(r3),0,0 - psqst f1,8(r4),0,0 - psql f2,16(r3),0,0 - psqst f2,16(r4),0,0 - psql f3,24(r3),0,0 - psqst f3,24(r4),0,0 - psql f4,32(r3),0,0 - psqst f4,32(r4),0,0 - psql f5,40(r3),0,0 - psqst f5,40(r4),0,0 + psq_l f0,0(r3),0,0 + psq_st f0,0(r4),0,0 + psq_l f1,8(r3),0,0 + psq_st f1,8(r4),0,0 + psq_l f2,16(r3),0,0 + psq_st f2,16(r4),0,0 + psq_l f3,24(r3),0,0 + psq_st f3,24(r4),0,0 + psq_l f4,32(r3),0,0 + psq_st f4,32(r4),0,0 + psq_l f5,40(r3),0,0 + psq_st f5,40(r4),0,0 blr _GLOBAL(ps_guMtxTranspose) @@ -127,144 +127,144 @@ lis r9,Unit01@ha addi r9,r9,Unit01@l lfs f0,0(r9) - psql f1,0(r3),0,0 + psq_l f1,0(r3),0,0 stfs f0,44(r4) - psql f2,16(r3),0,0 - psmerge00 f5,f1,f2 - psql f3,8(r3),1,0 - psmerge11 f6,f1,f2 - psql f4,24(r3),1,0 - psqst f5,0(r4),0,0 - psql f1,32(r3),0,0 - psmerge00 f7,f3,f4 - psqst f6,16(r4),0,0 - psmerge00 f5,f1,f0 - psqst f7,32(r4),0,0 - psmerge10 f6,f1,f0 - psqst f5,8(r4),0,0 + psq_l f2,16(r3),0,0 + ps_merge00 f5,f1,f2 + psq_l f3,8(r3),1,0 + ps_merge11 f6,f1,f2 + psq_l f4,24(r3),1,0 + psq_st f5,0(r4),0,0 + psq_l f1,32(r3),0,0 + ps_merge00 f7,f3,f4 + psq_st f6,16(r4),0,0 + ps_merge00 f5,f1,f0 + psq_st f7,32(r4),0,0 + ps_merge10 f6,f1,f0 + psq_st f5,8(r4),0,0 lfs f3,40(r3) - psqst f6,24(r4),0,0 + psq_st f6,24(r4),0,0 stfs f3,40(r4) blr _GLOBAL(ps_guMtxInverse) //r3 = src, r4 = inv - psql f0,0(r3),1,0 - psql f1,4(r3),0,0 - psql f2,16(r3),1,0 - psmerge10 f6,f1,f0 - psql f3,20(r3),0,0 - psql f4,32(r3),1,0 - psmerge10 f7,f3,f2 - psql f5,36(r3),0,0 - psmul f11,f3,f6 - psmul f13,f5,f7 - psmerge10 f8,f5,f4 - psmsub f11,f1,f7,f11 - psmul f12,f1,f8 - psmsub f13,f3,f8,f13 - psmul f10,f3,f4 - psmsub f12,f5,f6,f12 - psmul f9,f0,f5 - psmul f8,f1,f2 - pssub f6,f6,f6 - psmsub f10,f2,f5,f10 - psmul f7,f0,f13 - psmsub f9,f1,f4,f9 - psmadd f7,f2,f12,f7 - psmsub f8,f0,f3,f8 - psmadd f7,f4,f11,f7 - pscmpo0 cr0,f7,f6 + psq_l f0,0(r3),1,0 + psq_l f1,4(r3),0,0 + psq_l f2,16(r3),1,0 + ps_merge10 f6,f1,f0 + psq_l f3,20(r3),0,0 + psq_l f4,32(r3),1,0 + ps_merge10 f7,f3,f2 + psq_l f5,36(r3),0,0 + ps_mul f11,f3,f6 + ps_mul f13,f5,f7 + ps_merge10 f8,f5,f4 + ps_msub f11,f1,f7,f11 + ps_mul f12,f1,f8 + ps_msub f13,f3,f8,f13 + ps_mul f10,f3,f4 + ps_msub f12,f5,f6,f12 + ps_mul f9,f0,f5 + ps_mul f8,f1,f2 + ps_sub f6,f6,f6 + ps_msub f10,f2,f5,f10 + ps_mul f7,f0,f13 + ps_msub f9,f1,f4,f9 + ps_madd f7,f2,f12,f7 + ps_msub f8,f0,f3,f8 + ps_madd f7,f4,f11,f7 + ps_cmpo0 cr0,f7,f6 bne 0f li r3,0 blr 0: fres f0,f7 - psadd f6,f0,f0 - psmul f5,f0,f0 - psnmsub f0,f7,f5,f6 + ps_add f6,f0,f0 + ps_mul f5,f0,f0 + ps_nmsub f0,f7,f5,f6 lfs f1,12(r3) - psmuls0 f13,f13,f0 + ps_muls0 f13,f13,f0 lfs f2,28(r3) - psmuls0 f12,f12,f0 + ps_muls0 f12,f12,f0 lfs f3,44(r3) - psmuls0 f11,f11,f0 - psmerge00 f5,f13,f12 - psmuls0 f10,f10,f0 - psmerge11 f4,f13,f12 - psmuls0 f9,f9,f0 - psqst f5,0(r4),0,0 - psmul f6,f13,f1 - psqst f4,16(r4),0,0 - psmuls0 f8,f8,f0 - psmadd f6,f12,f2,f6 - psqst f10,32(r4),1,0 - psnmadd f6,f11,f3,f6 - psqst f9,36(r4),1,0 - psmul f7,f10,f1 - psmerge00 f5,f11,f6 - psqst f8,40(r4),1,0 - psmerge11 f4,f11,f6 - psqst f5,8(r4),0,0 - psmadd f7,f9,f2,f7 - psqst f4,24(r4),0,0 - psnmadd f7,f8,f3,f7 + ps_muls0 f11,f11,f0 + ps_merge00 f5,f13,f12 + ps_muls0 f10,f10,f0 + ps_merge11 f4,f13,f12 + ps_muls0 f9,f9,f0 + psq_st f5,0(r4),0,0 + ps_mul f6,f13,f1 + psq_st f4,16(r4),0,0 + ps_muls0 f8,f8,f0 + ps_madd f6,f12,f2,f6 + psq_st f10,32(r4),1,0 + ps_nmadd f6,f11,f3,f6 + psq_st f9,36(r4),1,0 + ps_mul f7,f10,f1 + ps_merge00 f5,f11,f6 + psq_st f8,40(r4),1,0 + ps_merge11 f4,f11,f6 + psq_st f5,8(r4),0,0 + ps_madd f7,f9,f2,f7 + psq_st f4,24(r4),0,0 + ps_nmadd f7,f8,f3,f7 li r3,1 - psqst f7,44(r4),1,0 + psq_st f7,44(r4),1,0 blr _GLOBAL(ps_guMtxInvXpos) //r3 = src, r4 = invx - psql f0, 0(r3), 1, 0 - psql f1, 4(r3), 0, 0 - psql f2, 16(r3), 1, 0 - psmerge10 f6, f1, f0 - psql f3, 20(r3), 0, 0 - psql f4, 32(r3), 1, 0 - psmerge10 f7, f3, f2 - psql f5, 36(r3), 0, 0 - psmul f11, f3, f6 - psmerge10 f8, f5, f4 - psmul f13, f5, f7 - psmsub f11, f1, f7, f11 - psmul f12, f1, f8 - psmsub f13, f3, f8, f13 - psmsub f12, f5, f6, f12 - psmul f10, f3, f4 - psmul f9, f0, f5 - psmul f8, f1, f2 - psmsub f10, f2, f5, f10 - psmsub f9, f1, f4, f9 - psmsub f8, f0, f3, f8 - psmul f7, f0, f13 - pssub f1, f1, f1 - psmadd f7, f2, f12, f7 - psmadd f7, f4, f11, f7 - pscmpo0 cr0, f7, f1 + psq_l f0, 0(r3), 1, 0 + psq_l f1, 4(r3), 0, 0 + psq_l f2, 16(r3), 1, 0 + ps_merge10 f6, f1, f0 + psq_l f3, 20(r3), 0, 0 + psq_l f4, 32(r3), 1, 0 + ps_merge10 f7, f3, f2 + psq_l f5, 36(r3), 0, 0 + ps_mul f11, f3, f6 + ps_merge10 f8, f5, f4 + ps_mul f13, f5, f7 + ps_msub f11, f1, f7, f11 + ps_mul f12, f1, f8 + ps_msub f13, f3, f8, f13 + ps_msub f12, f5, f6, f12 + ps_mul f10, f3, f4 + ps_mul f9, f0, f5 + ps_mul f8, f1, f2 + ps_msub f10, f2, f5, f10 + ps_msub f9, f1, f4, f9 + ps_msub f8, f0, f3, f8 + ps_mul f7, f0, f13 + ps_sub f1, f1, f1 + ps_madd f7, f2, f12, f7 + ps_madd f7, f4, f11, f7 + ps_cmpo0 cr0, f7, f1 bne 0f addi r3, 0, 0 blr 0: fres f0, f7 - psqst f1, 12(r4), 1, 0 - psadd f6, f0, f0 - psmul f5, f0, f0 - psqst f1, 28(r4), 1, 0 - psnmsub f0, f7, f5, f6 - psqst f1, 44(r4), 1, 0 - psmuls0 f13, f13, f0 - psmuls0 f12, f12, f0 - psmuls0 f11, f11, f0 - psqst f13, 0(r4), 0, 0 - psqst f12, 16(r4), 0, 0 - psmuls0 f10, f10, f0 - psmuls0 f9, f9, f0 - psqst f11, 32(r4), 0, 0 - psqst f10, 8(r4), 1, 0 - psmuls0 f8, f8, f0 + psq_st f1, 12(r4), 1, 0 + ps_add f6, f0, f0 + ps_mul f5, f0, f0 + psq_st f1, 28(r4), 1, 0 + ps_nmsub f0, f7, f5, f6 + psq_st f1, 44(r4), 1, 0 + ps_muls0 f13, f13, f0 + ps_muls0 f12, f12, f0 + ps_muls0 f11, f11, f0 + psq_st f13, 0(r4), 0, 0 + psq_st f12, 16(r4), 0, 0 + ps_muls0 f10, f10, f0 + ps_muls0 f9, f9, f0 + psq_st f11, 32(r4), 0, 0 + psq_st f10, 8(r4), 1, 0 + ps_muls0 f8, f8, f0 addi r3, 0, 1 - psqst f9, 24(r4), 1, 0 - psqst f8, 40(r4), 1, 0 + psq_st f9, 24(r4), 1, 0 + psq_st f8, 40(r4), 1, 0 blr _GLOBAL(ps_guMtxScale) @@ -273,35 +273,35 @@ addi r9,r9,Unit01@l lfs f0,0(r9) stfs f1,0(r3) - psqst f0,4(r3),0,0 - psqst f0,12(r3),0,0 + psq_st f0,4(r3),0,0 + psq_st f0,12(r3),0,0 stfs f2,20(r3) - psqst f0,24(r3),0,0 - psqst f0,32(r3),0,0 + psq_st f0,24(r3),0,0 + psq_st f0,32(r3),0,0 stfs f3,40(r3) stfs f0,44(r3) blr _GLOBAL(ps_guMtxScaleApply) //r3 = src,r4 = dst,f1 = xS,f2 = yS,f3 = zS - psql f4,0(r3),0,0 - psql f5,8(r3),0,0 - psmuls0 f4,f4,f1 - psql f6,16(r3),0,0 - psmuls0 f5,f5,f1 - psql f7,24(r3),0,0 - psmuls0 f6,f6,f2 - psql f8,32(r3),0,0 - psqst f4,0(r4),0,0 - psmuls0 f7,f7,f2 - psql f2,40(r3),0,0 - psqst f5,8(r4),0,0 - psmuls0 f8,f8,f3 - psqst f6,16(r4),0,0 - psmuls0 f2,f2,f3 - psqst f7,24(r4),0,0 - psqst f8,32(r4),0,0 - psqst f2,40(r4),0,0 + psq_l f4,0(r3),0,0 + psq_l f5,8(r3),0,0 + ps_muls0 f4,f4,f1 + psq_l f6,16(r3),0,0 + ps_muls0 f5,f5,f1 + psq_l f7,24(r3),0,0 + ps_muls0 f6,f6,f2 + psq_l f8,32(r3),0,0 + psq_st f4,0(r4),0,0 + ps_muls0 f7,f7,f2 + psq_l f2,40(r3),0,0 + psq_st f5,8(r4),0,0 + ps_muls0 f8,f8,f3 + psq_st f6,16(r4),0,0 + ps_muls0 f2,f2,f3 + psq_st f7,24(r4),0,0 + psq_st f8,32(r4),0,0 + psq_st f2,40(r4),0,0 blr _GLOBAL(ps_guMtxTrans) @@ -312,33 +312,32 @@ lfs f5,4(r9) stfs f1,12(r3) stfs f2,28(r3) - stfs f3,44(r3) - psqst f4,4(r3),0,0 - psqst f4,32(r3),0,0 - stfs f5,0(r3) + psq_st f4,4(r3),0,0 + psq_st f4,32(r3),0,0 stfs f5,20(r3) - stfs f5,40(r3) - stfs f4,16(r3) stfs f4,24(r3) + stfs f5,40(r3) + stfs f3,44(r3) + stfs f5,0(r3) blr _GLOBAL(ps_guMtxTransApply) //r3 = src,r4 = dst,f1 = xT,f2 = yT,f3 = zT - psql f4,0(r3),0,0 - psql f5,8(r3),0,0 - psql f7,24(r3),0,0 - psql f8,40(r3),0,0 - pssum1 f5,f1,f5,f5 - psql f6,16(r3),0,0 - pssum1 f7,f2,f7,f7 - psql f9,32(r3),0,0 - pssum1 f8,f3,f8,f8 - psqst f4,0(r4),0,0 - psqst f5,8(r4),0,0 - psqst f6,16(r4),0,0 - psqst f7,24(r4),0,0 - psqst f9,32(r4),0,0 - psqst f8,40(r4),0,0 + psq_l f4,0(r3),0,0 + psq_l f5,8(r3),0,0 + psq_l f7,24(r3),0,0 + psq_l f8,40(r3),0,0 + ps_sum1 f5,f1,f5,f5 + psq_l f6,16(r3),0,0 + ps_sum1 f7,f2,f7,f7 + psq_l f9,32(r3),0,0 + ps_sum1 f8,f3,f8,f8 + psq_st f4,0(r4),0,0 + psq_st f5,8(r4),0,0 + psq_st f6,16(r4),0,0 + psq_st f7,24(r4),0,0 + psq_st f9,32(r4),0,0 + psq_st f8,40(r4),0,0 blr _GLOBAL(ps_guMtxRotTrig) @@ -348,7 +347,7 @@ lfs f3,0(r9) lfs f4,4(r9) ori r4,r4,0x20 - psneg f5,f1 + ps_neg f5,f1 cmplwi r4,'x' beq 0f cmplwi r4,'y' @@ -357,38 +356,38 @@ beq 2f b 3f 0: - psqst f4,0(r3),1,0 - psqst f3,4(r3),0,0 - psmerge00 f6,f1,f2 - psqst f3,12(r3),0,0 - psmerge00 f7,f2,f5 - psqst f3,28(r3),0,0 - psqst f3,44(r3),1,0 - psqst f6,36(r3),0,0 - psqst f7,20(r3),0,0 + psq_st f4,0(r3),1,0 + psq_st f3,4(r3),0,0 + ps_merge00 f6,f1,f2 + psq_st f3,12(r3),0,0 + ps_merge00 f7,f2,f5 + psq_st f3,28(r3),0,0 + psq_st f3,44(r3),1,0 + psq_st f6,36(r3),0,0 + psq_st f7,20(r3),0,0 b 3f 1: - psmerge00 f6,f2,f3 - psmerge00 f7,f3,f4 - psqst f3,24(r3),0,0 - psqst f6,0(r3),0,0 - psmerge00 f8,f5,f3 - psmerge00 f9,f1,f3 - psqst f6,40(r3),0,0 - psqst f7,16(r3),0,0 - psqst f9,8(r3),0,0 - psqst f8,32(r3),0,0 + ps_merge00 f6,f2,f3 + ps_merge00 f7,f3,f4 + psq_st f3,24(r3),0,0 + psq_st f6,0(r3),0,0 + ps_merge00 f8,f5,f3 + ps_merge00 f9,f1,f3 + psq_st f6,40(r3),0,0 + psq_st f7,16(r3),0,0 + psq_st f9,8(r3),0,0 + psq_st f8,32(r3),0,0 b 3f 2: - psqst f3,8(r3),0,0 - psmerge00 f6,f1,f2 - psmerge00 f8,f2,f5 - psqst f3,24(r3),0,0 - psqst f3,32(r3),0,0 - psmerge00 f7,f4,f3 - psqst f6,16(r3),0,0 - psqst f8,0(r3),0,0 - psqst f7,40(r3),0,0 + psq_st f3,8(r3),0,0 + ps_merge00 f6,f1,f2 + ps_merge00 f8,f2,f5 + psq_st f3,24(r3),0,0 + psq_st f3,32(r3),0,0 + ps_merge00 f7,f4,f3 + psq_st f6,16(r3),0,0 + psq_st f8,0(r3),0,0 + psq_st f7,40(r3),0,0 3: blr @@ -397,66 +396,66 @@ lis r9,Unit01@ha addi r9,r9,Unit01@l lfs f0,4(r9) - psql f1,8(r5),1,0 - psql f2,0(r5),0,0 - psql f3,0(r4),0,0 - psnmadd f5,f1,f0,f1 - psql f4,8(r4),1,0 - psnmadd f6,f2,f0,f2 - psmuls0 f7,f2,f5 - psmul f8,f6,f3 - psmuls0 f9,f2,f6 - pssum0 f8,f8,f8,f8 - psmuls1 f10,f2,f6 - psqst f7,32(r3),0,0 - pssum0 f2,f2,f2,f0 - psnmadd f8,f5,f4,f8 - pssum1 f10,f0,f10,f10 - psqst f9,0(r3),0,0 - psmuls0 f11,f2,f8 - psmerge00 f12,f5,f8 - psqst f10,16(r3),0,0 - psmerge00 f13,f7,f11 - psmuls0 f12,f12,f1 - psmerge11 f11,f7,f11 - psqst f13,8(r3),0,0 - pssum0 f12,f12,f12,f0 - psqst f11,24(r3),0,0 - psqst f12,40(r3),0,0 + psq_l f1,8(r5),1,0 + psq_l f2,0(r5),0,0 + psq_l f3,0(r4),0,0 + ps_nmadd f5,f1,f0,f1 + psq_l f4,8(r4),1,0 + ps_nmadd f6,f2,f0,f2 + ps_muls0 f7,f2,f5 + ps_mul f8,f6,f3 + ps_muls0 f9,f2,f6 + ps_sum0 f8,f8,f8,f8 + ps_muls1 f10,f2,f6 + psq_st f7,32(r3),0,0 + ps_sum0 f2,f2,f2,f0 + ps_nmadd f8,f5,f4,f8 + ps_sum1 f10,f0,f10,f10 + psq_st f9,0(r3),0,0 + ps_muls0 f11,f2,f8 + ps_merge00 f12,f5,f8 + psq_st f10,16(r3),0,0 + ps_merge00 f13,f7,f11 + ps_muls0 f12,f12,f1 + ps_merge11 f11,f7,f11 + psq_st f13,8(r3),0,0 + ps_sum0 f12,f12,f12,f0 + psq_st f11,24(r3),0,0 + psq_st f12,40(r3),0,0 blr _GLOBAL(ps_guVecAdd) //r3 = v1,r4 = v2,r5 = dst - psql V1_XY,0(r3),0,0 - psql V2_XY,0(r4),0,0 - psadd D1_XY,V1_XY,V2_XY - psqst D1_XY,0(r5),0,0 - psql V1_Z,8(r3),1,0 - psql V2_Z,8(r4),1,0 - psadd D1_Z,V1_Z,V2_Z - psqst D1_Z,8(r5),1,0 + psq_l V1_XY,0(r3),0,0 + psq_l V2_XY,0(r4),0,0 + ps_add D1_XY,V1_XY,V2_XY + psq_st D1_XY,0(r5),0,0 + psq_l V1_Z,8(r3),1,0 + psq_l V2_Z,8(r4),1,0 + ps_add D1_Z,V1_Z,V2_Z + psq_st D1_Z,8(r5),1,0 blr _GLOBAL(ps_guVecSub) //r3 = v1,r4 = v2,r5 = dst - psql V1_XY,0(r3),0,0 - psql V2_XY,0(r4),0,0 - pssub D1_XY,V1_XY,V2_XY - psqst D1_XY,0(r5),0,0 - psql V1_Z,8(r3),1,0 - psql V2_Z,8(r4),1,0 - pssub D1_Z,V1_Z,V2_Z - psqst D1_Z,8(r5),1,0 + psq_l V1_XY,0(r3),0,0 + psq_l V2_XY,0(r4),0,0 + ps_sub D1_XY,V1_XY,V2_XY + psq_st D1_XY,0(r5),0,0 + psq_l V1_Z,8(r3),1,0 + psq_l V2_Z,8(r4),1,0 + ps_sub D1_Z,V1_Z,V2_Z + psq_st D1_Z,8(r5),1,0 blr _GLOBAL(ps_guVecScale) //r3 = src,r4 = dst,f1 = S - psql f2,0(r3),0,0 - psql f3,8(r3),1,0 - psmuls0 f4,f2,f1 - psqst f4,0(r4),0,0 - psmuls0 f4,f3,f1 - psqst f4,8(r4),1,0 + psq_l f2,0(r3),0,0 + psq_l f3,8(r3),1,0 + ps_muls0 f4,f2,f1 + psq_st f4,0(r4),0,0 + ps_muls0 f4,f3,f1 + psq_st f4,8(r4),1,0 blr _GLOBAL(ps_guVecNormalize) @@ -465,100 +464,100 @@ addi r9,r9,NrmData@l lfs f0,0(r9) lfs f1,4(r9) - psql f2,0(r3),0,0 - psmul f4,f2,f2 - psql f3,8(r3),1,0 - psmadd f5,f3,f3,f4 - pssum0 f6,f5,f3,f4 + psq_l f2,0(r3),0,0 + ps_mul f4,f2,f2 + psq_l f3,8(r3),1,0 + ps_madd f5,f3,f3,f4 + ps_sum0 f6,f5,f3,f4 frsqrte f7,f6 fmuls f8,f7,f7 fmuls f9,f7,f0 fnmsubs f8,f8,f6,f1 fmuls f7,f8,f9 - psmuls0 f2,f2,f7 - psqst f2,0(r3),0,0 - psmuls0 f3,f3,f7 - psqst f3,8(r3),1,0 + ps_muls0 f2,f2,f7 + psq_st f2,0(r3),0,0 + ps_muls0 f3,f3,f7 + psq_st f3,8(r3),1,0 blr _GLOBAL(ps_guVecCross) //r3 = v1,r4 = v2,r5 = v12 - psql f1,0(r4),0,0 + psq_l f1,0(r4),0,0 lfs f2,8(r3) - psql f0,0(r3),0,0 - psmerge10 f6,f1,f1 + psq_l f0,0(r3),0,0 + ps_merge10 f6,f1,f1 lfs f3,8(r4) - psmul f4,f1,f2 - psmuls0 f7,f1,f0 - psmsub f5,f0,f3,f4 - psmsub f8,f0,f6,f7 - psmerge11 f9,f5,f5 - psmerge01 f10,f5,f8 - psqst f9,0(r5),1,0 - psneg f10,f10 - psqst f10,4(r5),0,0 + ps_mul f4,f1,f2 + ps_muls0 f7,f1,f0 + ps_msub f5,f0,f3,f4 + ps_msub f8,f0,f6,f7 + ps_merge11 f9,f5,f5 + ps_merge01 f10,f5,f8 + psq_st f9,0(r5),1,0 + ps_neg f10,f10 + psq_st f10,4(r5),0,0 blr _GLOBAL(ps_guVecDotProduct) //r3 = vec1,r4 = vec2 - psql f2,4(r3),0,0 - psql f3,4(r4),0,0 - psmul f2,f2,f3 - psql f5,0(r3),0,0 - psql f4,0(r4),0,0 - psmadd f3,f5,f4,f2 - pssum0 f1,f3,f2,f2 + psq_l f2,4(r3),0,0 + psq_l f3,4(r4),0,0 + ps_mul f2,f2,f3 + psq_l f5,0(r3),0,0 + psq_l f4,0(r4),0,0 + ps_madd f3,f5,f4,f2 + ps_sum0 f1,f3,f2,f2 blr _GLOBAL(ps_guVecMultiply) - psql f0,0(r4),0,0 - psql f2,0(r3),0,0 - psql f1,8(r4),1,0 - psmul f4,f2,f0 - psql f3,8(r3),0,0 - psmadd f5,f3,f1,f4 - psql f8,16(r3),0,0 - pssum0 f6,f5,f6,f5 - psql f9,24(r3),0,0 - psmul f10,f8,f0 - psqst f6,0(r5),1,0 - psmadd f11,f9,f1,f10 - psql f2,32(r3),0,0 - pssum0 f12,f11,f12,f11 - psql f3,40(r3),0,0 - psmul f4,f2,f0 - psqst f12,4(r5),1,0 - psmadd f5,f3,f1,f4 - pssum0 f6,f5,f6,f5 - psqst f6,8(r5),1,0 + psq_l f0,0(r4),0,0 + psq_l f2,0(r3),0,0 + psq_l f1,8(r4),1,0 + ps_mul f4,f2,f0 + psq_l f3,8(r3),0,0 + ps_madd f5,f3,f1,f4 + psq_l f8,16(r3),0,0 + ps_sum0 f6,f5,f6,f5 + psq_l f9,24(r3),0,0 + ps_mul f10,f8,f0 + psq_st f6,0(r5),1,0 + ps_madd f11,f9,f1,f10 + psq_l f2,32(r3),0,0 + ps_sum0 f12,f11,f12,f11 + psq_l f3,40(r3),0,0 + ps_mul f4,f2,f0 + psq_st f12,4(r5),1,0 + ps_madd f5,f3,f1,f4 + ps_sum0 f6,f5,f6,f5 + psq_st f6,8(r5),1,0 blr _GLOBAL(ps_guVecMultiplySR) // r3 = mt, r4 = src, r5 = dst - psql f0,0(r3),0,0 // m[0][0], m[0][1] GQR0 = 0 + psq_l f0,0(r3),0,0 // m[0][0], m[0][1] GQR0 = 0 // fp6 - x y - psql f6,0(r4),0,0 - psql f2,16(r3),0,0 // m[1][0], m[1][1] + psq_l f6,0(r4),0,0 + psq_l f2,16(r3),0,0 // m[1][0], m[1][1] // fp8 = m00x m01y // next X - psmul f8,f0,f6 - psql f4,32(r3),0,0 // m[2][0], m[2][1] + ps_mul f8,f0,f6 + psq_l f4,32(r3),0,0 // m[2][0], m[2][1] // fp10 = m10x m11y // next Y - psmul f10,f2,f6 - psql f7,8(r4),1,0 // fp7 - z,1.0 + ps_mul f10,f2,f6 + psq_l f7,8(r4),1,0 // fp7 - z,1.0 // fp12 = m20x m21y // next Z - psmul f12,f4,f6 // YYY last FP6 usage - psql f3,24(r3),0,0 // m[1][2], m[1][3] - pssum0 f8,f8,f8,f8 - psql f5,40(r3),0,0 // m[2][2], m[2][3] - pssum0 f10,f10,f10,f10 - psql f1,8(r3),0,0 // m[0][2], m[0][3] - pssum0 f12,f12,f12,f12 - psmadd f9,f1,f7,f8 - psqst f9,0(r5),1,0 // store X - psmadd f11,f3,f7,f10 - psqst f11,4(r5),1,0 // store Y - psmadd f13,f5,f7,f12 - psqst f13,8(r5),1,0 // sore Z + ps_mul f12,f4,f6 // YYY last FP6 usage + psq_l f3,24(r3),0,0 // m[1][2], m[1][3] + ps_sum0 f8,f8,f8,f8 + psq_l f5,40(r3),0,0 // m[2][2], m[2][3] + ps_sum0 f10,f10,f10,f10 + psq_l f1,8(r3),0,0 // m[0][2], m[0][3] + ps_sum0 f12,f12,f12,f12 + ps_madd f9,f1,f7,f8 + psq_st f9,0(r5),1,0 // store X + ps_madd f11,f3,f7,f10 + psq_st f11,4(r5),1,0 // store Y + ps_madd f13,f5,f7,f12 + psq_st f13,8(r5),1,0 // sore Z blr .section .data Index: gu.c =================================================================== RCS file: /cvsroot/gc-linux/libgx/src/gu.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- gu.c 31 Oct 2004 22:35:00 -0000 1.2 +++ gu.c 11 Apr 2006 18:25:03 -0000 1.3 @@ -244,32 +244,32 @@ ps_guVecNormalize(axis); __asm__ __volatile__( - "psql %%f1,0(%1),0,0\n" + "psq_l %%f1,0(%1),0,0\n" "lfs %%f2,8(%1)\n" - "psmerge00 %2,%2,%2\n" - "psmuls0 %%f5,%%f1,%3\n" - "psmuls0 %%f6,%%f2,%3\n" - "psmuls1 %%f4,%%f5,%%f1\n" - "psmuls0 %%f3,%%f5,%%f1\n" - "psmuls0 %%f1,%%f1,%4\n" - "psmuls0 %%f5,%%f5,%%f2\n" + "ps_merge00 %2,%2,%2\n" + "ps_muls0 %%f5,%%f1,%3\n" + "ps_muls0 %%f6,%%f2,%3\n" + "ps_muls1 %%f4,%%f5,%%f1\n" + "ps_muls0 %%f3,%%f5,%%f1\n" + "ps_muls0 %%f1,%%f1,%4\n" + "ps_muls0 %%f5,%%f5,%%f2\n" "fnmsubs %%f7,%%f2,%4,%%f4\n" "fmadds %%f8,%%f2,%4,%%f4\n" - "psneg %%f10,%%f1\n" - "pssum0 %%f9,%%f5,%5,%%f1\n" - "pssum0 %%f3,%%f3,%%f7,%2\n" - "pssum1 %%f4,%2,%%f8,%%f4\n" - "pssum0 %%f7,%%f10,%5,%%f5\n" - "pssum0 %%f10,%%f5,%%f5,%%f10\n" - "psqst %%f9,8(%0),0,0\n" - "psmuls0 %%f6,%%f6,%%f2\n" - "psqst %%f3,0(%0),0,0\n" - "pssum1 %%f5,%%f1,%%f10,%%f5\n" - "psqst %%f4,16(%0),0,0\n" - "pssum0 %%f6,%%f6,%5,%2\n" - "psqst %%f7,24(%0),0,0\n" - "psqst %%f5,32(%0),0,0\n" - "psqst %%f6,40(%0),0,0\n" + "ps_neg %%f10,%%f1\n" + "ps_sum0 %%f9,%%f5,%5,%%f1\n" + "ps_sum0 %%f3,%%f3,%%f7,%2\n" + "ps_sum1 %%f4,%2,%%f8,%%f4\n" + "ps_sum0 %%f7,%%f10,%5,%%f5\n" + "ps_sum0 %%f10,%%f5,%%f5,%%f10\n" + "psq_st %%f9,8(%0),0,0\n" + "ps_muls0 %%f6,%%f6,%%f2\n" + "psq_st %%f3,0(%0),0,0\n" + "ps_sum1 %%f5,%%f1,%%f10,%%f5\n" + "psq_st %%f4,16(%0),0,0\n" + "ps_sum0 %%f6,%%f6,%5,%2\n" + "psq_st %%f7,24(%0),0,0\n" + "psq_st %%f5,32(%0),0,0\n" + "psq_st %%f6,40(%0),0,0\n" : "=r"(mt) : "r"(axis), "f"(cT), "f"(tT), "f"(sT), "f"(fc0) ); } Index: ps_cast.S =================================================================== RCS file: /cvsroot/gc-linux/libgx/src/ps_cast.S,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ps_cast.S 6 Dec 2004 18:35:15 -0000 1.1 +++ ps_cast.S 11 Apr 2006 18:25:03 -0000 1.2 @@ -3,12 +3,12 @@ #define DECLARES(prefix,float,int,gqr_arg,gqr) \ _GLOBAL(PSCast##prefix##float##to##int) \ - psql f0,0(r3),gqr_arg,gqr0; \ - psqst f0,0(r4),gqr_arg,gqr; \ + psq_l f0,0(r3),gqr_arg,gqr0; \ + psq_st f0,0(r4),gqr_arg,gqr; \ blr; \ _GLOBAL(PSCast##prefix##int##to##float) \ - psql f0,0(r3),gqr_arg,gqr; \ - psqst f0,0(r4),gqr_arg,gqr0; \ + psq_l f0,0(r3),gqr_arg,gqr; \ + psq_st f0,0(r4),gqr_arg,gqr0; \ blr; #define DECLARE(a,b,c) DECLARES(Single,a,b,1,c) DECLARES(Double,a,b,0,c) @@ -19,8 +19,8 @@ DECLARE(F32,S16,gqr5) _GLOBAL(PSCopy2Floats) - psql f0,0(r4),0,gqr0 - psqst f0,0(r3),0,gqr0 + psq_l f0,0(r4),0,gqr0 + psq_st f0,0(r3),0,gqr0 blr |
From: Albert H. <he...@us...> - 2006-04-09 19:46:21
|
Update of /cvsroot/gc-linux/CVSROOT In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7829 Modified Files: modules Log Message: Added opengx module. Index: modules =================================================================== RCS file: /cvsroot/gc-linux/CVSROOT/modules,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- modules 15 Aug 2005 17:25:18 -0000 1.3 +++ modules 9 Apr 2006 19:46:07 -0000 1.4 @@ -47,3 +47,5 @@ libgx -s maintained,pal...@us... libgx/ libsdl -s maintained,he...@us... libsdl/ linux -s maintained,aot...@us... linux/ +opengx -s maintained,wal...@us... opengx/ + |
From: Albert H. <he...@us...> - 2006-03-26 21:23:03
|
Update of /cvsroot/gc-linux/linux/include/linux In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8046/include/linux Modified Files: fb.h Log Message: Do not ifdef FBIO* related gc-linux definitions. Otherwise userspace needs to be aware of kernel CONFIG_* stuff. Index: fb.h =================================================================== RCS file: /cvsroot/gc-linux/linux/include/linux/fb.h,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- fb.h 24 Mar 2006 22:20:16 -0000 1.18 +++ fb.h 26 Mar 2006 21:22:53 -0000 1.19 @@ -36,16 +36,11 @@ #define FBIOPUT_MODEINFO 0x4617 #define FBIOGET_DISPINFO 0x4618 -#ifdef CONFIG_FB_GAMECUBE #define FBIOWAITRETRACE 0x4619 -#define FBIOFLIPHACK 0x4623 -#endif /* CONFIG_FB_GAMECUBE */ - -#ifdef CONFIG_FB_GAMECUBE_GX -#define FBIOWAITPEFINISH 0x4620 +#define FBIOWAITPEFINISH 0x4620 #define FBIOVIRTTOPHYS 0x4621 #define FBIOFLIP 0x4622 -#endif /* CONFIG_FB_GAMECUBE_GX */ +#define FBIOFLIPHACK 0x4623 /* libsdl */ #define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */ #define FB_TYPE_PLANES 1 /* Non interleaved planes */ |
From: Albert H. <he...@us...> - 2006-03-24 22:20:46
|
Update of /cvsroot/gc-linux/linux/drivers/video In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22880/drivers/video Modified Files: Kconfig gcnfb.c gcngx.c gcngx.h Log Message: Rewrote the framebuffer driver. Made the GX stuff optional (also saves GX reserved mem if not compiled in). Index: gcngx.h =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/gcngx.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- gcngx.h 24 Mar 2006 21:45:18 -0000 1.2 +++ gcngx.h 24 Mar 2006 22:20:15 -0000 1.3 @@ -1,12 +1,17 @@ #ifndef __GCGX__ #define __GCGX__ +#ifdef CONFIG_FB_GAMECUBE_GX + int gcngx_mmap(struct fb_info *info, struct vm_area_struct *vma); int gcngx_ioctl(struct fb_info *info, unsigned int cmd,unsigned long arg); int gcngx_init(struct fb_info *info); void gcngx_exit(struct fb_info *info); -void gcngx_vtrace(void); +struct vi_ctl; +void gcngx_vtrace(struct vi_ctl *ctl); + +#endif #endif Index: gcnfb.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/gcnfb.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- gcnfb.c 24 Mar 2006 21:45:18 -0000 1.13 +++ gcnfb.c 24 Mar 2006 22:20:15 -0000 1.14 @@ -2,9 +2,10 @@ * drivers/video/gcnfb.c * * Nintendo GameCube "Flipper" chipset frame buffer driver - * Copyright (C) 2004-2005 The GameCube Linux Team + * Copyright (C) 2004-2006 The GameCube Linux Team * Copyright (C) 2004 Michael Steil <mi...@c6...> * Copyright (C) 2004,2005 Todd Jeffreys <to...@vo...> + * Copyright (C) 2006 Albert Herranz * * Based on vesafb (c) 1998 Gerd Knorr <kr...@go...> * [...1316 lines suppressed...] + } + return ret; +} + +/* + * + */ +static void __exit gcnfb_exit_module(void) +{ + platform_device_unregister(&gcnfb_device); + platform_driver_unregister(&gcnfb_driver); +} + +module_init(gcnfb_init_module); +module_exit(gcnfb_exit_module); + +MODULE_DESCRIPTION(DRV_DESCRIPTION); +MODULE_AUTHOR(DRV_AUTHOR); +MODULE_LICENSE("GPL"); + Index: gcngx.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/gcngx.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- gcngx.c 24 Mar 2006 21:45:18 -0000 1.8 +++ gcngx.c 24 Mar 2006 22:20:15 -0000 1.9 @@ -14,6 +14,9 @@ * of the License, or (at your option) any later version. * */ + +#ifdef CONFIG_FB_GAMECUBE_GX + #include <linux/module.h> #include <linux/kernel.h> #include <linux/errno.h> @@ -36,8 +39,9 @@ static void gcngx_free_munmap(struct vm_area_struct *vma); static void gcngx_destroy_fifo(void); static void gcngx_init_fifo(void); + +extern void vi_set_framebuffer(struct vi_ctl *ctl, u32 addr); extern int gcnfb_restorefb(struct fb_info *info); -extern void gcnfb_set_framebuffer(u32 addr); extern struct fb_ops gcnfb_ops; @@ -155,7 +159,7 @@ return IRQ_NONE; } -void gcngx_vtrace(void) +void gcngx_vtrace(struct vi_ctl *ctl) { struct siginfo sig; /* ok flip the image if we have a flip request. @@ -168,7 +172,7 @@ currentFB = currentFB ? 0 : 1; sig.si_errno = xfb[currentFB]; /* inform the hardware */ - gcnfb_set_framebuffer(xfb[currentFB]); + vi_set_framebuffer(ctl, xfb[currentFB]); /* notify the process */ sig.si_signo = SIG_VTRACE_COMPLETE; sig.si_code = 0; @@ -213,13 +217,61 @@ return IRQ_HANDLED; } +/** + * + */ +static u32 gcngx_uvirt_to_phys(u32 virt) +{ + pgd_t *dir; + pmd_t *pmd; + pte_t *pte; + u32 ret = 0; + struct mm_struct *mm = get_task_mm(current); + u32 offset = virt & (PAGE_SIZE - 1); + virt &= PAGE_MASK; + + if (!mm) { + return 0; + } + down_read(&mm->mmap_sem); + /* convert to kernel address */ + if ((dir = pgd_offset(mm, virt)) && pgd_present(*dir)) { + if ((pmd = pmd_offset(dir, virt)) && pmd_present(*pmd)) { + pte = pte_offset_kernel(pmd, virt); + if (pte && pte_present(*pte)) { + ret = + (u32) page_address(pte_page(*pte)) + offset; + /* ok now we have the kern addr, map to phys */ + ret = virt_to_phys((void *)ret); + } + } + } + + up_read(&mm->mmap_sem); + mmput(mm); + return ret; +} + int gcngx_ioctl(struct fb_info *info, - unsigned int cmd, unsigned long arg) + unsigned int cmd, unsigned long arg) { + u32 phys; + void __user *argp; + if (cmd == FBIOFLIP) { flipRequest = 1; return 0; + } else if (cmd == FBIOVIRTTOPHYS) { + argp = (void __user *)arg; + if (copy_from_user(&phys, argp, sizeof(void *))) + return -EFAULT; + + phys = gcngx_uvirt_to_phys(phys); + + if (copy_to_user(argp, &phys, sizeof(void *))) + return -EFAULT; + return 0; } return -EINVAL; } @@ -289,10 +341,11 @@ { struct file *file = vma->vm_file; int ret; - static spinlock_t lock = SPIN_LOCK_UNLOCKED; +// static spinlock_t lock = SPIN_LOCK_UNLOCKED; u32 phys; u32 len; + len = vma->vm_end - vma->vm_start; if (vma->vm_pgoff == (VIDEO_MMAP_BASE >> PAGE_SHIFT) && @@ -349,13 +402,13 @@ * This seems to be broken. * fb_mmap might sleep and we're getting a lock here. */ - spin_lock(&lock); +// spin_lock(&lock); /* reset our mmap since the fb driver will call it */ gcnfb_ops.fb_mmap = NULL; ret = file->f_op->mmap(file,vma); /* reset our mmap */ gcnfb_ops.fb_mmap = gcngx_mmap; - spin_unlock(&lock); +// spin_unlock(&lock); return ret; } return -EINVAL; @@ -624,3 +677,6 @@ iounmap(mmap_fifo_base); release_mem_region((u32)phys_fifo_base,fifo_len); } + +#endif /* CONFIG_FB_GAMECUBE_GX */ + Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/Kconfig,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- Kconfig 24 Mar 2006 21:45:18 -0000 1.17 +++ Kconfig 24 Mar 2006 22:20:15 -0000 1.18 @@ -1209,6 +1209,12 @@ help This is the frame buffer device driver for the Nintendo GameCube. +config FB_GAMECUBE_GX + bool "Nintendo GameCube hardware accelerated graphics support" + depends on FB_GAMECUBE + help + Say Y here to support the 3D hardware found in the Nintendo GameCube. + config FB_AU1100 bool "Au1100 LCD Driver" depends on (FB = y) && EXPERIMENTAL && PCI && MIPS && MIPS_PB1100=y |
From: Albert H. <he...@us...> - 2006-03-24 22:20:35
|
Update of /cvsroot/gc-linux/linux/arch/ppc/platforms In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22880/arch/ppc/platforms Modified Files: gamecube.h Log Message: Rewrote the framebuffer driver. Made the GX stuff optional (also saves GX reserved mem if not compiled in). Index: gamecube.h =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/ppc/platforms/gamecube.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- gamecube.h 6 Jan 2005 19:57:53 -0000 1.12 +++ gamecube.h 24 Mar 2006 22:20:15 -0000 1.13 @@ -84,9 +84,13 @@ */ #ifdef CONFIG_FB_GAMECUBE #define GCN_XFB_SIZE (2*640*GCN_VIDEO_LINES*2) /* framebuffer */ - #define GCN_GX_FIFO_SIZE (256*1024) #else #define GCN_XFB_SIZE (0) +#endif + +#ifdef CONFIG_FB_GAMECUBE_GX + #define GCN_GX_FIFO_SIZE (256*1024) +#else #define GCN_GX_FIFO_SIZE (0) #endif |
From: Albert H. <he...@us...> - 2006-03-24 22:20:35
|
Update of /cvsroot/gc-linux/linux/include/linux In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22880/include/linux Modified Files: fb.h Log Message: Rewrote the framebuffer driver. Made the GX stuff optional (also saves GX reserved mem if not compiled in). Index: fb.h =================================================================== RCS file: /cvsroot/gc-linux/linux/include/linux/fb.h,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- fb.h 24 Mar 2006 21:45:19 -0000 1.17 +++ fb.h 24 Mar 2006 22:20:16 -0000 1.18 @@ -35,10 +35,17 @@ #define FBIOGET_HWCINFO 0x4616 #define FBIOPUT_MODEINFO 0x4617 #define FBIOGET_DISPINFO 0x4618 + +#ifdef CONFIG_FB_GAMECUBE #define FBIOWAITRETRACE 0x4619 +#define FBIOFLIPHACK 0x4623 +#endif /* CONFIG_FB_GAMECUBE */ + +#ifdef CONFIG_FB_GAMECUBE_GX #define FBIOWAITPEFINISH 0x4620 #define FBIOVIRTTOPHYS 0x4621 #define FBIOFLIP 0x4622 +#endif /* CONFIG_FB_GAMECUBE_GX */ #define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */ #define FB_TYPE_PLANES 1 /* Non interleaved planes */ |
From: Albert H. <he...@us...> - 2006-03-24 22:15:40
|
Update of /cvsroot/gc-linux/linux/drivers/net In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20503/drivers/net Modified Files: gcn-bba.c Log Message: Make some symbols static. Get interrupt status after the exi glue masking. Mark some functions __dev{init,exit}. Index: gcn-bba.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/net/gcn-bba.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- gcn-bba.c 7 Nov 2005 21:36:42 -0000 1.9 +++ gcn-bba.c 24 Mar 2006 22:15:34 -0000 1.10 @@ -45,7 +45,7 @@ #define DRV_AUTHOR "Albert Herranz, " \ "Todd Jeffreys" -char bba_driver_version[] = "1.4-isobel"; +static char bba_driver_version[] = "1.4-isobel"; #define bba_printk(level, format, arg...) \ @@ -935,7 +935,8 @@ /* * Calculates a response for a given challenge. */ -unsigned long bba_calc_response(unsigned long val, struct bba_private *priv) +static unsigned long bba_calc_response(unsigned long val, + struct bba_private *priv) { u8 revid_0, revid_eth_0, revid_eth_1; revid_0 = priv->revid; @@ -971,12 +972,12 @@ struct bba_private *priv = (struct bba_private *)dev->priv; register u8 status, mask; - /* get interrupt status from EXI glue */ - status = bba_cmd_in8(0x03); - /* XXX mask all EXI glue interrupts */ bba_cmd_out8(0x02, BBA_CMD_IR_MASKALL); + /* get interrupt status from EXI glue */ + status = bba_cmd_in8(0x03); + /* start with the usual case */ mask = (1<<7); @@ -1142,7 +1143,7 @@ /* * Removes a BroadBand Adapter device from the system. */ -static void bba_remove(struct exi_device *exi_device) +static void __devexit bba_remove(struct exi_device *exi_device) { struct net_device *dev = (struct net_device *) exi_get_drvdata(exi_device); @@ -1165,7 +1166,7 @@ * Probes for a BroadBand Adapter device. * Actually, the exi layer has already probed for us. */ -static int bba_probe(struct exi_device *exi_device) +static int __devinit bba_probe(struct exi_device *exi_device) { int ret = -ENODEV; |
From: Albert H. <he...@us...> - 2006-03-24 22:12:57
|
Update of /cvsroot/gc-linux/linux/drivers/input/si In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20099/drivers/input/si Modified Files: gcn-si.c Log Message: Make some symbols static. Index: gcn-si.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/input/si/gcn-si.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- gcn-si.c 18 Jan 2006 23:41:53 -0000 1.3 +++ gcn-si.c 24 Mar 2006 22:12:52 -0000 1.4 @@ -117,7 +117,7 @@ char name[32]; }; -struct si_device port[SI_MAX_PORTS]; +static struct si_device port[SI_MAX_PORTS]; #ifdef HACK_FORCE_KEYBOARD_PORT |
From: Albert H. <he...@us...> - 2006-03-24 21:45:32
|
Update of /cvsroot/gc-linux/linux/arch/ppc/boot/simple In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4338/arch/ppc/boot/simple Modified Files: Makefile Log Message: 2.6.16 merged. Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/ppc/boot/simple/Makefile,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- Makefile 18 Jan 2006 23:41:52 -0000 1.15 +++ Makefile 24 Mar 2006 21:45:18 -0000 1.16 @@ -194,6 +194,8 @@ boot-$(CONFIG_8xx) += embed_config.o boot-$(CONFIG_8260) += embed_config.o boot-$(CONFIG_GAMECUBE) += embed_config.o +boot-$(CONFIG_EP405) += embed_config.o +boot-$(CONFIG_XILINX_ML300) += embed_config.o boot-$(CONFIG_BSEIP) += iic.o boot-$(CONFIG_MBX) += iic.o pci.o qspan_pci.o boot-$(CONFIG_MV64X60) += misc-mv64x60.o |
From: Albert H. <he...@us...> - 2006-03-24 21:45:29
|
Update of /cvsroot/gc-linux/linux/include/linux In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4338/include/linux Modified Files: fb.h Log Message: 2.6.16 merged. Index: fb.h =================================================================== RCS file: /cvsroot/gc-linux/linux/include/linux/fb.h,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- fb.h 18 Jan 2006 23:41:54 -0000 1.16 +++ fb.h 24 Mar 2006 21:45:19 -0000 1.17 @@ -611,15 +611,15 @@ int (*fb_sync)(struct fb_info *info); /* perform fb specific ioctl (optional) */ - int (*fb_ioctl)(struct inode *inode, struct file *file, unsigned int cmd, - unsigned long arg, struct fb_info *info); + int (*fb_ioctl)(struct fb_info *info, unsigned int cmd, + unsigned long arg); /* Handle 32bit compat ioctl (optional) */ - long (*fb_compat_ioctl)(struct file *f, unsigned cmd, unsigned long arg, - struct fb_info *info); + int (*fb_compat_ioctl)(struct fb_info *info, unsigned cmd, + unsigned long arg); /* perform fb specific mmap */ - int (*fb_mmap)(struct fb_info *info, struct file *file, struct vm_area_struct *vma); + int (*fb_mmap)(struct fb_info *info, struct vm_area_struct *vma); /* save current hardware state */ void (*fb_save_state)(struct fb_info *info); |
From: Albert H. <he...@us...> - 2006-03-24 21:45:29
|
Update of /cvsroot/gc-linux/linux/drivers/video In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4338/drivers/video Modified Files: Kconfig gcnfb.c gcngx.c gcngx.h Log Message: 2.6.16 merged. Index: gcngx.h =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/gcngx.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- gcngx.h 22 Oct 2004 20:51:16 -0000 1.1 +++ gcngx.h 24 Mar 2006 21:45:18 -0000 1.2 @@ -1,12 +1,8 @@ #ifndef __GCGX__ #define __GCGX__ -int gcngx_mmap(struct fb_info *info,struct file *file, - struct vm_area_struct *vma); - -int gcngx_ioctl(struct inode *inode,struct file *file, - unsigned int cmd,unsigned long arg, - struct fb_info *info); +int gcngx_mmap(struct fb_info *info, struct vm_area_struct *vma); +int gcngx_ioctl(struct fb_info *info, unsigned int cmd,unsigned long arg); int gcngx_init(struct fb_info *info); void gcngx_exit(struct fb_info *info); Index: gcnfb.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/gcnfb.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- gcnfb.c 13 Feb 2006 16:03:07 -0000 1.12 +++ gcnfb.c 24 Mar 2006 21:45:18 -0000 1.13 @@ -378,9 +378,8 @@ /** * */ -static int gcnfb_ioctl(struct inode *inode, struct file *file, - unsigned int cmd, unsigned long arg, - struct fb_info *info) +static int gcnfb_ioctl(struct fb_info *info, + unsigned int cmd, unsigned long arg) { u32 phys; void __user *argp; @@ -400,7 +399,7 @@ return 0; } /* see if the GX module will handle it */ - return gcngx_ioctl(inode, file, cmd, arg, info); + return gcngx_ioctl(info, cmd, arg); } /** Index: gcngx.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/gcngx.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- gcngx.c 18 Jan 2006 23:41:53 -0000 1.7 +++ gcngx.c 24 Mar 2006 21:45:18 -0000 1.8 @@ -213,9 +213,8 @@ return IRQ_HANDLED; } -int gcngx_ioctl(struct inode *inode,struct file *file, - unsigned int cmd,unsigned long arg, - struct fb_info *info) +int gcngx_ioctl(struct fb_info *info, + unsigned int cmd, unsigned long arg) { if (cmd == FBIOFLIP) { @@ -286,9 +285,9 @@ #endif } -int gcngx_mmap(struct fb_info *info,struct file *file, - struct vm_area_struct *vma) +int gcngx_mmap(struct fb_info *info, struct vm_area_struct *vma) { + struct file *file = vma->vm_file; int ret; static spinlock_t lock = SPIN_LOCK_UNLOCKED; u32 phys; Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/Kconfig,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- Kconfig 18 Jan 2006 23:41:53 -0000 1.16 +++ Kconfig 24 Mar 2006 21:45:18 -0000 1.17 @@ -520,16 +520,11 @@ config FB_GBE_MEM int "Video memory size in MB" depends on FB_GBE - default 8 + default 4 help This is the amount of memory reserved for the framebuffer, which can be any value between 1MB and 8MB. -config BUS_I2C - bool - depends on (FB = y) && VISWS - default y - config FB_SUN3 bool "Sun3 framebuffer support" depends on (FB = y) && (SUN3 || SUN3X) && BROKEN @@ -993,12 +988,6 @@ Say Y if you have a laptop with an ATI Rage LT PRO, Rage Mobility, Rage XC, or Rage XL chipset. -config FB_ATY_XL_INIT - bool "Rage XL No-BIOS Init support" - depends on FB_ATY_CT - help - Say Y here to support booting a Rage XL without BIOS support. - config FB_ATY_GX bool "Mach64 GX support" if PCI depends on FB_ATY @@ -1151,7 +1140,7 @@ config FB_CYBLA tristate "Cyberblade/i1 support" - depends on FB && PCI + depends on FB && PCI && X86_32 && !64BIT select FB_CFB_IMAGEBLIT select VIDEO_SELECT ---help--- @@ -1385,7 +1374,7 @@ This driver is also available as a module ( = code which can be inserted and removed from the running kernel whenever you want). The - module will be called vfb. If you want to compile it as a module, + module will be called pxafb. If you want to compile it as a module, say M here and read <file:Documentation/modules.txt>. If unsure, say N. @@ -1418,7 +1407,7 @@ This driver is also available as a module ( = code which can be inserted and removed from the running kernel whenever you want). The - module will be called vfb. If you want to compile it as a module, + module will be called w100fb. If you want to compile it as a module, say M here and read <file:Documentation/modules.txt>. If unsure, say N. |
From: Albert H. <he...@us...> - 2006-03-24 21:45:29
|
Update of /cvsroot/gc-linux/linux/arch/ppc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4338/arch/ppc Modified Files: Kconfig Log Message: 2.6.16 merged. Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/ppc/Kconfig,v retrieving revision 1.34 retrieving revision 1.35 diff -u -d -r1.34 -r1.35 --- Kconfig 18 Jan 2006 23:41:51 -0000 1.34 +++ Kconfig 24 Mar 2006 21:45:18 -0000 1.35 @@ -8,9 +8,6 @@ bool default y -config UID16 - bool - config GENERIC_HARDIRQS bool default y @@ -61,11 +58,11 @@ help There are four types of PowerPC chips supported. The more common types (601, 603, 604, 740, 750, 7400), the Motorola embedded - versions (821, 823, 850, 855, 860, 52xx, 82xx, 83xx), the IBM embedded - versions (403 and 405) and the high end 64 bit Power processors - (POWER 3, POWER4, and IBM 970 also known as G5) + versions (821, 823, 850, 855, 860, 52xx, 82xx, 83xx), the IBM + embedded versions (403 and 405) and the POWER3 processor. + (For support for more recent 64-bit processors, set ARCH=powerpc.) Unless you are building a kernel for one of the embedded processor - systems, 64 bit IBM RS/6000 or an Apple G5, choose 6xx. + systems or a POWER3-based IBM RS/6000, choose 6xx. Note that the kernel runs in 32-bit mode even on 64-bit chips. Also note that because the 52xx, 82xx, & 83xx family has a 603e core, specific support for that chipset is asked later on. @@ -80,10 +77,6 @@ select PPC_FPU bool "POWER3" -config POWER4 - select PPC_FPU - bool "POWER4 and 970 (G5)" - config 8xx bool "8xx" @@ -126,7 +119,7 @@ config ALTIVEC bool "AltiVec Support" - depends on 6xx || POWER4 + depends on 6xx depends on !8260 && !83xx ---help--- This option enables kernel support for the Altivec extensions to the @@ -238,18 +231,9 @@ source "drivers/cpufreq/Kconfig" -config CPU_FREQ_PMAC - bool "Support for Apple PowerBooks" - depends on CPU_FREQ && ADB_PMU - select CPU_FREQ_TABLE - help - This adds support for frequency switching on Apple PowerBooks, - this currently includes some models of iBook & Titanium - PowerBook. - config PPC601_SYNC_FIX bool "Workarounds for PPC601 bugs" - depends on 6xx && (PPC_PREP || PPC_PMAC) + depends on 6xx && PPC_PREP help Some versions of the PPC601 (the first PowerPC chip) have bugs which mean that extra synchronization instructions are required near @@ -261,26 +245,17 @@ If in doubt, say Y here. -config HOTPLUG_CPU - bool "Support for enabling/disabling CPUs" - depends on SMP && HOTPLUG && EXPERIMENTAL && PPC_PMAC - ---help--- - Say Y here to be able to disable and re-enable individual - CPUs at runtime on SMP machines. - - Say N if you are unsure. - source arch/ppc/platforms/4xx/Kconfig source arch/ppc/platforms/85xx/Kconfig config PPC64BRIDGE bool - depends on POWER3 || POWER4 + depends on POWER3 default y config PPC_STD_MMU bool - depends on 6xx || POWER3 || POWER4 + depends on 6xx || POWER3 default y # Although 750CXe (Gekko) seems to be cache coherent capable, the GAMECUBE @@ -512,7 +487,7 @@ choice prompt "Machine Type" - depends on 6xx || POWER3 || POWER4 + depends on 6xx || POWER3 default PPC_MULTIPLATFORM ---help--- Linux currently supports several different kinds of PowerPC-based @@ -523,11 +498,15 @@ Platform) machines (including all of the recent IBM RS/6000 and pSeries machines), and several embedded PowerPC systems containing 4xx, 6xx, 7xx, 8xx, 74xx, and 82xx processors. Currently, the - default option is to build a kernel which works on the first three. + default option is to build a kernel which works on PReP and CHRP. - Select CHRP/PowerMac/PReP if configuring for an IBM RS/6000 or - pSeries machine, a Power Macintosh (including iMacs, iBooks and - Powerbooks), or a PReP machine. + Note that support for Apple machines is now only available with + ARCH=powerpc, and has been removed from this menu. If you wish + to build a kernel for an Apple machine, exit this configuration + process and re-run it with ARCH=powerpc. + + Select CHRP/PReP if configuring for an IBM RS/6000 or + pSeries machine, or a PReP machine. Select Gemini if configuring for a Synergy Microsystems' Gemini series Single Board Computer. More information is available at: @@ -537,7 +516,7 @@ available at: <http://linux-apus.sourceforge.net/>. config PPC_MULTIPLATFORM - bool "CHRP/PowerMac/PReP" + bool "CHRP/PReP" config APUS bool "Amiga-APUS" @@ -776,6 +755,10 @@ bool default y if MPC834x_SYS +config PPC_83xx + bool + default y if 83xx + config CPM1 bool depends on 8xx @@ -797,25 +780,14 @@ on it (826x, 827x, 8560). config PPC_CHRP - bool + bool "Support for CHRP (Common Hardware Reference Platform) machines" depends on PPC_MULTIPLATFORM select PPC_I8259 select PPC_INDIRECT_PCI default y -config PPC_PMAC - bool - depends on PPC_MULTIPLATFORM - select PPC_INDIRECT_PCI - default y - -config PPC_PMAC64 - bool - depends on PPC_PMAC && POWER4 - default y - config PPC_PREP - bool + bool "Support for PReP (PowerPC Reference Platform) machines" depends on PPC_MULTIPLATFORM select PPC_I8259 select PPC_INDIRECT_PCI @@ -823,7 +795,7 @@ config PPC_OF bool - depends on PPC_PMAC || PPC_CHRP + depends on PPC_CHRP default y config PPC_GEN550 @@ -1195,7 +1167,7 @@ config GENERIC_ISA_DMA bool - depends on POWER3 || POWER4 || 6xx && !CPM2 + depends on POWER3 || 6xx && !CPM2 default y config PPC_I8259 |
From: Albert H. <he...@us...> - 2006-03-24 21:45:29
|
Update of /cvsroot/gc-linux/linux/arch/ppc/boot/common In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4338/arch/ppc/boot/common Modified Files: util.S Log Message: 2.6.16 merged. Index: util.S =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/ppc/boot/common/util.S,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- util.S 31 Oct 2005 00:31:01 -0000 1.8 +++ util.S 24 Mar 2006 21:45:18 -0000 1.9 @@ -261,7 +261,8 @@ * First, flush the data cache in case it was enabled and may be * holding instructions for copy back. */ -_GLOBAL(flush_instruction_cache) + .globl flush_instruction_cache +flush_instruction_cache: mflr r6 bl flush_data_cache @@ -306,7 +307,8 @@ * Flush data cache * Do this by just reading lots of stuff into the cache. */ -_GLOBAL(flush_data_cache) + .globl flush_data_cache +flush_data_cache: lis r3,cache_flush_buffer@h ori r3,r3,cache_flush_buffer@l li r4,NUM_CACHE_LINES |
From: Albert H. <he...@us...> - 2006-03-24 21:45:29
|
Update of /cvsroot/gc-linux/linux/include/asm-ppc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4338/include/asm-ppc Modified Files: io.h Log Message: 2.6.16 merged. Index: io.h =================================================================== RCS file: /cvsroot/gc-linux/linux/include/asm-ppc/io.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- io.h 18 Jan 2006 23:41:53 -0000 1.12 +++ io.h 24 Mar 2006 21:45:19 -0000 1.13 @@ -27,6 +27,8 @@ #if defined(CONFIG_4xx) #include <asm/ibm4xx.h> +#elif defined(CONFIG_PPC_MPC52xx) +#include <asm/mpc52xx.h> #elif defined(CONFIG_8xx) #include <asm/mpc8xx.h> #elif defined(CONFIG_8260) |
From: Albert H. <he...@us...> - 2006-03-24 21:45:28
|
Update of /cvsroot/gc-linux/linux/arch/ppc/configs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4338/arch/ppc/configs Modified Files: gamecube_defconfig Log Message: 2.6.16 merged. Index: gamecube_defconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/ppc/configs/gamecube_defconfig,v retrieving revision 1.37 retrieving revision 1.38 diff -u -d -r1.37 -r1.38 --- gamecube_defconfig 18 Jan 2006 23:41:52 -0000 1.37 +++ gamecube_defconfig 24 Mar 2006 21:45:18 -0000 1.38 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.15 -# Wed Jan 18 23:25:21 2006 +# Linux kernel version: 2.6.16 +# Fri Mar 24 21:27:52 2006 # CONFIG_MMU=y CONFIG_GENERIC_HARDIRQS=y @@ -17,7 +17,6 @@ # Code maturity level options # CONFIG_EXPERIMENTAL=y -CONFIG_CLEAN_COMPILE=y CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 @@ -32,16 +31,16 @@ # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y # CONFIG_AUDIT is not set -# CONFIG_HOTPLUG is not set -CONFIG_KOBJECT_UEVENT=y # CONFIG_IKCONFIG is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y # CONFIG_EMBEDDED is not set CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y +CONFIG_ELF_CORE=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y @@ -50,8 +49,10 @@ CONFIG_CC_ALIGN_LABELS=0 CONFIG_CC_ALIGN_LOOPS=0 CONFIG_CC_ALIGN_JUMPS=0 +CONFIG_SLAB=y # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 +# CONFIG_SLOB is not set # # Loadable module support @@ -89,7 +90,6 @@ # CONFIG_40x is not set # CONFIG_44x is not set # CONFIG_POWER3 is not set -# CONFIG_POWER4 is not set # CONFIG_8xx is not set # CONFIG_E200 is not set # CONFIG_E500 is not set @@ -206,6 +206,7 @@ # # Networking options # +# CONFIG_NETDEBUG is not set # CONFIG_PACKET is not set CONFIG_UNIX=y # CONFIG_NET_KEY is not set @@ -241,6 +242,11 @@ # SCTP Configuration (EXPERIMENTAL) # # CONFIG_IP_SCTP is not set + +# +# TIPC Configuration (EXPERIMENTAL) +# +# CONFIG_TIPC is not set # CONFIG_ATM is not set # CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set @@ -501,6 +507,12 @@ # CONFIG_I2C is not set # +# SPI support +# +# CONFIG_SPI is not set +# CONFIG_SPI_MASTER is not set + +# # Dallas's 1-wire bus # # CONFIG_W1 is not set @@ -510,6 +522,7 @@ # CONFIG_HWMON=y # CONFIG_HWMON_VID is not set +# CONFIG_SENSORS_F71805F is not set # CONFIG_HWMON_DEBUG_CHIP is not set # @@ -584,6 +597,8 @@ CONFIG_SND_OSSEMUL=y # CONFIG_SND_MIXER_OSS is not set CONFIG_SND_PCM_OSS=y +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set @@ -634,7 +649,7 @@ # # -# SN Devices +# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) # # @@ -644,11 +659,11 @@ # CONFIG_EXT2_FS_XATTR is not set # CONFIG_EXT2_FS_XIP is not set # CONFIG_EXT3_FS is not set -# CONFIG_JBD is not set # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set # CONFIG_FS_POSIX_ACL is not set # CONFIG_XFS_FS is not set +# CONFIG_OCFS2_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_ROMFS_FS is not set CONFIG_INOTIFY=y @@ -663,6 +678,7 @@ # # CONFIG_ISO9660_FS is not set # CONFIG_UDF_FS is not set +# CONFIG_GCDVD_FS is not set # # DOS/FAT/NT Filesystems @@ -684,6 +700,7 @@ # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y # CONFIG_RELAYFS_FS is not set +# CONFIG_CONFIGFS_FS is not set # # Miscellaneous filesystems @@ -777,6 +794,7 @@ # Kernel hacking # # CONFIG_PRINTK_TIME is not set +# CONFIG_MAGIC_SYSRQ is not set # CONFIG_DEBUG_KERNEL is not set CONFIG_LOG_BUF_SHIFT=14 |
From: Albert H. <he...@us...> - 2006-03-24 21:45:28
|
Update of /cvsroot/gc-linux/linux/drivers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4338/drivers Modified Files: Makefile Log Message: 2.6.16 merged. Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/Makefile,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- Makefile 13 Feb 2006 16:05:58 -0000 1.14 +++ Makefile 24 Mar 2006 21:45:18 -0000 1.15 @@ -13,6 +13,7 @@ # PnP must come after ACPI since it will eventually need to check if acpi # was used and do nothing if so obj-$(CONFIG_PNP) += pnp/ +obj-$(CONFIG_ARM_AMBA) += amba/ # char/ comes before serial/ etc so that the VT console is the boot-time # default. @@ -40,6 +41,7 @@ obj-$(CONFIG_IEEE1394) += ieee1394/ obj-y += cdrom/ obj-$(CONFIG_MTD) += mtd/ +obj-$(CONFIG_SPI) += spi/ obj-$(CONFIG_PCCARD) += pcmcia/ obj-$(CONFIG_DIO) += dio/ obj-$(CONFIG_SBUS) += sbus/ @@ -61,12 +63,13 @@ obj-$(CONFIG_MD) += md/ obj-$(CONFIG_BT) += bluetooth/ obj-$(CONFIG_ISDN) += isdn/ +obj-$(CONFIG_EDAC) += edac/ obj-$(CONFIG_MCA) += mca/ obj-$(CONFIG_EISA) += eisa/ obj-$(CONFIG_CPU_FREQ) += cpufreq/ obj-$(CONFIG_MMC) += mmc/ obj-$(CONFIG_INFINIBAND) += infiniband/ -obj-$(CONFIG_SGI_IOC4) += sn/ +obj-$(CONFIG_SGI_SN) += sn/ obj-y += firmware/ obj-$(CONFIG_CRYPTO) += crypto/ obj-$(CONFIG_SUPERH) += sh/ |
From: Albert H. <he...@us...> - 2006-03-24 21:45:27
|
Update of /cvsroot/gc-linux/linux/drivers/video/logo In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4338/drivers/video/logo Modified Files: Makefile Log Message: 2.6.16 merged. Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/logo/Makefile,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Makefile 29 Aug 2005 19:50:20 -0000 1.3 +++ Makefile 24 Mar 2006 21:45:18 -0000 1.4 @@ -17,7 +17,7 @@ # How to generate logo's -# Use logo-cfiles to retreive list of .c files to be built +# Use logo-cfiles to retrieve list of .c files to be built logo-cfiles = $(notdir $(patsubst %.$(2), %.c, \ $(wildcard $(srctree)/$(src)/*$(1).$(2)))) |
From: Albert H. <he...@us...> - 2006-03-24 21:45:26
|
Update of /cvsroot/gc-linux/linux/fs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4338/fs Modified Files: Kconfig Makefile Log Message: 2.6.16 merged. Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/fs/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Makefile 6 Mar 2006 00:32:42 -0000 1.1 +++ Makefile 24 Mar 2006 21:45:18 -0000 1.2 @@ -10,11 +10,11 @@ ioctl.o readdir.o select.o fifo.o locks.o dcache.o inode.o \ attr.o bad_inode.o file.o filesystems.o namespace.o aio.o \ seq_file.o xattr.o libfs.o fs-writeback.o mpage.o direct-io.o \ - ioprio.o pnode.o + ioprio.o pnode.o drop_caches.o obj-$(CONFIG_INOTIFY) += inotify.o obj-$(CONFIG_EPOLL) += eventpoll.o -obj-$(CONFIG_COMPAT) += compat.o +obj-$(CONFIG_COMPAT) += compat.o compat_ioctl.o nfsd-$(CONFIG_NFSD) := nfsctl.o obj-y += $(nfsd-y) $(nfsd-m) @@ -102,3 +102,5 @@ obj-$(CONFIG_HOSTFS) += hostfs/ obj-$(CONFIG_HPPFS) += hppfs/ obj-$(CONFIG_DEBUG_FS) += debugfs/ +obj-$(CONFIG_CONFIGFS_FS) += configfs/ +obj-$(CONFIG_OCFS2_FS) += ocfs2/ Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/fs/Kconfig,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Kconfig 6 Mar 2006 00:32:42 -0000 1.1 +++ Kconfig 24 Mar 2006 21:45:18 -0000 1.2 @@ -70,6 +70,7 @@ config EXT3_FS tristate "Ext3 journalling file system support" + select JBD help This is the journaling version of the Second extended file system (often called ext3), the de facto standard Linux file system @@ -138,23 +139,20 @@ extended attributes for file security labels, say N. config JBD -# CONFIG_JBD could be its own option (even modular), but until there are -# other users than ext3, we will simply make it be the same as CONFIG_EXT3_FS -# dep_tristate ' Journal Block Device support (JBD for ext3)' CONFIG_JBD $CONFIG_EXT3_FS tristate - default EXT3_FS help This is a generic journaling layer for block devices. It is - currently used by the ext3 file system, but it could also be used to - add journal support to other file systems or block devices such as - RAID or LVM. + currently used by the ext3 and OCFS2 file systems, but it could + also be used to add journal support to other file systems or block + devices such as RAID or LVM. - If you are using the ext3 file system, you need to say Y here. If - you are not using ext3 then you will probably want to say N. + If you are using the ext3 or OCFS2 file systems, you need to + say Y here. If you are not using ext3 OCFS2 then you will probably + want to say N. To compile this device as a module, choose M here: the module will be - called jbd. If you are compiling ext3 into the kernel, you cannot - compile this code as a module. + called jbd. If you are compiling ext3 or OCFS2 into the kernel, + you cannot compile this code as a module. config JBD_DEBUG bool "JBD (ext3) debugging support" @@ -326,6 +324,38 @@ source "fs/xfs/Kconfig" +config OCFS2_FS + tristate "OCFS2 file system support (EXPERIMENTAL)" + depends on NET && EXPERIMENTAL + select CONFIGFS_FS + select JBD + select CRC32 + select INET + help + OCFS2 is a general purpose extent based shared disk cluster file + system with many similarities to ext3. It supports 64 bit inode + numbers, and has automatically extending metadata groups which may + also make it attractive for non-clustered use. + + You'll want to install the ocfs2-tools package in order to at least + get "mount.ocfs2". + + Project web page: http://oss.oracle.com/projects/ocfs2 + Tools web page: http://oss.oracle.com/projects/ocfs2-tools + OCFS2 mailing lists: http://oss.oracle.com/projects/ocfs2/mailman/ + + Note: Features which OCFS2 does not support yet: + - extended attributes + - shared writeable mmap + - loopback is supported, but data written will not + be cluster coherent. + - quotas + - cluster aware flock + - Directory change notification (F_NOTIFY) + - Distributed Caching (F_SETLEASE/F_GETLEASE/break_lease) + - POSIX ACLs + - readpages / writepages (not user visible) + config MINIX_FS tristate "Minix fs support" help @@ -779,7 +809,7 @@ config PROC_VMCORE bool "/proc/vmcore support (EXPERIMENTAL)" - depends on PROC_FS && EMBEDDED && EXPERIMENTAL && CRASH_DUMP + depends on PROC_FS && EXPERIMENTAL && CRASH_DUMP help Exports the dump image of crashed kernel in ELF format. @@ -852,6 +882,18 @@ If unsure, say N. +config CONFIGFS_FS + tristate "Userspace-driven configuration filesystem (EXPERIMENTAL)" + depends on EXPERIMENTAL + help + configfs is a ram-based filesystem that provides the converse + of sysfs's functionality. Where sysfs is a filesystem-based + view of kernel objects, configfs is a filesystem-based manager + of kernel objects, or config_items. + + Both sysfs and configfs can and should exist together on the + same system. One is not a replacement for the other. + endmenu menu "Miscellaneous filesystems" @@ -1294,7 +1336,7 @@ config UFS_FS_WRITE bool "UFS file system write support (DANGEROUS)" - depends on UFS_FS && EXPERIMENTAL + depends on UFS_FS && EXPERIMENTAL && BROKEN help Say Y here if you want to try writing to UFS partitions. This is experimental, so you should back up your UFS partitions beforehand. |
From: Albert H. <he...@us...> - 2006-03-24 21:45:26
|
Update of /cvsroot/gc-linux/linux/drivers/net In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4338/drivers/net Modified Files: Kconfig Makefile Log Message: 2.6.16 merged. Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/net/Makefile,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- Makefile 18 Jan 2006 23:41:53 -0000 1.16 +++ Makefile 24 Mar 2006 21:45:18 -0000 1.17 @@ -13,7 +13,10 @@ obj-$(CONFIG_BONDING) += bonding/ obj-$(CONFIG_GIANFAR) += gianfar_driver.o -gianfar_driver-objs := gianfar.o gianfar_ethtool.o gianfar_mii.o +gianfar_driver-objs := gianfar.o \ + gianfar_ethtool.o \ + gianfar_mii.o \ + gianfar_sysfs.o # # link order important here @@ -59,6 +62,7 @@ obj-$(CONFIG_SPIDER_NET) += spidernet.o obj-$(CONFIG_TC35815) += tc35815.o obj-$(CONFIG_SKGE) += skge.o +obj-$(CONFIG_SKY2) += sky2.o obj-$(CONFIG_SK98LIN) += sk98lin/ obj-$(CONFIG_SKFP) += skfp/ obj-$(CONFIG_VIA_RHINE) += via-rhine.o @@ -121,6 +125,7 @@ endif obj-$(CONFIG_DUMMY) += dummy.o +obj-$(CONFIG_IFB) += ifb.o obj-$(CONFIG_DE600) += de600.o obj-$(CONFIG_DE620) += de620.o obj-$(CONFIG_LANCE) += lance.o @@ -203,6 +208,7 @@ obj-$(CONFIG_HAMRADIO) += hamradio/ obj-$(CONFIG_IRDA) += irda/ obj-$(CONFIG_ETRAX_ETHERNET) += cris/ +obj-$(CONFIG_ENP2611_MSF_NET) += ixp2000/ obj-$(CONFIG_NETCONSOLE) += netconsole.o Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/net/Kconfig,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- Kconfig 18 Jan 2006 23:41:53 -0000 1.19 +++ Kconfig 24 Mar 2006 21:45:18 -0000 1.20 @@ -4,9 +4,10 @@ # menu "Network device support" + depends on NET config NETDEVICES - depends on NET + default y if UML bool "Network device support" ---help--- You can say N here if you don't intend to connect your Linux box to @@ -23,9 +24,19 @@ If unsure, say Y. -# All the following symbols are dependent on NETDEVICES - do not repeat -# that for each of the symbols. -if NETDEVICES + +config IFB + tristate "Intermediate Functional Block support" + depends on NET_CLS_ACT + ---help--- + This is an intermidiate driver that allows sharing of + resources. + To compile this driver as a module, choose M here: the module + will be called ifb. If you want to use more than one ifb + device at a time, you need to compile this driver as a module. + Instead of 'ifb', the devices will then be called 'ifb0', + 'ifb1' etc. + Look at the iproute2 documentation directory for usage etc config DUMMY tristate "Dummy net driver support" @@ -129,7 +140,7 @@ If you don't have this card, of course say N. - source "drivers/net/arcnet/Kconfig" +source "drivers/net/arcnet/Kconfig" source "drivers/net/phy/Kconfig" @@ -853,7 +864,7 @@ config DM9000 tristate "DM9000 support" - depends on ARM && NET_ETHERNET + depends on (ARM || MIPS) && NET_ETHERNET select CRC32 select MII ---help--- @@ -1085,7 +1096,8 @@ without a specific driver are compatible with NE2000. If you have a PCI NE2000 card however, say N here and Y to "PCI - NE2000 support", above. If you have a NE2000 card and are running on + NE2000 and clone support" under "EISA, VLB, PCI and on board + controllers" below. If you have a NE2000 card and are running on an MCA system (a bus system used on some IBM PS/2 computers and laptops), say N here and Y to "NE/2 (ne2000 MCA version) support", below. @@ -1383,7 +1395,7 @@ config CS89x0 tristate "CS89x0 support" - depends on (NET_PCI && (ISA || ARCH_IXDP2X01)) || ARCH_PNX0105 + depends on NET_PCI && (ISA || MACH_IXDP2351 || ARCH_IXDP2X01 || ARCH_PNX010X) ---help--- Support for CS89x0 chipset based Ethernet cards. If you have a network (Ethernet) card of this type, say Y and read the @@ -1393,7 +1405,7 @@ To compile this driver as a module, choose M here and read <file:Documentation/networking/net-modules.txt>. The module will be - called cs89x. + called cs89x0. config TC35815 tristate "TOSHIBA TC35815 Ethernet support" @@ -1800,7 +1812,7 @@ config FEC bool "FEC ethernet controller (of ColdFire CPUs)" - depends on M523x || M527x || M5272 || M528x + depends on M523x || M527x || M5272 || M528x || M520x help Say Y here if you want to use the built-in 10/100 Fast ethernet controller on some Motorola ColdFire processors. @@ -1910,6 +1922,17 @@ If in doubt, say N. +config E1000_DISABLE_PACKET_SPLIT + bool "Disable Packet Split for PCI express adapters" + depends on E1000 + help + Say Y here if you want to use the legacy receive path for PCI express + hadware. + + If in doubt, say N. + +source "drivers/net/ixp2000/Kconfig" + config MYRI_SBUS tristate "MyriCOM Gigabit Ethernet support" depends on SBUS @@ -2007,8 +2030,8 @@ will be called sis190. This is recommended. config SKGE - tristate "New SysKonnect GigaEthernet support (EXPERIMENTAL)" - depends on PCI && EXPERIMENTAL + tristate "New SysKonnect GigaEthernet support" + depends on PCI select CRC32 ---help--- This driver support the Marvell Yukon or SysKonnect SK-98xx/SK-95xx @@ -2017,14 +2040,47 @@ It does not support the link failover and network management features that "portable" vendor supplied sk98lin driver does. - + + This driver supports adapters based on the original Yukon chipset: + Marvell 88E8001, Belkin F5D5005, CNet GigaCard, DLink DGE-530T, + Linksys EG1032/EG1064, 3Com 3C940/3C940B, SysKonnect SK-9871/9872. + + It does not support the newer Yukon2 chipset: a separate driver, + sky2, is provided for Yukon2-based adapters. + + To compile this driver as a module, choose M here: the module + will be called skge. This is recommended. + +config SKY2 + tristate "SysKonnect Yukon2 support (EXPERIMENTAL)" + depends on PCI && EXPERIMENTAL + select CRC32 + ---help--- + This driver supports Gigabit Ethernet adapters based on the the + Marvell Yukon 2 chipset: + Marvell 88E8021/88E8022/88E8035/88E8036/88E8038/88E8050/88E8052/ + 88E8053/88E8055/88E8061/88E8062, SysKonnect SK-9E21D/SK-9S21 + + This driver does not support the original Yukon chipset: a seperate + driver, skge, is provided for Yukon-based adapters. + + To compile this driver as a module, choose M here: the module + will be called sky2. This is recommended. + config SK98LIN tristate "Marvell Yukon Chipset / SysKonnect SK-98xx Support" depends on PCI ---help--- Say Y here if you have a Marvell Yukon or SysKonnect SK-98xx/SK-95xx - compliant Gigabit Ethernet Adapter. The following adapters are supported - by this driver: + compliant Gigabit Ethernet Adapter. + + This driver supports the original Yukon chipset. A cleaner driver is + also available (skge) which seems to work better than this one. + + This driver does not support the newer Yukon2 chipset. A seperate + driver, sky2, is provided to support Yukon2-based adapters. + + The following adapters are supported by this driver: - 3Com 3C940 Gigabit LOM Ethernet Adapter - 3Com 3C941 Gigabit LOM Ethernet Adapter - Allied Telesyn AT-2970LX Gigabit Ethernet Adapter @@ -2036,7 +2092,6 @@ - Allied Telesyn AT-2971SX Gigabit Ethernet Adapter - Allied Telesyn AT-2971T Gigabit Ethernet Adapter - Belkin Gigabit Desktop Card 10/100/1000Base-T Adapter, Copper RJ-45 - - DGE-530T Gigabit Ethernet Adapter - EG1032 v2 Instant Gigabit Network Adapter - EG1064 v2 Instant Gigabit Network Adapter - Marvell 88E8001 Gigabit LOM Ethernet Adapter (Abit) @@ -2129,7 +2184,7 @@ config SPIDER_NET tristate "Spider Gigabit Ethernet driver" - depends on PCI && PPC_BPA + depends on PCI && PPC_CELL help This driver supports the Gigabit Ethernet chips present on the Cell Processor-Based Blades from IBM. @@ -2659,10 +2714,6 @@ Class-Based Queueing (CBQ) scheduling support which you get if you say Y to "QoS and/or fair queueing" above. - To set up and configure shaper devices, you need the shapecfg - program, available from <ftp://shadow.cabi.net/pub/Linux/> in the - shaper package. - To compile this driver as a module, choose M here: the module will be called shaper. If unsure, say N. @@ -2673,8 +2724,6 @@ If you want to log kernel messages over the network, enable this. See <file:Documentation/networking/netconsole.txt> for details. -endif #NETDEVICES - config NETPOLL def_bool NETCONSOLE |
From: Albert H. <he...@us...> - 2006-03-24 21:45:25
|
Update of /cvsroot/gc-linux/linux/drivers/block In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4338/drivers/block Modified Files: Kconfig gcn-aram.c gcn-sd.c Log Message: 2.6.16 merged. Index: gcn-aram.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/block/gcn-aram.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- gcn-aram.c 18 Jan 2006 23:41:52 -0000 1.10 +++ gcn-aram.c 24 Mar 2006 21:45:18 -0000 1.11 @@ -207,7 +207,7 @@ if (req) { if (!end_that_request_first(req, 1, req->current_nr_sectors)) { add_disk_randomness(req->rq_disk); - end_that_request_last(req); + end_that_request_last(req, 1); } dma_unmap_single(&adev->pdev.dev, adev->dma_addr, adev->dma_len, rq_dir_to_dma_dir(req)); Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/block/Kconfig,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- Kconfig 18 Jan 2006 23:41:52 -0000 1.20 +++ Kconfig 24 Mar 2006 21:45:18 -0000 1.21 @@ -179,7 +179,7 @@ config PARIDE tristate "Parallel port IDE device support" - depends on PARPORT + depends on PARPORT_PC ---help--- There are many external CD-ROM and disk devices that connect through your computer's parallel port. Most of them are actually IDE devices @@ -420,7 +420,8 @@ This driver supports certain USB attached storage devices such as flash keys. - Warning: Enabling this cripples the usb-storage driver. + If you enable this driver, it is recommended to avoid conflicts + with usb-storage by enabling USB_LIBUSUAL. If unsure, say N. @@ -494,12 +495,12 @@ This controls the maximum number of active concurrent packets. More concurrent packets can increase write performance, but also require more memory. Each concurrent packet will require approximately 64Kb - of non-swappable kernel memory, memory which will be allocated at - pktsetup time. + of non-swappable kernel memory, memory which will be allocated when + a disc is opened for writing. config CDROM_PKTCDVD_WCACHE - bool "Enable write caching" - depends on CDROM_PKTCDVD + bool "Enable write caching (EXPERIMENTAL)" + depends on CDROM_PKTCDVD && EXPERIMENTAL help If enabled, write caching will be set for the CD-R/W device. For now this option is dangerous unless the CD-RW media is known good, as we Index: gcn-sd.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/block/gcn-sd.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- gcn-sd.c 7 Nov 2005 21:38:04 -0000 1.6 +++ gcn-sd.c 24 Mar 2006 21:45:18 -0000 1.7 @@ -255,7 +255,7 @@ * FIXME: use a faster method (table) * (the in-kernel crc 16 (ccitt crc) tables seem not compatible with us) */ -u16 crc_xmodem_update(u16 crc, u8 data) +static u16 crc_xmodem_update(u16 crc, u8 data) { int i; @@ -1183,10 +1183,11 @@ } if (!end_that_request_first(req, uptodate, nr_sectors)) - end_that_request_last(req); + end_that_request_last(req, uptodate); /* avoid cpu monopolization, we are damn greedy */ - yield(); + //yield(); + cond_resched(); spin_lock(&host->queue_lock); blk_start_queue(host->queue); |
From: Albert H. <he...@us...> - 2006-03-24 21:45:24
|
Update of /cvsroot/gc-linux/linux/sound/ppc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4338/sound/ppc Modified Files: Kconfig Log Message: 2.6.16 merged. Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/sound/ppc/Kconfig,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- Kconfig 31 Oct 2005 00:44:18 -0000 1.10 +++ Kconfig 24 Mar 2006 21:45:19 -0000 1.11 @@ -13,7 +13,6 @@ tristate "PowerMac (AWACS, DACA, Burgundy, Tumbler, Keywest)" depends on SND && I2C && INPUT && PPC_PMAC select SND_PCM - select SND_GENERIC_DRIVER help Say Y here to include support for the integrated sound device. |
From: Albert H. <he...@us...> - 2006-03-24 21:45:24
|
Update of /cvsroot/gc-linux/linux/drivers/block/gcn-di In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4338/drivers/block/gcn-di Modified Files: gcn-di.c Log Message: 2.6.16 merged. Index: gcn-di.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/block/gcn-di/gcn-di.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- gcn-di.c 19 Jan 2006 00:31:40 -0000 1.16 +++ gcn-di.c 24 Mar 2006 21:45:18 -0000 1.17 @@ -1824,6 +1824,7 @@ struct di_device *ddev = cmd->ddev; struct request *req; unsigned long flags; + int uptodate = (cmd->result & DI_SR_TCINT)?1:0; spin_lock_irqsave(&ddev->lock, flags); @@ -1833,11 +1834,10 @@ spin_unlock_irqrestore(&ddev->lock, flags); if (req) { - if (!end_that_request_first(req, - (cmd->result & DI_SR_TCINT)?1:0, + if (!end_that_request_first(req, uptodate, req->current_nr_sectors)) { add_disk_randomness(req->rq_disk); - end_that_request_last(req); + end_that_request_last(req, uptodate); } spin_lock(&ddev->queue_lock); blk_start_queue(ddev->queue); @@ -2138,9 +2138,13 @@ spin_unlock_irqrestore(&ddev->io_lock, flags); di_retrieve_drive_model(ddev); - di_select_drive_code(ddev); - di_check_for_addons(ddev); + if (di_select_drive_code(ddev)) { + free_irq(ddev->irq, ddev); + retval = -ENODEV; + goto out; + } + di_check_for_addons(ddev); di_schedule_motor_off(ddev, DI_MOTOR_OFF_TIMEOUT); out: @@ -2405,6 +2409,8 @@ retval = driver_register(&di_driver); if (!retval) { retval = platform_device_register(&di_device.pdev); + if (retval) + driver_unregister(&di_driver); } return retval; |