[SCSI] advansys: Sort out irq number mess
authorMatthew Wilcox <matthew@wil.cx>
Wed, 3 Oct 2007 01:55:29 +0000 (21:55 -0400)
committerJames Bottomley <jejb@mulgrave.localdomain>
Fri, 12 Oct 2007 18:53:18 +0000 (14:53 -0400)
commitd361db483241489fc4b37cd168c2ce7940a7845b
tree76550405f5de4a52c1a91c70e751a8ab59e9fd2c
parent9a256fa50e9a9d6bd03e0d6e8eddce9dca4f15f2
[SCSI] advansys: Sort out irq number mess

The interrupt number was being stored in 4-5 different places, each with
its own type, rules and usage.  Fix this by keeping an unsigned int in
the struct asc_board, and filling it in from the bus probe functions
(since it's different for each of the four bus types).  In order to do
this, we have to allocate the Scsi_Host in the bus probe functions too.
Then we can return an error from advansys_board_found, which requires
a little rearranging of code (and removing of the err_code variable).
Move the Wide Board flag setting into the PCI bus probe function.

Split the AscGetChipIRQ function into three functions (one for each bus
type that needs it) and add some commentary to explain what's going on.
Also get rid of the AscSetChipIRQ function as we only ever set the
interrupt number to the same value it already had.

Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/advansys.c