Masa Murayama wrote:
Sorry, I think you use nevada b105 or later.

The gld version 3 interface of my drivers doesn't work with nevada b105.
It requires many change on my drivers, but I cannot update
them for the time being.


Piotr,

Could you try the attached patch? I had the same issue with the myk driver for the Marvell Yukon card in build 105 and got that to work with a small patch to the GEM bits. Since GEM is Generic, the patch for alta is pretty much the same as for myk.

With the attached patch, alta-2.6.1 builds fine on snv_105. I don't have the hardware to test, but given the fact that myk now works past the Crossbow integration, I'd say your chances are pretty good.

Menno
--
Menno Lageman - Sun Microsystems - http://blogs.sun.com/menno
--- gem.h.dist  Mon Dec 22 10:08:06 2008
+++ gem.h       Mon Dec 22 10:14:29 2008
@@ -35,7 +35,7 @@
 #ifndef _GEM_H_
 #define        _GEM_H_
 #ifdef GEM_CONFIG_GLDv3
-#include <sys/mac.h>
+#include <sys/mac_provider.h>
 #include <sys/mac_ether.h>
 #else
 #include <sys/gld.h>
@@ -711,7 +711,7 @@
 #else
 #define        GEM_STREAM_OPS(dev_ops, attach, detach) \
        DDI_DEFINE_STREAM_OPS(dev_ops, nulldev, nulldev, attach, detach, \
-       nodev, NULL, D_MP, NULL, gem_quiscence)
+       nodev, NULL, D_MP, NULL, gem_quiesce)
 #endif
 #else
 #define        gem_getinfo     gld_getinfo
--- gem.c.dist  Mon Dec 22 10:08:02 2008
+++ gem.c       Mon Dec 22 10:11:29 2008
@@ -5872,11 +5872,10 @@
 static int             gem_m_multicst(void *, boolean_t, const uint8_t *);
 static int             gem_m_unicst(void *, const uint8_t *);
 static mblk_t          *gem_m_tx(void *, mblk_t *);
-static void            gem_m_resources(void *);
 static void            gem_m_ioctl(void *, queue_t *, mblk_t *);
 static boolean_t       gem_m_getcapab(void *, mac_capab_t, void *);
 
-#define        GEM_M_CALLBACK_FLAGS    (MC_RESOURCES | MC_IOCTL | MC_GETCAPAB)
+#define        GEM_M_CALLBACK_FLAGS    (MC_IOCTL | MC_GETCAPAB)
 
 static mac_callbacks_t gem_m_callbacks = {
        GEM_M_CALLBACK_FLAGS,
@@ -5887,7 +5886,6 @@
        gem_m_multicst,
        gem_m_unicst,
        gem_m_tx,
-       gem_m_resources,
        gem_m_ioctl,
        gem_m_getcapab,
 };
@@ -6424,45 +6422,6 @@
 }
 
 static void
-gem_set_coalease(void *arg, time_t ticks, uint_t count)
-{
-       struct gem_dev *dp = arg;
-       DPRINTF(1, (CE_CONT, "%s: %s: ticks:%d count:%d",
-           dp->name, __func__, ticks, count));
-
-       mutex_enter(&dp->intrlock);
-       dp->poll_pkt_delay = min(count, dp->gc.gc_rx_ring_size/2);
-       mutex_exit(&dp->intrlock);
-}
-
-static void
-gem_m_resources(void *arg)
-{
-       struct gem_dev          *dp = arg;
-       mac_rx_fifo_t           mrf;
-
-       DPRINTF(0, (CE_CONT, "!%s: %s: called", dp->name, __func__));
-
-       mutex_enter(&dp->intrlock);
-       mutex_enter(&dp->xmitlock);
-
-       /*
-        * Register Rx rings as resources and save mac
-        * resource id for future reference
-        */
-       mrf.mrf_type = MAC_RX_FIFO;
-       mrf.mrf_blank = gem_set_coalease;
-       mrf.mrf_arg = (void *)dp;
-       mrf.mrf_normal_blank_time = 1; /* in uS */
-       mrf.mrf_normal_pkt_count = dp->poll_pkt_delay;
-
-       dp->mac_rx_ring_ha = mac_resource_add(dp->mh, (mac_resource_t *)&mrf);
-
-       mutex_exit(&dp->xmitlock);
-       mutex_exit(&dp->intrlock);
-}
-
-static void
 gem_m_ioctl(void *arg, queue_t *wq, mblk_t *mp)
 {
        DPRINTF(1, (CE_CONT, "!%s: %s: called",
@@ -6515,9 +6474,6 @@
                break;
 
 #endif /* GEM_CONFIG_CKSUM_OFFLOAD */
-       case MAC_CAPAB_POLL:
-               ret = B_TRUE;
-               break;
        }
        return (ret);
 }
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss

Reply via email to