Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 27558 | Differences between
and this patch

Collapse All | Expand All

(-)linux-2.4.22-ppc-dev.orig/arch/ppc/kernel/prom_init.c (+6 lines)
Lines 699-704 Link Here
699
	char *p, *d;
699
	char *p, *d;
700
 	unsigned long phys;
700
 	unsigned long phys;
701
	void *result[3];
701
	void *result[3];
702
	char model[32];
703
	int rc;
702
704
703
 	/* Default */
705
 	/* Default */
704
 	phys = (unsigned long) &_stext;
706
 	phys = (unsigned long) &_stext;
Lines 783-788 Link Here
783
	prom_print("from prom_init\n");
785
	prom_print("from prom_init\n");
784
	prom_stdout = 0;
786
	prom_stdout = 0;
785
787
788
	phandle node = call_prom("finddevice", 1, 1, "/");
789
	rc = call_prom("getprop", 4, 1, node, "model",model, sizeof(model));
790
	if (rc > 0 && !strncmp(model, "Pegasos", 7)) phys = 0x00010000;
791
786
	return phys;
792
	return phys;
787
}
793
}
788
794
(-)linux-2.4.22-ppc-dev.orig/arch/ppc/platforms/chrp_pci.c (-1 / +6 lines)
Lines 291-297 Link Here
291
	struct pci_controller *hose;
291
	struct pci_controller *hose;
292
	unsigned int *dma;
292
	unsigned int *dma;
293
	char *model, *machine;
293
	char *model, *machine;
294
	int is_longtrail = 0, is_mot = 0;
294
	int is_longtrail = 0, is_mot = 0, is_pegasos = 0;
295
	struct device_node *root = find_path_device("/");
295
	struct device_node *root = find_path_device("/");
296
296
297
	/*
297
	/*
Lines 303-308 Link Here
303
	if (machine != NULL) {
303
	if (machine != NULL) {
304
		is_longtrail = strncmp(machine, "IBM,LongTrail", 13) == 0;
304
		is_longtrail = strncmp(machine, "IBM,LongTrail", 13) == 0;
305
		is_mot = strncmp(machine, "MOT", 3) == 0;
305
		is_mot = strncmp(machine, "MOT", 3) == 0;
306
		is_pegasos = strncmp(machine, "Pegasos", 7) == 0;
306
	}
307
	}
307
	for (dev = root->child; dev != NULL; dev = dev->sibling) {
308
	for (dev = root->child; dev != NULL; dev = dev->sibling) {
308
		if (dev->type == NULL || strcmp(dev->type, "pci") != 0)
309
		if (dev->type == NULL || strcmp(dev->type, "pci") != 0)
Lines 365-370 Link Here
365
					pci_dram_offset = *dma;
366
					pci_dram_offset = *dma;
366
				}
367
				}
367
			}
368
			}
369
		} else if (is_pegasos) {
370
			setup_indirect_pci(hose, 0xfec00cf8, 0xfee00cfc);
368
		} else {
371
		} else {
369
			printk("No methods for %s (model %s), using RTAS\n",
372
			printk("No methods for %s (model %s), using RTAS\n",
370
			       dev->full_name, model);
373
			       dev->full_name, model);
Lines 387-392 Link Here
387
               ppc_md.pcibios_fixup = longtrail_pcibios_fixup;
390
               ppc_md.pcibios_fixup = longtrail_pcibios_fixup;
388
       else if (chrp_is_briq)
391
       else if (chrp_is_briq)
389
               ppc_md.pcibios_fixup = briq_pcibios_fixup;
392
               ppc_md.pcibios_fixup = briq_pcibios_fixup;
393
       else if (is_pegasos)
394
               ppc_md.pcibios_fixup = NULL;
390
       else
395
       else
391
               ppc_md.pcibios_fixup = chrp_pcibios_fixup;
396
               ppc_md.pcibios_fixup = chrp_pcibios_fixup;
392
}
397
}
(-)linux-2.4.22-ppc-dev.orig/arch/ppc/platforms/chrp_setup.c (-1 / +28 lines)
Lines 440-447 Link Here
440
	i8259_init(intack);
440
	i8259_init(intack);
441
}
441
}
442
442
443
static void __init
444
pegasos_init_irq_8259(unsigned long intack)
445
{
446
	int i;
447
	
448
	ppc_md.get_irq = i8259_irq;
449
	for (i = 0; i < NUM_8259_INTERRUPTS; i++) {
450
		if (i<16) {
451
			/* byte access */
452
			unsigned int port = 0x4d0 + (i >> 3);
453
			/* ask HW directly */
454
			irq_desc[i].status |= (((inb(port) >> (i & 7)) & 1) ? IRQ_LEVEL : 0 );
455
		}
456
		irq_desc[i].handler = &i8259_pic;
457
	}
458
	i8259_init(intack);
459
}
460
443
void __init chrp_init_IRQ(void)
461
void __init chrp_init_IRQ(void)
444
{
462
{
463
	struct device_node *root = find_path_device("/");
464
	char *machine;
445
	struct device_node *np;
465
	struct device_node *np;
446
	unsigned long intack = 0;
466
	unsigned long intack = 0;
447
	struct device_node *main_irq_ctrler = NULL;
467
	struct device_node *main_irq_ctrler = NULL;
Lines 471-476 Link Here
471
			main_irq_ctrler = find_phandle(*irq_ctrler_ph);
491
			main_irq_ctrler = find_phandle(*irq_ctrler_ph);
472
	}
492
	}
473
493
494
	machine = get_property(root, "model", NULL);
495
	if (main_irq_ctrler == NULL && (strncmp(machine, "Pegasos", 7) == 0))
496
		pegasos_init_irq_8259(intack);
497
	else
474
	if (main_irq_ctrler && device_is_compatible(main_irq_ctrler, "8259"))
498
	if (main_irq_ctrler && device_is_compatible(main_irq_ctrler, "8259"))
475
		chrp_init_irq_8259(intack);
499
		chrp_init_irq_8259(intack);
476
	else
500
	else
Lines 570-576 Link Here
570
	ppc_md.show_cpuinfo   = chrp_show_cpuinfo;
594
	ppc_md.show_cpuinfo   = chrp_show_cpuinfo;
571
	ppc_md.irq_cannonicalize = chrp_irq_cannonicalize;
595
	ppc_md.irq_cannonicalize = chrp_irq_cannonicalize;
572
	ppc_md.init_IRQ       = chrp_init_IRQ;
596
	ppc_md.init_IRQ       = chrp_init_IRQ;
573
	ppc_md.get_irq        = openpic_get_irq;
597
	if (strncmp(machine, "Pegasos", 7) == 0)
598
		ppc_md.get_irq	= i8259_irq;
599
	else
600
		ppc_md.get_irq	= openpic_get_irq;
574
601
575
	ppc_md.init           = chrp_init2;
602
	ppc_md.init           = chrp_init2;
576
603
(-)linux-2.4.22-ppc-dev.orig/drivers/ide/pci/via82cxxx.c (+3 lines)
Lines 90-95 Link Here
90
	{ "vt82c586b",	PCI_DEVICE_ID_VIA_82C586_0, 0x30, 0x3f, VIA_UDMA_33 | VIA_SET_FIFO },
90
	{ "vt82c586b",	PCI_DEVICE_ID_VIA_82C586_0, 0x30, 0x3f, VIA_UDMA_33 | VIA_SET_FIFO },
91
	{ "vt82c586a",	PCI_DEVICE_ID_VIA_82C586_0, 0x20, 0x2f, VIA_UDMA_33 | VIA_SET_FIFO },
91
	{ "vt82c586a",	PCI_DEVICE_ID_VIA_82C586_0, 0x20, 0x2f, VIA_UDMA_33 | VIA_SET_FIFO },
92
	{ "vt82c586",	PCI_DEVICE_ID_VIA_82C586_0, 0x00, 0x0f, VIA_UDMA_NONE | VIA_SET_FIFO },
92
	{ "vt82c586",	PCI_DEVICE_ID_VIA_82C586_0, 0x00, 0x0f, VIA_UDMA_NONE | VIA_SET_FIFO },
93
	{ "vt82c586c",  PCI_DEVICE_ID_VIA_82C586_1, 0x00, 0xff, VIA_UDMA_33 | VIA_SET_FIFO },
93
	{ "vt82c576",	PCI_DEVICE_ID_VIA_82C576,   0x00, 0x2f, VIA_UDMA_NONE | VIA_SET_FIFO | VIA_NO_UNMASK },
94
	{ "vt82c576",	PCI_DEVICE_ID_VIA_82C576,   0x00, 0x2f, VIA_UDMA_NONE | VIA_SET_FIFO | VIA_NO_UNMASK },
94
	{ "vt82c576",	PCI_DEVICE_ID_VIA_82C576,   0x00, 0x2f, VIA_UDMA_NONE | VIA_SET_FIFO | VIA_NO_UNMASK | VIA_BAD_ID },
95
	{ "vt82c576",	PCI_DEVICE_ID_VIA_82C576,   0x00, 0x2f, VIA_UDMA_NONE | VIA_SET_FIFO | VIA_NO_UNMASK | VIA_BAD_ID },
95
	{ NULL }
96
	{ NULL }
Lines 588-593 Link Here
588
	hwif->tuneproc = &via82cxxx_tune_drive;
589
	hwif->tuneproc = &via82cxxx_tune_drive;
589
	hwif->speedproc = &via_set_drive;
590
	hwif->speedproc = &via_set_drive;
590
591
592
	hwif->irq = hwif->channel ? 15 : 14;
593
591
	for (i = 0; i < 2; i++) {
594
	for (i = 0; i < 2; i++) {
592
		hwif->drives[i].io_32bit = 1;
595
		hwif->drives[i].io_32bit = 1;
593
		hwif->drives[i].unmask = (via_config->flags & VIA_NO_UNMASK) ? 0 : 1;
596
		hwif->drives[i].unmask = (via_config->flags & VIA_NO_UNMASK) ? 0 : 1;
(-)linux-2.4.22-ppc-dev.orig/drivers/net/via-rhine.c (-1 / +1 lines)
Lines 739-745 Link Here
739
739
740
	if (!is_valid_ether_addr(dev->dev_addr)) {
740
	if (!is_valid_ether_addr(dev->dev_addr)) {
741
		printk(KERN_ERR "Invalid MAC address for card #%d\n", card_idx);
741
		printk(KERN_ERR "Invalid MAC address for card #%d\n", card_idx);
742
		goto err_out_unmap;
742
		/*goto err_out_unmap;*/
743
	}
743
	}
744
744
745
	if (chip_id == VT6102) {
745
	if (chip_id == VT6102) {

Return to bug 27558