[RFC] ssb: relax SSB_EMBEDDED dependencies

Message ID 20231007182443.32300-1-rdunlap@infradead.org
State New
Headers
Series [RFC] ssb: relax SSB_EMBEDDED dependencies |

Commit Message

Randy Dunlap Oct. 7, 2023, 6:24 p.m. UTC
  This is a kconfig warning in a randconfig when CONFIG_PCI is not set:

WARNING: unmet direct dependencies detected for SSB_EMBEDDED
  Depends on [n]: SSB [=y] && SSB_DRIVER_MIPS [=y] && SSB_PCICORE_HOSTMODE [=n]
  Selected by [y]:
  - BCM47XX_SSB [=y] && BCM47XX [=y]

This is caused by arch/mips/bcm47xx/Kconfig's symbol BCM47XX_SSB
selecting SSB_EMBEDDED when CONFIG_PCI is not set.

This warning can be prevented by having SSB_EMBEDDED not depend on
SSB_PCICORE_HOSTMODE, although some parts of SSB use PCI.

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Cc: Michael Buesch <m@bues.ch>
Cc: linux-wireless@vger.kernel.org
---
Comments, thoughts?

I also tried changing arch/mips/bcm47xx/Kconfig's BCM47XX_SSB to
	select SSB_EMBEDDED if PCI
but that results in build errors.

 drivers/ssb/Kconfig |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Michael Büsch Oct. 8, 2023, 7:35 a.m. UTC | #1
Hi Randy,

thanks for the patch.

On Sat,  7 Oct 2023 11:24:43 -0700
Randy Dunlap <rdunlap@infradead.org> wrote:

> This is a kconfig warning in a randconfig when CONFIG_PCI is not set:
> 
> WARNING: unmet direct dependencies detected for SSB_EMBEDDED
>   Depends on [n]: SSB [=y] && SSB_DRIVER_MIPS [=y] &&
> SSB_PCICORE_HOSTMODE [=n] Selected by [y]:
>   - BCM47XX_SSB [=y] && BCM47XX [=y]
> 
> This is caused by arch/mips/bcm47xx/Kconfig's symbol BCM47XX_SSB
> selecting SSB_EMBEDDED when CONFIG_PCI is not set.
> 
> This warning can be prevented by having SSB_EMBEDDED not depend on
> SSB_PCICORE_HOSTMODE, although some parts of SSB use PCI.

> diff -- a/drivers/ssb/Kconfig b/drivers/ssb/Kconfig
> --- a/drivers/ssb/Kconfig
> +++ b/drivers/ssb/Kconfig
> @@ -134,7 +134,7 @@ config SSB_SFLASH
>  # Assumption: We are on embedded, if we compile the MIPS core.
>  config SSB_EMBEDDED
>  	bool
> -	depends on SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE
> +	depends on SSB_DRIVER_MIPS
>  	default y
>  
>  config SSB_DRIVER_EXTIF

Could we instead make SSB_EMBEDDED depend on SSB_PCICORE_HOSTMODE if
PCI!=n. Wouldn't that also solve the problem?

I don't fully remember how all this ssb config stuff works, but to
me adding a PCICORE->PCI dependency sounds safer against build
regressions in some other configurations.

What do you think?
  
Randy Dunlap Oct. 8, 2023, 2:08 p.m. UTC | #2
On 10/8/23 00:35, Michael Büsch wrote:
> Hi Randy,
> 
> thanks for the patch.
> 
> On Sat,  7 Oct 2023 11:24:43 -0700
> Randy Dunlap <rdunlap@infradead.org> wrote:
> 
>> This is a kconfig warning in a randconfig when CONFIG_PCI is not set:
>>
>> WARNING: unmet direct dependencies detected for SSB_EMBEDDED
>>   Depends on [n]: SSB [=y] && SSB_DRIVER_MIPS [=y] &&
>> SSB_PCICORE_HOSTMODE [=n] Selected by [y]:
>>   - BCM47XX_SSB [=y] && BCM47XX [=y]
>>
>> This is caused by arch/mips/bcm47xx/Kconfig's symbol BCM47XX_SSB
>> selecting SSB_EMBEDDED when CONFIG_PCI is not set.
>>
>> This warning can be prevented by having SSB_EMBEDDED not depend on
>> SSB_PCICORE_HOSTMODE, although some parts of SSB use PCI.
> 
>> diff -- a/drivers/ssb/Kconfig b/drivers/ssb/Kconfig
>> --- a/drivers/ssb/Kconfig
>> +++ b/drivers/ssb/Kconfig
>> @@ -134,7 +134,7 @@ config SSB_SFLASH
>>  # Assumption: We are on embedded, if we compile the MIPS core.
>>  config SSB_EMBEDDED
>>  	bool
>> -	depends on SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE
>> +	depends on SSB_DRIVER_MIPS
>>  	default y
>>  
>>  config SSB_DRIVER_EXTIF
> 
> Could we instead make SSB_EMBEDDED depend on SSB_PCICORE_HOSTMODE if
> PCI!=n. Wouldn't that also solve the problem?
> 
> I don't fully remember how all this ssb config stuff works, but to
> me adding a PCICORE->PCI dependency sounds safer against build
> regressions in some other configurations.
> 
> What do you think?

I'll test it some and see how it works out.
Thanks.
  
Randy Dunlap Oct. 9, 2023, 6:12 a.m. UTC | #3
Hi Michael,

On 10/8/23 07:08, Randy Dunlap wrote:
> 
> 
> On 10/8/23 00:35, Michael Büsch wrote:
>> Hi Randy,
>>
>> thanks for the patch.
>>
>> On Sat,  7 Oct 2023 11:24:43 -0700
>> Randy Dunlap <rdunlap@infradead.org> wrote:
>>
>>> This is a kconfig warning in a randconfig when CONFIG_PCI is not set:
>>>
>>> WARNING: unmet direct dependencies detected for SSB_EMBEDDED
>>>   Depends on [n]: SSB [=y] && SSB_DRIVER_MIPS [=y] &&
>>> SSB_PCICORE_HOSTMODE [=n] Selected by [y]:
>>>   - BCM47XX_SSB [=y] && BCM47XX [=y]
>>>
>>> This is caused by arch/mips/bcm47xx/Kconfig's symbol BCM47XX_SSB
>>> selecting SSB_EMBEDDED when CONFIG_PCI is not set.
>>>
>>> This warning can be prevented by having SSB_EMBEDDED not depend on
>>> SSB_PCICORE_HOSTMODE, although some parts of SSB use PCI.
>>
>>> diff -- a/drivers/ssb/Kconfig b/drivers/ssb/Kconfig
>>> --- a/drivers/ssb/Kconfig
>>> +++ b/drivers/ssb/Kconfig
>>> @@ -134,7 +134,7 @@ config SSB_SFLASH
>>>  # Assumption: We are on embedded, if we compile the MIPS core.
>>>  config SSB_EMBEDDED
>>>  	bool
>>> -	depends on SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE
>>> +	depends on SSB_DRIVER_MIPS
>>>  	default y
>>>  
>>>  config SSB_DRIVER_EXTIF
>>
>> Could we instead make SSB_EMBEDDED depend on SSB_PCICORE_HOSTMODE if
>> PCI!=n. Wouldn't that also solve the problem?
>>
>> I don't fully remember how all this ssb config stuff works, but to
>> me adding a PCICORE->PCI dependency sounds safer against build
>> regressions in some other configurations.
>>
>> What do you think?
> 
> I'll test it some and see how it works out.
> Thanks.

The following change seems to work and passes some testing.
Is this what you had in mind?
Thanks.

---
---
 drivers/ssb/Kconfig |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff -- a/drivers/ssb/Kconfig b/drivers/ssb/Kconfig
--- a/drivers/ssb/Kconfig
+++ b/drivers/ssb/Kconfig
@@ -134,7 +134,7 @@ config SSB_SFLASH
 # Assumption: We are on embedded, if we compile the MIPS core.
 config SSB_EMBEDDED
 	bool
-	depends on SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE
+	depends on PCI=n || SSB_PCICORE_HOSTMODE
 	default y
 
 config SSB_DRIVER_EXTIF
  
Michael Büsch Oct. 10, 2023, 6:43 p.m. UTC | #4
On Sun, 8 Oct 2023 23:12:49 -0700
Randy Dunlap <rdunlap@infradead.org> wrote:

> -	depends on SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE
> +	depends on PCI=n || SSB_PCICORE_HOSTMODE

I thought about something like this:

depends on (SSB_DRIVER_MIPS && PCI=n) || (SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE)

Would that solve the warning?
  
Randy Dunlap Oct. 12, 2023, 3:44 a.m. UTC | #5
Hi Michael,

On 10/10/23 11:43, Michael Büsch wrote:
> On Sun, 8 Oct 2023 23:12:49 -0700
> Randy Dunlap <rdunlap@infradead.org> wrote:
> 
>> -	depends on SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE
>> +	depends on PCI=n || SSB_PCICORE_HOSTMODE
> 
> I thought about something like this:
> 
> depends on (SSB_DRIVER_MIPS && PCI=n) || (SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE)
> 
> Would that solve the warning?

Yes, that works as well, although I prefer to express it like this:

 config SSB_EMBEDDED
 	bool
-	depends on SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE
+	depends on SSB_DRIVER_MIPS
+	depends on PCI=n || SSB_PCICORE_HOSTMODE
 	default y

although if you prefer the way that you have it above,
I'm OK with that also.

Thanks for your help.
  
Michael Büsch Oct. 12, 2023, 5:39 p.m. UTC | #6
On Wed, 11 Oct 2023 20:44:49 -0700
Randy Dunlap <rdunlap@infradead.org> wrote:

> > I thought about something like this:
> > 
> > depends on (SSB_DRIVER_MIPS && PCI=n) || (SSB_DRIVER_MIPS &&
> > SSB_PCICORE_HOSTMODE)
> > 
> > Would that solve the warning?  
> 
> Yes, that works as well, although I prefer to express it like this:
> 
>  config SSB_EMBEDDED
>  	bool
> -	depends on SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE
> +	depends on SSB_DRIVER_MIPS
> +	depends on PCI=n || SSB_PCICORE_HOSTMODE
>  	default y

Acked-by: Michael Büsch <m@bues.ch>
  

Patch

diff -- a/drivers/ssb/Kconfig b/drivers/ssb/Kconfig
--- a/drivers/ssb/Kconfig
+++ b/drivers/ssb/Kconfig
@@ -134,7 +134,7 @@  config SSB_SFLASH
 # Assumption: We are on embedded, if we compile the MIPS core.
 config SSB_EMBEDDED
 	bool
-	depends on SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE
+	depends on SSB_DRIVER_MIPS
 	default y
 
 config SSB_DRIVER_EXTIF