List of commits:
Subject Hash Author Date (UTC)
sysfs discret_vram property cf1c115de509b4449d7e1af1e21bf26010904c46 Sylvain BERTRAND 2013-03-19 00:56:39
dce6 crtc attribute 8f7a977603c22668c56d36c59868b74426fcf371 Sylvain BERTRAND 2013-03-12 17:02:51
ioctl edid not big enough fa9570a5821514fdb281d81ce801c2c86592dc69 Sylvain BERTRAND 2013-03-11 22:14:17
edid override has ioctl d0e628fe0d9e43cdebb3ce32cf04e53f4e36239e Sylvain BERTRAND 2013-03-11 20:48:26
forgot to remove the edid binary attribute fe3bf78e0ef1919315c1ba4da75dd3a320140061 Sylvain BERTRAND 2013-03-07 16:48:36
finally switch to binary attr for edid 739827ff0f69bacbda2bc18c19ab3cf9a7b96a5b Sylvain BERTRAND 2013-03-07 16:30:46
display properties with edid patching e43106768022d2d37e2120f4748e1bbe294f2fb9 Sylvain BERTRAND 2013-03-07 03:33:05
first shot at sysfs for display hotplug 411ae25ba5390aa8cb43d104fc7942781c036758 Sylvain BERTRAND 2013-03-06 02:10:12
new tahiti pci id 6e6296898ab0e460aba5a5c16e28a50927f073f9 Sylvain BERTRAND 2013-03-04 22:39:41
atombios init, reset, oland 8b75a3e3dd4af96d09c4fdab8787e72b0046f59e Sylvain BERTRAND 2013-03-04 21:50:55
oland 0f5b78a2b2b542c564d778cc875c09b28a63567b Sylvain BERTRAND 2013-03-04 20:49:40
minor management c9d861c8bed7eb9e350245a3114ef6dd3cc37004 Sylvain BERTRAND 2013-03-04 17:27:04
linux 3.8.0 df5ce6b90332feec174c48c3947a3d635fb3cfdd Sylvain BERTRAND 2013-02-28 22:48:17
upstream: new pci ids 79cd8f97c27c895a4187b36f94fa1b432653555c Sylvain BERTRAND 2012-10-17 11:40:08
triangle basic pattern working 97faa34485d6d8b7b19dd54740d5f71fdae7691f Sylvain BERTRAND 2012-10-09 00:55:39
more regs b04101d3e2fcc6d5bac47c3b7999a63b8e70ec86 Sylvain BERTRAND 2012-10-06 13:49:36
add CPs interrupts 35f9940a0ac89e875d852b8ca32009954d92faa5 Sylvain BERTRAND 2012-10-06 13:23:06
tiling, hdp fixes aacf6796f68771f4f6b680844ae495147849ec64 Sylvain BERTRAND 2012-10-06 02:51:51
minor cps cleanup ed2a417ef5177972951226b2d6988257ab66c935 Sylvain BERTRAND 2012-10-05 11:04:15
pattern: triangle, not crashing the GPU anymore 8d21ea32a699a9796e2c89fd69469d4f3da3f96d Sylvain BERTRAND 2012-09-27 13:09:55
Commit cf1c115de509b4449d7e1af1e21bf26010904c46 - sysfs discret_vram property
Author: Sylvain BERTRAND
Author date (UTC): 2013-03-19 00:56
Committer name: Sylvain BERTRAND
Committer date (UTC): 2013-03-19 00:56
Parent(s): 8f7a977603c22668c56d36c59868b74426fcf371
Signer:
Signing key:
Signing status: N
Tree: 06f633e43b1885d5f63ed84a1e8bc7d90c888423
File Lines added Lines deleted
drivers/gpu/alga/amd/dce6/sysfs.c 1 7
drivers/gpu/alga/amd/si/drv.c 65 10
drivers/gpu/alga/amd/si/drv.h 1 1
File drivers/gpu/alga/amd/dce6/sysfs.c changed (mode: 100644) (index b93ad46..d1781ca)
... ... static const struct attribute_group *edid_attr_groups[] = {
210 210 }; };
211 211 /*============================================================================*/ /*============================================================================*/
212 212
213 static void dce6_display_release(struct device *dev)
214 {
215 kfree(dev);
216 }
217
218 213 int sysfs_add(struct dce6 *dce, unsigned i) int sysfs_add(struct dce6 *dce, unsigned i)
219 214 { {
220 215 int id; int id;
 
... ... int sysfs_add(struct dce6 *dce, unsigned i)
242 237
243 238 d->class = class; d->class = class;
244 239 d->parent = dce->parent_char_dev; d->parent = dce->parent_char_dev;
245 d->release = dce6_display_release;
246 240
247 241 sysfs_attr_init(&dev_attr_manufacturer.attr); sysfs_attr_init(&dev_attr_manufacturer.attr);
248 242 sysfs_attr_init(&dev_attr_product_code.attr); sysfs_attr_init(&dev_attr_product_code.attr);
 
... ... int sysfs_add(struct dce6 *dce, unsigned i)
260 254 r = device_register(d); r = device_register(d);
261 255 if (r != 0) { if (r != 0) {
262 256 dev_err(dce->ddev.dev, "dce6:dp%u:unable to register display" dev_err(dce->ddev.dev, "dce6:dp%u:unable to register display"
263 " device name\n",i);
257 " device\n",i);
264 258 goto err_put_dev; goto err_put_dev;
265 259 } }
266 260
File drivers/gpu/alga/amd/si/drv.c changed (mode: 100644) (index 08b5afa..c743ad3)
... ... static void cfg_init(struct pci_dev *dev)
195 195 gpu_cfg_init(dev); gpu_cfg_init(dev);
196 196 } }
197 197
198 static ssize_t discret_vram_show(struct device *dev,
199 struct device_attribute *attr, char *buf)
200 {
201 struct dev_drv_data *dd;
202
203 dd = dev_get_drvdata(dev);
204
205 return scnprintf(buf, PAGE_SIZE, "%llu", dd->vram.mng.sz);
206 }
207
208 /*----------------------------------------------------------------------------*/
209 static DEVICE_ATTR(discret_vram, S_IRUGO, discret_vram_show, NULL);
210
211 static struct attribute *char_dev_attrs[] = {
212 &dev_attr_discret_vram.attr,
213 NULL
214 };
215 static struct attribute_group char_dev_attr_group = {
216 .attrs = &char_dev_attrs[0]
217 };
218 static const struct attribute_group *char_dev_attr_groups[] = {
219 &char_dev_attr_group,
220 NULL
221 };
222 /*----------------------------------------------------------------------------*/
223
224 static int char_dev_register(struct dev_drv_data *dd)
225 {
226 int r;
227
228 memset(&dd->char_dev, 0, sizeof(dd->char_dev));
229
230 dd->char_dev.devt = dd->char_cdev.dev;
231 dd->char_dev.class = class;
232 dd->char_dev.parent = &dd->dev->dev;
233 dev_set_drvdata(&dd->char_dev, dd);
234
235 sysfs_attr_init(&dev_attr_discret_vram_show.attr);
236 dd->char_dev.groups = &char_dev_attr_groups[0];
237
238 r = dev_set_name(&dd->char_dev, "si%u", dd->minor);
239 if (r != 0) {
240 dev_err(&dd->dev->dev, "unable to set char device name\n");
241 goto err_put_dev;
242 }
243
244 r = device_register(&dd->char_dev);
245 if (r != 0) {
246 dev_err(&dd->dev->dev, "unable to register char device\n");
247 goto err_put_dev;
248 }
249 return 0;
250
251 err_put_dev:
252 put_device(&dd->char_dev);
253 return -SI_ERR;
254 }
255
198 256 static int probe(struct pci_dev *dev, const struct pci_device_id *id) static int probe(struct pci_dev *dev, const struct pci_device_id *id)
199 257 { {
200 258 int r; int r;
 
... ... static int probe(struct pci_dev *dev, const struct pci_device_id *id)
436 494 goto err_free_minor; goto err_free_minor;
437 495 } }
438 496
439 dd->char_dev = device_create(class, &dev->dev, dd->char_cdev.dev, NULL,
440 "si%u", dd->minor);
441 if (IS_ERR(dd->char_dev)) {
442 dev_err(&dev->dev, "cannot create userspace char device\n");
497 r = char_dev_register(dd);
498 if (r)
443 499 goto err_cdev_del; goto err_cdev_del;
444 }
445 500
446 r = dce6_sysfs_init(dd->dce, dd->char_dev);
501 r = dce6_sysfs_init(dd->dce, &dd->char_dev);
447 502 if (r) { if (r) {
448 goto err_destroy_device;
503 goto err_unregister_device;
449 504 } }
450 505 /*--------------------------------------------------------------------*/ /*--------------------------------------------------------------------*/
451 506
 
... ... static int probe(struct pci_dev *dev, const struct pci_device_id *id)
456 511 dev_info(&dev->dev, "ready\n"); dev_info(&dev->dev, "ready\n");
457 512 return 0; return 0;
458 513
459 err_destroy_device:
460 device_destroy(class, dd->char_cdev.dev);
514 err_unregister_device:
515 device_unregister(&dd->char_dev);
461 516
462 517 err_cdev_del: err_cdev_del:
463 518 cdev_del(&dd->char_cdev); cdev_del(&dd->char_cdev);
 
... ... static void remove(struct pci_dev *dev)
532 587 dd = pci_get_drvdata(dev); dd = pci_get_drvdata(dev);
533 588
534 589 /* remove userland interface */ /* remove userland interface */
535 device_destroy(class, dd->char_cdev.dev);
590 device_unregister(&dd->char_dev);
536 591 cdev_del(&dd->char_cdev); cdev_del(&dd->char_cdev);
537 592 ida_simple_remove(&ida, dd->minor); ida_simple_remove(&ida, dd->minor);
538 593
File drivers/gpu/alga/amd/si/drv.h changed (mode: 100644) (index e17ca20..4933969)
... ... struct dev_drv_data {
42 42 /* userland */ /* userland */
43 43 unsigned int minor; unsigned int minor;
44 44 struct cdev char_cdev; struct cdev char_cdev;
45 struct device *char_dev;
45 struct device char_dev;
46 46 struct pci_dev *dev; struct pci_dev *dev;
47 47 }; };
48 48
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/sylware/linux-gpu-amd-si

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/sylware/linux-gpu-amd-si

Clone this repository using git:
git clone git://git.rocketgit.com/user/sylware/linux-gpu-amd-si

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main