[prev in list] [next in list] [prev in thread] [next in thread]
List: opensolaris-driver-discuss
Subject: Re: [driver-discuss] alta 2.6.0 GLD3 build failure SXCE101/gcc/SS11
From: Menno Lageman <Menno.Lageman () Sun ! COM>
Date: 2008-12-22 12:53:42
Message-ID: 494F8DD6.2020707 () sun ! com
[Download RAW message or body]
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
["alta-2.6.1-crossbow.patch" (text/plain)]
--- 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
driver-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/driver-discuss
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic