e57b9183811d515e3bbcd1a104516f0102fde114cg * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
e57b9183811d515e3bbcd1a104516f0102fde114cg * Use is subject to license terms.
e57b9183811d515e3bbcd1a104516f0102fde114cg * radeon_drv.c -- ATI Radeon driver -*- linux-c -*-
e57b9183811d515e3bbcd1a104516f0102fde114cg * Created: Wed Feb 14 17:10:04 2001 by gareth@valinux.com
e57b9183811d515e3bbcd1a104516f0102fde114cg * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
e57b9183811d515e3bbcd1a104516f0102fde114cg * All Rights Reserved.
e57b9183811d515e3bbcd1a104516f0102fde114cg * Permission is hereby granted, free of charge, to any person obtaining a
e57b9183811d515e3bbcd1a104516f0102fde114cg * copy of this software and associated documentation files (the "Software"),
e57b9183811d515e3bbcd1a104516f0102fde114cg * to deal in the Software without restriction, including without limitation
e57b9183811d515e3bbcd1a104516f0102fde114cg * the rights to use, copy, modify, merge, publish, distribute, sublicense,
e57b9183811d515e3bbcd1a104516f0102fde114cg * and/or sell copies of the Software, and to permit persons to whom the
e57b9183811d515e3bbcd1a104516f0102fde114cg * Software is furnished to do so, subject to the following conditions:
e57b9183811d515e3bbcd1a104516f0102fde114cg * The above copyright notice and this permission notice (including the next
e57b9183811d515e3bbcd1a104516f0102fde114cg * paragraph) shall be included in all copies or substantial portions of the
e57b9183811d515e3bbcd1a104516f0102fde114cg * Software.
e57b9183811d515e3bbcd1a104516f0102fde114cg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
e57b9183811d515e3bbcd1a104516f0102fde114cg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
e57b9183811d515e3bbcd1a104516f0102fde114cg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
e57b9183811d515e3bbcd1a104516f0102fde114cg * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
e57b9183811d515e3bbcd1a104516f0102fde114cg * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
e57b9183811d515e3bbcd1a104516f0102fde114cg * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
e57b9183811d515e3bbcd1a104516f0102fde114cg * OTHER DEALINGS IN THE SOFTWARE.
e57b9183811d515e3bbcd1a104516f0102fde114cg * Authors:
e57b9183811d515e3bbcd1a104516f0102fde114cg * Gareth Hughes <gareth@valinux.com>
e57b9183811d515e3bbcd1a104516f0102fde114cg * cb_ops entrypoint
e57b9183811d515e3bbcd1a104516f0102fde114cg/* drv_PCI_IDs comes from drm_pciids.h */
e57b9183811d515e3bbcd1a104516f0102fde114cg * module entrypoint
e57b9183811d515e3bbcd1a104516f0102fde114cgstatic int radeon_info(dev_info_t *, ddi_info_cmd_t, void *, void **);
e57b9183811d515e3bbcd1a104516f0102fde114cgextern void radeon_init_ioctl_arrays(void);
e57b9183811d515e3bbcd1a104516f0102fde114cgextern int drm_get_pci_index_reg(dev_info_t *, uint_t, uint_t, off_t *);
e57b9183811d515e3bbcd1a104516f0102fde114cg * Local routines
e57b9183811d515e3bbcd1a104516f0102fde114cg * DRM driver
e57b9183811d515e3bbcd1a104516f0102fde114cg 0, /* devo_refcnt */
e57b9183811d515e3bbcd1a104516f0102fde114cg * softstate head
e57b9183811d515e3bbcd1a104516f0102fde114cg} /* _init() */
e57b9183811d515e3bbcd1a104516f0102fde114cg return (0);
e57b9183811d515e3bbcd1a104516f0102fde114cg} /* _fini() */
e57b9183811d515e3bbcd1a104516f0102fde114cg} /* _info() */
e57b9183811d515e3bbcd1a104516f0102fde114cg if (ddi_soft_state_zalloc(radeon_statep, unit) != DDI_SUCCESS) {
e57b9183811d515e3bbcd1a104516f0102fde114cg * Call drm_supp_register to create minor nodes for us
e57b9183811d515e3bbcd1a104516f0102fde114cg * After drm_supp_register, we can call drm_xxx routine
e57b9183811d515e3bbcd1a104516f0102fde114cg if (drm_probe(statep, radeon_pciidlist) != DDI_SUCCESS) {
e57b9183811d515e3bbcd1a104516f0102fde114cg "DRM current don't support this graphics card");
e57b9183811d515e3bbcd1a104516f0102fde114cg /* call common attach code */
e57b9183811d515e3bbcd1a104516f0102fde114cg} /* radeon_attach() */
e57b9183811d515e3bbcd1a104516f0102fde114cg} /* radeon_detach() */
e57b9183811d515e3bbcd1a104516f0102fde114cg/*ARGSUSED*/
e57b9183811d515e3bbcd1a104516f0102fde114cgradeon_info(dev_info_t *dip, ddi_info_cmd_t infocmd, void *arg, void **result)
e57b9183811d515e3bbcd1a104516f0102fde114cg} /* radeon_info() */
e57b9183811d515e3bbcd1a104516f0102fde114cgstatic void
e57b9183811d515e3bbcd1a104516f0102fde114cg} /* radeon_configure() */