public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Pavel Machek <pavel@ucw.cz>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Martin Dalecki <dalecki@evision-ventures.com>,
	Jeff Garzik <jgarzik@mandrakesoft.com>,
	Linus Torvalds <torvalds@transmeta.com>,
	Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] 2.5.5 IDE cleanup 11
Date: Fri, 22 Feb 2002 16:51:15 +0100	[thread overview]
Message-ID: <20020222155114.GA313@elf.ucw.cz> (raw)
In-Reply-To: <3C75351D.4030200@evision-ventures.com> <E16dxk1-0007kN-00@the-village.bc.nu>
In-Reply-To: <E16dxk1-0007kN-00@the-village.bc.nu>

Hi!

> > > So you didnt test or consider the upcoming things like hotplug. 
> > 
> > I did plugging and unplugging a CardBus IDE contoller in and out on
> > a hot system.
> 
> IDE hotplug is device level (hence you want ->present)
> 
> > using the struct device_driver infrastructure and not by reduplicating 
> > it's fuctionality inside ide.c. Agreed? Before one could even thing
> 
> Not agreed - its a layer lower I'm talking about

I want both "ide controller" *and* "ide disk" to have struct
device. And my patches do exactly that, see:

								Pavel

--- linux/drivers/ide/ide-disk.c	Mon Feb 11 20:51:47 2002
+++ linux-dm/drivers/ide/ide-disk.c	Mon Feb 11 23:35:09 2002
@@ -925,12 +925,16 @@
 	ide_add_setting(drive,	"max_failures",		SETTING_RW,					-1,			-1,			TYPE_INT,	0,	65535,				1,	1,	&drive->max_failures,		NULL);
 }
 
+static struct device_driver idedisk_device_driver = {
+};
+
 static void idedisk_setup (ide_drive_t *drive)
 {
 	int i;
 	
 	struct hd_driveid *id = drive->id;
 	unsigned long capacity;
+	int myid = -1;
 	
 	idedisk_add_settings(drive);
 
@@ -953,11 +957,20 @@
 		ide_hwif_t *hwif = HWIF(drive);
 
 		if (drive != &hwif->drives[i]) continue;
+		myid = i;
 		hwif->gd->de_arr[i] = drive->de;
 		if (drive->removable)
 			hwif->gd->flags[i] |= GENHD_FL_REMOVABLE;
 		break;
 	}
+	{
+		ide_hwif_t *hwif = HWIF(drive);
+		sprintf(drive->device.bus_id, "%d", myid);
+		sprintf(drive->device.name, "ide-disk");
+		drive->device.driver = &idedisk_device_driver;
+		drive->device.parent = &hwif->device;
+		device_register(&drive->device);
+	}
 
 	/* Extract geometry if we did not already have one for the drive */
 	if (!drive->cyl || !drive->head || !drive->sect) {
@@ -1033,6 +1046,7 @@
 
 static int idedisk_cleanup (ide_drive_t *drive)
 {
+	put_device(&drive->device);
 	if ((drive->id->cfs_enable_2 & 0x3000) && drive->wcache)
 		if (do_idedisk_flushcache(drive))
 			printk (KERN_INFO "%s: Write Cache FAILED Flushing!\n",
--- linux/drivers/ide/ide-pnp.c	Thu Oct 25 13:25:37 2001
+++ linux-dm/drivers/ide/ide-pnp.c	Thu Feb 14 22:45:13 2002
@@ -57,6 +57,7 @@
 static int __init pnpide_generic_init(struct pci_dev *dev, int enable)
 {
 	hw_regs_t hw;
+	ide_hwif_t *hwif;
 	int index;
 
 	if (!enable)
@@ -69,9 +70,10 @@
 			generic_ide_offsets, (ide_ioreg_t) DEV_IO(dev, 1),
 			0, NULL, DEV_IRQ(dev, 0));
 
-	index = ide_register_hw(&hw, NULL);
+	index = ide_register_hw(&hw, &hwif);
 
 	if (index != -1) {
+		hwif->pci_dev = dev;
 	    	printk("ide%d: %s IDE interface\n", index, DEV_NAME(dev));
 		return 0;
 	}
--- linux/drivers/ide/ide-probe.c	Thu Jan 31 23:39:35 2002
+++ linux-dm/drivers/ide/ide-probe.c	Thu Feb 14 22:50:53 2002
@@ -46,6 +46,7 @@
 #include <linux/delay.h>
 #include <linux/ide.h>
 #include <linux/spinlock.h>
+#include <linux/pci.h>
 
 #include <asm/byteorder.h>
 #include <asm/irq.h>
@@ -469,6 +470,14 @@
 
 static void hwif_register (ide_hwif_t *hwif)
 {
+	sprintf(hwif->device.bus_id, "%04x", hwif->io_ports[IDE_DATA_OFFSET]);
+	sprintf(hwif->device.name, "ide");
+	hwif->device.driver_data = hwif;
+	if (hwif->pci_dev)
+		hwif->device.parent = &hwif->pci_dev->dev;
+	else
+		hwif->device.parent = NULL; /* Would like to do = &device_legacy */
+	device_register(&hwif->device);
 	if (((unsigned long)hwif->io_ports[IDE_DATA_OFFSET] | 7) ==
 	    ((unsigned long)hwif->io_ports[IDE_STATUS_OFFSET])) {
 		ide_request_region(hwif->io_ports[IDE_DATA_OFFSET], 8, hwif->name);
--- linux/drivers/ide/ide.c	Mon Feb 11 20:51:47 2002
+++ linux-dm/drivers/ide/ide.c	Mon Feb 11 23:35:09 2002
@@ -143,9 +143,7 @@
 #include <linux/genhd.h>
 #include <linux/blkpg.h>
 #include <linux/slab.h>
-#ifndef MODULE
 #include <linux/init.h>
-#endif /* MODULE */
 #include <linux/pci.h>
 #include <linux/delay.h>
 #include <linux/ide.h>
@@ -153,6 +151,8 @@
 #include <linux/completion.h>
 #include <linux/reboot.h>
 #include <linux/cdrom.h>
+#include <linux/device.h>
+#include <linux/kmod.h>
 
 #include <asm/byteorder.h>
 #include <asm/irq.h>
@@ -162,9 +162,6 @@
 
 #include "ide_modes.h"
 
-#ifdef CONFIG_KMOD
-#include <linux/kmod.h>
-#endif /* CONFIG_KMOD */
 
 /* default maximum number of failures */
 #define IDE_DEFAULT_MAX_FAILURES 	1
@@ -2027,6 +2024,7 @@
 	hwif = &ide_hwifs[index];
 	if (!hwif->present)
 		goto abort;
+	put_device(&hwif->device);
 	for (unit = 0; unit < MAX_DRIVES; ++unit) {
 		drive = &hwif->drives[unit];
 		if (!drive->present)
--- linux/include/linux/ide.h	Mon Feb 11 21:15:04 2002
+++ linux-dm/include/linux/ide.h	Thu Feb 14 22:47:23 2002
@@ -14,6 +14,7 @@
 #include <linux/blkdev.h>
 #include <linux/proc_fs.h>
 #include <linux/devfs_fs_kernel.h>
+#include <linux/device.h>
 #include <asm/hdreg.h>
 
 /*
@@ -424,12 +425,12 @@
 	unsigned long	capacity;	/* total number of sectors */
 	unsigned long long capacity48;	/* total number of sectors */
 	unsigned int	drive_data;	/* for use by tuneproc/selectproc as needed */
-	void		  *hwif;	/* actually (ide_hwif_t *) */
+	struct hwif_s   *hwif;	/* actually (ide_hwif_t *) */
 	wait_queue_head_t wqueue;	/* used to wait for drive in open() */
 	struct hd_driveid *id;		/* drive model identification info */
 	struct hd_struct  *part;	/* drive partition table */
 	char		name[4];	/* drive name, such as "hda" */
-	void 		*driver;	/* (ide_driver_t *) */
+	struct ide_driver_s *driver;	/* (ide_driver_t *) */
 	void		*driver_data;	/* extra driver data */
 	devfs_handle_t	de;		/* directory for device */
 	struct proc_dir_entry *proc;	/* /proc/ide/ directory entry */
@@ -448,6 +449,7 @@
 	byte		acoustic;	/* acoustic management */
 	unsigned int	failures;	/* current failure count */
 	unsigned int	max_failures;	/* maximum allowed failure count */
+	struct device	device;
 } ide_drive_t;
 
 /*
@@ -529,7 +531,7 @@
 
 typedef struct hwif_s {
 	struct hwif_s	*next;		/* for linked-list in ide_hwgroup_t */
-	void		*hwgroup;	/* actually (ide_hwgroup_t *) */
+	struct hwgroup_s *hwgroup;	/* actually (ide_hwgroup_t *) */
 	ide_ioreg_t	io_ports[IDE_NR_PORTS];	/* task file registers */
 	hw_regs_t	hw;		/* Hardware info */
 	ide_drive_t	drives[MAX_DRIVES];	/* drive info */
@@ -580,6 +582,7 @@
 	void		*hwif_data;	/* extra hwif data */
 	ide_busproc_t	*busproc;	/* driver soft-power interface */
 	byte		bus_state;	/* power state of the IDE bus */
+	struct device	device;
 } ide_hwif_t;
 
 /*
 

-- 
(about SSSCA) "I don't say this lightly.  However, I really think that the U.S.
no longer is classifiable as a democracy, but rather as a plutocracy." --hpa

  parent reply	other threads:[~2002-02-22 15:54 UTC|newest]

Thread overview: 217+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-02-13 22:38 linux-2.5.5-pre1 Linus Torvalds
2002-02-13 23:16 ` linux-2.5.5-pre1 Matthias Andree
2002-02-14  2:30   ` linux-2.5.5-pre1 Jeff Garzik
2002-02-14  1:17 ` linux-2.5.5-pre1 Daniel Phillips
2002-02-14  1:35   ` linux-2.5.5-pre1 -= M.J. Prinsen =-
2002-02-14  9:22     ` linux-2.5.5-pre1 Allan Sandfeld
2002-02-14  5:31   ` linux-2.5.5-pre1 Linus Torvalds
2002-02-14  8:04 ` linux-2.5.5-pre1 bert hubert
2002-02-14 16:23   ` linux-2.5.5-pre1 Linus Torvalds
2002-02-14 16:53     ` linux-2.5.5-pre1 Thomas Capricelli
2002-02-14 14:08 ` [PATCH} 2.5.5-pre1 VESA fb Martin Dalecki
2002-02-14 15:16   ` Alan Cox
2002-02-14 15:32     ` Martin Dalecki
2002-02-14 20:49 ` Compile error with linux-2.5.5-pre1 & advansys scsi Gerold J. Wucherpfennig
2002-02-19 11:37 ` [PATCH] 2.5.5-pre1 IDE cleanup Martin Dalecki
2002-02-19 11:46 ` [PATCH] 2.5.5-pre1 IDE cleanup 9 Martin Dalecki
2002-02-22 10:07   ` Gerd Knorr
2002-02-22 13:50     ` Martin Dalecki
2002-02-22 10:42   ` Gadi Oxman
2002-02-22 13:45     ` Martin Dalecki
2002-02-22 14:03       ` Vojtech Pavlik
2002-02-22 14:12         ` Jeff Garzik
2002-02-22 14:20           ` Martin Dalecki
2002-02-22 14:16         ` Martin Dalecki
2002-02-22 14:38           ` Vojtech Pavlik
2002-02-22 14:46             ` Jeff Garzik
2002-02-22 14:47             ` Martin Dalecki
2002-02-22 14:58           ` Jeff Garzik
2002-02-22 15:01           ` Jeff Garzik
2002-02-22 15:12             ` Martin Dalecki
2002-02-23  8:05           ` Keith Owens
2002-02-23 14:55             ` Martin Dalecki
2002-02-22 14:16         ` Arjan van de Ven
2002-02-22 14:40           ` Vojtech Pavlik
2002-02-21 20:31             ` Gérard Roudier
2002-02-22 19:56               ` Jeff Garzik
2002-02-21 21:14                 ` Gérard Roudier
2002-02-22 22:35                   ` Jeff Garzik
2002-02-22 21:34               ` Vojtech Pavlik
2002-02-22 21:45                 ` Greg KH
2002-02-22 21:56                 ` Jeff Garzik
2002-02-22 21:59                   ` Vojtech Pavlik
2002-02-22 23:06                 ` Martin Dalecki
2002-02-22 14:45             ` Jeff Garzik
2002-02-21 20:39               ` Gérard Roudier
2002-02-22 19:47                 ` Jeff Garzik
2002-02-21 21:01                   ` Gérard Roudier
2002-02-22 20:07                     ` Greg KH
2002-02-21 21:24                       ` Gérard Roudier
2002-02-22 20:41                         ` Greg KH
2002-02-22 21:30                           ` Erik Andersen
2002-02-22 21:42                             ` Greg KH
2002-02-22 21:54                               ` Erik Andersen
2002-02-22 21:22                         ` Erik Andersen
2002-02-21 23:17                           ` Gérard Roudier
2002-02-22 22:23                             ` Erik Andersen
2002-02-22 23:27                         ` Rik van Riel
2002-02-22 20:09                       ` Andre Hedrick
2002-02-22 20:29                         ` Greg KH
2002-02-22 20:34                           ` Andre Hedrick
2002-02-22 23:46                             ` Vojtech Pavlik
2002-02-22 20:32                         ` arjan
2002-02-22 23:44                         ` Vojtech Pavlik
2002-02-23 15:35                           ` [PATCH] 2.5.5 IDE cleanup 12 Martin Dalecki
2002-02-22 23:59                         ` [PATCH] 2.5.5-pre1 IDE cleanup 9 Jeff Garzik
2002-02-22 19:46                   ` Andre Hedrick
2002-02-22 20:06                     ` Jeff Garzik
2002-02-22 20:19                       ` Andre Hedrick
2002-02-22 21:47                         ` Vojtech Pavlik
2002-02-22 23:02                         ` Martin Dalecki
2002-02-22 23:46                         ` Jeff Garzik
2002-02-23 14:53                           ` Martin Dalecki
2002-02-22 21:40                     ` Vojtech Pavlik
2002-02-22 21:36                 ` Vojtech Pavlik
2002-02-20 10:49 ` [PATCH] 2.5.5-pre1 IDE cleanup 10 Martin Dalecki
2002-02-21  9:39   ` [PATCH] 2.5.5 IDE cleanup 11 Martin Dalecki
2002-02-21 10:53     ` Jeff Garzik
2002-02-21 11:06       ` Andre Hedrick
2002-02-21 17:27       ` Martin Dalecki
2002-02-21 17:52         ` Alan Cox
2002-02-21 17:57           ` Martin Dalecki
2002-02-21 18:14             ` Alan Cox
2002-02-21 18:44               ` Martin Dalecki
2002-02-22 15:51               ` Pavel Machek [this message]
2002-02-21 13:59     ` Alan Cox
2002-02-21 17:32       ` Martin Dalecki
2002-02-21 17:50         ` Alan Cox
2002-02-21 18:17           ` Martin Dalecki
2002-02-21 21:24       ` Andre Hedrick
2002-02-21 21:30         ` Andre Hedrick
2002-02-22  9:25           ` Flash Back -- kernel 2.1.111 Andre Hedrick
2002-02-22 10:08             ` Rik van Riel
2002-02-22 10:09               ` Jens Axboe
2002-02-22 17:06               ` Linus Torvalds
2002-02-22 18:58                 ` Andre Hedrick
2002-02-23 17:56                   ` Linus Torvalds
2002-02-24  4:42                     ` Andre Hedrick
2002-02-24  5:38                       ` Andre Hedrick
2002-02-24  6:01                         ` Linus Torvalds
2002-02-24  7:30                           ` Troy Benjegerdes
2002-02-24 12:18                             ` Martin Dalecki
2002-02-24 20:29                               ` Troy Benjegerdes
2002-02-24 20:32                                 ` Martin Dalecki
2002-02-24 21:15                                   ` Alan Cox
2002-02-24 21:11                                     ` Martin Dalecki
2002-02-24 21:31                                       ` Alan Cox
2002-02-24 21:19                                         ` Martin Dalecki
2002-02-24 21:25                                         ` nick
2002-02-24 21:32                                           ` Rik van Riel
2002-02-24 21:42                                             ` Vojtech Pavlik
2002-02-24 21:47                                               ` nick
2002-02-24 21:41                                         ` Vojtech Pavlik
2002-02-24 21:47                                           ` Rik van Riel
2002-02-24 21:31                                     ` Jeff Garzik
2002-02-24 21:40                                     ` Vojtech Pavlik
2002-02-24 21:46                                       ` Jeff Garzik
2002-02-24 21:50                                         ` Vojtech Pavlik
2002-02-24 22:18                                     ` David S. Miller
2002-02-24 20:54                                 ` Vojtech Pavlik
2002-02-24 21:19                                   ` Troy Benjegerdes
2002-02-24 21:37                                     ` Vojtech Pavlik
2002-02-24 22:03                                       ` Paul Mackerras
2002-02-24 22:08                                         ` Vojtech Pavlik
2002-02-24 22:23                                           ` Paul Mackerras
2002-02-24 22:37                                             ` Troy Benjegerdes
2002-02-24 23:08                                           ` Chris Wedgwood
2002-02-24 22:01                                   ` Paul Mackerras
2002-02-24 22:10                                     ` Vojtech Pavlik
2002-02-24 22:25                                       ` Paul Mackerras
2002-02-24 22:27                                         ` Andre Hedrick
2002-02-24 22:48                                           ` Vojtech Pavlik
2002-02-25  8:49                                           ` Martin Dalecki
2002-02-24 22:39                                         ` Vojtech Pavlik
2002-02-24 22:44                                           ` David S. Miller
2002-02-24 22:51                                             ` Vojtech Pavlik
2002-02-24 22:59                                               ` Troy Benjegerdes
2002-02-24 23:02                                                 ` Vojtech Pavlik
2002-02-24 23:26                                                   ` Paul Mackerras
2002-02-27 15:59                                                     ` Remco Post
2002-02-24 23:12                                           ` Chris Wedgwood
2002-02-24 23:10                                       ` Chris Wedgwood
2002-02-24 23:01                                     ` Alan Cox
2002-02-24 20:52                               ` Vojtech Pavlik
2002-02-24 23:04                             ` Chris Wedgwood
2002-02-24  9:27                           ` Andre Hedrick
2002-02-24 12:28                           ` [PATCH] IDE clean 12 3rd attempt Martin Dalecki
2002-02-24 16:14                             ` Greg KH
2002-03-08 15:46                           ` [PATCH] 2.5.6 IDE 18 Martin Dalecki
2002-03-08 16:42                             ` Richard Gooch
2002-03-09 12:56                               ` Martin Dalecki
2002-02-24 10:23                       ` Flash Back -- kernel 2.1.111 Vojtech Pavlik
2002-02-24 12:14                       ` Martin Dalecki
2002-03-11 12:40                 ` [PATCH] 2.5.6 IDE 19 Martin Dalecki
2002-03-11 15:19                   ` Alan Cox
2002-03-11 16:23                     ` Martin Dalecki
2002-03-11 16:58                       ` Alan Cox
2002-03-11 17:03                         ` Martin Dalecki
2002-03-11 17:10                           ` Charles Cazabon
2002-03-11 17:30                           ` Alan Cox
2002-03-11 18:23                             ` Martin Dalecki
2002-03-11 19:41                               ` Alan Cox
2002-03-11 18:00                           ` Andre Hedrick
2002-03-11 19:03                             ` [PATCH] 2.5.6 IDE 19, return of taskfile Gunther Mayer
2002-03-11 19:14                               ` Andre Hedrick
2002-03-11 19:22                                 ` Gunther Mayer
2002-03-11 19:23                               ` Martin Dalecki
2002-03-12  9:52                                 ` Zwane Mwaikambo
2002-03-11 19:47                               ` Alan Cox
2002-03-11 19:38                                 ` Alexander Viro
2002-03-11 19:42                                   ` Andre Hedrick
2002-03-11 19:55                                     ` Alexander Viro
2002-03-11 20:02                                   ` Alan Cox
2002-03-13 12:55                                     ` Pavel Machek
2002-03-15 17:49                                       ` john slee
2002-03-16  2:26                                         ` Erik Andersen
2002-03-11 19:39                                 ` Andre Hedrick
2002-03-12  1:48                           ` [PATCH] 2.5.6 IDE 19 Pavel Machek
2002-03-11 21:50                         ` Barry K. Nathan
2002-03-12  1:44                         ` Pavel Machek
2002-03-11 17:42                       ` Andre Hedrick
2002-03-11 18:08                         ` Alan Cox
2002-03-11 18:05                           ` Anton Altaparmakov
2002-03-11 19:39                             ` Alan Cox
2002-03-11 22:02                               ` Vojtech Pavlik
2002-03-11 22:01                             ` Vojtech Pavlik
2002-03-12  8:58                               ` Joachim Breuer
2002-03-11 22:06                             ` Anton Altaparmakov
2002-03-11 22:10                             ` Anton Altaparmakov
2002-03-11 18:06                           ` Wayne Whitney
2002-03-11 18:27                           ` Andre Hedrick
2002-03-11 18:51                             ` Martin Dalecki
2002-03-11 19:02                               ` Andre Hedrick
2002-03-11 19:12                                 ` Martin Dalecki
2002-03-11 19:24                                   ` Andre Hedrick
2002-03-11 19:30                                     ` Martin Dalecki
2002-03-11 19:35                                       ` Andre Hedrick
2002-03-11 19:51                                         ` Davide Libenzi
2002-03-11 19:51                                           ` Andre Hedrick
2002-03-11 21:19                                           ` Rik van Riel
2002-03-11 22:44                                             ` Davide Libenzi
2002-03-13 19:19                                               ` David Ford
2002-03-12  0:00                                             ` Jos Hulzink
2002-03-12  5:17                                             ` Andre Hedrick
2002-03-11 19:27                                   ` Russell King
2002-03-11 17:53                       ` Arjan van de Ven
2002-03-11 19:04                         ` Martin Dalecki
2002-03-11 21:02                         ` Rik van Riel
2002-03-11 22:44                           ` Alan Cox
2002-03-12  0:47                       ` Bill Davidsen
2002-03-12  0:28                     ` Pavel Machek
2002-03-13 14:14                 ` [PATCH] IDE 21 Martin Dalecki
2002-03-13 17:42                   ` Vojtech Pavlik
2002-02-22 10:12             ` Flash Back -- kernel 2.1.111 Pedro M. Rodrigues
2002-02-22 19:03               ` Andre Hedrick
2002-02-22 19:56                 ` Alan Cox
2002-02-22 19:38                   ` Andre Hedrick
2002-02-22 10:37             ` David S. Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20020222155114.GA313@elf.ucw.cz \
    --to=pavel@ucw.cz \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=dalecki@evision-ventures.com \
    --cc=jgarzik@mandrakesoft.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@transmeta.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox