Re: Eliminating unused WDC_CAPABILITY_* flags

2011-05-08 Thread Kenneth R Westerback
On Sat, May 07, 2011 at 09:01:19PM -0700, Matthew Dempsky wrote:
 I have plans to revamp dev/ic/wdc.c, but in the mean time, I want to
 make some small cleanups so the final diff is easier to follow.
 
 First cleanup: The HWLOCK, ATA_NOSTREAM, and ATAPI_NOSTREAM
 'capabilities' don't appear to be set by any wdc-based adapters.
 They've been here since r1.1, so I think it's just cruft that can be
 safely removed... right?
 
 (Conversely, the SATA and SINGLE_DRIVE capabilities are set by some
 adapters, but don't actually do anything.  I'm tempted to kill them
 too out of principle, but I don't think that's necessary just yet.)
 
 ok?

ATA_NOSTREAM and ATAPI_NOSTREAM relate to NetBSD's bus_space stream
api which we discarded in favour of the 'raw' api. Both are apparently
intended to be passed in as kernel options rather than set by adapter
code, and are mentioned in NetBSD's isa/wdc_isa.c and a mmeye arch (?)
md driver.

HWLOCK is mentioned in a 1998 NetBSD commit but I can find no
current trace of it. It does seem to be cruft.

ok krw@.

 Ken

 
 Index: dev/ic/wdc.c
 ===
 RCS file: /home/mdempsky/anoncvs/cvs/src/sys/dev/ic/wdc.c,v
 retrieving revision 1.113
 diff -u -p -r1.113 wdc.c
 --- dev/ic/wdc.c  18 Apr 2011 04:16:13 -  1.113
 +++ dev/ic/wdc.c  7 May 2011 19:57:00 -
 @@ -861,9 +861,6 @@ wdcstart(struct channel_softc *chp)
   if ((chp-ch_flags  WDCF_IRQ_WAIT) != 0)
   panic(wdcstart: channel waiting for irq);
  #endif /* DIAGNOSTIC */
 - if (chp-wdc-cap  WDC_CAPABILITY_HWLOCK)
 - if (!(chp-wdc-claim_hw)(chp, 0))
 - return;
  
   WDCDEBUG_PRINT((wdcstart: xfer %p channel %d drive %d\n, xfer,
   chp-channel, xfer-drive), DEBUG_XFERS);
 @@ -1919,7 +1916,6 @@ wdc_get_xfer(int flags)
  void
  wdc_free_xfer(struct channel_softc *chp, struct wdc_xfer *xfer)
  {
 - struct wdc_softc *wdc = chp-wdc;
   int s;
  
   if (xfer-c_flags  C_PRIVATEXFER) {
 @@ -1928,8 +1924,6 @@ wdc_free_xfer(struct channel_softc *chp,
   return;
   }
  
 - if (wdc-cap  WDC_CAPABILITY_HWLOCK)
 - (*wdc-free_hw)(chp);
   s = splbio();
   chp-ch_flags = ~WDCF_ACTIVE;
   TAILQ_REMOVE(chp-ch_queue-sc_xfer, xfer, c_xferchain);
 Index: dev/ic/wdcvar.h
 ===
 RCS file: /home/mdempsky/anoncvs/cvs/src/sys/dev/ic/wdcvar.h,v
 retrieving revision 1.49
 diff -u -p -r1.49 wdcvar.h
 --- dev/ic/wdcvar.h   18 Apr 2011 04:16:14 -  1.49
 +++ dev/ic/wdcvar.h   8 May 2011 03:10:11 -
 @@ -157,9 +157,6 @@ struct wdc_softc { /* Per controller sta
  #define WDC_CAPABILITY_MODE   0x0004 /* controller knows its PIO/DMA modes */
  #define WDC_CAPABILITY_DMA0x0008 /* DMA */
  #define WDC_CAPABILITY_UDMA   0x0010 /* Ultra-DMA/33 */
 -#define WDC_CAPABILITY_HWLOCK 0x0020 /* Needs to lock HW */
 -#define WDC_CAPABILITY_ATA_NOSTREAM 0x0040 /* Don't use stream funcs on ATA 
 */
 -#define WDC_CAPABILITY_ATAPI_NOSTREAM 0x0080 /* Don't use stream f on ATAPI 
 */
  #define WDC_CAPABILITY_NO_EXTRA_RESETS 0x0100 /* only reset once */
  #define WDC_CAPABILITY_PREATA 0x0200 /* ctrl can be a pre-ata one */
  #define WDC_CAPABILITY_IRQACK 0x0400 /* callback to ack interrupt */
 @@ -195,10 +192,6 @@ struct wdc_softc { /* Per controller sta
  #define WDC_DMAST_NOIRQ  0x01 /* missing IRQ */
  #define WDC_DMAST_ERR0x02 /* DMA error */
  #define WDC_DMAST_UNDER  0x04 /* DMA underrun */
 -
 - /* if WDC_CAPABILITY_HWLOCK set in 'cap' */
 - int (*claim_hw)(void *, int);
 - void(*free_hw)(void *);
  
   /* if WDC_CAPABILITY_MODE set in 'cap' */
   void(*set_modes)(struct channel_softc *);



Eliminating unused WDC_CAPABILITY_* flags

2011-05-07 Thread Matthew Dempsky
I have plans to revamp dev/ic/wdc.c, but in the mean time, I want to
make some small cleanups so the final diff is easier to follow.

First cleanup: The HWLOCK, ATA_NOSTREAM, and ATAPI_NOSTREAM
'capabilities' don't appear to be set by any wdc-based adapters.
They've been here since r1.1, so I think it's just cruft that can be
safely removed... right?

(Conversely, the SATA and SINGLE_DRIVE capabilities are set by some
adapters, but don't actually do anything.  I'm tempted to kill them
too out of principle, but I don't think that's necessary just yet.)

ok?

Index: dev/ic/wdc.c
===
RCS file: /home/mdempsky/anoncvs/cvs/src/sys/dev/ic/wdc.c,v
retrieving revision 1.113
diff -u -p -r1.113 wdc.c
--- dev/ic/wdc.c18 Apr 2011 04:16:13 -  1.113
+++ dev/ic/wdc.c7 May 2011 19:57:00 -
@@ -861,9 +861,6 @@ wdcstart(struct channel_softc *chp)
if ((chp-ch_flags  WDCF_IRQ_WAIT) != 0)
panic(wdcstart: channel waiting for irq);
 #endif /* DIAGNOSTIC */
-   if (chp-wdc-cap  WDC_CAPABILITY_HWLOCK)
-   if (!(chp-wdc-claim_hw)(chp, 0))
-   return;
 
WDCDEBUG_PRINT((wdcstart: xfer %p channel %d drive %d\n, xfer,
chp-channel, xfer-drive), DEBUG_XFERS);
@@ -1919,7 +1916,6 @@ wdc_get_xfer(int flags)
 void
 wdc_free_xfer(struct channel_softc *chp, struct wdc_xfer *xfer)
 {
-   struct wdc_softc *wdc = chp-wdc;
int s;
 
if (xfer-c_flags  C_PRIVATEXFER) {
@@ -1928,8 +1924,6 @@ wdc_free_xfer(struct channel_softc *chp,
return;
}
 
-   if (wdc-cap  WDC_CAPABILITY_HWLOCK)
-   (*wdc-free_hw)(chp);
s = splbio();
chp-ch_flags = ~WDCF_ACTIVE;
TAILQ_REMOVE(chp-ch_queue-sc_xfer, xfer, c_xferchain);
Index: dev/ic/wdcvar.h
===
RCS file: /home/mdempsky/anoncvs/cvs/src/sys/dev/ic/wdcvar.h,v
retrieving revision 1.49
diff -u -p -r1.49 wdcvar.h
--- dev/ic/wdcvar.h 18 Apr 2011 04:16:14 -  1.49
+++ dev/ic/wdcvar.h 8 May 2011 03:10:11 -
@@ -157,9 +157,6 @@ struct wdc_softc { /* Per controller sta
 #define WDC_CAPABILITY_MODE   0x0004   /* controller knows its PIO/DMA modes */
 #define WDC_CAPABILITY_DMA0x0008   /* DMA */
 #define WDC_CAPABILITY_UDMA   0x0010   /* Ultra-DMA/33 */
-#define WDC_CAPABILITY_HWLOCK 0x0020   /* Needs to lock HW */
-#define WDC_CAPABILITY_ATA_NOSTREAM 0x0040 /* Don't use stream funcs on ATA */
-#define WDC_CAPABILITY_ATAPI_NOSTREAM 0x0080 /* Don't use stream f on ATAPI */
 #define WDC_CAPABILITY_NO_EXTRA_RESETS 0x0100 /* only reset once */
 #define WDC_CAPABILITY_PREATA 0x0200   /* ctrl can be a pre-ata one */
 #define WDC_CAPABILITY_IRQACK 0x0400   /* callback to ack interrupt */
@@ -195,10 +192,6 @@ struct wdc_softc { /* Per controller sta
 #define WDC_DMAST_NOIRQ0x01 /* missing IRQ */
 #define WDC_DMAST_ERR  0x02 /* DMA error */
 #define WDC_DMAST_UNDER0x04 /* DMA underrun */
-
-   /* if WDC_CAPABILITY_HWLOCK set in 'cap' */
-   int (*claim_hw)(void *, int);
-   void(*free_hw)(void *);
 
/* if WDC_CAPABILITY_MODE set in 'cap' */
void(*set_modes)(struct channel_softc *);