From: Philip J Kelleher <[email protected]> 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 <[email protected]> ------------------------------------------------------------------------------- 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 [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

