svn commit: r437142 - in head/sysutils: . rovclock rovclock/files

Alexey Dokuchaev danfe at FreeBSD.org
Tue Mar 28 17:23:30 UTC 2017


Author: danfe
Date: Tue Mar 28 17:23:28 2017
New Revision: 437142
URL: https://svnweb.freebsd.org/changeset/ports/437142

Log:
  Add a port of `sysutils/rovclock', an overclocking utility for ATI Radeon
  video cards.  Manual page and port description were obtained from identic
  Debian package.
  
  WWW: http://www.hasw.net/linux/

Added:
  head/sysutils/rovclock/
  head/sysutils/rovclock/Makefile   (contents, props changed)
  head/sysutils/rovclock/distinfo   (contents, props changed)
  head/sysutils/rovclock/files/
  head/sysutils/rovclock/files/patch-rovclock.c   (contents, props changed)
  head/sysutils/rovclock/files/rovclock.8   (contents, props changed)
  head/sysutils/rovclock/pkg-descr   (contents, props changed)
Modified:
  head/sysutils/Makefile

Modified: head/sysutils/Makefile
==============================================================================
--- head/sysutils/Makefile	Tue Mar 28 17:16:00 2017	(r437141)
+++ head/sysutils/Makefile	Tue Mar 28 17:23:28 2017	(r437142)
@@ -944,6 +944,7 @@
     SUBDIR += rinse
     SUBDIR += rmonitor
     SUBDIR += roottail
+    SUBDIR += rovclock
     SUBDIR += rsnapshot
     SUBDIR += rsyncbackup
     SUBDIR += rsyncrypto

Added: head/sysutils/rovclock/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/rovclock/Makefile	Tue Mar 28 17:23:28 2017	(r437142)
@@ -0,0 +1,33 @@
+# Created by: Alexey Dokuchaev <danfe at FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME=	rovclock
+PORTVERSION=	0.6e
+CATEGORIES=	sysutils
+MASTER_SITES=	http://www.hasw.net/linux/
+
+MAINTAINER=	danfe at FreeBSD.org
+COMMENT=	Overclocking utility for ATI Radeon video cards
+
+LICENSE=	GPLv2
+
+USES=		tar:bzip2
+
+PLIST_FILES=	man/man8/${PORTNAME}.8.gz sbin/${PORTNAME}
+PORTDOCS=	ChangeLog README
+
+OPTIONS_DEFINE=	DOCS
+
+do-build:
+	cd ${WRKSRC} && ${CC} ${CFLAGS} -Wall -o ${PORTNAME} ${PORTNAME}.c
+
+do-install:
+	${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/sbin
+	${INSTALL_MAN} ${FILESDIR}/${PORTNAME}.8 \
+		${STAGEDIR}${MANPREFIX}/man/man8
+
+post-install-DOCS-on:
+	@${MKDIR} ${STAGEDIR}${DOCSDIR}
+	${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR}
+
+.include <bsd.port.mk>

Added: head/sysutils/rovclock/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/rovclock/distinfo	Tue Mar 28 17:23:28 2017	(r437142)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1433765826
+SHA256 (rovclock-0.6e.tar.bz2) = f2601b3a823752d51cf27b25c8b57efb66e1295848877c962f0c680430e200f7
+SIZE (rovclock-0.6e.tar.bz2) = 29648

Added: head/sysutils/rovclock/files/patch-rovclock.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/rovclock/files/patch-rovclock.c	Tue Mar 28 17:23:28 2017	(r437142)
@@ -0,0 +1,122 @@
+--- rovclock.c.orig	2006-01-04 21:23:32 UTC
++++ rovclock.c
+@@ -20,11 +20,13 @@
+  */
+  /*****************************************************************************/
+ 
++#include <fcntl.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <getopt.h>
+-#include <sys/io.h>
++#include <sys/types.h>
++#include <machine/cpufunc.h>
+ #include <sys/mman.h>
+ 
+ #include "pci.h"
+@@ -122,18 +124,18 @@ struct rovclock_data {
+ /* PCI read/write functions */
+ unsigned int pci_read(u8 bus, u8 device, u8 func, u8 addr)
+ {
+-	outl(0x80000000 | (bus << 16) | 
++	outl(0xcf8, 0x80000000 | (bus << 16) | 
+ 		 (PCI_DEVFN(device, func) << 8) |
+-		 (addr & ~3), 0xcf8);
++		 (addr & ~3));
+ 	return inl(0xcfc);
+ }
+ 
+ void pci_write(u8 bus, u8 device, u8 func, u8 addr, u32 data)
+ {
+-	outl(0x80000000 | (bus << 16) | 
++	outl(0xcf8, 0x80000000 | (bus << 16) | 
+ 		 (PCI_DEVFN(device, func) << 8) |
+-		 (addr & ~3), 0xcf8);
+-	outl(data, 0xcfc);
++		 (addr & ~3));
++	outl(0xcfc, data);
+ }
+ 
+ /* Register read/write functions */
+@@ -144,38 +146,38 @@ u32 reg_read(struct rovclock_data *rovcl
+ 
+ void reg_write(struct rovclock_data *rovclock, u32 addr, u32 data)
+ {
+-	outl(data, rovclock->iobase + addr);
++	outl(rovclock->iobase + addr, data);
+ }
+ 
+ /* PLL read/write functions */
+ u32 pll_read(struct rovclock_data *rovclock, u32 addr)
+ {
+-	outb(addr & 0x0000003f, rovclock->iobase + CLOCK_CNTL_INDEX);
++	outb(rovclock->iobase + CLOCK_CNTL_INDEX, addr & 0x0000003f);
+ 	return inl(rovclock->iobase + CLOCK_CNTL_DATA);
+ }
+ 
+ void pll_write(struct rovclock_data *rovclock, u32 addr, u32 data)
+ {
+-	outb((addr & 0x3f) | PLL_WR_EN, rovclock->iobase + CLOCK_CNTL_INDEX);
+-	outl(data, rovclock->iobase + CLOCK_CNTL_DATA);
++	outb(rovclock->iobase + CLOCK_CNTL_INDEX, (addr & 0x3f) | PLL_WR_EN);
++	outl(rovclock->iobase + CLOCK_CNTL_DATA, data);
+ }
+ 
+ /* MM read/write functions */
+ u32 mm_read(struct rovclock_data *rovclock, u32 addr)
+ {
+-	outl(addr, rovclock->iobase + MM_INDEX);
++	outl(rovclock->iobase + MM_INDEX, addr);
+ 	return inl(rovclock->iobase + MM_DATA);
+ }
+ 
+ void mm_write(struct rovclock_data *rovclock, u32 addr, u32 data)
+ {
+-	outl(addr, rovclock->iobase + MM_INDEX);
+-	outl(data, rovclock->iobase + MM_DATA);
++	outl(rovclock->iobase + MM_INDEX, addr);
++	outl(rovclock->iobase + MM_DATA, data);
+ }
+ 
+ int round_div(int num, int den)
+ {
+-    return (num + (den / 2)) / den;
++    return den ? (num + (den / 2)) / den : 0;
+ }
+ 
+ /* Print usage */
+@@ -281,10 +283,11 @@ void pll_set_freq(struct rovclock_data *
+ /* Search for ATI card on PCI bus */
+ int find_card(struct rovclock_data *rovclock)
+ {
++	u32 id;
++#if 0
+ 	FILE *proc;
+ 	char temp;
+-	u32 id;
+-	
++
+ 	/* Check /proc/bus/pci/devices first */
+ 	if ((proc = fopen("/proc/bus/pci/devices", "r")) != NULL) {
+ 		while (fscanf(proc, "%x\t%x", &rovclock->pci_bus, &id) == 2) {
+@@ -305,8 +308,9 @@ int find_card(struct rovclock_data *rovc
+ 					break;
+ 		}
+ 	}
++#endif
+ 	if ((rovclock->pci_id & 0xffff) != PCI_VENDOR_ID_ATI) {
+-		fprintf(stderr, "Search in /proc/bus/pci/devices failed, scanning the PCI bus.\n");
++		fprintf(stderr, "Scanning the PCI bus.\n");
+ 
+ 		/* Find card by scanning the PCI devices, check from bus 1 to 9 for ATI device */
+ 		rovclock->pci_dev = 0;
+@@ -423,7 +427,7 @@ int main(int argc, char **argv)
+ 	}
+ 	
+ 	/* Get I/O permission */
+-	if (iopl(3) != 0) {
++	if (open("/dev/io", O_RDONLY) < 0) {
+ 		fprintf(stderr, "Error getting I/O permissions (root?).\n");
+ 		return 1;
+ 	}

Added: head/sysutils/rovclock/files/rovclock.8
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/rovclock/files/rovclock.8	Tue Mar 28 17:23:28 2017	(r437142)
@@ -0,0 +1,66 @@
+.\"                                      Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH ROVCLOCK 8 "2006-03-05"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh        disable hyphenation
+.\" .hy        enable hyphenation
+.\" .ad l      left justify
+.\" .ad b      justify to both left and right margins
+.\" .nf        disable filling
+.\" .fi        enable filling
+.\" .br        insert line break
+.\" .sp <n>    insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+rovclock \- utility to control frequency rates of your Radeon card
+.SH SYNOPSIS
+.B rovclock
+.RI [ options ]
+.\".RI [  -x  <KHz>  ]  -i  |  -c  <MHz>  |  -m  <MHz>  |  -t  <name:val>
+.SH DESCRIPTION
+This manual page documents briefly the
+.B rovclock
+command.
+.PP
+This manual page was written for the
+.B Debian
+distribution because the original program does not have a manual page.
+.PP
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics, 
+.\" respectively.
+\fBrovclock\fP is a program that allow you to control frequency rates of your Radeon card.
+.SH OPTIONS
+A summary of options is included below.
+.TP
+.B \-i
+Show info of your Radeon card.
+.TP
+.B \-x N
+Manually define xtal frequency to N KHz.
+.br
+It tries to detect the reference clock (xtal) from the video BIOS, if this doesn't work you can specify it manually with -t. Try 1432 or 2950 if the default value of 2700 does not work.
+.TP
+.B \-c N
+Set core clock to N MHz.
+.TP
+.B \-m N
+Set memory clock to N MHz.
+.TP
+.B \-t name:val
+Set memory timings.
+
+.SH SEE ALSO
+.BR /usr/share/doc/rovclock/README,
+.BR radeontool (1).
+.br
+This is quick and stupid manpage which merges some information from README and rovclock itself.
+.SH AUTHOR
+rovclock was written by Hasw (hasw at hasw.net).
+.PP
+This manual page was written by Alexander Gerasiov <gq at cs.msu.su>,
+for the Debian project (but may be used by others).

Added: head/sysutils/rovclock/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/rovclock/pkg-descr	Tue Mar 28 17:23:28 2017	(r437142)
@@ -0,0 +1,6 @@
+Utility to control frequency rates of one's ATI Radeon video card.  It is
+very helpful for underclocking the Radeon chip in order to save power when
+running on batteries.  Also, by underclocking it is possible to prevent the
+fan from running.  It can also be used to gain performance by overclocking.
+
+WWW: http://www.hasw.net/linux/


More information about the svn-ports-all mailing list