2009-06-23 07:32:01

by Heiko Carstens

[permalink] [raw]
Subject: [PATCH] can: let SJA1000 driver depend on HAS_IOMEM

From: Heiko Carstens <[email protected]>

Fixes this compile error on s390:

drivers/net/can/sja1000/sja1000_platform.c: In function 'sp_read_reg':
drivers/net/can/sja1000/sja1000_platform.c:42: error: implicit declaration of function 'ioread8'
drivers/net/can/sja1000/sja1000_platform.c: In function 'sp_write_reg':
drivers/net/can/sja1000/sja1000_platform.c:47: error: implicit declaration of function 'iowrite8'
drivers/net/can/sja1000/sja1000_platform.c: In function 'sp_probe':
drivers/net/can/sja1000/sja1000_platform.c:79: error: implicit declaration of function 'ioremap_nocache'

Cc: Wolfgang Grandegger <[email protected]>
Cc: Oliver Hartkopp <[email protected]>
Signed-off-by: Heiko Carstens <[email protected]>
---
drivers/net/can/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6/drivers/net/can/Kconfig
===================================================================
--- linux-2.6.orig/drivers/net/can/Kconfig
+++ linux-2.6/drivers/net/can/Kconfig
@@ -36,7 +36,7 @@ config CAN_CALC_BITTIMING
If unsure, say Y.

config CAN_SJA1000
- depends on CAN_DEV
+ depends on CAN_DEV && HAS_IOMEM
tristate "Philips SJA1000"
---help---
Driver for the SJA1000 CAN controllers from Philips or NXP


2009-06-23 11:19:22

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] can: let SJA1000 driver depend on HAS_IOMEM

From: Heiko Carstens <[email protected]>
Date: Tue, 23 Jun 2009 09:31:20 +0200

> From: Heiko Carstens <[email protected]>
>
> Fixes this compile error on s390:
>
> drivers/net/can/sja1000/sja1000_platform.c: In function 'sp_read_reg':
> drivers/net/can/sja1000/sja1000_platform.c:42: error: implicit declaration of function 'ioread8'
> drivers/net/can/sja1000/sja1000_platform.c: In function 'sp_write_reg':
> drivers/net/can/sja1000/sja1000_platform.c:47: error: implicit declaration of function 'iowrite8'
> drivers/net/can/sja1000/sja1000_platform.c: In function 'sp_probe':
> drivers/net/can/sja1000/sja1000_platform.c:79: error: implicit declaration of function 'ioremap_nocache'
>
> Cc: Wolfgang Grandegger <[email protected]>
> Cc: Oliver Hartkopp <[email protected]>
> Signed-off-by: Heiko Carstens <[email protected]>

Applied.

2009-06-23 19:26:24

by Wolfgang Grandegger

[permalink] [raw]
Subject: Re: [PATCH] can: let SJA1000 driver depend on HAS_IOMEM

Heiko Carstens wrote:
> From: Heiko Carstens <[email protected]>
>
> Fixes this compile error on s390:
>
> drivers/net/can/sja1000/sja1000_platform.c: In function 'sp_read_reg':
> drivers/net/can/sja1000/sja1000_platform.c:42: error: implicit declaration of function 'ioread8'
> drivers/net/can/sja1000/sja1000_platform.c: In function 'sp_write_reg':
> drivers/net/can/sja1000/sja1000_platform.c:47: error: implicit declaration of function 'iowrite8'
> drivers/net/can/sja1000/sja1000_platform.c: In function 'sp_probe':
> drivers/net/can/sja1000/sja1000_platform.c:79: error: implicit declaration of function 'ioremap_nocache'
>
> Cc: Wolfgang Grandegger <[email protected]>
> Cc: Oliver Hartkopp <[email protected]>
> Signed-off-by: Heiko Carstens <[email protected]>
> ---
> drivers/net/can/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> Index: linux-2.6/drivers/net/can/Kconfig
> ===================================================================
> --- linux-2.6.orig/drivers/net/can/Kconfig
> +++ linux-2.6/drivers/net/can/Kconfig
> @@ -36,7 +36,7 @@ config CAN_CALC_BITTIMING
> If unsure, say Y.
>
> config CAN_SJA1000
> - depends on CAN_DEV
> + depends on CAN_DEV && HAS_IOMEM
> tristate "Philips SJA1000"
> ---help---
> Driver for the SJA1000 CAN controllers from Philips or NXP

Hm, this Kconfig entry is not directly responsible for building
sja1000_platform.o. It builds sja1000.o, which does not rely on
HAS_IOMEM. It should be added to "config CAN_SJA1000_PLATFORM" instead.
Does the patch below work for you?

Wolfgang.

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

Index: net-next-2.6/drivers/net/can/Kconfig
===================================================================
--- net-next-2.6.orig/drivers/net/can/Kconfig
+++ net-next-2.6/drivers/net/can/Kconfig
@@ -42,7 +42,7 @@ config CAN_SJA1000
Driver for the SJA1000 CAN controllers from Philips or NXP

config CAN_SJA1000_PLATFORM
- depends on CAN_SJA1000
+ depends on HAS_IOMEM && CAN_SJA1000
tristate "Generic Platform Bus based SJA1000 driver"
---help---
This driver adds support for the SJA1000 chips connected to

2009-06-24 06:52:55

by Oliver Hartkopp

[permalink] [raw]
Subject: Re: [PATCH] can: let SJA1000 driver depend on HAS_IOMEM

Wolfgang Grandegger wrote:
> Heiko Carstens wrote:


>> Index: linux-2.6/drivers/net/can/Kconfig
>> ===================================================================
>> --- linux-2.6.orig/drivers/net/can/Kconfig
>> +++ linux-2.6/drivers/net/can/Kconfig
>> @@ -36,7 +36,7 @@ config CAN_CALC_BITTIMING
>> If unsure, say Y.
>>
>> config CAN_SJA1000
>> - depends on CAN_DEV
>> + depends on CAN_DEV && HAS_IOMEM
>> tristate "Philips SJA1000"
>> ---help---
>> Driver for the SJA1000 CAN controllers from Philips or NXP
>
> Hm, this Kconfig entry is not directly responsible for building
> sja1000_platform.o. It builds sja1000.o, which does not rely on
> HAS_IOMEM. It should be added to "config CAN_SJA1000_PLATFORM" instead.

Hi Wolfgang,

the question is, if we should add HAS_IOMEM to almost every SJA1000 depended
driver like SJA1000_PLATFORM, SJA1000_OF_PLATFORM, EMS_PCI and KVASER_PCI ???

Is it possible to have a support for the SJA1000 that does *not* depend on
HAS_IOMEM?

Regards,
Oliver

2009-06-24 07:01:14

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] can: let SJA1000 driver depend on HAS_IOMEM

From: Oliver Hartkopp <[email protected]>
Date: Wed, 24 Jun 2009 08:52:38 +0200

> Wolfgang Grandegger wrote:
>> Heiko Carstens wrote:
>
>
>>> Index: linux-2.6/drivers/net/can/Kconfig
>>> ===================================================================
>>> --- linux-2.6.orig/drivers/net/can/Kconfig
>>> +++ linux-2.6/drivers/net/can/Kconfig
>>> @@ -36,7 +36,7 @@ config CAN_CALC_BITTIMING
>>> If unsure, say Y.
>>>
>>> config CAN_SJA1000
>>> - depends on CAN_DEV
>>> + depends on CAN_DEV && HAS_IOMEM
>>> tristate "Philips SJA1000"
>>> ---help---
>>> Driver for the SJA1000 CAN controllers from Philips or NXP
>>
>> Hm, this Kconfig entry is not directly responsible for building
>> sja1000_platform.o. It builds sja1000.o, which does not rely on
>> HAS_IOMEM. It should be added to "config CAN_SJA1000_PLATFORM" instead.
>
> Hi Wolfgang,
>
> the question is, if we should add HAS_IOMEM to almost every SJA1000 depended
> driver like SJA1000_PLATFORM, SJA1000_OF_PLATFORM, EMS_PCI and KVASER_PCI ???
>
> Is it possible to have a support for the SJA1000 that does *not* depend on
> HAS_IOMEM?

This was my initial impression when I saw Wolfgang's suggested patch,
and I still feel this way, and thus Heiko's patch seems the best for
now until there is an exception.

And in fact Heiko's patch has been in my tree for a while already :)

2009-06-24 08:26:20

by Wolfgang Grandegger

[permalink] [raw]
Subject: Re: [PATCH] can: let SJA1000 driver depend on HAS_IOMEM

David Miller wrote:
> From: Oliver Hartkopp <[email protected]>
> Date: Wed, 24 Jun 2009 08:52:38 +0200
>
>> Wolfgang Grandegger wrote:
>>> Heiko Carstens wrote:
>>
>>>> Index: linux-2.6/drivers/net/can/Kconfig
>>>> ===================================================================
>>>> --- linux-2.6.orig/drivers/net/can/Kconfig
>>>> +++ linux-2.6/drivers/net/can/Kconfig
>>>> @@ -36,7 +36,7 @@ config CAN_CALC_BITTIMING
>>>> If unsure, say Y.
>>>>
>>>> config CAN_SJA1000
>>>> - depends on CAN_DEV
>>>> + depends on CAN_DEV && HAS_IOMEM
>>>> tristate "Philips SJA1000"
>>>> ---help---
>>>> Driver for the SJA1000 CAN controllers from Philips or NXP
>>> Hm, this Kconfig entry is not directly responsible for building
>>> sja1000_platform.o. It builds sja1000.o, which does not rely on
>>> HAS_IOMEM. It should be added to "config CAN_SJA1000_PLATFORM" instead.
>> Hi Wolfgang,
>>
>> the question is, if we should add HAS_IOMEM to almost every SJA1000 depended
>> driver like SJA1000_PLATFORM, SJA1000_OF_PLATFORM, EMS_PCI and KVASER_PCI ???
>>
>> Is it possible to have a support for the SJA1000 that does *not* depend on
>> HAS_IOMEM?

In principle yes by using an appropriate driver accessing the SJA1000
with other methods. But I might be wrong because it does not make sense
hardware-wise.

> This was my initial impression when I saw Wolfgang's suggested patch,
> and I still feel this way, and thus Heiko's patch seems the best for
> now until there is an exception.
>
> And in fact Heiko's patch has been in my tree for a while already :)

OK, that's fine for the moment. We may even consider making CONFIG_CAN
depend on HAS_IOMEM like for SPI, USB, Serial, etc.

Wolfgang.
Woflgang.

2009-06-24 08:36:21

by Oliver Hartkopp

[permalink] [raw]
Subject: Re: [PATCH] can: let SJA1000 driver depend on HAS_IOMEM

Wolfgang Grandegger wrote:
> David Miller wrote:
>> From: Oliver Hartkopp <[email protected]>

>>> the question is, if we should add HAS_IOMEM to almost every SJA1000 depended
>>> driver like SJA1000_PLATFORM, SJA1000_OF_PLATFORM, EMS_PCI and KVASER_PCI ???
>>>
>>> Is it possible to have a support for the SJA1000 that does *not* depend on
>>> HAS_IOMEM?
>
> In principle yes by using an appropriate driver accessing the SJA1000
> with other methods. But I might be wrong because it does not make sense
> hardware-wise.
>
>> This was my initial impression when I saw Wolfgang's suggested patch,
>> and I still feel this way, and thus Heiko's patch seems the best for
>> now until there is an exception.
>>
>> And in fact Heiko's patch has been in my tree for a while already :)
>
> OK, that's fine for the moment. We may even consider making CONFIG_CAN
> depend on HAS_IOMEM like for SPI, USB, Serial, etc.

Why CONFIG_CAN ??

CONFIG_CAN provides a network protocol family that can be used e.g. with the
vcan driver without any hardware. So HAS_IOMEM only has to take care of some
drivers, that fiddle on CAN controller registers themselves. E.g. for SPI, USB
and Serial these 'underlying' interfaces bring their own requirements. When we
depend on SPI, it should bring HAS_IOMEM as a dependency of SPI.

Regards,
Oliver

2009-06-24 08:51:56

by Wolfgang Grandegger

[permalink] [raw]
Subject: Re: [PATCH] can: let SJA1000 driver depend on HAS_IOMEM

Oliver Hartkopp wrote:
> Wolfgang Grandegger wrote:
>> David Miller wrote:
>>> From: Oliver Hartkopp <[email protected]>
>
>>>> the question is, if we should add HAS_IOMEM to almost every SJA1000 depended
>>>> driver like SJA1000_PLATFORM, SJA1000_OF_PLATFORM, EMS_PCI and KVASER_PCI ???
>>>>
>>>> Is it possible to have a support for the SJA1000 that does *not* depend on
>>>> HAS_IOMEM?
>> In principle yes by using an appropriate driver accessing the SJA1000
>> with other methods. But I might be wrong because it does not make sense
>> hardware-wise.
>>
>>> This was my initial impression when I saw Wolfgang's suggested patch,
>>> and I still feel this way, and thus Heiko's patch seems the best for
>>> now until there is an exception.
>>>
>>> And in fact Heiko's patch has been in my tree for a while already :)
>> OK, that's fine for the moment. We may even consider making CONFIG_CAN
>> depend on HAS_IOMEM like for SPI, USB, Serial, etc.
>
> Why CONFIG_CAN ??
>
> CONFIG_CAN provides a network protocol family that can be used e.g. with the
> vcan driver without any hardware. So HAS_IOMEM only has to take care of some
> drivers, that fiddle on CAN controller registers themselves. E.g. for SPI, USB
> and Serial these 'underlying' interfaces bring their own requirements. When we
> depend on SPI, it should bring HAS_IOMEM as a dependency of SPI.

OK, then s/CONFIG_CAN/CONFIG_CAN_DEV/

Wolfgang.


2009-06-24 09:07:21

by Oliver Hartkopp

[permalink] [raw]
Subject: Re: [PATCH] can: let SJA1000 driver depend on HAS_IOMEM

Wolfgang Grandegger wrote:
> Oliver Hartkopp wrote:
>> Wolfgang Grandegger wrote:

>>> We may even consider making CONFIG_CAN
>>> depend on HAS_IOMEM like for SPI, USB, Serial, etc.
>> Why CONFIG_CAN ??
>>
>> CONFIG_CAN provides a network protocol family that can be used e.g. with the
>> vcan driver without any hardware. So HAS_IOMEM only has to take care of some
>> drivers, that fiddle on CAN controller registers themselves. E.g. for SPI, USB
>> and Serial these 'underlying' interfaces bring their own requirements. When we
>> depend on SPI, it should bring HAS_IOMEM as a dependency of SPI.
>
> OK, then s/CONFIG_CAN/CONFIG_CAN_DEV/

IMHO not even CONFIG_CAN_DEV that also provides bittime calculation and
standard CAN driver stuff that does not depend on a specific hardware.

HAS_IOMEM should be a dependency on specific drivers (like stated above).

Regards,
Oliver