irda: fix !PNP support in drivers/net/irda/nsc-ircc.c

x86.git testing found the following build failure in latest -git:

drivers/built-in.o: In function `nsc_ircc_pnp_probe':
nsc-ircc.c:(.text+0xdf1b6): undefined reference to `pnp_get_resource'
nsc-ircc.c:(.text+0xdf1d4): undefined reference to `pnp_get_resource'
nsc-ircc.c:(.text+0xdf1ee): undefined reference to `pnp_get_resource'
nsc-ircc.c:(.text+0xdf237): undefined reference to `pnp_get_resource'
nsc-ircc.c:(.text+0xdf24c): undefined reference to `pnp_get_resource'
drivers/built-in.o:nsc-ircc.c:(.text+0xdf266): more undefined references to `pnp_get_resource' follow
make: *** [.tmp_vmlinux1] Error 1

triggered via this config:

http://redhat.com/~mingo/misc/config-Sat_May__3_20_53_13_CEST_2008.bad

while generally most users will have PNP enabled, drivers can support
non-PNP build mode too - and most drivers implement it. That is typically
done by providing a dummy pnp_driver structure that will not probe anything.

The fallback routines in the driver will handle this dumber mode of
operation too.

This patch implements that. I have not tested whether this actually
works on real hardware so take care. It does resolve the build bug.

[ Another solution that is used by a few drivers is to exclude the driver
in the Kconfig if PNP is disabled, via "depends on PNP", but this would
limit the availability of the driver needlessly. ]

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Ingo Molnar and committed by
David S. Miller
c17f888f fa1b1cff

+6
+6
drivers/net/irda/nsc-ircc.c
··· 100 100 static int nsc_ircc_init_108(nsc_chip_t *chip, chipio_t *info); 101 101 static int nsc_ircc_init_338(nsc_chip_t *chip, chipio_t *info); 102 102 static int nsc_ircc_init_39x(nsc_chip_t *chip, chipio_t *info); 103 + #ifdef CONFIG_PNP 103 104 static int nsc_ircc_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id *id); 105 + #endif 104 106 105 107 /* These are the known NSC chips */ 106 108 static nsc_chip_t chips[] = { ··· 158 156 MODULE_DEVICE_TABLE(pnp, nsc_ircc_pnp_table); 159 157 160 158 static struct pnp_driver nsc_ircc_pnp_driver = { 159 + #ifdef CONFIG_PNP 161 160 .name = "nsc-ircc", 162 161 .id_table = nsc_ircc_pnp_table, 163 162 .probe = nsc_ircc_pnp_probe, 163 + #endif 164 164 }; 165 165 166 166 /* Some prototypes */ ··· 920 916 return 0; 921 917 } 922 918 919 + #ifdef CONFIG_PNP 923 920 /* PNP probing */ 924 921 static int nsc_ircc_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id *id) 925 922 { ··· 957 952 958 953 return 0; 959 954 } 955 + #endif 960 956 961 957 /* 962 958 * Function nsc_ircc_setup (info)