From: "Chan Kim" <ckim@etri.re.kr>
To: "'Greg KH'" <greg@kroah.com>
Cc: kernelnewbies@kernelnewbies.org,
'qemu-discuss' <qemu-discuss@nongnu.org>
Subject: RE: Can't understand /proc/interrupts output for GICv3 case
Date: Tue, 12 Apr 2022 13:54:37 +0900 [thread overview]
Message-ID: <07fa01d84e29$69837c40$3c8a74c0$@etri.re.kr> (raw)
In-Reply-To: <YlUFDDAoN4gNBWmb@kroah.com>
Hi Greg KH,
I see, I understand what the proper method should be for this.
I'll take it as an almost official answer from the linux people :)
Thank you.
Chan Kim
> -----Original Message-----
> From: 'Greg KH' <greg@kroah.com>
> Sent: Tuesday, April 12, 2022 1:50 PM
> To: Chan Kim <ckim@etri.re.kr>
> Cc: 'qemu-discuss' <qemu-discuss@nongnu.org>;
> kernelnewbies@kernelnewbies.org
> Subject: Re: Can't understand /proc/interrupts output for GICv3 case
>
> On Tue, Apr 12, 2022 at 11:18:03AM +0900, Chan Kim wrote:
> > > You can replace all of the above code by just using the miscdevice
> > > interface instead. Please use that, it ensures that you do
> > > everything properly and simplifies it all.
>
> Again, use the misc device api please.
>
> > > > vaddr = ioremap(AXPU_BASE, 0x80000);
> > >
> > > Wait, where are you picking those random values from?
> >
> > Yes, it now looks weird to me. I have passed the register address
> > information in the device tree and the kernel already knows my
> > device's address range. Then, how should I get this virtual io address
> > in this driver? I need it to access some registers. How can I ask the
> system bus?
>
> Use a platform driver and bind your driver to that device based on that
> api.
>
> > And my driver is a kernel module because I want to use it in
> > ubuntu-20.04 on a virtual machine, I want it to be a kernel module
> > that I can insmod or rmmod.(actually my job is to provide this virtual
> machine to some folks).
> > And I cannot build the ubuntu image even if I change it to a platform
> > device driver and add it in the kernel tree.
>
> This all does not matter, just write a proper platform driver and all will
> be fine.
>
> > > > ret = request_irq(6, axpu_irq_handler, IRQF_SHARED,
"axpu_irq",
> > > > &axpu_cdev);
> > >
> > > Same for that, just picking 6 will not work, sorry.
> > >
> >
> > Yes, that was my original question. How can I get my irq number (I
> > know it's hwirq 47) and I peeked into kernel that irq 6 was assigned for
> the irq_desc.
> > So I changed my driver to request irq 6 for my device and I found at
> > least it works for now, all the register access and interrupts. I know
> > this is not the solution and I'm curious how I should get the irq
> > number of io virtual address in this situation.
>
> Again, the platform driver interface will provide you with the needed
> information. We have thousands of working examples in the kernel tree.
>
> >
> > > Perhaps take a look at the book, Linux Device Drivers, 3rd edition.
> > > It's free online and should help you out a lot.
> > >
> > > > printk("request_irq returned %d\n", ret); // -EINVAL
> > > > printk(KERN_INFO "Device driver inserted ..done
properly..\n");
> > > > return 0;
> > > >
> > > > r_device :
> > > > class_destroy(dev_class);
> > > >
> > > > r_class :
> > > > unregister_chrdev_region(dev,1);
> > > > return -1;
> > >
> > > One final comment, don't make up error values like this, use real
> > > ERROR codes.
> > >
> > > thanks,
> > >
> > > greg k-h
> >
> > Yes, I've read the book sometimes (not the whole part) but if I read
> > it now, I'll be able to more understand it. It's a bit outdated
> > though. Why don't you update your book? :)
>
> Because the publisher does not want to publish a new version.
>
> thanks,
>
> greg k-h
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
next prev parent reply other threads:[~2022-04-12 4:54 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-08 4:53 Can't understand /proc/interrupts output for GICv3 case Chan Kim
2022-04-11 12:36 ` Chan Kim
2022-04-11 12:49 ` Greg KH
2022-04-11 13:13 ` Chan Kim
2022-04-11 13:34 ` 'Greg KH'
2022-04-11 14:15 ` Chan Kim
2022-04-11 14:26 ` 'Greg KH'
2022-04-12 2:18 ` Chan Kim
2022-04-12 4:50 ` 'Greg KH'
2022-04-12 4:54 ` Chan Kim [this message]
2022-04-12 6:51 ` Chan Kim
2022-04-12 10:14 ` 'Greg KH'
2022-04-11 14:32 ` Peter Maydell
2022-04-11 14:49 ` Greg KH
2022-04-11 14:58 ` Peter Maydell
2022-04-11 14:59 ` Ozgur Karatas
2022-04-11 14:53 ` Ozgur Karatas
2022-04-12 2:43 ` Chan Kim
2022-04-12 7:14 ` Ozgur Karatas
2022-04-12 7:22 ` Chan Kim
2022-04-12 7:29 ` Ozgur Karatas
2022-04-11 13:09 ` Ozgur Kara
2022-04-11 13:16 ` Chan Kim
2022-04-11 13:28 ` Ozgur Kara
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='07fa01d84e29$69837c40$3c8a74c0$@etri.re.kr' \
--to=ckim@etri.re.kr \
--cc=greg@kroah.com \
--cc=kernelnewbies@kernelnewbies.org \
--cc=qemu-discuss@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.