aha1542: Simplify aha1542_biosparam
Simplify aha1542_biosparam, use sector_div, remove unused BIOS_TRANSLATION_1632. Signed-off-by: Ondrej Zary <linux@rainbow-software.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <JBottomley@Odin.com>
This commit is contained in:
parent
f71429ab53
commit
17787a09fd
|
@ -78,7 +78,6 @@ static int dma_speed[MAXBOARDS] = { -1, -1, -1, -1 };
|
||||||
module_param_array(dma_speed, int, NULL, 0);
|
module_param_array(dma_speed, int, NULL, 0);
|
||||||
MODULE_PARM_DESC(dma_speed, "DMA speed [MB/s] (5,6,7,8,10, default=-1 [by jumper])");
|
MODULE_PARM_DESC(dma_speed, "DMA speed [MB/s] (5,6,7,8,10, default=-1 [by jumper])");
|
||||||
|
|
||||||
#define BIOS_TRANSLATION_1632 0 /* Used by some old 1542A boards */
|
|
||||||
#define BIOS_TRANSLATION_6432 1 /* Default case these days */
|
#define BIOS_TRANSLATION_6432 1 /* Default case these days */
|
||||||
#define BIOS_TRANSLATION_25563 2 /* Big disk case */
|
#define BIOS_TRANSLATION_25563 2 /* Big disk case */
|
||||||
|
|
||||||
|
@ -1048,24 +1047,20 @@ static int aha1542_host_reset(Scsi_Cmnd *SCpnt)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int aha1542_biosparam(struct scsi_device *sdev,
|
static int aha1542_biosparam(struct scsi_device *sdev,
|
||||||
struct block_device *bdev, sector_t capacity, int *ip)
|
struct block_device *bdev, sector_t capacity, int geom[])
|
||||||
{
|
{
|
||||||
struct aha1542_hostdata *aha1542 = shost_priv(sdev->host);
|
struct aha1542_hostdata *aha1542 = shost_priv(sdev->host);
|
||||||
int translation_algorithm;
|
|
||||||
int size = capacity;
|
|
||||||
|
|
||||||
translation_algorithm = aha1542->bios_translation;
|
if (capacity >= 0x200000 &&
|
||||||
|
aha1542->bios_translation == BIOS_TRANSLATION_25563) {
|
||||||
if ((size >> 11) > 1024 && translation_algorithm == BIOS_TRANSLATION_25563) {
|
|
||||||
/* Please verify that this is the same as what DOS returns */
|
/* Please verify that this is the same as what DOS returns */
|
||||||
ip[0] = 255;
|
geom[0] = 255; /* heads */
|
||||||
ip[1] = 63;
|
geom[1] = 63; /* sectors */
|
||||||
ip[2] = size / 255 / 63;
|
|
||||||
} else {
|
} else {
|
||||||
ip[0] = 64;
|
geom[0] = 64; /* heads */
|
||||||
ip[1] = 32;
|
geom[1] = 32; /* sectors */
|
||||||
ip[2] = size >> 11;
|
|
||||||
}
|
}
|
||||||
|
geom[2] = sector_div(capacity, geom[0] * geom[1]); /* cylinders */
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue