Skip to contentSkip to conversation

IDE fixes

PATCH In review Bartlomiej Zolnierkiewicz 2 participants 4 messages Jun 15, 2008 – Jun 16, 2008

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 IDE fixes

Hi,

- ide-generic post-2.6.25 regression bugfix
(thanks to bugreport from Mikael Pettersson)

- ide-cs fixes (including post-2.6.25 regression bugfix)

- ide-pmac fixes (including post-2.6.25 regression bugfix)

- opti621 fixes (including 2.6.25 regression bugfix)

opti621 changes outstand in the diffstat and they are on the border of being too much for -rc but since they were all tested on the real hardware (thanks to Juergen Kosel) and they match behavior of Alan's pata_opti621 they should be safe.

BTW 2.6.26 cycle was a bit rougher than usual when it comes to IDE (due to nature of changes that went in and hitting few corner-cases which slipped through audit + -mm/-next testing) but it should be all good now and back to the norm in 2.6.27 cycle.

Linus, please pull from:

master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6.git/

to receive the following updates:

 drivers/ide/ide-generic.c    |    9 ++-
 drivers/ide/legacy/ide-cs.c  |   41 ++++----
 drivers/ide/pci/opti621.c    |  221 ++++++++----------------------------------
 drivers/ide/ppc/pmac.c       |   60 ++++++------
 drivers/macintosh/mediabay.c |    3 +-
 5 files changed, 101 insertions(+), 233 deletions(-)

Bartlomiej Zolnierkiewicz (12):
opti621: disable read prefetch
opti621: remove DMA support
opti621: use PCI clock value provided by controller
opti621: program devices timings separately in ->set_pio_mode
opti621: use pre-calculated PIO timings
opti621: add PIO 4 support
ide-pmac: bugfix for media-bay support rework
ide-pmac: add ->cable_detect method
ide-pmac: remove bogus comment about pmac_ide_setup_device()
ide-cs: fix probing and add warm-plug support
ide-cs: fix releasing I/O resources
ide-generic: don't probe all legacy ISA IDE ports by default

drivers/ide/ide-generic.c +8 -1
index 9134488..2d92214 100644
@@ -22,6 +22,10 @@
 
 #define DRV_NAME	"ide_generic"
 
+static int probe_mask = 0x03;
+module_param(probe_mask, int, 0);
+MODULE_PARM_DESC(probe_mask, "probe mask for legacy ISA IDE ports");
+
 static ssize_t store_add(struct class *cls, const char *buf, size_t n)
 {
 	ide_hwif_t *hwif;
@@ -89,6 +93,9 @@ static int __init ide_generic_init(void)
 	u8 idx[MAX_HWIFS];
 	int i;
 
+	printk(KERN_INFO DRV_NAME ": please use \"probe_mask=0x3f\" module "
+			 "parameter for probing all legacy ISA IDE ports\n");
+
 	for (i = 0; i < MAX_HWIFS; i++) {
 		ide_hwif_t *hwif;
 		unsigned long io_addr = ide_default_io_base(i);
@@ -96,7 +103,7 @@ static int __init ide_generic_init(void)
 
 		idx[i] = 0xff;
 
-		if (io_addr) {
+		if ((probe_mask & (1 << i)) && io_addr) {
 			if (!request_region(io_addr, 8, DRV_NAME)) {
 				printk(KERN_ERR "%s: I/O resource 0x%lX-0x%lX "
 						"not free.\n",
drivers/ide/legacy/ide-cs.c +20 -21

76 lines not on this page · raw message

drivers/ide/pci/opti621.c +39 -182

278 lines not on this page · raw message

drivers/ide/ppc/pmac.c +32 -28

112 lines not on this page · raw message

drivers/macintosh/mediabay.c +2 -1
index 82add26..c34bdf8 100644
@@ -556,7 +556,8 @@ static void media_bay_step(int i)
 				printk("mediabay %d, registering IDE...\n", i);
 				pmu_suspend();
 				ide_port_scan(bay->cd_port);
-				bay->cd_index = bay->cd_port->index;
+				if (bay->cd_port->present)
+					bay->cd_index = bay->cd_port->index;
 				pmu_resume();
 			}
 			if (bay->cd_index == -1) {
#1 lore raw
Quoted 4 lines · Bartlomiej Zolnierkiewicz

Linus, please pull from:

master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6.git/

That repo seems incomplete.

It *looks* like it has all the new objects, but its objects/info/alternates is corrupt:

	[torvalds@hera ide-2.6.git]$ cat objects/info/alternates 
	/home/dump/git/linux-2.6.git/.git/objects

and there is no such thing as "/home/dump/git/linux-2.6.git/"

So you seem to have screwed up the alternates file (you probably have something like that alternates file on your own machine?), and then rsync'ed it to master.kernel.org or something like that?

Linus

#2 lore raw
Quoted 8 lines · Linus Torvalds

It *looks* like it has all the new objects, but its objects/info/alternates is corrupt:

	[torvalds@hera ide-2.6.git]$ cat objects/info/alternates 
	/home/dump/git/linux-2.6.git/.git/objects

and there is no such thing as "/home/dump/git/linux-2.6.git/"

Ok, I did the pull by just copying the objects to a local repo, and setting the alternates file correctly. So it worked this time, but please double-check your alternates next time,

Linus

#3 lore raw
Quoted 6 lines · Linus Torvalds
Quoted 4 lines · Linus Torvalds

It *looks* like it has all the new objects, but its objects/info/alternates is corrupt:

Quoted 8 lines
Quoted 4 lines
	[torvalds@hera ide-2.6.git]$ cat objects/info/alternates 
	/home/dump/git/linux-2.6.git/.git/objects

and there is no such thing as "/home/dump/git/linux-2.6.git/"

Ok, I did the pull by just copying the objects to a local repo, and setting the alternates file correctly. So it worked this time, but please double-check your alternates next time,

Thanks, and sorry for troubles.

Bart