[PATCH 6/8] rsxx: Allow block size to be determined by configuration.

From: Philip J. Kelleher
Date: Fri May 31 2013 - 20:32:58 EST


From: Philip J Kelleher <pjk1939@xxxxxxxxxxxxxxxxxx>

The block size was determined by whether or not our HW could handle
512 accesses or not. So our configuration utility was not able to
change the block size because all of our newer HW can handle 512
accesses.

This patch allows block sizes to be determined by what is defined
in our config space on the card.

Signed-off-by: Philip J Kelleher <pjk1939@xxxxxxxxxxxxxxxxxx>
-------------------------------------------------------------------------------


diff -uprN -X linux-block/Documentation/dontdiff linux-block-vanilla/drivers/block/rsxx/dev.c linux-block/drivers/block/rsxx/dev.c
--- linux-block-vanilla/drivers/block/rsxx/dev.c 2013-05-31 16:33:27.674030890 -0500
+++ linux-block/drivers/block/rsxx/dev.c 2013-05-31 17:22:48.214019619 -0500
@@ -227,24 +227,6 @@ static bool rsxx_discard_supported(struc
return (pci_rev >= RSXX_DISCARD_SUPPORT);
}

-static unsigned short rsxx_get_logical_block_size(
- struct rsxx_cardinfo *card)
-{
- u32 capabilities = 0;
- int st;
-
- st = rsxx_get_card_capabilities(card, &capabilities);
- if (st)
- dev_warn(CARD_TO_DEV(card),
- "Failed reading card capabilities register\n");
-
- /* Earlier firmware did not have support for 512 byte accesses */
- if (capabilities & CARD_CAP_SUBPAGE_WRITES)
- return 512;
- else
- return RSXX_HW_BLK_SIZE;
-}
-
int rsxx_attach_dev(struct rsxx_cardinfo *card)
{
mutex_lock(&card->dev_lock);
@@ -307,7 +289,7 @@ int rsxx_setup_dev(struct rsxx_cardinfo
return -ENOMEM;
}

- blk_size = rsxx_get_logical_block_size(card);
+ blk_size = card->config.data.block_size;

blk_queue_make_request(card->queue, rsxx_make_request);
blk_queue_bounce_limit(card->queue, BLK_BOUNCE_ANY);

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/