All of lore.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.