mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
brcmfmac: Transform compatible string for FW loading
The driver relies on the compatible string from DT to determine which FW configuration file it should load. The DTS spec allows for '/' as part of the compatible string. We change this to '-' so that we will still be able to load the config file, even when the compatible has a '/'. This fixes explicitly the firmware loading for "solidrun,cubox-i/q". Signed-off-by: Matthias Brugger <mbrugger@suse.com> Reviewed-by: Hans deGoede <hdegoede@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Link: https://lore.kernel.org/r/20200701112201.6449-1-matthias.bgg@kernel.org
This commit is contained in:
parent
2fa8085fc6
commit
29e354ebee
@ -17,7 +17,6 @@ void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
|
||||
{
|
||||
struct brcmfmac_sdio_pd *sdio = &settings->bus.sdio;
|
||||
struct device_node *root, *np = dev->of_node;
|
||||
struct property *prop;
|
||||
int irq;
|
||||
u32 irqf;
|
||||
u32 val;
|
||||
@ -25,8 +24,22 @@ void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
|
||||
/* Set board-type to the first string of the machine compatible prop */
|
||||
root = of_find_node_by_path("/");
|
||||
if (root) {
|
||||
prop = of_find_property(root, "compatible", NULL);
|
||||
settings->board_type = of_prop_next_string(prop, NULL);
|
||||
int i, len;
|
||||
char *board_type;
|
||||
const char *tmp;
|
||||
|
||||
of_property_read_string_index(root, "compatible", 0, &tmp);
|
||||
|
||||
/* get rid of '/' in the compatible string to be able to find the FW */
|
||||
len = strlen(tmp) + 1;
|
||||
board_type = devm_kzalloc(dev, len, GFP_KERNEL);
|
||||
strscpy(board_type, tmp, len);
|
||||
for (i = 0; i < board_type[i]; i++) {
|
||||
if (board_type[i] == '/')
|
||||
board_type[i] = '-';
|
||||
}
|
||||
settings->board_type = board_type;
|
||||
|
||||
of_node_put(root);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user