linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 2/3] g_NCR5380: fix broken MMIO compilation
@ 2009-12-20 19:41 Ondrej Zary
  2009-12-20 20:15 ` Andy Walls
  0 siblings, 1 reply; 3+ messages in thread
From: Ondrej Zary @ 2009-12-20 19:41 UTC (permalink / raw)
  To: linux-scsi; +Cc: linux-kernel

The ifdefs are broken so the MMIO code is never compiled and so it's broken
too. Fix them all.
Untested as I don't have the hardware.

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>

--- linux-source-2.6.32-orig/drivers/scsi/g_NCR5380.h	2009-12-03 04:51:21.000000000 +0100
+++ linux-source-2.6.32/drivers/scsi/g_NCR5380.h	2009-12-20 20:10:02.000000000 +0100
@@ -63,7 +63,7 @@ static const char* generic_NCR5380_info(
 #define __STRVAL(x) #x
 #define STRVAL(x) __STRVAL(x)
 
-#ifndef CONFIG_SCSI_G_NCR5380_MEM
+#ifndef SCSI_G_NCR5380_MEM
 
 #define NCR5380_map_config port
 #define NCR5380_map_type int
@@ -91,7 +91,7 @@ static const char* generic_NCR5380_info(
     NCR5380_map_name = (NCR5380_map_type)((instance)->NCR5380_instance_name)
 
 #else 
-/* therefore CONFIG_SCSI_G_NCR5380_MEM */
+/* therefore SCSI_G_NCR5380_MEM */
 
 #define NCR5380_map_config memory
 #define NCR5380_map_type unsigned long
@@ -114,7 +114,7 @@ static const char* generic_NCR5380_info(
     register void __iomem *iomem
 
 #define NCR5380_setup(instance) \
-    iomem = (((struct NCR5380_hostdata *)(instance)->hostdata).iomem)
+    iomem = (((struct NCR5380_hostdata *)(instance)->hostdata)->iomem)
 
 #endif
 
--- linux-source-2.6.32-orig/drivers/scsi/g_NCR5380.c	2009-12-20 20:11:05.000000000 +0100
+++ linux-source-2.6.32/drivers/scsi/g_NCR5380.c	2009-12-20 20:14:56.000000000 +0100
@@ -285,9 +285,12 @@ static int __init do_DTC3181E_setup(char
 int __init generic_NCR5380_detect(struct scsi_host_template * tpnt)
 {
 	static int current_override = 0;
-	int count, i;
+	int count;
 	unsigned int *ports;
+#ifndef SCSI_G_NCR5380_MEM
+	int i;
 	unsigned long region_size = 16;
+#endif
 	static unsigned int __initdata ncr_53c400a_ports[] = {
 		0x280, 0x290, 0x300, 0x310, 0x330, 0x340, 0x348, 0x350, 0
 	};
@@ -296,7 +299,7 @@ int __init generic_NCR5380_detect(struct
 	};
 	int flags = 0;
 	struct Scsi_Host *instance;
-#ifdef CONFIG_SCSI_G_NCR5380_MEM
+#ifdef SCSI_G_NCR5380_MEM
 	unsigned long base;
 	void __iomem *iomem;
 #endif
@@ -315,7 +318,7 @@ int __init generic_NCR5380_detect(struct
 		overrides[0].board = BOARD_NCR53C400A;
 	else if (dtc_3181e != NCR_NOT_SET)
 		overrides[0].board = BOARD_DTC3181E;
-
+#ifndef SCSI_G_NCR5380_MEM
 	if (!current_override && isapnp_present()) {
 		struct pnp_dev *dev = NULL;
 		count = 0;
@@ -347,7 +350,7 @@ int __init generic_NCR5380_detect(struct
 			count++;
 		}
 	}
-
+#endif
 	tpnt->proc_name = "g_NCR5380";
 
 	for (count = 0; current_override < NO_OVERRIDES; ++current_override) {
@@ -372,7 +375,7 @@ int __init generic_NCR5380_detect(struct
 			break;
 		}
 
-#ifndef CONFIG_SCSI_G_NCR5380_MEM
+#ifndef SCSI_G_NCR5380_MEM
 		if (ports) {
 			/* wakeup sequence for the NCR53C400A and DTC3181E */
 
@@ -434,7 +437,7 @@ int __init generic_NCR5380_detect(struct
 #endif
 		instance = scsi_register(tpnt, sizeof(struct NCR5380_hostdata));
 		if (instance == NULL) {
-#ifndef CONFIG_SCSI_G_NCR5380_MEM
+#ifndef SCSI_G_NCR5380_MEM
 			release_region(overrides[current_override].NCR5380_map_name, region_size);
 #else
 			iounmap(iomem);
@@ -444,10 +447,10 @@ int __init generic_NCR5380_detect(struct
 		}
 
 		instance->NCR5380_instance_name = overrides[current_override].NCR5380_map_name;
-#ifndef CONFIG_SCSI_G_NCR5380_MEM
+#ifndef SCSI_G_NCR5380_MEM
 		instance->n_io_port = region_size;
 #else
-		((struct NCR5380_hostdata *)instance->hostdata).iomem = iomem;
+		((struct NCR5380_hostdata *)instance->hostdata)->iomem = iomem;
 #endif
 
 		NCR5380_init(instance, flags);
@@ -515,10 +518,10 @@ int generic_NCR5380_release_resources(st
 		free_irq(instance->irq, instance);
 	NCR5380_exit(instance);
 
-#ifndef CONFIG_SCSI_G_NCR5380_MEM
+#ifndef SCSI_G_NCR5380_MEM
 	release_region(instance->NCR5380_instance_name, instance->n_io_port);
 #else
-	iounmap(((struct NCR5380_hostdata *)instance->hostdata).iomem);
+	iounmap(((struct NCR5380_hostdata *)instance->hostdata)->iomem);
 	release_mem_region(instance->NCR5380_instance_name, NCR5380_region_size);
 #endif
 
@@ -588,14 +591,14 @@ static inline int NCR5380_pread(struct S
 		}
 		while (NCR5380_read(C400_CONTROL_STATUS_REG) & CSR_HOST_BUF_NOT_RDY);
 
-#ifndef CONFIG_SCSI_G_NCR5380_MEM
+#ifndef SCSI_G_NCR5380_MEM
 		{
 			int i;
 			for (i = 0; i < 128; i++)
 				dst[start + i] = NCR5380_read(C400_HOST_BUFFER);
 		}
 #else
-		/* implies CONFIG_SCSI_G_NCR5380_MEM */
+		/* implies SCSI_G_NCR5380_MEM */
 		memcpy_fromio(dst + start, iomem + NCR53C400_host_buffer, 128);
 #endif
 		start += 128;
@@ -608,14 +611,14 @@ static inline int NCR5380_pread(struct S
 			// FIXME - no timeout
 		}
 
-#ifndef CONFIG_SCSI_G_NCR5380_MEM
+#ifndef SCSI_G_NCR5380_MEM
 		{
 			int i;	
 			for (i = 0; i < 128; i++)
 				dst[start + i] = NCR5380_read(C400_HOST_BUFFER);
 		}
 #else
-		/* implies CONFIG_SCSI_G_NCR5380_MEM */
+		/* implies SCSI_G_NCR5380_MEM */
 		memcpy_fromio(dst + start, iomem + NCR53C400_host_buffer, 128);
 #endif
 		start += 128;
@@ -674,13 +677,13 @@ static inline int NCR5380_pwrite(struct 
 		}
 		while (NCR5380_read(C400_CONTROL_STATUS_REG) & CSR_HOST_BUF_NOT_RDY)
 			; // FIXME - timeout
-#ifndef CONFIG_SCSI_G_NCR5380_MEM
+#ifndef SCSI_G_NCR5380_MEM
 		{
 			for (i = 0; i < 128; i++)
 				NCR5380_write(C400_HOST_BUFFER, src[start + i]);
 		}
 #else
-		/* implies CONFIG_SCSI_G_NCR5380_MEM */
+		/* implies SCSI_G_NCR5380_MEM */
 		memcpy_toio(iomem + NCR53C400_host_buffer, src + start, 128);
 #endif
 		start += 128;
@@ -690,13 +693,13 @@ static inline int NCR5380_pwrite(struct 
 		while (NCR5380_read(C400_CONTROL_STATUS_REG) & CSR_HOST_BUF_NOT_RDY)
 			; // FIXME - no timeout
 
-#ifndef CONFIG_SCSI_G_NCR5380_MEM
+#ifndef SCSI_G_NCR5380_MEM
 		{
 			for (i = 0; i < 128; i++)
 				NCR5380_write(C400_HOST_BUFFER, src[start + i]);
 		}
 #else
-		/* implies CONFIG_SCSI_G_NCR5380_MEM */
+		/* implies SCSI_G_NCR5380_MEM */
 		memcpy_toio(iomem + NCR53C400_host_buffer, src + start, 128);
 #endif
 		start += 128;
@@ -936,7 +939,7 @@ module_param(ncr_53c400a, int, 0);
 module_param(dtc_3181e, int, 0);
 MODULE_LICENSE("GPL");
 
-
+#ifndef SCSI_G_NCR5380_MEM
 static struct isapnp_device_id id_table[] __devinitdata = {
 	{
 	 ISAPNP_ANY_ID, ISAPNP_ANY_ID,
@@ -946,7 +949,7 @@ static struct isapnp_device_id id_table[
 };
 
 MODULE_DEVICE_TABLE(isapnp, id_table);
-
+#endif
 
 __setup("ncr5380=", do_NCR5380_setup);
 __setup("ncr53c400=", do_NCR53C400_setup);


-- 
Ondrej Zary

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 2/3] g_NCR5380: fix broken MMIO compilation
  2009-12-20 19:41 [PATCH 2/3] g_NCR5380: fix broken MMIO compilation Ondrej Zary
@ 2009-12-20 20:15 ` Andy Walls
  2009-12-20 21:06   ` Ondrej Zary
  0 siblings, 1 reply; 3+ messages in thread
From: Andy Walls @ 2009-12-20 20:15 UTC (permalink / raw)
  To: Ondrej Zary; +Cc: linux-scsi, linux-kernel

On Sun, 2009-12-20 at 20:41 +0100, Ondrej Zary wrote:
> The ifdefs are broken so the MMIO code is never compiled and so it's broken
> too. Fix them all.
> Untested as I don't have the hardware.

I still have a DTC-xxxx card in use (under Windows95) and a SUMO SCSI AT
(usable with g_NCR5380 with a minor hack to toggle a flip flop that
gates interrupts to the ISA bus).  :)

I think both cards are wired to use I/O space and not memory space, so
they are of no help for testing MMIO. :(  

But, ah memories....

Regards,
Andy


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 2/3] g_NCR5380: fix broken MMIO compilation
  2009-12-20 20:15 ` Andy Walls
@ 2009-12-20 21:06   ` Ondrej Zary
  0 siblings, 0 replies; 3+ messages in thread
From: Ondrej Zary @ 2009-12-20 21:06 UTC (permalink / raw)
  To: Andy Walls; +Cc: linux-scsi, linux-kernel

On Sunday 20 December 2009 21:15:44 Andy Walls wrote:
> On Sun, 2009-12-20 at 20:41 +0100, Ondrej Zary wrote:
> > The ifdefs are broken so the MMIO code is never compiled and so it's
> > broken too. Fix them all.
> > Untested as I don't have the hardware.
>
> I still have a DTC-xxxx card in use (under Windows95) and a SUMO SCSI AT
> (usable with g_NCR5380 with a minor hack to toggle a flip flop that
> gates interrupts to the ISA bus).  :)
>
> I think both cards are wired to use I/O space and not memory space, so
> they are of no help for testing MMIO. :(

I have some cards but probably none of them is memory mapped:
DTCT-436P (PnP) - this seems to work (but don't have proper SCSI cable to test 
it really)
HP C2505 (53C400A) - does not work (wrote about this card to LKML in 2004)
Canon FG2-5202 (53C400) - does not work

> But, ah memories....
>
> Regards,
> Andy
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Ondrej Zary

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-12-20 21:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-20 19:41 [PATCH 2/3] g_NCR5380: fix broken MMIO compilation Ondrej Zary
2009-12-20 20:15 ` Andy Walls
2009-12-20 21:06   ` Ondrej Zary

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).