sfc: Clean up struct falcon_board and struct falcon_board_data

Put all static information in struct falcon_board_type and replace it
with a pointer in struct falcon_board.  Simplify probing aocordingly.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
diff --git a/drivers/net/sfc/falcon.c b/drivers/net/sfc/falcon.c
index 2c0be6c..2f1f1fc 100644
--- a/drivers/net/sfc/falcon.c
+++ b/drivers/net/sfc/falcon.c
@@ -2864,7 +2864,7 @@
 	if (rc)
 		goto fail5;
 
-	rc = falcon_board(efx)->init(efx);
+	rc = falcon_board(efx)->type->init(efx);
 	if (rc) {
 		EFX_ERR(efx, "failed to initialise board\n");
 		goto fail6;
@@ -3067,7 +3067,7 @@
 	struct falcon_board *board = falcon_board(efx);
 	int rc;
 
-	falcon_board(efx)->fini(efx);
+	board->type->fini(efx);
 
 	/* Remove I2C adapter and clear it in preparation for a retry */
 	rc = i2c_del_adapter(&board->i2c_adap);