lkml.org 
[lkml]   [2012]   [Jul]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 86/90] staging: comedi: rtd520: remove 'got_regions' from private data
On 2012-07-19 03:04, H Hartley Sweeten wrote:
> The 'got_regions' variable in the private data is used as a flag
> for the detach to know if the pci device has been enabled.
>
> Typically the dev->iobase variable is used to indicate this in
> all the other comedi drivers. Do the same here for consistancy.

As I mentioned for dt3000, dev->iobase isn't ideal for holding PCI
memory addresses and is even less ideal to hold a PCI memory address
that is passed to ioremap().

>
> Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
> Cc: Ian Abbott <abbotti@mev.co.uk>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---
> drivers/staging/comedi/drivers/rtd520.c | 9 +++------
> 1 file changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c
> index 02be4dd..aeccae9 100644
> --- a/drivers/staging/comedi/drivers/rtd520.c
> +++ b/drivers/staging/comedi/drivers/rtd520.c
> @@ -312,7 +312,6 @@ struct rtdPrivate {
>
> /* PCI device info */
> struct pci_dev *pci_dev;
> - int got_regions; /* non-zero if PCI regions owned */
>
> /* channel list info */
> /* chanBipolar tracks whether a channel is bipolar (and needs +2048) */
> @@ -1623,7 +1622,6 @@ static int rtd_attach(struct comedi_device *dev, struct comedi_devconfig *it)
> struct rtdPrivate *devpriv;
> struct comedi_subdevice *s;
> int ret;
> - resource_size_t physLas0; /* configuration */
> resource_size_t physLas1; /* data area */
> resource_size_t physLcfg; /* PLX9080 */
> #ifdef USE_DMA
> @@ -1658,18 +1656,17 @@ static int rtd_attach(struct comedi_device *dev, struct comedi_devconfig *it)
> printk(KERN_INFO "Failed to enable PCI device and request regions.\n");
> return ret;
> }
> - devpriv->got_regions = 1;
>
> /*
> * Initialize base addresses
> */
> /* Get the physical address from PCI config */
> - physLas0 = pci_resource_start(devpriv->pci_dev, LAS0_PCIINDEX);
> + dev->iobase = pci_resource_start(devpriv->pci_dev, LAS0_PCIINDEX);
> physLas1 = pci_resource_start(devpriv->pci_dev, LAS1_PCIINDEX);
> physLcfg = pci_resource_start(devpriv->pci_dev, LCFG_PCIINDEX);
> /* Now have the kernel map this into memory */
> /* ASSUME page aligned */
> - devpriv->las0 = ioremap_nocache(physLas0, LAS0_PCISIZE);
> + devpriv->las0 = ioremap_nocache(dev->iobase, LAS0_PCISIZE);

I suggest keeping the physLas0 variable for passing to ioremap_nocache()
and just putting some dummy non-zero value in dev->iobase.

> devpriv->las1 = ioremap_nocache(physLas1, LAS1_PCISIZE);
> devpriv->lcfg = ioremap_nocache(physLcfg, LCFG_PCISIZE);
>
> @@ -2000,7 +1997,7 @@ static void rtd_detach(struct comedi_device *dev)
> if (devpriv->lcfg)
> iounmap(devpriv->lcfg);
> if (devpriv->pci_dev) {
> - if (devpriv->got_regions)
> + if (dev->iobase)
> comedi_pci_disable(devpriv->pci_dev);
> pci_dev_put(devpriv->pci_dev);
> }
>

--
-=( Ian Abbott @ MEV Ltd. E-mail: <abbotti@mev.co.uk> )=-
-=( Tel: +44 (0)161 477 1898 FAX: +44 (0)161 718 3587 )=-




\
 
 \ /
  Last update: 2012-07-19 15:21    [W:0.070 / U:0.124 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site