bf = avp->av_bcbuf;
        skb = (struct sk_buff *)bf->bf_mpdu;
        if (skb) {
-               pci_unmap_single(sc->pdev, bf->bf_dmacontext,
+               pci_unmap_single(to_pci_dev(sc->dev), bf->bf_dmacontext,
                                 skb->len,
                                 PCI_DMA_TODEVICE);
                dev_kfree_skb_any(skb);
        }
 
        bf->bf_buf_addr = bf->bf_dmacontext =
-               pci_map_single(sc->pdev, skb->data,
+               pci_map_single(to_pci_dev(sc->dev), skb->data,
                               skb->len,
                               PCI_DMA_TODEVICE);
-       if (unlikely(pci_dma_mapping_error(sc->pdev, bf->bf_buf_addr))) {
+       if (unlikely(pci_dma_mapping_error(to_pci_dev(sc->dev),
+                                          bf->bf_buf_addr))) {
                dev_kfree_skb_any(skb);
                bf->bf_mpdu = NULL;
                DPRINTF(sc, ATH_DBG_CONFIG,
        bf = avp->av_bcbuf;
        if (bf->bf_mpdu != NULL) {
                skb = (struct sk_buff *)bf->bf_mpdu;
-               pci_unmap_single(sc->pdev, bf->bf_dmacontext,
+               pci_unmap_single(to_pci_dev(sc->dev), bf->bf_dmacontext,
                                 skb->len,
                                 PCI_DMA_TODEVICE);
                dev_kfree_skb_any(skb);
 
        bf->bf_mpdu = skb;
        bf->bf_buf_addr = bf->bf_dmacontext =
-               pci_map_single(sc->pdev, skb->data,
+               pci_map_single(to_pci_dev(sc->dev), skb->data,
                               skb->len,
                               PCI_DMA_TODEVICE);
-       if (unlikely(pci_dma_mapping_error(sc->pdev, bf->bf_buf_addr))) {
+       if (unlikely(pci_dma_mapping_error(to_pci_dev(sc->dev),
+                                          bf->bf_buf_addr))) {
                dev_kfree_skb_any(skb);
                bf->bf_mpdu = NULL;
                DPRINTF(sc, ATH_DBG_CONFIG,
                bf = avp->av_bcbuf;
                if (bf->bf_mpdu != NULL) {
                        struct sk_buff *skb = (struct sk_buff *)bf->bf_mpdu;
-                       pci_unmap_single(sc->pdev, bf->bf_dmacontext,
+                       pci_unmap_single(to_pci_dev(sc->dev),
+                                        bf->bf_dmacontext,
                                         skb->len,
                                         PCI_DMA_TODEVICE);
                        dev_kfree_skb_any(skb);
 
 
 struct ath_softc {
        struct ieee80211_hw *hw;
-       struct pci_dev *pdev;
+       struct device *dev;
        struct tasklet_struct intr_tq;
        struct tasklet_struct bcon_tasklet;
        struct ath_hal *sc_ah;
 
 {
        u8 u8tmp;
 
-       pci_read_config_byte(sc->pdev, PCI_CACHE_LINE_SIZE, (u8 *)&u8tmp);
+       pci_read_config_byte(to_pci_dev(sc->dev), PCI_CACHE_LINE_SIZE,
+                            (u8 *)&u8tmp);
        *csz = (int)u8tmp;
 
        /*
 
                        /* Deinitialize the device */
                        ath_detach(sc);
-                       if (sc->pdev->irq)
-                               free_irq(sc->pdev->irq, sc);
-                       pci_iounmap(sc->pdev, sc->mem);
-                       pci_release_region(sc->pdev, 0);
-                       pci_disable_device(sc->pdev);
+                       if (to_pci_dev(sc->dev)->irq)
+                               free_irq(to_pci_dev(sc->dev)->irq, sc);
+                       pci_iounmap(to_pci_dev(sc->dev), sc->mem);
+                       pci_release_region(to_pci_dev(sc->dev), 0);
+                       pci_disable_device(to_pci_dev(sc->dev));
                        ieee80211_free_hw(sc->hw);
                        return -EIO;
                } else {
        }
 
        /* allocate descriptors */
-       dd->dd_desc = pci_alloc_consistent(sc->pdev,
+       dd->dd_desc = pci_alloc_consistent(to_pci_dev(sc->dev),
                              dd->dd_desc_len,
                              &dd->dd_desc_paddr);
        if (dd->dd_desc == NULL) {
        }
        return 0;
 fail2:
-       pci_free_consistent(sc->pdev,
+       pci_free_consistent(to_pci_dev(sc->dev),
                dd->dd_desc_len, dd->dd_desc, dd->dd_desc_paddr);
 fail:
        memset(dd, 0, sizeof(*dd));
                         struct ath_descdma *dd,
                         struct list_head *head)
 {
-       pci_free_consistent(sc->pdev,
+       pci_free_consistent(to_pci_dev(sc->dev),
                dd->dd_desc_len, dd->dd_desc, dd->dd_desc_paddr);
 
        INIT_LIST_HEAD(head);
 
        sc = hw->priv;
        sc->hw = hw;
-       sc->pdev = pdev;
+       sc->dev = &pdev->dev;
        sc->mem = mem;
 
        if (ath_attach(id->device, sc) != 0) {
 
                        }
 
                        bf->bf_mpdu = skb;
-                       bf->bf_buf_addr = pci_map_single(sc->pdev, skb->data,
+                       bf->bf_buf_addr = pci_map_single(to_pci_dev(sc->dev),
+                                                        skb->data,
                                                         sc->rx.bufsize,
                                                         PCI_DMA_FROMDEVICE);
-                       if (unlikely(pci_dma_mapping_error(sc->pdev,
+                       if (unlikely(pci_dma_mapping_error(to_pci_dev(sc->dev),
                                  bf->bf_buf_addr))) {
                                dev_kfree_skb_any(skb);
                                bf->bf_mpdu = NULL;
                 * 1. accessing the frame
                 * 2. requeueing the same buffer to h/w
                 */
-               pci_dma_sync_single_for_cpu(sc->pdev, bf->bf_buf_addr,
+               pci_dma_sync_single_for_cpu(to_pci_dev(sc->dev),
+                               bf->bf_buf_addr,
                                sc->rx.bufsize,
                                PCI_DMA_FROMDEVICE);
 
                        goto requeue;
 
                /* Unmap the frame */
-               pci_unmap_single(sc->pdev, bf->bf_buf_addr,
+               pci_unmap_single(to_pci_dev(sc->dev), bf->bf_buf_addr,
                                 sc->rx.bufsize,
                                 PCI_DMA_FROMDEVICE);
 
 
                /* We will now give hardware our shiny new allocated skb */
                bf->bf_mpdu = requeue_skb;
-               bf->bf_buf_addr = pci_map_single(sc->pdev, requeue_skb->data,
+               bf->bf_buf_addr = pci_map_single(to_pci_dev(sc->dev),
+                                        requeue_skb->data,
                                         sc->rx.bufsize,
                                         PCI_DMA_FROMDEVICE);
-               if (unlikely(pci_dma_mapping_error(sc->pdev,
+               if (unlikely(pci_dma_mapping_error(to_pci_dev(sc->dev),
                          bf->bf_buf_addr))) {
                        dev_kfree_skb_any(requeue_skb);
                        bf->bf_mpdu = NULL;
 
        }
 
        /* Unmap this frame */
-       pci_unmap_single(sc->pdev,
+       pci_unmap_single(to_pci_dev(sc->dev),
                         bf->bf_dmacontext,
                         skb->len,
                         PCI_DMA_TODEVICE);
        /* DMA setup */
        bf->bf_mpdu = skb;
 
-       bf->bf_dmacontext = pci_map_single(sc->pdev, skb->data,
+       bf->bf_dmacontext = pci_map_single(to_pci_dev(sc->dev), skb->data,
                                           skb->len, PCI_DMA_TODEVICE);
-       if (unlikely(pci_dma_mapping_error(sc->pdev, bf->bf_dmacontext))) {
+       if (unlikely(pci_dma_mapping_error(to_pci_dev(sc->dev),
+                                          bf->bf_dmacontext))) {
                bf->bf_mpdu = NULL;
                DPRINTF(sc, ATH_DBG_CONFIG,
                        "pci_dma_mapping_error() on TX\n");